📖 功能使用说明

股票量化分析系统 · 全部功能与使用方法总览

🎯 评分引擎体系(V0-V6 + CapFlow)

系统内置 6+1 个独立评分引擎,各引擎视角互补、互不依赖,统一通过 get_scorer('slug') 调用。

引擎Slug定位核心逻辑典型用途
V0v0空评分恒返回 0 分,仅配合买入过滤器链纯 filter 策略回测
V1/V1Pv1 / v1p经典评分原版趋势+量价综合评分历史基准对比
V2v2新评分新一代综合评分(含资金流)对比验证
V3v3回调拉升引擎低点→拉升→回调到位(站上 MA5)→再拉升,100 分制左侧买点捕捉(详见下节)
V4v4底部聪明位置/趋势/量价/风险 四维 25 分制 + 加减分,找"跌透"的股票左侧抄底选股
V5v5主升追涨量比>1.5+方向>0.7+连涨,找"正在涨"的股票右侧追涨确认
V6v6涨停蓄势涨停准备度评分(phase 四阶段:底部建仓/蓄势洗盘/主升加速/高位出货)涨停捕获
CapFlowcapflow资金活力资金流辅助评分资金面确认

📈 V3 回调拉升引擎(重点功能)

形态识别框架(三阶段状态机)

完整形态低点确认 → 拉升(4-12% 最优)→ 回调(先破 MA5 再站回)→ READY 买入点 → 突破前高

快速反转:低点后 1-3 天内直接站回 MA5(无完整回调段),放量站回=资金抢筹

跌后站回:40 日内存在低点 + 当前收盘站上 MA5 + 低点后曾破 MA5,作为兜底识别

100 分制评分构成
维度分值规则
拉升质量0-254-12% → 25;2-4% / 12-18% → 18;1-2% → 12;18-25% → 10;>25% → 18/12
回调质量0-252-5 日 → 25;6-8 日 → 20;0-1 日 → 15;9-12 日 → 12;深度 >20% 归零
结构质量0-25低点抬高 +10、多头排列 +8、浅回调 +7
量能质量0-25回调段缩量(<1.1 倍拉升段)→ 15;到位日量能 0.5-2.0 → 10;快速反转 vr5≥0.5 → 20
加分项≤26拉升不破 MA5 +8、回调 2-5 日 +5、低点抬高 +5、洗盘型 +5、量价收敛 +5、有效站上 MA5 +5、低位区 +6、上升通道 +2~3、大盘弱被动回调 +2~6、反弹质量 ≥4 条件 +8
减分项≤40回调段深跌 -12、连续阴跌 -15、放量 ≥2.5x -8、高位位置 -10~-15、波段涨幅 >50% -15、上影线 -5~-8、高开收阴 -5
波段类型标签
  • 反弹企稳型(下跌后企稳):跌深后站回,全池后验 +1.98% 最佳
  • 回调到位型:上升中回调到位,后验 +0.04% 平庸需谨慎
  • 突破确认型(超前高):站回且超前高,后验 +2.24%
信号分档

≥80 强信号 / 60-79 中信号 / <60 弱信号(弱信号不参与买入)

137 池 V3 全量扫描(日常用法)

对基准池(base_pool,137 只)逐股跑 V3 引擎,输出每只股票的评分、形态阶段、波段类型,形成当日可操作候选清单。

# 方式1:完整扫描脚本(输出到终端 + JSON)
python3 scripts/_tmp_scan_pool_137.py

# 方式2:分析单只股票(详细报告)
python3 scripts/analyze_stock.py 300124 --date 2026-08-07

# 方式3:调用引擎接口(Python)
from pipeline_engine.engines import get_scorer
scorer = get_scorer('v3')
result = scorer.score(closes, highs, lows, volumes, idx, dates=dates, code=code)
print(result.score, result.score_detail)

评分语义:READY(回调到位可买)→ 84 只;PUMP(拉升中)→ 15 只;FAIL(形态破坏)→ 38 只。≥80 分优先关注(2026-08-07 实测 68 只 ≥80,满分 16 只)。

🛡️ V4 底部聪明引擎(独立使用)

定位:找“跌透”的股票(左侧抄底)。位置/趋势/量价/风险四维基础分各 25,叠加 BUY_RULES 加减分,输出 0-100 分 + 多空判断。评分维度与 V5 互斥互补——V4 高分(深跌底部)通常 V5 低分。

评分档位含义
≥85 🏆 优秀 / ≥70 ✅ 良好跌透+缩量+资金进场,可左侧布局
55-69 👀 关注 / 40-54 📉 偏弱观察等待
<40 ❌ 回避位置高/趋势差,不参与

关键输出:verdict(合理买入/底部朦胧/追高信号)、趋势(短多长空/空头排列)、位置(深跌底部/底部)、支撑压力位列表、20 日最大回撤、OBV 分位、V6 蓄势状态。V4=100 只说明“跌透了”,需叠加 V3 READY(回调到位)或 V6 确认才构成买点。

# 137 池 V4 全量分析报告
python3 scripts/bench/v4_pool_137_report.py

# 指定池/日期/排序扫描(V3/V4/V5/V6 四引擎)
python3 scripts/scan_v345_pool.py --pool base_pool --date 2026-08-07 --top 50 --sort v4

# 单股 V4 完整分析(含支撑/压力/多空判断/报告)
python3 scripts/analyze_stock.py 300124
python3 scripts/analyze_stock.py 300124 --llm    # 启用 LLM 深度解读
python3 scripts/analyze_stock.py 300124 --json   # JSON 输出

实战用法:V4≥70 主筛 + V3≥60 确认 + V6≥60/V5≥40 加分;下跌期 V4 高分照样跌(回测 20 日均 -4.59%),必须配大盘环境(L1-L5)+ 分散 + 止损。

🔥 V5 主升追涨引擎(独立使用)

定位:找“正在涨”的股票(右侧追涨)。六维评分:趋势结构 30 + 量价确认 25 + 资金流向 20 + 主力洗盘 15 + 位置安全 10 + 风险扣分(一票否决)。

判定阈值含义
≥85 主升启动 / ≥70 拉升趋势多头排列+放量+资金双流入,右侧入场
≥55 趋势加强 / ≥40 温和上涨跟踪观察
25-39 横盘观望 / <25 下跌回避不参与(下跌回避=负期望)

核心信号:量比>1.5 + 方向比>0.7 + 连涨≥3 天;VFI/WVAD 双流入;风险一票否决(OBV 顶部背离 / WVAD 巨量流出 / 放量下跌)。V5 是稀缺维度(全市场 ≥60 仅 6%、≥80 仅 0.04%),作硬门槛会选不出股,建议作加分项或主升确认。

from pipeline_engine.engines import get_scorer
v5 = get_scorer('v5')
result = v5.score(cl, hi, lo, vo, idx)
print(result.score, result.score_detail)

实战用法:V5≥55 确认主升(V4 高分股 V5 必低——左侧已涨完);与 V6 组合(V5≥55 + V6 60-89)历史次日涨停率 3.17%(2.2x 基准);连板打板场景只打 V5 强势股。

⚡ V6 涨停蓄势引擎(独立使用)

定位:涨停准备度评分(不预测涨停,衡量“蓄势是否到位”)。四阶段生命周期检测 + 阶段特定评分,输出 limit_up_score 0-100 + phase + motive + verdict。

Phase名称评分侧重操作含义
1底部建仓期放量/OBV蓄能/形态(收集筹码)主力吸筹,回踩可跟
2蓄势洗盘期筹码锁/均线/形态(准备拉升)洗盘结束,主升概率大
3主升加速期均线加速/量能阶梯/动量持有为主
4高位出货期量能安全/位置安全只卖不买

已验证规律:V6 60-89 档次日涨停率 2.14-4.06%(1.5-2.9x 基准);V6≥90 是陷阱区(0% 涨停、次日均 -1.14%)——大涨次日/跌停日也会得满分;连续 2 日底部放量(阶段确认)是最强信号(10 日超额 +1.71pp/胜率 61%)。

# 全池 V6 扫描(随 update_daily 每日预缓存 v6_scores)
python3 scripts/scan_v345_pool.py --pool base_pool --sort v6 --top 30

# 单股 V6 详细(phase/motive/四组件)
python3 scripts/analyze_stock.py 300124 --json | jq '.limit_up'

# 涨停后连板规律分析(脚本化)
python3 scripts/bench/v6_logic_features.py
python3 scripts/bench/v6_combo_check.py

实战用法:V6 作确认层(不独立买入)——与 V4(跌透)组合(V4≥60+V6≥40)、与 V5(主升)组合(V5≥55+V6 60-89);顶格分 ≥90 反而回避。

🌍 L1-L5 宏观到微观五维分析

自上而下五层分析体系,每日收盘后自动生成(cron 16:50 北京),也可手动触发:

层级维度核心指标输出
L1国际宏观跨境 ETF(纳指/标普/日经/恒科/中概/德国)、黄金、汇率、美债0-100 分(外部环境)
L2国内宏观/情绪两融余额、涨跌家数、涨停/跌停、中美利差、LPR/MLF0-100 分(内部环境)
L3行业轮动行业 RPS、资金流入、板块融合信号(确认启动/潜伏/分歧/回避)行业清单+分数
L4市场结构情绪指数(vol/momentum/fund/value/risk 五维)、市场稳定性、宽度、高低切情绪带+仓位上限+动作
L5个股精选V3/V4/V5/V6 四引擎+基本面+量价异常个股候选清单

综合用法:L1+L2 定仓位方向(<40 轻仓/40-60 中性/>60 积极)、L3 选板块主线、L4 定节奏(偏热减仓/偏冷低吸)、L5 落个股。历史上 L1=62/L2=50 → 综合 56 中性(仓位建议 50-60%);情绪指数 75.1 偏热 → cap_limit 10%(只卖不买)。

# 手动触发 L3 行业轮动 + L4 情绪/稳定性(收盘总结数据源)
python3 scripts/daily_close_collect.py

# 行业 RPS + 板块轮动融合分析
python3 -c "from pipeline_engine.analysis.sector.pipeline_entry import run_daily_review; r = run_daily_review('2026-08-07'); print(r.fusion_report)"

# 情绪指数(五维权重 vol0.15/momentum0.35/fund0.10/value0.20/risk0.20)
python3 -c "from pipeline_engine.analysis.framework.layers.sentiment import SentimentIndex; print(SentimentIndex('2026-08-07').compute())"

# 市场稳定性(阶段判定/分数/策略指引)
python3 -c "from pipeline_engine.market_stability import analyze_market_stability; print(analyze_market_stability('2026-08-07'))"

