name: signal-scanner description: | 批量扫描候选标的池,用三重滤网第一滤网快速筛选,输出有交易信号的标的清单。 当用户说"扫描市场"、"看看今天有什么机会"、"帮我筛选标的"、"有哪些股票值得看"、 "跑一下信号扫描"、"今天哪些标的有信号"时触发(模式 A:用户提供候选池)。 当用户说"读取 Elder 研究运行结果"、"分析昨天的 Elder 候选"时触发 (模式 B:读取 data/research/runs/{run_id}/manifest.json 和 report.md)。 通常由 elder-system 调用,也可以单独使用。 输出按信号强度排序的候选清单,供 elder-screen 做进一步深度分析。
Signal Scanner — 批量信号扫描
把 elder-screen 的三重滤网分析能力乘以 N 倍:对整个候选标的池做快速扫描, 找出值得深度分析的标的,过滤掉无信号或方向不明的标的。
扫描逻辑
第一步:获取数据
对候选池中的每个标的,获取:
- 周线数据(最近52周):用于判断第一滤网
- 日线数据(最近60天):用于判断第二滤网
数据获取方式(按优先级):
- 如果系统配置了数据接口,调用接口获取
- 如果用户提供了数据文件,读取文件
- 使用 web_search 搜索最新行情
- 提示用户手动输入关键价格(开高低收、成交量)
第二步:第一滤网快速判断(周线)
对每个标的判断周线趋势:
周线 EMA 斜率:
上升 → 战略方向:做多
下降 → 战略方向:做空
走平 → 观望,跳过
周线 MACD 柱季节:
春(0值以下向上)→ 最佳做多时机,优先级 ★★★
夏(0值以上向上)→ 做多,优先级 ★★
秋(0值以上向下)→ 最佳做空时机,优先级 ★★★
冬(0值以下向下)→ 做空,优先级 ★★
快速过滤规则:
- 周线走平 → 直接跳过,不进入下一步
- 第一滤网方向明确 → 进入第二滤网判断
第三步:第二滤网快速判断(日线)
在第一滤网方向明确的基础上,判断日线是否出现入场时机:
做多场景(周线向上):
- 随机指标 < 30(超卖区)→ 有信号
- 2日强力指数为负 → 有信号
- 价格在价值区间内(两条EMA之间)→ 有信号
- 出现向下袋鼠尾 → 有信号(加分项)
- 出现牛市背离 → 强信号
做空场景(周线向下):
- 随机指标 > 70(超买区)→ 有信号
- 2日强力指数为正 → 有信号
- 价格在价值区间内 → 有信号
- 出现向上袋鼠尾 → 有信号(加分项)
- 出现熊市背离 → 强信号
第四步:评定信号强度
强信号(优先深度分析):
- 背离信号存在
- 袋鼠尾 + 超买/超卖同时出现
- 多个震荡指标同时确认
中信号(正常排队):
- 一个震荡指标确认
- 价格在价值区间内
弱信号(低优先级):
- 仅第一滤网方向明确,日线无明显信号
输出格式
# 信号扫描报告 — [日期]
## 扫描摘要
- 扫描标的数:30
- 有信号标的:8
- 强信号:2,中信号:4,弱信号:2
- 数据来源:[来源说明]
## 强信号(建议深度分析)
### 1. AAPL — 做多
- 周线:EMA上升,MACD柱春季 ★★★
- 日线:随机指标22(超卖),2日强力指数-850
- 亮点:出现向下袋鼠尾,价格在价值区间下沿
- 建议:调用 elder-screen 做深度分析
### 2. 黄金期货(GC) — 做多
- 周线:EMA上升,MACD柱春季 ★★★
- 日线:牛市背离(MACD柱底部抬高,价格创新低)
- 亮点:强牛市背离信号
- 建议:优先深度分析
## 中信号
### 3. NVDA — 做多
...
## 弱信号(可选择性关注)
### 7. TSLA — 观望
- 周线走平,暂无方向
- 建议:暂时跳过
## 无信号(已过滤)
600519, 000858, AMZN, ... (共22个标的无明显信号)
注意事项
- 扫描是快速判断,不是精确分析。强信号标的仍需通过 elder-screen 深度验证
- 每天最多推荐5个标的进入深度分析,避免分析瘫痪
- 如果数据获取不完整,在报告中明确标注,不要基于不完整数据给出错误信号
- 扫描结果传递给 elder-system,由编排层决定下一步
数据不可用时的处理
当无法自动获取数据时:
- 列出需要用户提供的标的和数据字段
- 提供一个简单的数据输入模板
- 用户填入后继续扫描
不要因为数据缺失而跳过标的,要明确告知用户哪些标的因数据缺失未被扫描。
模式 B:读取 recipe 运行结果
当用户说"读取 Elder 研究运行结果"、"分析昨天的 Elder 候选"时,从 data/research/runs/{run_id}/ 读取证据链:
# 查看运行证据链
python -m trading_os data status
# 读取指定 run
cat data/research/runs/{run_id}/manifest.json
cat data/research/runs/{run_id}/report.md
读取 manifest/report 后,对候选列表中的每只股票:
- 提取 recipe 已记录的信号、数据版本、过滤原因和限制说明
- 按 score 降序排列,优先分析高分标的
- 输出与模式 A 相同格式的 Markdown 分析报告
- 建议对 TOP 3-5 只标的进一步运行
elder-screen做完整三重滤网分析
注意:manifest.json 是证据链协议,最终输出给用户的是 Markdown 分析报告,不是原始 JSON。