信义光能问题修复:两层级过滤+趋势检查
Bug 1 — strategy_lifecycle.py: enrich_timing_signal 用 factors[-1] 当信号
信义光能: base_signal=neutral, factors=[大盘中性,行业偏弱,高估值]
旧逻辑: factors[-1]='行业偏弱'→成为timing_signal→无效信号
新逻辑: 先找有效操作方向(买入/加仓/观望/持有/关注/信号不充分),
找不到→信号不充分。不再从上下文因子里拼凑信号。
Bug 2 — stale_push_wlin.py: 信号过滤太松
旧逻辑: 只跳过特定关键词(等企稳/关注/信号不充分/持有)
新逻辑: 信号必须含"买入"或"加仓"才进推荐,其他一律跳过
Check 3 — 趋势检查(新增)
fetch_trend_data(): 取实时行情+30日K线计算MA排列
空头排列/弱势震荡→不推荐
药明康德通过(多头排列+买入信号) 信义光能不通过(空头+行业偏弱)
This commit is contained in:
+14
-4
@@ -1141,10 +1141,20 @@ def enrich_timing_signal(base_signal, macro_desc="", sector_note="",
|
||||
if not factors:
|
||||
return "信号不充分", []
|
||||
|
||||
# 修改:信号保持干净(只取base_signal),不把全部因子拼进去
|
||||
# enriched 仍作为完整的可读描述保留在 factors_list 中
|
||||
# 调用方决定是否展示 factors
|
||||
clean_signal = base_signal if base_signal and base_signal != "neutral" else factors[-1]
|
||||
# 信号只应包含明确的买卖方向,不能从行业/大盘等上下文因子拼凑
|
||||
# base_signal 存在且非 neutral → 用 base_signal
|
||||
# 否则 → 信号不充分(不拿 factors[-1] 当信号)
|
||||
if base_signal and base_signal != "neutral":
|
||||
clean_signal = base_signal
|
||||
else:
|
||||
# 从 factors 中找第一个有效的操作方向信号
|
||||
valid_direction = {"买入", "加仓", "观望", "持有", "关注", "信号不充分"}
|
||||
signal_found = ""
|
||||
for f in reversed(factors):
|
||||
if f in valid_direction:
|
||||
signal_found = f
|
||||
break
|
||||
clean_signal = signal_found if signal_found else "信号不充分"
|
||||
return clean_signal, factors
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user