报告归档:Stock/plan/2026-08-01-L1L2宏观报告.md、2026-08-01-L3L4行业与市场结构报告.md、2026-08-02-L1L4五维分析.md(含原始分/分位/操作含义)。

⚠️ 量价异常检测器(持仓风控)

十种经典量价异常自动识别,用于持仓管理/防回撤(非择时工具)。验证结论:信号未来 1-5 日预测力弱,价值在“应对”而非“预测”——职业交易员与散户在风控层面的核心分水岭。

信号识别条件预案优先级
放量下跌破位放量跌破 MA20/前低立即清仓(不等 -8%)🔴最高
天量长上影高位量比>2 + 上影>实体2倍尾盘减 50%(冲高回落出货)🔴高
高位吊颈线高位阴线 + 下影>实体2倍 + 上影极短次日低开即清仓;高开无法站稳今开则减50%(高开低走尾盘拉回诱多)🔴高
放量滞涨量>1.5× + 涨幅<2% 连续2日+行业RPS<50 → 提前清仓🟡中高
连续三日不创新高MA20上方 + 3日最高<前5日最高 + 量比<1.2减仓50%,剩余止损收紧至-5%;5日仍不创新高清仓🟡中
连续缩量阴跌3日连跌 + 每日量<前5均量×0.7 + 累计-3%~-8%减仓50%(不等-8%),剩余止损收紧至-5%🟡中
顶背离价创20日新高 + 量<上次新高量×0.9高位减 30%(上涨动能衰竭)🔴高
顶部三鸦高位(pos60≥0.7) + 连续3阴线逐步下跌 + 第三根放量出现即减仓50%,剩余止损收紧至-5%(后验20日胜率仅35%)🟡中高
缩量上涨量<0.8× 连续2日控盘锁仓,持有🟢低
底背离价创20日新低 + 量<前5均量×0.6 或连续3日缩量不加仓、不止损,给予更多容忍度(抛压枯竭);大盘企稳可小幅加仓(≤30%仓位)🟢正面
地量十字星量<0.5× + 十字星等变盘🟢低
AH股溢价极端A+H上市 + 溢价率>历史均值+2σ不直接卖出,降低加仓优先级🔵参考
换手暴增收阴(v2.39.1)当日换手≥20日均×3 + 收阴<-1%(当日已报放量下跌破位时不重复)高位/中位减仓30-50%,止损收紧至-5%(筹码松动出货);低位先观察不追跌🔴高
换手堆积滞涨(v2.39.1)近5日均换手≥20日均×1.5 + 5日涨幅<2% + 非低位高位派发区特征:止盈或减仓50%,跌破5日线清仓🟡中高
天量换手(v2.39.1)当日换手≥20%(绝对极端,妖股/末日轮)高位坚决减仓;低/中位过热投机提示,追高极危险🔴高

信号叠加处理:同时触发多个信号按优先级最高的执行(放量下跌破位 > 天量长上影 > 高位吊颈线 > 顶背离 > 放量滞涨 > 不创新高/缩量阴跌 > 缩量上涨/地量;底背离为正面信号不参与卖出),避免重复操作。高位吊颈线是天量长上影的互补信号(一个抓上影一个抓下影);连续缩量阴跌是放量下跌破位的互补信号(一个防流动性枯竭一个防恐慌抛售)。

背离双向说明(老板 2026-08-09 完善):顶背离=价创新高量不配合→上涨动能衰竭→减仓;底背离=价创新低量萎缩→下跌动能衰竭→抛压枯竭,是持仓中的“好消息”信号。实战用法:①持仓浮亏+底背离→不提前止损,等-8%硬止损触发再走;②底背离+大盘企稳→双底确认,可小幅加仓(≤单票仓位30%);③候选池+底背离→提高买入优先级(抛压枯竭+价格低位双重信号,符合左侧买入逻辑)。

信号评估说明(老板 2026-08-09 补充 11 信号):盘口类 5 信号(心电图分时/秒挂秒撤/对倒放量/钓鱼走势/尾盘偷拉)需分时与 Level-2 盘口数据,当前日线体系无法回测验证,待接入实时行情源后落地;量化环境类 2 信号(量化席位龙虎榜/融券余额占比)需东财龙虎榜与个股融券数据(当前被墙/仅有总量),待数据源恢复;K线形态类 3 信号经 137 池全历史后验:顶部三鸦(高位放量)20日胜率仅 35% 有辨识度已落地;岛型反转(n=938 +2.35%/51% 胜率)与钻石形态(n=2180 +0.65%/48%)因 A 股缺口回补概率高、无卖出辨识度,不落地避免误报。

# 全池扫描
python3 scripts/scan_volume_anomaly.py

# 指定持仓 + 浮盈(输出与盈利联动预案)
python3 scripts/scan_volume_anomaly.py --codes sh600438 sh600893 sz002326 sz300769 sz300792 --profit 5,-3,12,8,10

# 任意日期
python3 scripts/scan_volume_anomaly.py --date 2026-08-07

也可通过网页:个股详情页(/stock/<code>)自动展示十信号检测结果。

💪 波谷逆势强势选股(原强势股扫描)

信号(回测验证 2026-09-02,老板实盘逻辑):波谷确认窗口内(最近波谷日~+2交易日)的普跌日(上证当日跌),选当日逆势强势股——今涨>0 且跑赢上证 2pp+ 且收阳。强度分层:当日涨幅>5% = 🔥极强(回测 5 日浮盈机会 +10.16% vs 全市场 +6.30%)。非窗口/非普跌日返回空。

过滤同波谷选股:L2 双流入(WVAD>0 且 VFI>0,限定强势池)→ L3 V4≥90(verdict 合理买入/底部朦胧)→ L3.5 净额≥500万 → L4 RPS120 top10。实盘验证:2026-08-24 扫描命中电投能源/山煤国际(当日实盘建仓股)。

回测(2023-03~2026-08,117 信号日):20日内出现浮盈≥5% 概率 71.1% vs 全市场 65.7%;≥10% 概率 47.7% vs 41.1%;波谷窗口比非窗口 5-10 日浮盈高 +1.1~1.2pp。详见 plan/2026-09-03-波谷逆势强势股回测验证.md。

python3 scripts/scan_strength.py --date 2026-08-24 --top 10
python3 scripts/scan_strength.py --json

🔀 三层联动选股流水线(板块→龙头→买点)

链路:ETF 板块确认(资金流/热度)→ 板块内强势龙头(重仓股+弹性≥1.2+V5 评分)→ V3 回调买点(READY 信号)+ V4 质量验证。输出三档:🎯首选(主线+V3 READY+V4≥60)/ 次选 / 观察。

# 一阶:主线扫描(70 只行业 ETF,20日涨幅前10%+多头排列+资金占比)
python3 scripts/bench/sector_mainline_scan.py

# 二阶:龙头池(天天基金 F10 重仓股 + 弹性 + V5/V4)
python3 scripts/bench/sector_leaders.py

# 三阶:回踩买点(MA20 偏离<1% + 缩量 + 抗跌)
python3 scripts/bench/sector_pullback.py

# 一键三阶漏斗(板块主线→龙头→买点)
python3 scripts/bench/funnel_pipeline.py --top-mainline 5 --top-leaders 10 --min-market-cap 100

# 板块→成分股→逆势强势+V4/V5 双确认(收盘总结内嵌)
python3 scripts/scan_sector_pipeline.py --sectors 黄金,煤炭,有色 --top 10

🚀 涨停连板规律(打板参考)

基于全市场历史涨停样本(2023 起)验证的规律:

  • 连板条件概率:1→2板 17.8%、2→3板 33.0%、3→4板 46.6%、4→5板 48.0%、5→6板 52.1%(2 板是分水岭,越强越强)
  • 最优首板:一字板二板率 48.7%、缩量板 27.6%、创新高板 19.7%;断板必走(断板日 19.8% 跌停)
  • 次日高开分水岭:高开>5% 二板率 49.3%;低开>2% 只有 3.4%
  • V6 结合:涨停当日 V6 60-79 二板率最高 16.9%,V6≥80 反降到 12.5%(顶格陷阱)
  • 打板胜率:首板收盘买入持 5 日平均 +1.47% 但中位 -0.74%、胜率 46.8%——少数大赢家游戏,必须严格筛选+断板止损
python3 scripts/bench/v6_logic_features.py    # 涨停前兆特征分析
python3 scripts/bench/v6_precision_check.py  # V6 分档涨停率回测
python3 scripts/bench/v6_combo_check.py      # V4/V5/V6 组合验证

涨停梯队页 + 板块带头作用(v2.44.0/v2.45.0,2026-09-08 研究)/limitup 页面每日展示涨停梯队(连板分层:3板+/2连板/间隔板/首板)+ 行业聚合(涨停潮→板块启动)+ 低位涨停观察(60日位<40%,A3b 验证 T+10 +10.94%/胜率 80% 黄金信号)+ 板块启动预警。

  • 带头作用结论:MA3 上行段 + 板块 2 连板龙头 → 板块 T+10 超额 +1.15pp(领先信号);首板无信息、3板情绪顶(T+1 -1.72pp)、间隔板(N字)无关、下行段全部无效
  • 黄金信号:上行段 + 60日位<40% + 涨停 → 个股 T+10 +10.94%/胜率 80%;高位涨停 +0.42%、3板以上 -13.24%(绞肉机不碰)
  • 每日更新:update_daily.py limitup 子命令(已入 all 九合一);观察池 auto-add 已接入低位涨停源(auto-低位涨停,仅上行段)
python3 scripts/scan_limitup_pool.py --backfill   # 全量回填
python3 scripts/update_daily.py limitup           # 每日增量
python3 scripts/watch_pool.py auto-add --dry      # 自动入池试跑(含低位涨停源)

📊 涨跌家数仪表(v2.46.0,2026-09-08 研究)/breadth 页面展示全市场每日涨跌家数 (标准口径:收盘 vs 昨收)——上涨占比曲线 + 中位涨跌 + 背离信号点。

  • 环境指标:普跌日(上涨<20%)95% 发生在 MA3 下行段;breadth 是 MA3 的实时细粒度补充
  • 弱动量:普涨≥80% 后 T+10 +1.23%/胜率 68%,但普涨次日易分化(勿开盘追);连续普跌 3+ 日后 T+5 反弹胜率 60%+(冰点不割肉)
  • 🔥 背离信号:护盘型背离(上证涨>0.05% 但普跌<40%)= 减仓预警(后 T+3 胜率仅 29%);小盘活跃背离(上证跌但普涨>60%)= 布局信号(T+3 胜率 62%)
  • 落地:风险仪表盘已含"家数背离"信号(🔴护盘/🟢活跃);watch_pool auto-add 均衡日(50-65%)自动跳过(四星候选最差环境,胜率 31%)
