📖 功能使用说明
股票量化分析系统 · 全部功能与使用方法总览
🎯 评分引擎体系(V0-V6 + CapFlow)
系统内置 6+1 个独立评分引擎,各引擎视角互补、互不依赖,统一通过 get_scorer('slug') 调用。
| 引擎 | Slug | 定位 | 核心逻辑 | 典型用途 |
|---|---|---|---|---|
| V0 | v0 | 空评分 | 恒返回 0 分,仅配合买入过滤器链 | 纯 filter 策略回测 |
| V1/V1P | v1 / v1p | 经典评分 | 原版趋势+量价综合评分 | 历史基准对比 |
| V2 | v2 | 新评分 | 新一代综合评分(含资金流) | 对比验证 |
| V3 | v3 | 回调拉升引擎 | 低点→拉升→回调到位(站上 MA5)→再拉升,100 分制 | 左侧买点捕捉(详见下节) |
| V4 | v4 | 底部聪明 | 位置/趋势/量价/风险 四维 25 分制 + 加减分,找"跌透"的股票 | 左侧抄底选股 |
| V5 | v5 | 主升追涨 | 量比>1.5+方向>0.7+连涨,找"正在涨"的股票 | 右侧追涨确认 |
| V6 | v6 | 涨停蓄势 | 涨停准备度评分(phase 四阶段:底部建仓/蓄势洗盘/主升加速/高位出货) | 涨停捕获 |
| CapFlow | capflow | 资金活力 | 资金流辅助评分 | 资金面确认 |
📈 V3 回调拉升引擎(重点功能)
形态识别框架(三阶段状态机)
完整形态:低点确认 → 拉升(4-12% 最优)→ 回调(先破 MA5 再站回)→ READY 买入点 → 突破前高
快速反转:低点后 1-3 天内直接站回 MA5(无完整回调段),放量站回=资金抢筹
跌后站回:40 日内存在低点 + 当前收盘站上 MA5 + 低点后曾破 MA5,作为兜底识别
100 分制评分构成
| 维度 | 分值 | 规则 |
|---|---|---|
| 拉升质量 | 0-25 | 4-12% → 25;2-4% / 12-18% → 18;1-2% → 12;18-25% → 10;>25% → 18/12 |
| 回调质量 | 0-25 | 2-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/MLF | 0-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(全市场,~3s)|--pool watch(观察池预筛)|--codes sz000001 ...(指定) - 协同:M1 做初筛 → V4/V5 评分排序 → 人工复核(与现有引擎互补不重复)
- 研究结论:详细报告见
Stock/plan/2026-09-09-量价预测新指标研究.md(含候选信号全表、分半稳健性、诚实声明)
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.8 | 100% | 全面开放 |
| L1 低 | 23.8–29.1 | 80% | 正常操作 |
| L2 中 | 29.1–35.1 | 60% | 均衡日禁 auto_add |
| L3 中高 | 35.1–41.2 | 40% | 只做底部,减仓为主 |
| L4 高 | 41.2–48.9 | 20% | 只减不加 |
| L5 极高 | ≥ 48.9 | 30% | 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 股大盘的影响方向(不是事件本身好坏);多空并存或判不了 → 中性 |
| strength | 1 弱 / 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_sector;chains/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 周变化率) |
| 资金方向 | WVAD | MA5/21 金叉死叉(新语义) | 万元 + 状态标签 |
| 资金趋势 | VFI | 250 日四态(新语义) | 万元 + 状态标签 |
| 真实资金 | 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 成分股映射)每日评分,识别主线板块与轮动节奏。
| 维度 | 分值 | 说明 |
|---|---|---|
| 热度 | 30 | 20 日涨幅分位(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 板块轮动、三层联动选股、持仓异常+V4 | Stock/收盘总结/ |
| 市场真面目 | 每日 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 all | pool/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.py | OHLC 合理性、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.py | 20 策略全量基准(2023-06-06~2026-06-05,base_pool 137) |
| 锚点验证 | python3 scripts/run_bench.py | bottom_dual_mode 锚点 +887.73% 复现 |
| 板块轮动回测 | python3 scripts/bench/backtest_board_rotation.py | 2024-01~2026-07 板块评分回测 |
| 个股信号回测 | python3 scripts/analyze_rally_presets.py | V3 信号后验统计 |
⚠️ 回测写入 DB 受 SENTINEL 保护,必须通过正式入口执行。
🌐 网页功能(stock.ncnynl.com)
| 页面 | 路由 | 功能 |
|---|---|---|
| 首页 | / | 系统概览 |
| 股票列表 | /stocks | 全市场股票搜索+列表(实时行情) |
| 个股详情 | /stock/<code> | K线+MA+OBV+RSI+V3/V4/V5/V6 评分图+量价形态+量价异常+🎯最优买入价(当日[最低,开盘]区间内 90日OHLC 高频价,K线橙色实线+顶部区间条)。⚠️ 当当日开盘价≈最低价(区间极窄)时,区间内高频价自然少,参考价值有限——此时看橙色线附近的支撑/压力线更有意义。 |
| ETF 列表 | /etfs | ETF 搜索+今日涨跌幅排序 |
| ETF 详情 | /etf/<code> | ETF K线+MA+OBV+RSI+板块监控阶段 |
| 条件组合 | /conditions | 过滤条件组合管理 |
| 策略库 | /strategies | 31 个预设策略(V0-V6 引擎) |
| 回测记录 | /backtests | 回测历史与明细 |
| 模拟仓 | /simulate | 多策略模拟交易 |
| 实盘仓 | /real | 实盘持仓跟踪 |
| 策略扫描 | /scan-all | 全策略扫描 |
| 扫描记录 | /scan/records | 历史扫描信号 |
| 热点 | /heatmap | 板块热力图 |
| 情绪 | /sentiment | 市场情绪指数(偏热/中性/偏冷) |
| 风险分析 | /risk | 六维风险分档 + 仓位上限(V 型,L5=30%)+ 开新仓许可(v2.52.0) |
| 事件结构 | /events | 财经事件结构化 + 类型占比/多空净分曲线(v2.51.0) |
🔗 推荐使用流程(完整闭环)
- 看大盘:市场真面目 5 指标 + 情绪页(/sentiment)判断仓位环境
- 看板块:ETF 板块监控 + 板块轮动评分找主线(≥80 潜伏区)
- 选个股:137 池 V3 扫描(≥80 强信号)+ 板块成分股 V3/V4 双确认(三阶漏斗)
- 定买点:V3 READY 回调到位日 + 量价收敛/洗盘确认 + 反弹质量分
- 管持仓:量价异常检测(六种信号)+ 破 MA5 退出 + -8% 止损
- 收盘复盘:收盘总结报告 + 交易记录回看