🔄 管道逻辑流向

数据输入 → 并行计算 → 周期约束 → 决策树 → 执行 → 四层风控 → 决策日志
原始数据 加工模块 判断节点 执行输出 风控约束 等待条件

① 数据输入层

收盘数据
90板块 × 2793天 × 量价
→ ths_hist/ → heat_bayes.json → collect_data()
数据源:东财实时(默认)→ THS历史→ EM→ 自动降级链

② 并行计算(三路独立 + 周期约束)

路径A:环境层
env_judge()
↓
复合评分: 57
标签: 略多
路径B:信号层
resonance_scorer()
↓
见底分42
见顶分32
共振分13
张力/连跌/放量/企稳
路径C:时序层
timing.py
↓
延续率0.16
30d起手/收尾
120d起手/收尾
超短T+1 + 日线时序轴
⏱ 周期层约束(_check_timing_constraints)
角色翻转检测
30d起手 且 120d收尾 ≥ 2个 → role_shift
延续率截断
ultra_sustain < 0.12 → sustain_too_low
新起手板块
30d起手中不在120d起手里的 ≥ 3个 → new_starters_clear
前置截断:role_shift + new_starters_clear → 直接判"方向切换中",不进后续判断

③ 决策树 — judge_market_phase()

5条出口,按优先级逐级判断。每个决策点都有独立阈值,可在 pipeline.py 中找到。

出口① 四路数据就绪 环境+信号+时序+周期约束 周期层触发? role_shift + new_starters 是 ➜ 方向切换中 买抗跌 轻仓10% 否 张力+环境 双低·35 是 ➜ 下跌 空仓 0% 否 连跌天数 ≥ 3? (必要条件) 否 出口④:非连跌分支 是 共振分 ≥ 50? (板块普跌够不够) 否 ➜ 震荡 超跌反弹 15% 旧主线领涨? (今日Top3∩旧主线Top5 ≥ 2) 是 时序约束? role_shift+sustain_low 是 ➜ 方向切换中 否 ➜ 反弹 旧主线反弹 30% 否 大盘跌但新面孔涨? (非共振) ➜ 方向切换中 观察候选 10% 否(共振) 见底分 ≥ 60? (跌够没) 是 否 ➜ 见底新行情 新方向领涨 80% ➜ 方向切换中 观察候选 10% 连跌 < 3 → 旧主线检查 旧主线还涨?(Top3∩Top5 ≥ 2) → 震荡延续 旧主线暴跌破位(<-3%) ? → 方向切换中 10%

④ 执行层输出(市场状态 → 操作手法)

下跌
仓位 0%
空仓
泥沙俱下,不做
反弹
仓位 30%
买旧主线反弹
快进快出,纪律止损
震荡
仓位 15~30%
超跌反弹高抛低吸
一般情况
方向切换中
仓位 ≤10%
买抗跌(观察候选)
角色翻转+新起手 或 旧主线崩
见底新行情
仓位 80%
买领涨(新方向龙头)
连跌+共振+见底分+新面孔

⑤ 四层风控 — run_risk_control()

独立于决策树,每层有硬约束阈值。各层取最小值作为最终仓位上限。 风控结果写入 decision_log.jsonl 用于复盘纠偏。

🟢 L1 个股层
ST/*ST排除 · 单票上限15%
min_daily_volume_ratio: 0.3
🟡 L2 行业层
单行业总暴露上限30%预警
板块→行业映射表自动匹配
🩷 L3 组合层
大盘跌→降仓系数
70%板块下跌→缩仓
max_daily_drawdown: 3%
🔴 L4 极端层
大盘-5%+ → 强制5%仓位
大盘-4%+ → 强制10%
大盘-3%+ → 强制30%
broad_selloff_ratio: 0.8

⑥ 输出结构(pipeline.json + decision_log.jsonl)

📊 pipeline.json
• date / phase / strategy
• target_sectors(买入候选池)
• exclusion_list(排除池)
• risk_control(各级风控结果)
• final_position_cap(最终上限)
• ultra_short_ops / timing / ...
📝 decision_log.jsonl
• date / ts / source
• phase / thresholds_used(决策节点阈值)
• candidates(评分明细)
• exclusion_list(为什么排除)
• risk_alerts(触发了哪些风控)
• index_chg(大盘涨跌幅)
→ 纠偏时从decision_log查哪个节点错了
⛔ 排除池示例
• *ST卓然 → ST排除
• 元件(-8.48%) → 技术排除
• 半导体 → 旧主线方向排除
• 证券 → 行业暴露超限

⑦ 纠偏闭环

daily review
review_previous_predictions() 每日自动对比上一交易日预测 vs 实际。
calibrate.py 校准概率表(需30-50交易日数据)。
纠偏路径
结果不对→读decision_log→找决策节点:
▸ 阶段错了→调tension_drop/bottom_min
▸ 周期层不对→调role_shift_min/new_starter_min
▸ 风控太松→调risk_config.json
▸ 概率不准→calibrate.py --apply