python3 scripts/breadth_daily.py --backfill   # 全量回填(2023-11起, 一次性)
python3 scripts/breadth_daily.py              # 每日增量(update_daily all 已含? 需手工挂)
python3 scripts/risk_dashboard.py [date]      # 风险仪表盘(含家数背离信号)

⛏️ M1 主力操盘状态机(v2.47.0,2026-09-09 研究): 基于"股价非随机、主力操盘有规律"假设的量价预测引擎,环境自动切换双模式: 上证 MA3 上行段 → 模式A「试盘收复」(主力放量冲高试盘留长上影 → 5日内放量突破10日高 = 起爆点,T+10 +3.52%/胜57.9%);下行/震荡段 → 模式B「低位吸筹尾声」(r60<25 + MFI>50 + WVAD20日斜率>0 + 量价相关<0.25 + 缩量企稳不破5日低 = 反弹前夜,T+10 +1.81%/胜56.5%,分半验证最抗环境)。

python3 scripts/scan_m1.py --date 2026-09-08 --pool watch   # 观察池扫描
python3 scripts/scan_m1.py --date 2026-09-08                 # 全市场扫描(3.1s)

🏢 基本面分析(FundamentalAnalyzer)

独立于技术评分的财务面分析器,随 analyze_stock 输出(fundamentals 字段):市值/PE/PB/ROE/营收等。数据源:腾讯批量行情(市值/PE)+ 东财 F10(ROE,注意取年报 ROEJQ 非单季)+ 天天基金 F10(ETF 重仓股)。

# 基本面补全(stock_list 表 market_cap/pe_ttm/roe_ttm)
python3 scripts/bench/backfill_fundamentals.py

# 绩优股池构建(流通市值 50-200亿 + 股价 5-40 + ROE≥8% 年报 + PE 正)
python3 scripts/build_guozi_pool.py          # 国资池(1221 只,含实控人)
# 全 A 股清单/实控人采集
python3 scripts/fetch_all_a_share.py
python3 scripts/fetch_controllers_extended.py

国资池:benchmark/guozi_pool.py(1221 只:央企 402 + 地方国资 819),含实控人字段(国务院国资委 162/山东 30/深圳 26...),可通过 pool_slug=guozi_pool 直接用于扫描/回测。

📐 波段序列分析(周期波段框架)

以 V3 形态为单元构建波段序列,做全局一致性筛选(一波比一波高/低点抬高/突破前峰)。

from pipeline_engine.analysis.cycle.band_sequence import collect_bands, band_consistency
# collect_bands(wd, dates) → 波段列表(low/hi/cb 三点)
# band_consistency(bands) → 相邻波段谷峰比较(valley_up/peak_up)

已验证结论:波段一致性作为独立筛选层区分度有限(下降通道后 20 日反而 +1.58% 优于上升通道 +0.56%),V3 本质是逆势抄底引擎——通道应作环境标签而非加减分;反弹企稳型波段 +1.98% > 突破确认型 +1.15% > 回调到位型 +0.04%。

💰 交易系统 v2.5(保本与卖出纪律)

环节规则
选股双分支结构(右侧追确认 / 左侧潜伏,二选一)
🅰 右侧分支(原链):V4≥80 + WVAD>0(资金流入,优选>5万)+ vr20<1.3(平量未拉升,优选 0.9~1.3 温和放量)+ 价格<45 + 站上MA5(08-11 完整链回测:231 笔命中、3日最高 +3.57%、胜率 96.5%、T+3 收盘转正 +0.09%;WVAD>5万子集 3日最高 +3.87%/胜率 97.6%,vr20 0.9~1.3 子集 +4.10%/胜率 98.8%)
🅱 左侧分支(08-12 新增):价格≤15 + vr20<1.0(缩量)+ MA20∈[-2%,0](刚回调到位)+ risk=回调(08-12 回测:184 笔命中、3日均 +0.60%、胜率 55.4%,5日 +0.89%/52%;双分支合并 706 信号、3日 +0.49%/52%、5日 +0.72%/52%,重叠样本反而最差 → 两分支互补不可混用,重叠时优先右侧)
买入V3 READY 回调到位日 + 支撑位挂单(-1%~-2%);新增最优买入价挂单:当日[最低,开盘]区间内 90 日 OHLC 高频价,次日回踩挂单接筹(半年命中率 66.3%,命中后 86% 概率 3 日内盈利,命中后 3 日平均 +3.49%)
止损-8% 硬止损(回测最大回撤 -60%→-17.6%,回撤调整收益 9.86 最优)
止盈15% 卖 30% / 20% 卖 50% / 剩余破 MA20 跟随(让利润奔跑)
组合保护组合浮盈>8% 且大盘破 MA20 → 整体清仓(保本线);中位数连续 3 日 ≤0 或上涨占比 <45% → 降仓
异常优先放量下跌破位 > 天量滞涨 > RPS<50 减半 > 常规规则

回测锚点:V4≥100 组合(H 完整系统)盈利概率 65.4%、均收益 +3.33%;-8% 止损回撤调整收益 9.86 全场最优;MA20 下方大盘择时反而更好(20日均 +1.33% vs +0.02%)。

08-11 新增验证:完整条件链(V4≥80 + WVAD>0 + vr20<1.3 + 价格<45 + 站上MA5)回测(137 池 120 交易日,231 笔命中)——最优买入价挂单 + 1.5% 止盈 5 日有效 → 3日最高 +3.57%、胜率 96.5%、T+3 收盘转正;对比 V4≥80 全部命中(1393 笔 T+3 -0.40%),完整链核心价值在"少亏"(T+3 转正)而非多赚。分层发现:WVAD>5万(资金强流入)与 vr20 0.9~1.3(温和放量)为最优子集;卖出网格回测证明止损在资金流入股上有害(先跌破再反弹),短周期策略不设止损、以 T+5 收盘为兜底。

08-12 新增验证:20 笔实盘复盘发现 3 只被链拦下的赢家(通威 +9.19%、龙盛 +7.19%、荣盛 +6.50%)共性 = 低价(11-12元) + 缩量(vr20<1.0) + MA20 附近 + risk=回调 + 周期板块,且 WVAD 多为负(资金流出日反而是吸筹机会)。回测(137池 120日)确认:左分支(价≤15+vr20<1.0+MA20∈[-2%,0]+risk=回调)3日 +0.60%/胜率 55.4%,单分支强于原链(+0.42%/50%);双分支并集 706 信号 3日 +0.49%/52% 不稀释反增强。重叠 27 样本最差(-0.21%)→ 两分支逻辑互补,不可叠加使用。

🎭 情绪指数与市场稳定性

SentimentIndex(五维权重:成交量 0.15/动量 0.35/资金 0.10/估值 0.20/风险 0.20):输出 sentiment 0-100 + band(偏热/中性/偏冷)+ cap_limit(仓位上限)+ action(如“只卖不买,高仓位减仓”)。历史值:75.1 偏热 → cap 10%;78.7 偏热。

MarketStability:phase(熊市/结构性行情/牛市)+ stability_score + 五维度(趋势一致/宽度/轮动/量能/波动)+ strategy_guide。历史:80.6 结构性行情 → cap 50%。两套 cap_limit 并存需区分(情绪 10 vs 稳定性 50)。

# 网页
/sentiment   # 情绪页

# 代码
from pipeline_engine.analysis.framework.layers.sentiment import SentimentIndex
from pipeline_engine.market_stability import analyze_market_stability
print(SentimentIndex('2026-08-07').compute())
print(analyze_market_stability('2026-08-07'))

🌗 牛熊六阶段判定器(大盘季节定位)

MarketCycle(方案B 四维锚定):牛熊阶段 = 情绪(温度)× 趋势(方向)× 估值(水位)× 持续性(确认),输出六阶段 + 震荡。情绪 8 档是“温度计”(快变量),六阶段是“季节”(慢变量)——中间档位无法直接映射,需四维联合判定。

阶段市场心理情绪趋势仓位上限操作
牛一 怀疑期无人相信上涨,反弹即卖低(≤40)80%左侧分批建仓
牛二 乐观期赚钱效应扩散中(40-75)100%主升核心,正常执行 V3-V6
牛三 狂热期全民炒股,利好满天飞高(>75)50%只卖不买,分批止盈
熊一 失望期预期利润消失,反弹即卖高(>75)20%空仓等待,现金为王
熊二 恐慌期恐慌抛售,割肉潮中(40-75)10%低仓防守 + 60日左侧抄底窗口
熊三 绝望期无人谈论股票,销户离场低(≤40)80%逐步加仓至 80%
震荡 过渡态年线缠绕,方向不明任意60%精选个股,等方向确认

估值修正:牛三+估值高位 → 触发 bull3_top(牛三卖出极端信号);熊三+估值低位 → 触发 bear3_bottom(熊三买入极端信号)。持续性:连续 2 周同阶段才切换(防跳变)。

当前判定(2026-08-10)牛三(狂热期)——情绪 78.7 偏热 + 趋势向上 + 估值中位(未触发 bull3_top)→ 仓位上限 50%,只卖不买分批止盈。回测佐证(2023-2026 共 185 周):牛二 60日超额 +0.81% 胜率71%(最强多头)/ 牛三 -0.04% 动能衰减 / 震荡 -3.27% 胜率29%(最强空头)/ 熊二 +3.57%(A股恐慌抄底窗口);调参验证:周频调仓下所有调参方案跑输原版,仓位映射保持原值。

# 代码
from pipeline_engine.market_cycle import MarketCycle
print(MarketCycle().compute())   # 返回 stage/cap_limit/action/confidence 等

# 日报自动包含(daily_close_collect L4_cycle 字段)

🌊 上证波段分析(多算法 · 多档位 · 波段列表,v2.27.2)

页面 🌊波段(导航栏):上证 K 线 + 可切换的峰谷算法叠加 + 计算出的波段列表(起止日期/方向/幅度/天数/峰谷指数值),联动显示 MarketRhythm 市场节奏与 MarketCycle 牛熊阶段。

四种维度的自由组合

维度选项说明
算法Zigzag / 滚动窗口极值 / 双算法复核Zigzag(reversal_pct 翻转,过滤杂音勾勒主趋势);滚动窗口(局部峰谷快响应);双算法复核(±2天容差共识,金色标记)
比例(Zigzag)1% / 2% / 3% / 5% / 8% / 10%1-2%≈周级波段、3%≈月度、5% 中级别、8-10% 主升浪/大方向
窗口(滚动)3日 / 5日 / 10日 / 20日3日≈周级、5日默认、10日≈双周、20日≈月级
平滑无 / 中值滤波 / EMA平滑EMA 降噪最强(1年 28→19 极值,-32% 假极值)
时间档位1月/2月/3月/6月/1年/2年/3年/全部支持 K 线拖拽缩放(滚轮+底部滑条)

波段列表:直接列出计算出的波段(范围/幅度/时间/峰谷指数值),随算法/比例/窗口/平滑联动,可按方向筛选(全部/上涨/下跌)。

# 接口
GET /api/market/waves/zigzag?code=sh000001&range=1y&pct=0.05&method=zigzag&window=5&smooth=none
#   → {line: [{x,y}...全历史折线], peaks/troughs: 窗口内峰谷, waves: [最近12个波段{start_date,end_date,direction,pct,days,start_close,end_close}],
#      consensus: 双算法共识点(±2天容差), metrics: {wave_pos_zz, interval_zz, depth_zz, wave_low, wave_high, ...}}
GET /api/market/waves/kline?range=1y   # 上证 OHLC(含 all=1990 起全量 8703 天)
GET /api/market/waves/context          # 当日 MarketRhythm + MarketCycle 联动
GET /api/market/waves/forecast         # 🔮 下一个波谷预测(日期区间+价格区域+幅度区间)

# V6 节律三指标(2026-08-14 已接入 V6 三维节律 wave 维度 40 分)
from pipeline_engine.market_waves import wave_position, wave_interval, pullback_depth
#   位置 <30% +15 / >80% -5(Zigzag 波段内);间隔 <20天 +5 / >60天 -5;深度 <0.382 +5 / >0.618 -5

# 🔮 波谷预测(2026-08-15):峰后回调中 → 预测下一谷;谷后反弹中 → 输出反弹进度
from pipeline_engine.market_waves import forecast_next_trough, forecast_next_trough_extrema
#   forecast_next_trough(dates, closes, highs, lows, peak_idx=None, days_elapsed=None, cur_close=None)
#   forecast_next_trough_extrema(dates, closes, highs, lows, window=5, smooth='ema', ...)  # 滚动窗口版
#   → {stage, peak_date, peak_close, days_elapsed, cur_dd_pct, trough_date_range,
#      trough_price_range, drawdown_pct_range, n_samples, confidence}
#   回测命中率(2019~2026 无未来函数):
#   zigzag 版:日期 52.6% / 价格 63.2% / 双命中 31.6%
#   滚动窗口版(window=5,ema):日期 36.8% / 价格 89.7% / 双命中 32.4%(信号密度更高,价格命中突出)

🌊 市场节奏引擎 MarketRhythm(v2.26.0)

识别市场"有主线/无主线"的日内节奏,回答"今天该追板块还是只做独立个股"。与牛熊六阶段互补:阶段看大周期季节,节奏看当日状态。

状态判定条件选股建议
🔥 有主线主线板块连续≥3天领涨 + 强度≥2.5pp追板块龙头
🔀 轮动市主线≤2天 + 板块发散度≥1.8(每天换主线)只做独立个股,不追板块
📈 普涨日个股上涨广度≥85%防追高,持有为主
📉 普跌日个股上涨广度≤20%谨慎,等企稳;只做低位形态埋伏
⚖️ 平衡市其余常规 V4/V5 选股

节奏分(0-100):广度 40% + 主线强度 25% + 主线持续 20% + 有序度(发散反向)15%。

拐点信号:分数从高位(>75)单日降 >25 或 3 日降 >35 = 顶部预警,但只配牛熊过滤(震荡/熊市)才有效,牛市会假信号。

核心洞察:"普涨无主线"是假健康——广度极高但主线强度崩塌(如 2024-09-30 广度 97.7% 但强度 0.06)= 乱涨顶部信号。历史验证:高分(>80)稀缺(773 天仅 37 天),集中在行情启动期。

# 命令行
python3 -c "from pipeline_engine.market_rhythm import MarketRhythm; print(MarketRhythm().compute('2026-08-13'))"

# 代码引用
from pipeline_engine.market_rhythm import MarketRhythm
r = MarketRhythm().compute()   # 返回 state/rhythm_score/drop_signal/advice 等

🚦 系统性风险仪表盘 risk_dashboard(v2.26.0)

聚合 8 大信号做红黄绿三色预警 + 多数表决,输出当日系统性风险等级(低/中/中高/高)。

信号来源
涨跌广度全市场个股上涨占比
情绪指数SentimentIndex(五维加权)
市场稳定性market_stability(五维)
牛熊六阶段MarketCycle 四维锚定
市场真面目5 大观察指标
板块引擎 L4板块轮动 risk_off
指数分析 L2指数量化评分
市场节奏MarketRhythm 状态

表决规则:红≥3=高风险;红=2=中高风险;红=1=中风险;红=0 且黄≥3=中风险;否则低风险。

实证:2026-08-13 普跌日输出中高风险(广度 19%🔴+指数分析🔴+情绪🟡+节奏普跌日🔴)。择时回测结论:A 股大盘 20 日择时基本不可行(超卖信号预示反弹而非下跌),风险等级定位为状态展示+规则预警,不用于方向预测。

python3 scripts/risk_dashboard.py   # 输出 8 信号 + 表决结果 + 仓位建议

⚠️ 风险分析页(六维风险分档 → 仓位许可,v2.49.4;V 型上限 v2.52.0)

页面 /risk(API GET /api/risk?date=&days=)。 每天把全市场量能/情绪/广度/结构/波动/资金六维原始指标归一化为一个 0–100 的风险分, 分 6 档(L0 极低 … L5 极高)并映射一个建议仓位上限,同时给出「今天能不能开新仓」的策略许可。

风险档分数区间仓位上限操作
L0 极低< 23.8100%全面开放
L1 低23.8–29.180%正常操作
L2 中29.1–35.160%均衡日禁 auto_add
L3 中高35.1–41.240%只做底部,减仓为主
L4 高41.2–48.920%只减不加
L5 极高≥ 48.930%V 型反弹:可小仓左侧试底;auto_add 仍禁

仓位上限为 V 型(v2.52.0):L0–L4 递减 100/80/60/40/20%,L5 反弹至 30%(老板 2026-09-13“L5 上限已到风险最大,接近反转可提高上限”)。依据:回测 L5(n=119 天)未来 T+20 上证均 +1.68%/胜率 62.4%(全档最高),但未来 20 日回撤≥5% 概率也最高(24.8%)——属高风险高弹性杠铃,故上限仍远低于 L0,须控总仓。cap 提高时“可开新仓”许可同步放开(L5 allow_new=True),否则 cap 形同虚设;L4 仍只减不加。详见 plan/2026-09-13-L5仓位上限调整依据.md。

硬闸门:护盘型背离(指数涨但普跌<40%)→ 禁新开仓;均衡广度 50–65% → 禁 auto_add。

页面元素:顶部大卡(风险分/档位徽章/仓位上限/「只减不加 vs 可开新仓」结论/硬闸门);六维风险条形图; ECharts 风险分走势(按档位分色带,叠加上证收盘,窗口 60/120/250/全部);最近 20 日原始指标明细表;分档统计参考表("这个分数历史上对应什么回撤概率");支持 ?date= 回看历史某日。

⚠️ 诚实标注:风险分测的是下行尾部风险 + 波动放大不预测涨跌方向——回测中风险分与「未来 20 日回撤 ≥5% 的概率」单调正相关(L0 13.7% → L5 24.8%), 但与未来收益方向无稳定单调关系(呈 U 型,L2 中段最差、L5 极端恐慌反弹最强)。高风险 ≠ 必跌。仓位上限因而是 V 型(L5 10%→30%),为高弹性杠铃而非稳态结论:样本仅 119 天,若极端恐慌后不反弹(如系统性风险/政策转向)则高位成接盘,务必控总仓。

python3 scripts/risk_daily.py            # 每日刷新(唯一写入入口)\npython3 scripts/risk_daily.py --backfill # 全量回填

📰 事件结构占比页(每日财经事件结构化 → 结构曲线,v2.51.0)

页面 /events(API GET /api/events?date=&window=&method=)。 把每天 07:00 采集的财经大事件结构化落库market_events 表),并画出 类型结构占比曲线(滚动窗口堆叠)、多空净分曲线事件密度,支持按日期回看。

维度取值说明
type(9 类互斥)货币政策 / 经济数据 / 地缘政治 / 产业政策 / 大宗商品 / 海外市场 / 公司事件 / 资金情绪 / 其他按优先级顺序判定(货币 > 数据 > 地缘 > 政策 > 大宗 > 海外 > 公司 > 资金 > 其他)
region国内 / 海外按地域关键词判定
scope大盘 / 板块 / 个股影响范围
direction多 / 空 / 中性口径锁死 = 对 A 股大盘的影响方向(不是事件本身好坏);多空并存或判不了 → 中性
strength1 弱 / 2 中 / 3 强事件强度

双轨分类:占比曲线默认只统计规则轨(关键词匹配,零依赖、可复现、可回溯); LLM 仅兜底规则未命中事件,单列 classify_method='llm' 并单独出对照曲线,不混入主曲线。

⚠️ 诚实标注:多空净分 = (多 − 空)/(多 + 空),是辅助线且含标注偏好,不是独立交易信号; 滚动窗口按「有事件的日期序列」滑动(非自然日);事件日 < 20 时页面/报告必须明示「不足以研判趋势」,不得当作结论。

python3 scripts/events_daily.py             # 每日:分类 + 入库 + 出报告(唯一每日入口)
python3 scripts/events_backfill.py          # 早报 md 事件回填(唯一回填入口)
python3 scripts/update_daily.py events      # 接入 all 链(热度/涨停之后)

输出:Obsidian Stock/日报/事件结构占比.md(表格 + 文字读数)与同名 .json;抽检清单 Stock/日报/事件分类抽检.md

🧬 行为聚类选股(行为好簇 + V4,v2.26.1)

不按行业、按行为特征(近 5/10/20/60 日涨跌、量比、位置、形态等 16 维)把全市场 4700+ 股票 KMeans 聚成 10 簇,用未来 20 日收益验证簇的好坏——回答"谁在被吸筹、谁在被派发"。

核心结论(跨 6 个牛熊基准日验证)

  • 好簇=深跌低位缩量(簇0 深跌放量反弹 / 簇4 低位缩量横盘):未来 20 日 +6%~+66%,胜率 74-100%
  • 坏簇=高位放量追涨(簇5/9)、持续阴跌(簇1/8):未来 20 日 -5%~-61%,胜率 0-23%
  • 💡 反直觉真相:主力高位放量派发、深跌缩量吸筹;追涨形态平均亏 20%,被抛弃形态平均涨 15%
  • 🔬 行为板块 ≠ 行业板块(簇内 Gini 0.96+ 高度分散),同行业里高位股与低位股行为完全不同

选股方法:全市场聚类 → 好簇成员 → V4 评分 → V4≥80 + WVAD>0(资金流入)→ 去 ST → 候选。2026-08-13 实测:好簇成员 893 只 → 8 只候选(恒星科技/法拉电子/深圳能源/涪陵电力/招商证券等,全部低位缩量底部形态)。

# 行为好簇 + V4 选股(默认最新交易日)
python3 scripts/scan_behavior_v4.py
python3 scripts/scan_behavior_v4.py --date 2026-08-13 --top 30

# 聚类研究脚本(6 基准日回测 + 最新日画像)
python3 scripts/_archive/behavior_cluster_20260813.py

🌊 波谷选股扫描(双入口:行业/热点,v2.29.12)

触发条件:上证指数(sh000001)收盘出现 波谷信号(window=3 无平滑极值,find_local_extrema)——只在波谷日选股,非波谷日不触发(避免追高假信号)。波谷确认按环境自适应(v2.29.51 方案A,老板 2026-08-28):bear→+2日、range→+1日、bull→不参与(波谷日环境判定,非确认日环境);扫描输出 trough_env/confirm_advice 确认日建议,确认日才可执行买入(实盘纪律:波谷确认前不猜底)。

环境自适应确认日依据(2026-08-28 二十组对比回测,确认日{1,2,3,5}×环境{全部/bear+range/仅bear/仅range/仅bull}):① range 震荡市 1 日确认捕捉 12 谷(3月 70%/+27%),固定 3 日只捕捉 5 谷(+3.5%)——3 日确认滞后坐实;② bear 下跌市 2 日确认最优(3月 83.3%/+177%、6月 100%/+382%);③ bull 任何确认日 1月 均为负(-24%~-55%)= 波谷中继不参与;④ 自适应(bear+2/range+1)heatmap+V4V3 回测:120日 100%/+1867%(vs 3日基准 87.5%/+506%,收益 3.7 倍)。

两种入口(v2.29.12,老板 2026-08-17 决策):--l1-mode industry=行业波谷选股(默认,L1=行业 WVAD 聚合 TOP10);--l1-mode heatmap=热点波谷选股(L1=heatmap 热点板块 TOP10,24 ETF 板块热度 40%涨跌幅+30%宽度+30%量能,剔除宽基/海外;RPS120 排序默认打开,--no-rps-sort 可关)。两者 L2~L4 相同。

环境过滤(胜负手):MA60+斜率判环境——bear/range 才建议买入,bull 环境波谷照买=接飞刀(26 个 bull 波谷累计 -52%,且 bull 波谷=中继任何确认日 1月 均负)。回测(2026-08-16 新V4时间周期,确认日选股+次日开盘买+固定持有):环境过滤后 1月 76.9% 胜率 +76.97%、3月 63.6% +77.13%、6月 77.8% +157.33%。

选股链(4 层漏斗 + 资金过滤 + RPS 排序):上证波谷 → L1 行业 WVAD 聚合 TOP10(或热点板块 TOP10)→ L2 双流入候选(WVAD>0 & VFI>0,行业∈L1 板块,价格<40)→ L3 V4≥90 且 verdict∈(合理买入, 底部朦胧) 且非ST → L3.5 真实资金过滤(近5日主力净额 ≥500万,fund_flow 表;无数据保留)→ L4 排序(range 环境=资金意图加权;否则=RPS120 降序,候选20重排取 top10)→ 等权。

热点 vs 行业回测对比(2026-08-17,2年×1/3/6月,确认日+次日开盘+环境过滤+净额500万):1月 热点 +206.24% vs 行业 +63.10%;3月 +216.40% vs +115.83%;6月 +413.33% vs +244.88%——热点全面占优,优势集中在 bear 环境(6月 +418% vs +109%),range 略输行业。叠加 RPS120(热点默认):1月 +209.36%、3月 +272.58%、6月 +692.36%(RPS 增益随持有期放大)。

距峰信息(v2.29.7):输出 peak_days/peak_dd(距前 60 日峰天数与回撤)——实盘复盘规律:盈利股买入日回撤≥6%、距峰≥30天(深跌后段);亏损股都是回调初期进场(距峰 1-20 天、回撤<6%)。峰后回调初期禁止进场。

持有建议(v2.29.7):扫描输出推荐持有期——3月(60 交易日)为主、6月(120 日)为进阶;V4 是底部聪明引擎,兑现需 1-3 个月,谷买峰卖(2-8 天)是持有期错配(-25.92% 根因)。

破位卖出回测(2026-08-16):替代波峰卖出——支撑位=90 日箱体(突破前高后以前高为支撑,未突破以前低为箱底),连续 3 日收盘跌破确认卖出(confirm_days=3):胜率 71.4%、累计 +216.4%、平均持有 64.5 天,超过固定持有 6 月(+157.33%)。接入 trade_sim/real_daily 待老板确认。

# 行业波谷选股(默认)
python3 scripts/scan_wave_trough.py --l1-mode industry
# 热点波谷选股(RPS120 默认打开)
python3 scripts/scan_wave_trough.py --l1-mode heatmap
# 关闭 RPS 排序(退回 WVAD 降序)
python3 scripts/scan_wave_trough.py --l1-mode heatmap --no-rps-sort

# 输出:控制台表格 + /tmp/wave_scan_YYYYMMDD.json
#      含 env_state/buy_advice/hold_suggestion/peak_days/peak_dd
#      含 trough_env/confirm_advice(环境自适应确认日建议:bear+2日/range+1日/bull不参与)

📅 日常选股扫描(每日收盘后,v2.29.24)

与波谷选股的区别:波谷选股只在指数波谷确认日(环境自适应:bear+2日/range+1日/bull不参与,v2.29.51)触发;日常选股每个交易日收盘后都能跑(不限波谷日),管道去掉 L1 行业/热点板块过滤(L1=全市场 all),其余 L2~L4 完全一致——作为每日观察池,供波谷确认日的候选预判与日常跟踪。

选股链(全市场漏斗):L1 全市场 → L2 双流入候选(WVAD>0 & VFI>0,价格<40)→ L3 V4+V3 交集(V4≥90 且 verdict∈(合理买入, 底部朦胧) 且非ST 且 V3≥60 回调到位,两引擎都认可才入选)→ L3.5 真实资金过滤(近5日主力净额 ≥500万,fund_flow 表;无数据股票保留降级)→ L4 RPS120 降序(候选20重排取 top N,默认10)→ 等权。

空池即信号:输出为空=当日无符合条件标的,本身就是谨慎信号(暴跌日实测 08-19:L2 165→L3 仅1只→L3.5 净额拦截→0 只,空仓正确)。被拦截个股会输出诊断(如价格抗跌但主力净额流出被 L3.5 拦截)。

环境与持有:同波谷选股口径——bear/range 建议买入、bull 不建议;输出 buy_advice/hold_suggestion(持有 3月/6月)。默认扫描日自动取最近交易日(kline_tencent MAX(date))。

# 日常选股(默认最近交易日,RPS120 排序开)
python3 scripts/scan_daily_pick.py
# 指定日期 / top N / 关 RPS / 关净额过滤 / 写 Obsidian 文档
python3 scripts/scan_daily_pick.py --date 2026-08-19 --top 20 --no-rps --net-min 0 --doc

# 输出:控制台表格 + /tmp/daily_pick_YYYYMMDD.json
#      含 env_state/buy_advice/hold_suggestion/被拦截诊断

🔥 热点统计(每日快照 · 周月榜 · 板块链 · 主线识别,v2.33.7)

定位:把每日"哪些行业/板块在涨"固化成表,滚动统计出主线 / 轮换 / 启动 / 退潮四种状态——区别于 heatmap 页的实时热度(现算不落库),热点统计是可回溯的每日快照 + 持续性识别(老板 2026-09-01 方案A:本地轻量聚合、零新数据源)。

数据源与口径daily_hotspots 表每日聚合(行业维度=全市场 kline_tencent + industry_mapping_cache 唯一映射;ETF 维度=24 板块 ETF),涨停口径与 daily_close_collect 一致(主板≥9.5%、创业板 sz3/科创板 sh68≥19.5% 收盘价判定,含 sh68 修正);连板回溯 15 交易日;资金来自 fund_flow 聚合(2022-03 起)。综合分=0.35×涨幅 + 0.20×成交额占比 + 0.25×(涨停数/热度) + 0.20×资金净流入,TOP10 上榜。

识别规则(hotspot_stats 表,周=5日/月=20日滚动物化):持续性得分=0.5×上榜频率占比 + 0.3×连续上榜归一 + 0.2×资金持续为正占比(2022-03 前无资金数据取中性)。四态=生命周期状态机(v2.32.0 重构):

  • 主线:今日上榜 且 持续≥60;周窗口需连续≥3日,月窗口需窗口内上榜≥60% 且最大连续≥3。(v2.33.0 校准:移除当日 TOP5 强度分位——旧门槛把真实长行情[最长74天]切成1-2天碎片,去门槛后工程机械74天/半导体51天完整识别)
  • 轮换:窗口内上榜≥2次但未达主线(v2.33.0 校准:freq=1 的"轮换"晋级主线率 0.00%、纯噪音,不再视为有意义的轮换)
  • 启动:今日新上榜且前 5 日未上榜 且 当日综合分≥60(v2.33.0 校准:低分启动 50.5% 一日游,真启动率 22.5%→34.1%)
  • 退潮:掉榜前曾连续≥3天上榜 且 近3日(含今日)不在榜 且 近5日曾上榜(v2.33.0 校准:旧实现 98% 退潮是掉榜已久的陈年热点重复计数,现只标"新鲜掉榜";周榜退潮=0 属正常——退潮由月榜承载)

板块链聚合(v2.32.0 新):hotspot_chain_stats 表按大类聚合(科技链/化工链/有色链/煤炭能源链/医药链/汽车链/新能源链/消费链/金融链/基建链 共 10 条),链内任一细分行业上榜即计链上榜——解决"化工/有色等链内轮动式行情"被单行业口径系统性低估(8月有色链 10/21 天有细分上榜,但单行业 freq 仅 1-2/5 全标轮换)。

环境透视(v2.32.0 方案A,老板 2026-09-01:确认四态在牛/熊/震荡的时间价格差异;v2.33.7 行业/ETF 分开统计):hotspot_env_stats 表每日按市场环境(上证 vs MA60+斜率:bull=收盘>MA60 且 MA60 上行 / bear=收盘<MA60 且 MA60 下行 / range=其余,与波谷选股环境过滤同口径)物化四态特征——时间维度=上榜频率均值,价格维度=当日涨幅均值,type 列区分行业/ETF 分开聚合(2026-09-02 老板:混合均值无意义)。用途:验证"牛市主线更持久、熊市启动即退潮、震荡市轮换主导"等假设。页面 /hotspots「📊 环境透视」Tab 分行业/ETF 双视角 + API /api/hotspots/env-stats?window=week|month&type=industry|etf_sector(缺省 week,非法 400)。

页面与 API/hotspots 页面(当日榜按行业/ETF 板块分开统计 / 周榜 / 月榜 / 板块链榜(周月可切) / 环境透视);API:/api/hotspots/daily|weekly|monthly|chains|env-stats(均可带 ?date=YYYY-MM-DD 回溯历史,缺省取最新;daily/weekly/monthly 支持 ?type=industry|etf_sectorchains/env-stats 支持 ?window=week|month 缺省 week;v2.33.7 起周/月榜、环境透视均分行业/ETF 双视角。⚠️ 2026-09-02 老板拍板:主线时间轴反复无法显示(v2.33.7~v2.34.0 多轮修复无效)已整体移除,API 一并删除)。

回填范围:2023-02-24 ~ 至今全部 ~854 交易日(勘误:kline_tencent 2019-2021 仅 1 只/日、2022 仅 86 只/日,全市场覆盖实起 2023-02)。每日更新已接入 update_daily.py all 八合一(15:30 收盘后自动跑,含 hotspot 子命令)。

# 手动聚合指定日期 / 回填区间 / 预览(周/月 stats 物化自动附带)
python3 scripts/hotspot_daily.py --date 2026-08-31
python3 scripts/hotspot_daily.py --backfill --start-date 2023-02-24 --end-date 2026-08-31
python3 scripts/hotspot_daily.py --date 2026-08-31 --dry

📈 RPS 相对强度因子(欧奈尔体系,v2.29.9)

个股 RPS(相对强度排名):全市场同一交易日 N 日收益百分位排名(0~100),衡量个股相对全市场的强弱——RPS120(一年相对强度)为欧奈尔体系核心。三个窗口一次算完:RPS20/60/120(20 日短期、60 日中期、120 日一年期)。

用法(2026-08-17 验证):RPS 是候选排序器而非独立选股器——全市场直接选股测不出动量(样本期 β 强+幸存者偏差),但在 V4 底部精选 + 真实资金过滤后的候选池内做 RPS120 降序重排,增益明确:回测 1月 +63.10→+81.50%(+18.4pp)、3月胜率 70→80%、6月 +244.88→+265.94%(+21.1pp)。V4 找底部(左侧)+ RPS120 排序(右侧强度)= 底部股里选最强的。

读法:RPS120≥90 为一年强势股(全市场约 9.9%);RPS20 低 + RPS120 高 = 强势回调(一年强、近期歇);RPS20 高 + RPS120 低 = 弱势股脉冲反弹(不可持续)。波谷扫描 L4 已自动按 RPS120 重排(非 range 环境,v2.29.10)。

# 取单股 RPS 快照(20/60/120 一次算完)
from pipeline_engine.factors.rps import rps_snapshot
snap = rps_snapshot(conn, '2026-08-14', (20, 60, 120))
# → {code: {20: 百分位, 60: ..., 120: ...}}

# 全市场 4770 只约 22s;横截面因子需全市场同日收益排名(参照系 kline_tencent,不含北交所)

🧠 资金意图分析(五维综合,v2.29.0)

综合资金意图:五维输入(量比 / WVAD MA5-21 金叉死叉+轨迹 / VFI 250日四态 / 真实资金 fund_flow 近5-10日净额 / 市场环境)→ 输出意图标签(吸筹/拉升/出货/观望/超跌企稳)+ 建仓建议(适合/观望/回避 + 分维理由 + 置信度)。

环境差异化(方案1):range 环境正向逻辑(规则表);bull 环境不追高(除价格回落的回调低吸外一律观望/回避);bear 环境只描述意图、建议仅观望/回避、置信度封顶 0.3——三档设计来自验证:bull 追高=诱多(r20 -0.21 显著反向),bear 无信息,range 是唯一稳定有效环境(r20 +0.108,高分 vs 低分 20 日收益差 4.85pp)。

用法:个股资金状态分析报告(人话+证据),非机械买入信号;波谷扫描 L4 range 环境用它做资金意图加权排序(w=0.5,回测 range +4.63pp)。

# 单股资金意图分析
from pipeline_engine.analysis.fund_intent import fund_intent
fund_intent('sh688126', '2026-08-14')
# → {scores: {fund, wvad, vfi, vol}, intent, advice, confidence, reasons}

🎯 个股多维度分析(九维评级,v2.29.43)

九维综合评级(老板 2026-08-26 定维度框架):行业属性(板块热度 heat + 行业份量成分股数)/基本面(净利增速+ROE+现金流,LLM 定性解读)/ 估值(PE 分档 + PB 回退 + 亏损警示)/ 技术面(均线排列 + 距 MA60 压力 + V4/V3 引擎佐证)/ 资金面(近5日主力 + 超大单方向)/ 主力行为(筹码信号 + 事件压制)/ 消息面(东财 search-api 个股新闻 + DeepSeek 研判,LLM 失败降级中性)/ 综合(均权)/ 交易计划(止损=成本-1% + 目标1=MA60 + 目标2=前高限幅 + 仓位比例)。

数据可靠性:数值型(PE/PB/ROE/现金流)走结构化源(新浪财务指标页 → financial_detail 表,实测 LLM 记忆 PE 过期 15 个月不可靠);LLM 只做定性解读(财报解读/消息面研判),不产出数值防幻觉。

仓位映射:综合 ★5→20% / ★4→15% / ★3→10% / ★2→5% / ★1→0%(单票占总仓比例,熊市环境可打折)。

# 单股九维分析 (CLI, 自动抓新闻+LLM研判)
python3 pipeline_engine/analysis/stock_report.py sh600499 科达制造 2026-08-26

# 或代码调用
from pipeline_engine.analysis.stock_report import _load_code_data, build_report, render_markdown
from pipeline_engine.analysis.stock_report import fetch_stock_news, news_rating
d = _load_code_data('sh600499', '2026-08-26')
news = fetch_stock_news('科达制造'); s, l, r, sm = news_rating(news)
d.update(news_stars=s, news_label=l, news_reasons=r, news_summary=sm)
report = build_report(code='sh600499', name='科达制造', **d)
print(render_markdown(report))

数据补充:financial_detail 表(EPS/每股净资产/净利增速/经营现金流回报率,2026-08-26 起采集)→ PE/PB 全市场计算;六只持仓九维报告存 Obsidian/Stock/plan/2026-08-26-持仓九维分析报告.md。

页面入口(v2.29.45):个股详情页九维卡片已上线 —— 打开 /stock/代码 即可看到「🎯 九维评级」卡片(默认快速返回数据维度,不阻塞页面;点「🤖 LLM 解读」获取财报定性 + 消息面研判)。

⛏️ 本地四星挖掘(全市场六维评分,手工触发 v2.35.0)

为什么做(老板 2026-09-06 指令):九维分析需外部消息/LLM,无法全市场批量跑。本工具纯本地数据对全市场打分,产出「准四星池」,最后消息面确认交给人工/九维复核。

六维评分(总分100,对标九维 ★4;v2.35.1 校准,老板 2026-09-06 五条建议评审采纳②③④⑤、①TTM暂缓):V4 技术面 30(≥90→30/80-89→24/70-79→18)+ 筹码主力 25(低位吸筹 18/锁仓·拉升 12/深套 6/派发 0/无数据中性 13,权重 15→25——筹码吸筹是中线 alpha 源,回测低位吸筹 r60 +11.27%)+ 资金面 15(近5日正天数+累计+当日,权重 25→15——回测证明短期资金不产生超额)+ 估值 15(PE 分档 + 行业相对 PE:有行业中位时按 ratio=个股PE/行业中位 分档 <0.6→15/<1.0→13/<1.5→10/<2.0→7/≥2→4,成长行业自动放宽、无中位走绝对档兜底;负 PE 软标记 5;PE 5年分位本地无历史序列暂缓)+ 财务 10(亏损股明确 3 分档而非中性 5,盈利+高增长=10,除非人工复核确认周期底部)+ 行业热度趋势 5(当日 TOP10→5 / 不在榜但近5日上榜≥2→3 / 月窗口 persist≥50→+2,等效 RPS 趋势无需新采集)。

规则:V4<70 不入候选;verdict=信号模糊 扣 5 分;ST 剔除;V4 全量约 75s(8 并行);结果 JSON 存档 db/fourstar_mining_<date>.json

验证(方案C,2026-09-06,09-04 全市场 4762 只):与 37 只九维结果对照——已知 4星锚全部命中(万辰 81/科达 80/新易盛 80),2星锚(宏英智能/华天科技等)全部排除;观察列表 6 只中 5 只入选(山煤国际 V4<70 排除符合判断)。v2.35.1 校准后重跑(新权重 筹码25/资金15):4星锚仍在列(新易盛 88 升至榜首——行业相对PE释放成长股估值、科达 79/赛力斯 80/万辰 76),2星锚仍排除;中际旭创/法拉电子/东鹏/新乳业等消费成长浮出,资金强但筹码平的华电辽能/福能/青农商行降位——符合"筹码比资金更预示中线"方向。详见 Stock/观察池/2026-09-06-四星挖掘-本地六维.md

# 手工触发全量挖掘(不挂每日自动;数据截至最新交易日)
python3 scripts/scan_fourstar.py                  # 全市场 → top40 准四星池
python3 scripts/scan_fourstar.py --date 2026-09-04  # 指定日期回溯
python3 scripts/scan_fourstar.py --top 50          # 输出前50
python3 scripts/scan_fourstar.py --min-v4 80       # 提高 V4 底线(更严)
python3 scripts/scan_fourstar.py --json            # JSON 输出

兄弟工具 — 持续资金流入监控(scan_capital_monitor.py,老板 2026-09-05,手工触发):近5日≥4天净流入为正且累计>0 =「持续吸筹」→ 严格模式走波谷选股 L2-L4 漏斗(双流入→V4/V3→净额≥500万→RPS120),宽模式(--above-ma5)取持续流入∩收盘站上MA5(≤5% 温和启动,剔除ST)按净额 top30。回测结论:该模式相对全市场无显著超额,定位资金异动监控雷达而非买入信号(资金面只作候选加分项)。

# 资金监控(手工触发)
python3 scripts/scan_capital_monitor.py                    # 严格模式 v4v3 top10
python3 scripts/scan_capital_monitor.py --above-ma5        # 宽模式:流入∩MA5 温和启动 top30
python3 scripts/scan_capital_monitor.py --date 2026-09-04 --l3-mode v4

📋 观察池持续跟踪(watch_pool.py,老板 2026-09-06 方案A):把发现标的(四星挖掘/波谷选股/日常选股/九维/持仓/手工)入池后每日自动跟踪——复用六维评分(v2.35.1)+ 量价异常检测(AnomalyAnalyzer),状态自动流转:🟢可参与 ready(总分≥75 且 V4≥90 且 verdict=合理买入/底部朦胧,且上证处于3日滚动上行段——MA3 判向无未来函数,下行段高分降级 active 等回升)→ 附参考买点;🟡人工复核 review(触发风险异常信号:放量破位/滞涨/顶背离等,缩量上涨·锁仓、底背离等中性信号不误报);🔴自动移出 removed(总分<60 或 V4<70 连续 2 交易日不达标,留痕可查);⚪观察中 active。评分历史存 watch_scores 表(可追溯星级变化),Obsidian 报告自动更新(Stock/观察池/观察池跟踪.md),列表页 /watchpool 实时查看各分值。

# 观察池操作(业务库 stock_app.db)
python3 scripts/watch_pool.py add --code sz300401 --name 花园生物 --source 持仓 --reason "波谷热门持仓"
python3 scripts/watch_pool.py daily --date 2026-09-05   # 每日收盘后跟踪(cron 北京 20:15)
python3 scripts/watch_pool.py auto-add --date 2026-09-05  # 全市场挖掘达标自动入池(v2.38.0)
python3 scripts/watch_pool.py status                    # 当前池状态
python3 scripts/watch_pool.py report                    # 重写 Obsidian 报告
python3 scripts/watch_pool.py remove --code sz300401 --reason 连续不达标

🛡️ 数据完整性保障 + 自动入池(data_integrity.py,v2.38.0,老板 2026-09-06):完整性检测 cron 每日北京 19:30 检查 5 张表当日数据(kline_tencent≥4700 / kline_index_etf≥1500 / fund_flow≥4700 / chip_trace≥4500 / daily_hotspots≥10),全齐写 采集完整性标记(stock_kline.db 的 data_integrity 表 ok=1),缺失则后台自动触发补采(update_daily 子命令 / fundflow_daily_all)并复检——采集 cron 失效也会被发现并重激活。观察池 cron(北京 20:15)执行前先验当日标记 ok=1(数据不可信不评分),再跑 auto-add:全市场六维挖掘达标标的(总分≥75 且 V4≥90 且 verdict 合理买入/底部朦胧 且非ST)自动入池(removed 过的需人工重入),最后池内 daily 评分+报告。

# 完整性检测(自动修复由 cron 驱动;fundflow 单路安全模式需约2h)
python3 scripts/data_integrity.py --date 2026-09-04     # 检查+写当日标记
python3 scripts/data_integrity.py --json --repair      # JSON 输出+缺失表补采命令

🔁 换手率持续跟踪与分析(scan_turnover_track.py,老板 2026-09-07 方案A):每日对观察池个股算换手率信号并落库(turnover_track 表),从历史跟踪发现可用信息——复用 turnover_analysis 五维规则(市值9段分档换手带 / MA250年线位置 / MA60趋势 / 四个极端信号 / 连板专属,终极口诀:低位放量是兄弟高位放量是仇敌)。个股视角输出:甜区密集段(连续 zone=good=吸筹活跃窗口)、地量后复活、沉寂后首次进甜区(启动前兆)、缩量锁仓 attack(上升趋势 vol_ratio≤0.7)。数据源 fund_flow.turnover(新浪×100口径,/100 还原)+ stock_list.total_market_cap + kline_tencent 均线。观察池页面 /watchpool 已带换手率列(最新 % + zone 徽章 + action 着色)。

# 换手率跟踪(cron 北京 20:15 watch-pool-daily 评分后自动跑)
python3 scripts/scan_turnover_track.py track --date 2026-09-04   # 观察池全量(可 --codes sz300502,sh600499)
python3 scripts/scan_turnover_track.py history --code sh600499 --days 30   # 历史轨迹+突变标注
python3 scripts/scan_turnover_track.py insights --code sh600499 --days 60  # 信息提炼(甜区段/地量复活/启动前兆)

🎯 半仓滚动做T方向标签(t_signal.py,老板 2026-09-07 讨论拍板):单票做T(留底仓吃半仓、当日进出)的日线级保障——统计验证(2023-2026 全市场370万样本):MA3上行段是动量结构(乖离>5%次日仍+1.2%卖了会飞;深回踩<-1.5%次日仍-0.33%不接飞刀);放量滞涨日次日44.7%转弱=先卖后买唯一安全窗口;日内振幅中位3.08%空间有限必须挑日子。逐股标签:🚫DANGER风险日不做T(破位/吊颈/天量换手等按预案减清)→ ⛔NO_T_DOWN下行段禁T只减 → 🪂NO_T_DEEP_DIP深回踩不接 → 🔻T_SELL_FIRST高抛日先卖后买(长上影/放量滞涨/高乖离收阴)→ 💪HOLD_STRONG强势加速拿住不T(高乖离收阳/缩量锁仓)→ 🪝T_BUY_WEAK浅回踩缩量低吸日(弱信号先买次日卖)→ ➖T_SKIP中性不值得。保障铁律:只上行段做T / 当日闭环不过夜 / 单次亏损>1.5%认错 / 底仓破MA10减半破MA20清。观察池报告+页面 /watchpool 股票名下方自动带当日做T标签。

# 做T标签(t_signal.py;观察池报告/页面已自动带上)
python3 -c "import sys; sys.path.insert(0,'scripts'); import t_signal as ts, watch_pool as wp; c=wp._conn(wp._KLINE_DB); print(ts.t_label_for(c, 'sh600499', '2026-09-04'))"  # 单股

📊 动态筹码分布跟踪(双算法,v2.29.32 / 每日维护 v2.29.50)

方案A 三窗口对比(chip_window_compare):T-120/T-60/T-20 三窗口筹码峰/成本/集中度对比 → 信号:低位吸筹 absorbing(20日峰<120日峰×0.95 且 0.9≤价/成本≤1.15)/ 深套超跌 deep_loss(价/成本<0.85)/ 锁仓待涨 locked(集中度≥0.30 且价/成本 0.95~1.2)/ 拉升途中 markup(成本上移>5% 且 1.0~1.3)/ 高位派发 distributing(20日峰>120日峰×1.05 且 >1.15)/ neutral。

方案B 逐日衰减(chip_trace_signal,chip_trace 表持久化):筹码按换手率指数衰减(半衰期 60 日,τ=86.6),输出获利盘比例 profit_ratio / 低位沉淀 low_chip_ratio(近120日最高价×0.5 以下筹码占比)/ 成本密集区 / 集中度(峰值±3% 区间占比)/ 成本上移速度 cost_rising,判定顺序:absorbing → low_accumulated → deep_loss → high_profit → markup → locked → neutral。

回测验证(2024-01~2026-08,29.4 万样本 r60):低位吸筹 +11.27%、低位沉淀 +10.96%、深套超跌 +10.22%(对照 +5.67%)——底部筹码结构是有效中线买入信号;高位获利 +2.33%(-3.3pp)反向卖出信号;获利盘<20% 买入、>70% 回避(分桶胜率严格反向)。

数据维护:chip_trace 表每日收盘后随 update_daily.py all 自动更新全市场筹码快照(v2.29.50 接入,此前 08-21 后曾中断 6 日已补采 7 日 33362 行)。

# 单股筹码双算法分析(代码调用)
from pipeline_engine.analysis.chip_trace import chip_window_compare, chip_trace_signal
sig_a = chip_window_compare(closes, highs, lows, vols)   # 三窗口对比 → 信号A
sig_b = chip_trace_signal(closes, highs, lows, vols)     # 衰减模型 → 信号B

# 全市场筹码快照(每日维护)
python3 scripts/update_daily.py chip

九维评级联动:筹码信号作「主力行为」维度(locked/absorbing 加分,deep_loss 减分);「资金面」与筹码交叉验证(吸筹+资金流入=最优组合,回测 r60 +13.92%)。

💰 行业资金全景(全量 WVAD/VFI 资金流轨迹 + 真实资金,v2.29.6)

全市场 128+ 东财细分行业(industry_mapping_cache.json,4770+ 只成分股)的资金流 1/3/5 周轨迹,四维度看板块资金:活跃度(成交额占比)、短期资金方向(WVAD)、中期资金趋势(VFI)、真实主力资金(netamount)。

state_label 新语义标签(v2.29.6 更正用法):WVAD 用 金叉/死叉(MA5/21 交叉,wvad_state)、VFI 用 四态(流入确认/流入减弱/流出减弱/流出确认,vfi_state trend_window=20)——替代旧的单日值符号翻转标签(交叉验证:VFI 单日值与真实资金仅 52.2% 一致≈抛硬币,不能当资金方向用)。旧 trend_label 字段保留兼容。

netamount 真实资金轨迹(v2.29.6 新增):行业成分股逐日 fund_flow.netamount 之和(真实主力净额,2022-03 起全市场),同 1/3/5 周轨迹 + 金叉/死叉标签——量价代理(WVAD 80.5% 一致)与真实资金互相印证。示例(2026-08-14):通信设备 WVAD 金叉 + 真实资金金叉 +15.2亿 = 三口径共振最强;半导体真实资金 +29.3亿由流出转流入但 MA 仍死叉 = 资金刚拐头未确认。

维度指标特性展示单位
活跃度成交额占比板块成交额/全市场,看关注度变化百分比(含 1/3/5 周变化率)
资金方向WVADMA5/21 金叉死叉(新语义)万元 + 状态标签
资金趋势VFI250 日四态(新语义)万元 + 状态标签
真实资金netamount成分股主力净额之和(2022-03 起)万元 + 金叉死叉

展示格式:4 点绝对值序列(5周前→3周前→1周前→今日)+ 方向标签:

半导体:
  WVAD -62108→+37826→-2031→+10400万 [由流出转流入]
  VFI   +5177→+4032→+3295→+2766万 [流入收窄]
电子化学品Ⅱ:
  WVAD -120→+480→+960→+1150万 [流入持续增强]  ← 半导体上游联动

方向标签 9 档(端点对比 t5w vs today,±1% 容差):

场景标签
负 → 正由流出转流入
正 → 负由流入转流出
正 · 前小后大 / 相等 / 前大后小流入持续增强 / 流入持平 / 流入收窄
负 · 前小后更负 / 相等 / 向零收敛流出加深 / 流出持平 / 流出收窄
全零中性

全量行业口径(2026-08-14 升级):行业成员取自 industry_mapping_cache.json(东财细分行业,key 带 sh/sz/bj 前缀),不再用 12 大行业手工成分(8-12 只无法反映全貌)。WVAD/VFI 统一万元整数。历史回测需自算(factor_cache 仅 137 池且截至 07-31)。

用法:结合板块轮动使用——轮入板块 + 资金提前流入(占比/WVAD 5周抬升)更可靠;资金持续流出或流出加深的板块不追。示例(2026-08-14):半导体 WVAD 由流出转流入 = 短线资金回流、VFI 流入收窄 = 中期高位略缓;电子化学品Ⅱ 双持续增强 = 上游联动最健康。

回测佐证(2026-08-12,120 交易日 106 轮入信号):轮入 + 5周前资金占比已上升 → 未来20日 +3.10%(25 样本);资金持续流出 → -2.76%(81 样本);5周资金变化率 vs 未来20日收益相关系数 +0.373

# 行业资金全景(最新交易日全量 128 行业,全量口径万元)
from pipeline_engine.analysis.sector.fund_flow_trajectory import industry_flow_trajectory_full
# → {行业: {wvad: {t5w,t3w,t1w,today,trend_label,state_label}, vfi: {...}, netamount: {...}}}
#    state_label: wvad→金叉/死叉/中性; vfi→流入确认/流入减弱/流出减弱/流出确认/中性
# 单行业旧接口(12 行业成分口径,已弃用): industry_wvad_trajectory / industry_vfi_trajectory
# 指标计算细节见 Obsidian《2026-08-14-WVAD与VFI指标计算说明.md》

🧭 板块轮动评分引擎

56 个行业板块(ETF 成分股映射)每日评分,识别主线板块与轮动节奏。

维度分值说明
热度3020 日涨幅分位(20)+ 量比 5/20 日均(10)
资金30成分股成交额活跃度(10)+ 方向(10)+ 量价配合(10)
位置20距 60 日低点(12)+ 距 60 日高点回撤(8)
强度20站上 MA20 且 MA5>MA20(10)+ 近 2 日放量阳线(10)

分区:≥80 潜伏/启动候选、60-79 跟随、40-59 观察、<40 回避;叠加主力净流入实时 +5 分(不进回测)。

# 板块轮动评分(最新交易日)
python3 scripts/bench/board_rotation.py

# 板块→成分股→V3/V4 闭环选股(三阶漏斗)
python3 scripts/bench/sector_stock_scan.py

# 主线扫描器(70 只行业 ETF)
python3 scripts/bench/sector_mainline_scan.py

📊 ETF 板块监控

通过监控行业 ETF 检测板块启动与切换时机(26 只核心 ETF,五阶段分类)。

  • 💰 1/3/5 周资金轨迹(v2.25.7 新增):每只行业 ETF 的成交额占比在 5 周前/3 周前/1 周前/今日的轨迹——📈 资金提前流入(5 周&3 周占比双升)+ 🟢 埋伏信号 = 最稀缺机会;📉 未确认(占比萎缩)=反弹勿追。回测:轮入信号 + 资金提前流入后 20 日 +3.10% vs 未确认 -2.76%(差距 5.86pp,相关性 +0.373)
  • 🟢 埋伏信号(v2.22.1 新增):底部缩量横盘后首次放量——20 日涨幅 ±8%(横盘)+ 成交额占比 60 日分位 <0.5(低位)+ 量比 >1.3(首次放量)。板块启动前的唯一可靠埋伏信号(放宽版 60 日超额 +3.26pp/胜率 59.4%;严格版 16 例超额 +21.9pp/胜率 91.7%,全部命中 924/2025-02/2026-07 等真实启动点)
  • 🔧 底部放量:量比≥1.5 + 20 日新高 + 相对强度,连续 2 日确认=最强信号(10 日超额 +1.71pp/胜率 61%)
  • 🚀 启动/主升:多头排列+突破
  • 📈 强势回调:多头排列+缩量回踩
  • ⚠️ 转弱:跌破关键均线(20 日超额 -0.91pp 可靠回避)
  • 📉 弱势:空头排列
# ETF 板块轮动监控(每日收盘后)
python3 scripts/etf_sector_monitor.py

# ETF 列表页(网页)
https://stock.ncnynl.com/etfs

🔬 市场真面目(5 大观察指标)

指标计算方式解读
① 成交额+涨跌中位数全市场个股涨跌中位数 + 总成交额放量普涨=普惠行情最强;放量下跌=资金出逃最危险
② 股债性价比1/沪深300PE - 10年国债收益率>6% 极端低估;3-6% 低估;<1.5% 高估
③ 两融余额margin_daily 表连 5 降=撤退;由降转升=拐点;<25000 亿近底;>28000 亿过热
④ 新高/新低家数250 日窗口>100 强趋势;20-100 结构机会;<20 弱
⑤ 股指期货升贴水IF2608 vs 沪深300 现货贴水<-1% 强空;-0.5~-1% 谨慎;升水>+0.5% 看多
# 每日收盘后自动生成(cron 17:00 北京)
python3 scripts/bench/market_indicators.py
# 输出 → Stock/观察池/YYYY-MM-DD-市场真面目.md

📅 日报/收盘报告系统(自动 cron)

报告触发时间内容输出位置
财经大事件每日 07:00(北京)国内外财经大事件全景(东财快讯40条+华尔街见闻),逐条标注对A股影响,含亚太盘前异动;自动发送邮件Stock/早报/ + 邮件
收盘总结每日 16:50(北京)L1-L5 五维分析、ETF 板块轮动、三层联动选股、持仓异常+V4Stock/收盘总结/
市场真面目每日 17:00(北京)5 大观察指标 + 综合信号Stock/观察池/
数据更新每日 15:45(北京)全市场 K 线/指数/两融增量更新DB
# 手动触发
python3 scripts/daily_events_collect.py  # 财经大事件采集(东财快讯40条+华尔街见闻15条)
python3 scripts/daily_close_collect.py    # 收盘数据收集
python3 scripts/update_daily.py all       # 全量数据更新

📌 财经大事件:每日 07:00(北京)自动运行,采集东财快讯 + 华尔街见闻共 40+15 条新闻,整理为隔夜全球市场/国际大事/国内要闻/亚太盘前/操作提示五段式报告,存档 Stock/早报/ 并自动发送邮件至老板邮箱。股市早报已停用(2026-09-04 起由财经大事件替代)。

🛠️ 数据维护

操作命令说明
增量更新python3 scripts/update_daily.py allpool/index/etf/margin/db/v6/chip 全链路(cron 每日自动,v2.29.50 起含筹码分布快照)
筹码分布快照python3 scripts/update_daily.py chip全市场筹码分布(chip_trace 表)增量更新:峰值价/平均成本/获利盘/低位沉淀/集中度/信号/成本上移,每日收盘后随 all 自动更新(v2.29.50 接入)
快速补丁python3 scripts/run_patch_fast.py --codes xxx --days 1200 --fetch-days 800多线程补 K 线(腾讯接口 days 上限 800)
补 ETF 历史python3 scripts/backfill_etf_history.py补 ETF 长历史(800 天上限)
数据审计python3 scripts/audit_kline_quality.pyOHLC 合理性、open≈close 异常、缺失检查
修复字段错位python3 scripts/fix_hl_swap.py修复历史 high/low/close 交换脏数据
补基本面python3 scripts/bench/backfill_fundamentals.py市值/PE/ROE(腾讯+东财)
DB 备份python3 scripts/db_backup.py自动时间戳备份

🧪 回测与基准测试

功能命令说明
预设策略基准python3 _bench_all.py20 策略全量基准(2023-06-06~2026-06-05,base_pool 137)
锚点验证python3 scripts/run_bench.pybottom_dual_mode 锚点 +887.73% 复现
板块轮动回测python3 scripts/bench/backtest_board_rotation.py2024-01~2026-07 板块评分回测
个股信号回测python3 scripts/analyze_rally_presets.pyV3 信号后验统计

⚠️ 回测写入 DB 受 SENTINEL 保护,必须通过正式入口执行。

🌐 网页功能(stock.ncnynl.com)

页面路由功能
首页/系统概览
股票列表/stocks全市场股票搜索+列表(实时行情)
个股详情/stock/<code>K线+MA+OBV+RSI+V3/V4/V5/V6 评分图+量价形态+量价异常+🎯最优买入价(当日[最低,开盘]区间内 90日OHLC 高频价,K线橙色实线+顶部区间条)。⚠️ 当当日开盘价≈最低价(区间极窄)时,区间内高频价自然少,参考价值有限——此时看橙色线附近的支撑/压力线更有意义。
ETF 列表/etfsETF 搜索+今日涨跌幅排序
ETF 详情/etf/<code>ETF K线+MA+OBV+RSI+板块监控阶段
条件组合/conditions过滤条件组合管理
策略库/strategies31 个预设策略(V0-V6 引擎)
回测记录/backtests回测历史与明细
模拟仓/simulate多策略模拟交易
实盘仓/real实盘持仓跟踪
策略扫描/scan-all全策略扫描
扫描记录/scan/records历史扫描信号
热点/heatmap板块热力图
情绪/sentiment市场情绪指数(偏热/中性/偏冷)
风险分析/risk六维风险分档 + 仓位上限(V 型,L5=30%)+ 开新仓许可(v2.52.0)
事件结构/events财经事件结构化 + 类型占比/多空净分曲线(v2.51.0)

🔗 推荐使用流程(完整闭环)

  1. 看大盘:市场真面目 5 指标 + 情绪页(/sentiment)判断仓位环境
  2. 看板块:ETF 板块监控 + 板块轮动评分找主线(≥80 潜伏区)
  3. 选个股:137 池 V3 扫描(≥80 强信号)+ 板块成分股 V3/V4 双确认(三阶漏斗)
  4. 定买点:V3 READY 回调到位日 + 量价收敛/洗盘确认 + 反弹质量分
  5. 管持仓:量价异常检测(六种信号)+ 破 MA5 退出 + -8% 止损
  6. 收盘复盘:收盘总结报告 + 交易记录回看