Files
MoFin/docs/v_mr_strategy.md
T
xxm 7a28b9d9dd docs: §32 资金流全市场回填完成——12维数据基础全齐
- 关键发现: 新浪ssl_qsfx_zjlrqs单票返回上市以来全历史(茅台3983天), 现有采集器只取5天是浪费
- 双机分流绕单IP限速: 246跑800只 + Windows 8进程跑3210只(10分钟), 720万行28秒入库
- 最终924万行/3980codes(99.3%), v_weak票覆盖221/222
- 质量校验: 茅台9/24行情+31.57亿/10.8崩盘-31.98亿 与史实吻合
- 东财/新浪口径不同但符号一致(3/3), INSERT OR IGNORE混源可用
- 12维全市场数据: 技术消息行业资金 全部就绪
2026-08-05 02:55:13 +08:00

61 KiB
Raw Blame History

v_mr 策略文档:小盘深超跌均值回复

创建:2026-08-02 引擎版本:v2(合并自 mr_engine_v2.py 状态: 已通过 10y 全市场验证

1. 策略一句话

买入"跌过头的小盘股",等它反弹回均值。与 v_next4(追趋势)互补,专攻震荡市/熊市里被错杀的超跌股。

2. 背景与动机(为什么建这个策略)

  • 翻倍股分析发现:77% 的翻倍股诞生于震荡/中性市,只有 23% 诞生于趋势市。
  • 趋势引擎(v7.1 评分体系)天然只在趋势市出手,震荡市是它的盲区
  • 尝试把趋势引擎改成均值回复(test_vmr/scan_vmr 系列)全部失败——评分体系是趋势导向的(追动量、追突破),改 filters 是硬套,方向就错了。
  • 结论:均值回复必须独立建一套入场逻辑,不走 score/momentum 评分体系。

3. 入场逻辑(v2 最终版)

因子 参数 含义 来源
bias60 ≤ -10%(单边,无下限) 价格比 MA60 低超过 10% = 深超跌 翻倍股起点 bias60≤-15.75%,取 -10 捕获"超跌未崩"区间
rsi_max ≤ 42 RSI 超卖 翻倍股起点 RSI≤44.8
prev_ret60 ≤ -15%(单边,无下限) 60 日跌幅超 15% 翻倍股起点 prev_ret60≤-10%
mom20_max ≤ 5% 20 日动量低(不追已反弹的) 均值回复前提:还在低位
amount_max ≤ 15(百万元) 20 日均成交额 ≤ 1500 万元 = 小盘 翻倍股成交额极小;大票超跌≠错杀
rsi_delta_min ≥ 2 RSI 5 日回升 ≥ 2 = 止跌确认 离线重放发现:不加止跌确认 avg 2.41% → 加后 3.01%
mkt_mode any 不限大盘 10y 验证:sideways 过滤有害(见 §7

次日开盘价入场(信号日收盘确认,次日 open 成交)。

4. 出场逻辑(v2 最终版)

出场 参数 说明
target(止盈) +18% 让利润跑向目标,不截断
stop(止损) -8% 固定止损
time(时间) 25 个交易日 超时按收盘价平仓

关键修复(v1 → v2v1 有 "反弹到 MA20 止盈" 出场(ma20_revert)。实测这是毒药

  • 超跌票 MA20 就在头顶 2-3%,反弹到 MA20 只赚 2-3% 就卖
  • 而止损是 -8%,盈亏比严重倒挂
  • v2 删除 MA20 出场后,avg 由负转正(200 笔测试中 136 笔走 ma20_revert 的 avg +3.29% 看着还行,但大量本该到 +18% 的票被 2-3% 截断了)

5. 参数是怎么定出来的(完整推导链)

  1. 翻倍股共性因子(分析 10 年翻倍股):起点集中在 小盘 + MA60 下方深跌 + 近期跌 + RSI 偏低 + 低动量。
  2. v1 松版基线strategy_lab.py 首版):923,603 笔 / wr 61.4% / avg -0.1% —— 入场太松 + MA20 出场倒挂,白忙活。
  3. 离线重放定参replay_mr 系列,用 92 万入场点重放不同出场规则,秒级测参):
    • 第 1 轮:确认 MA20 出场全负,去掉后 avg 转正;入场收紧显效。
    • 第 2 轮:最紧入场(bias≤-10/amount≤15/prev≤-15/rsi≤42)→ 13,637 笔 avg 2.41%。
    • 第 3 轮:rsi_delta≥2(止跌确认)→ avg 3.01% / wr 53.6%rsi_delta≥3 → 3.15%。
    • 第 4 轮:tp18/sl8/25d → 9,082 笔 / avg 3.16% / wr 54.8%。年度分布健康(2018 熊市 4098 笔 +4.19%)。
  4. 真实 10y 全市场验证mr_engine_v2.py):见 §6avg 3.34% vs 离线预测 3.16%对齐良好

6. 验证结果(10y2016-07-01 ~ 2026-07-24A 股全市场)

指标 数值
交易笔数 21,690
胜率 53.6%
平均收益/笔 +3.34%
平均盈利 +11.9%
平均亏损 -6.56%
平均持仓 16.9 天
组合 10y(等权 5 仓) +332.1%(年化 15.6%,回撤 45.4%
组合 10y(满仓模拟) +208.8%(年化 11.8%,回撤 26.0%
覆盖月份 107 个月,universality 76.0
出场分布 target 5,851+18%)、stop 7,374-8%)、time 8,465+3.09%

年度分布(组合口径)2018 熊市大量出手(10,163 笔);2019 +49%2025 +25%2026 当前 -12.6%(见 §7)。

7. 踩过的坑(重要教训)

  1. MA20 反弹止盈是毒药 —— 均值回复的票反弹空间只有 2-3% 到 MA20,必须让利润跑向 +18%。
  2. bias_min/ret_min 硬截断会漏掉最深超跌 —— v1 用 bias∈[-14,-2] 双端限制,最超跌的票(bias<-14)反而被挡在外面。v2 改单边(只设上界不设下界)。
  3. sideways 过滤(ADX<25 才出手)有害 —— 10y 全市场验证:过滤后收益 206.6% → 147.9%。趋势市里买超跌反弹力度更大,强制过滤掉的是赚钱交易。
  4. MA20 方向过滤无一致规律 —— 2018 熊市大盘 MA20 下抄底反而赚钱(wr 63%),2026 年上下都亏。不能用于过滤。
  5. 2026 年亏损是市场环境问题,不是策略缺陷 —— 2026-05 起全面恶劣(wr 9-24%),v_mr 在这种环境天然吃亏,此时应切 v_next4(2026 +18.9%)。这正是组合互补的意义。
  6. 大盘上下文数据曾缺失 —— sh000001 在 stock_daily 只有 2021-07 起,2016-2020 数据在 sector_index_daily。已回填(2026-08-02),mkt_adx 覆盖从 23% → 90%。

8. 与 v_next4 的分工(组合互补性验证结论)

维度 v_next4(趋势) v_mr(均值回复)
出手时机 100% 大盘 MA20 上方(强趋势市) 83% 在大盘 MA20 下方/震荡市
典型年份 2025 +29.8%、2022 +16.2% 2019 +49%、2021 +23.7%
2018 熊市 0 笔(完全不出手) 10,163 笔(主战场)
2026 趋势市 +18.9%(主力) -12.6%(回避)
股票池 58 只(大市值趋势票) 1,753 只(小盘超跌票)
信号重叠 21 个重叠日/10 年(竞争极少) ——

合并价值v_mr 单独 10y +206.6%,叠加 v_next4 覆盖牛市暴利段后 +302.1%cagr 14.8%dd 26.2%)。两策略按市场周期轮动,互不抢信号。

9. 代码位置

  • 引擎(合并后)strategy_lab.pyrun_mr_backtest()v2 版本,含 skip_stats 统计)
  • 注册strategy_lab.pyregister_mr_strategy()(B 类策略,不进 v7.1 评分体系)
  • 独立副本(历史)mr_engine_v2.pyv2 修复版,已合并,保留作参考)
  • 数据data/mofin.dbstrategy_research 表(version='v_mr',最新一条 = v2 10y 21690 笔)
  • 离线重放脚本/tmp/replay_mr*.py(历史调参用)

10. 运行方式

import strategy_lab as lab
lab.register_mr_strategy('v_mr', 'v_mr: 小盘深超跌均值回复', summary, hypothesis,
    {'bias_max': -10, 'rsi_max': 42, 'ret_max': -15, 'mom20_max': 5,
     'amount_max': 15, 'rsi_delta_min': 2, 'mkt_mode': 'any'},
    {'tp_pct': 0.18, 'sl_pct': 0.08, 'max_hold_days': 25}, slots=5)
r = lab.run_mr_backtest('v_mr', '2016-07-01', '2026-07-24', 913000, save=True, universe='a', period_tag='10y')

⚠️ 注册须在跑测前调用(v_mr 不进 STRATEGIES 持久化注册表)。universe='a' = A 股;'all' 含港股(港股 HSI 上下文另算)。

11. 六步方法论精选调优(2026-08-02 深夜,v_mr 精选版)

背景:实盘扫描器原用"bias60 最超跌取前10"排序——违反六步方法论、无验证、实测证伪corr(bias60,profit)=0.028≈0,最深档 bias<-23.7% 反而最差 avg+1.41%/wr42.8%)。按六步方法论从 21690 笔回测中重新推导。

第1步:挑显著收益票

  • v_mr 基线 21690 笔,收益分层 p50=+1.5% / p75=+18.0% / max=+18.0% / min=-8.0%
  • 显著盈利组 = profit ≥ +18%(即 target 止盈档,5851 笔)

第2步:共同因子(显著盈利组 vs 亏损组)

因子 显著盈利均值 亏损均值 结论
mom20 -14.17 -12.14 盈利组20日动量更负(加速下跌尾声)
rsi_delta 8.86 7.21 盈利组RSI回升更强(止跌确认)
dist_ma20 -5.59 -4.56 盈利组离MA20更远(反弹空间大)
atr_pct 4.16 3.62 盈利组波动更大(弹性足)
mkt_adx 32.88 34.68 亏损组在大盘强趋势时抄底危险
bias60/rsi/prev_ret60 ≈无差异 深超跌≠更好

第3步:正面因子组合全市场重筛

组合 笔数 avg 胜率 盈亏比 覆盖
基线 v_mr 21690 +3.34% 53.6% 1.81 107月
mom20+rsi_delta 双因子 2005 +8.11% 71.4% 2.10 68月
三因子(+dist_ma20) 620 +9.04% 75.6% 2.25 40月
四因子(+atr_pct) 242 +10.56% 79.8% 2.34 26月

第4步:负面因子(四因子组内亏损 vs 盈利)

负面因子 亏损组 盈利组 含义
mkt_adx 40.15 29.43 大盘ADX≥35 强跌市抄底危险
obv_delta -977k +25k 资金流出(OBV<0)必死
bias60 -19.75 -17.67 bias<-22 过深易续跌
prev_ret60 -29.57 -26.26 60日跌超32%易续跌
amount_ma20 8.90 10.43 太缩量流动性差

第5步:正负因子合并

版本 笔数 avg 胜率 盈亏比 亏损 覆盖
四正面因子 242 +10.56% 79.8% 2.34 49 26月
全负面合并 144 +12.73% 88.9% 2.67 16 13月

第6步:稳健性验证(非过拟合)

检查 笔数 avg 胜率
全样本 144 +12.73% 88.9%
去掉2018全年 37 +10.76% 83.8%
去掉2018-10极端月 60 +9.27% 78.3%
  • 年度分布:2018年107笔(74%2018-10单月84笔)、2022年24笔(+13.86%/100%独立验证)、其余37笔
  • 2022 年独立复现高收益 → 不是单一事件过拟合
  • 组合模拟(3槽,扣费)10年 +94.0% / 年化 8.4% / 回撤 8.1% / 执行 27 笔

精选版策略画像

  • 10年 144 笔 = 年均 14 笔 = 每月约 1 笔,完全适合手工操作
  • 单笔毛利 +12.73%、胜率 88.9%、盈亏比 2.67
  • 出场沿用 tp18%/sl8%/25天(后续调优中)

待落地

  • 实盘扫描器排序规则:bias60最超跌取10 → 精选因子组合筛选
  • ST 股不排除(仓位控制即可,老莫 2026-08-02 指示)
  • 出场参数调优(tp/sl/max_hold 对精选组重新扫描)

第6步续:出场参数调优(2026-08-02,网格扫描 tp x sl x hold

对精选组 144 笔用原始K线重放,扫 tp∈{12,15,18,20,25} × sl∈{6,8,10} × hold∈{20,25,30}

Top 组合

tp sl hold avg wr pf
0.25 0.10 30 +15.51% 90.3% 2.35
0.25 0.08 30 +15.45% 88.9% 2.74
0.20 0.10 30 +14.96% 91.7% 2.05
0.25 0.06 30 +14.71% 84.0% 3.41(盈亏比最优)

结论:tp 18→25(利润跑更远)+ hold 25→30(给反弹时间)= 主要提升来源;sl 8-10% 稳健。

选定参数:tp=25% / sl=10% / max_hold=30天

最终版稳健性验证

检查 笔数 avg wr
全样本 144 +15.51% 90.3%
去2018全年 37 +12.18% 81.1%
2022独立验证 24 +15.01% 95.8%
2024 6 +19.17% 83.3%

组合模拟(扣费0.2%往返)

槽位 10年总收益 年化 回撤 执行
3槽 +135.7% 11.0% 10.0% 27笔
5槽 +93.3% 8.4% 6.0% 35笔
全参与MC +43.5% 4.4% 0.8% 98笔

最终版策略画像(v_mr 精选)

  • 入场:6基线条件 + 正面4因子(mom20∈[-20,-14]、rsi_delta≥10、dist_ma20∈[-10,-7]、atr_pct≥4.5+ 剔除4负面(mkt_adx≥35、OBV<0、bias60<-22、prev_ret60<-32
  • 出场tp=25% / sl=10% / max_hold=30天
  • 10年144笔 = 年均14笔 = 每月约1笔,适合手工
  • 单笔毛利 +15.51%、胜率 90.3%、盈亏比 2.35-2.74
  • ST 股不排除(仓位控制,老莫指示)

12. ⚠️ 结论修正:v_mr 系列不作为弱市实盘策略(2026-08-03 六步方法论全面重审)

老莫按六步方法论要求重新推导"真正普适的弱市策略"(标准:去2018后 avg>0 + 覆盖≥80月 + 年度正贡献≥7年)。研究结论:v_mr 家族(含精选版 v_mr_sel)全部不合格,弱市不存在可实盘的选股 alpha

12.1 v_mr 基线为何不合格

  • 基线 avg +3.34% 靠 2018 超级熊市 10163 笔(47% 撑起;去 2018 后 avg +2.14%/wr 49.8%——掷硬币
  • 2018 是 A 股十年一遇(上证 3500→2440),深超跌反弹只在此时有边缘,其余年份信号稀疏且收益平庸(2026 年 avg +0.06%
  • 本质:v_mr 是"2018 型超级熊市探测器",不是可持续策略

12.2 v_mr_sel(精选版)为何不合格

  • 144 笔信号中 2018-10 三天占 78 笔(54%,覆盖仅 14/120 月——完全是一次行情的产物
  • 任何因子筛选逃不开 2018:单因子 rsi_delta≥10 去 2018 后 avg +2.49%(回到基线),mom20 去 2018 后 +2.11%

12.3 全市场弱市选股穷尽验证(无 alpha)

逻辑 弱市日 20日 avg 去2018 结论
全市场随机(基线) +0.36% +0.36% 掷硬币
深超跌(v_mr) +0.38% ≈0 无边缘
相对强势(RSI≥50) ≈0 ≈0 无边缘
收缩突破(DNA) -0.97% -0.57% 负边缘
低PE防御(60日) +1.18% +1.86% 普适达标但年化仅7%,组合3槽-20.7%

12.4 数据支撑的结论

弱市最好的策略是仓位管理,不是选股:弱市(大盘MA20下)随机买入 = 趋势市随机买入(无差别),期望≈0。弱市应降仓/空仓,把资金留给 v_next4 趋势市主战场。

  • 实盘已实现:strategy_lifecycle 6.5 市场阶段降级(trend_down/choppy 买入降级为"关注"
  • v_mr/v_mr_sel 仅作为"极端熊市(ADX极高+深超跌)"的期权式参考,不作为常规配置

12.5 方法论教训

  • 六步方法论第6步"合格评估"必须包含普适性硬标准(去极端年后 avg>0 + 覆盖≥80月 + 正贡献≥7年),只看整体 avg/胜率会被极端年份欺骗
  • 回测 10 年含 2018 这种极端年,任何"深跌反弹"类策略都会被拉高指标造成假象——必须做去极端年稳健性检查

13. 12维框架深挖:大盘ADX择时是弱市edge的关键前提(2026-08-03

按老莫 12 维分析理论(大盘/行业/个股 × 消息/基本/技术/资金)系统验证,发现第 2 步"个股技术无区分"的根因是遗漏了【大盘技术面】维度。

13.1 核心发现:大盘 ADX 是弱市择股的分层器

全市场 10 年弱市日(大盘MA20下)按大盘 ADX 分桶,60日收益:

大盘ADX桶 样本 avg60日 wr 赢家率(≥26.4%)
<20 118670 +1.63% 45.6% 9.8%
20-25 30113 -1.24% 39.6% 6.3%
25-30 54202 +4.89% 51.0% 14.7%
30-40 74666 -0.04% 41.4% 8.2%
≥40 85291 -0.10% 42.2% 10.0%

甜区 = 弱市 + 大盘ADX∈[25,30](趋势刚转弱/盘整初期):avg +4.89%(年化≈30%)、wr 51%、赢家率 14.7%,远超其他区间。

13.2 甜区内叠加个股超跌因子(12维:大盘技术 × 个股技术)

组合 avg60日 去2018 正年
甜区(基线) +1.67% +2.19% 5/11
甜区+bias60<-20 +4.77% +6.78% 9/11
甜区+bias60<-20+RSI<30 +5.04% +5.67% 10/11

13.3 结论与落地建议

  • 弱市"深超跌反弹"的 edge 真实存在,但前提是大盘 ADX∈[25,30]——这是 v_mr 缺失的大盘前置条件(v_mr 用 mkt_mode='any',任何弱市都扫,信号被 ADX≥30 的强跌市污染)
  • 落地建议:现有 v_mr 扫描器加入大盘 ADX 门控(仅 ADX∈[25,30] 时扫描),提升单笔质量
  • 局限(诚实):单笔 edge +5.67% 真实但薄,信号密集且无排序因子,组合层面年化仅 3%(2018外)——不足以上线为独立实盘策略,价值在"认知 + 门控改进"

14. v_weak_final:六步方法论完整产出的弱市策略(2026-08-03 定稿)

按老莫六步方法论 + 12维框架(大盘/行业/个股 × 消息/基本/技术/资金)完整执行 1-6 步,产出可推荐弱市策略。

策略定义

条件
大盘 弱市(sh000001 < MA20+ 大盘ADX ∈ [25,30](甜区)
个股正面 bias60 ∈ [-35, -20](深超跌但不过深)+ RSI ≤ 25(极度超卖)
个股负面剔除 5日跌幅 > -3%(剔除阴跌,只留急跌/恐慌盘)
出场 tp=30% / sl=12% / max_hold=40日

验证结果(10y 全市场 A股)

指标 数值
交易笔数 2,649
单笔均收益 +10.66%
胜率 68.4%
正贡献年份 9/112017/18/19/20/21/22/24/25/26正,2023略负)
去2018 avg +5.60%967笔/37月)
组合5槽(扣费) +115% / 年化8.8% / 回撤32%

六步方法论推导链

  1. 赢家:弱市日60日≥+26.4%(p90) = 35,490信号/100月覆盖(每年都有,非2018独有)
  2. 共同因子:12维框架发现大盘ADX是分层器(ADX25-30 avg+4.89% vs 其他区间≈0);个股技术单独无区分(漏维度)
  3. 全市场筛:甜区+深超跌+RSI<30 → 7,254信号 avg+5.19%
  4. 负面因子:筛选集内亏损vs盈利对比 → 过深bias60(<-35)/RSI偏高(>25)/5日浅跌(r5f>-3) 是亏损共性
  5. 正负合并:三负全剔 → 2,651信号 avg+9.84%/wr66.1%
  6. 调参:出场tp25→30/sl10→12/hold40 → avg+10.66%/wr68.4%

与 v_mr 对比(全面胜出)

指标 v_mr v_weak_final
avg +3.34% +10.66%
wr 53.6% 68.4%
去2018 +2.14%(掷硬币) +5.60%(真实)
组合年化 4.6% 8.8%

关键认知(可复用)

  • 弱市选股 edge 真实存在,前提=大盘ADX∈[25,30](趋势刚转弱的盘整期),这是 v_mr 缺失的大盘前置
  • 负面剔除 > 正面排序:筛选集内"亏损票共性"(过深/RSI偏高/阴跌)比"挑最好"更有效
  • 信号适中(年均265笔,每月约22笔,部分可人工)

15. 仓位研究:等权6槽自然序为最优(2026-08-03 全面测试)

对 v_weak 做科学仓位研究(非拍脑袋):强度评分单调性验证 + 6 种仓位方案 × 3-8 槽全扫描 + 排序选票对比 + MC 随机对照。

15.1 强度评分单调性(分级仓位的前提验证)

r5f/RSI/bias60 合成强度分,十等分:D1(+1.24%/41%) → D10(+18.17%/90.5%) 完美单调(差距15倍)。

15.2 分级仓位 × 槽位 全扫描结果

方案 最优槽 年化 总收益 回撤 收益/回撤
等权(基准) 6 9.6% 131% 27.6% 4.7
等权 5 8.8% 115% 32.1% 3.6
连续Kelly 5 7.5% 92% 29.2% 3.2
两档0.5/1.5 5 5.0% 56% 26.7% 2.1
三档0.3/1/2 5 4.9% 54% 27.9% 1.9

结论:等权 > 任何分级加权。boost 加权虽降回撤(32%→24-27%),但收益损失更大(115%→53-56%)。强度分单调但组合层面分级无益。

15.3 排序选票对比(关键反直觉发现)

选票方式 总收益 年化
自然序(插入序) 115% 8.8%
score高分优先 17% 1.7%
score低分优先 4% 0.5%
MC随机(30次均值) 87% 7.0%

自然序 >> 任何排序:v_weak 信号按日期自然排列时,同天先出现的恰是更强超跌(隐式质量排序)。高分优先排序反而破坏入场节奏。

15.4 最终仓位策略

  • 等权 6 槽100万/6≈16.7万每票),自然序入场(不做 score 排序、不做 boost 分级)
  • 10年:总收益+131% / 年化9.6% / 回撤27.6% / 收益回撤比4.7
  • 单笔:avg+10.66% / wr68.4% / 去2018+5.60% / 正年9/11

16. 回撤优化:每月≤8信号(2026-08-03,回撤27.6%→19.4%

用户质疑回撤27.6%过大。系统诊断 + 全面测试后找到最优方案。

16.1 回撤根因诊断

  • 最大回撤区间 2023-02 ~ 2024-0818个月阴跌),312笔 wr仅36.2%
  • 打击点:2024-01微盘流动性危机(22笔全灭 wr0%/avg-12%)、2023-03(13%)、2024-05(20%)
  • 结构性缺陷:甜区(ADX25-30)持续出手,但2023-2024是阴跌市,RSI≤25深超跌无反弹,止损-12%反复被打

16.2 降回撤方案全测试(诚实记录)

方案 结果
大盘RSI回升过滤 信号2649→394avg+10.66%→+3.01%(甜区大部分日不回升)
大盘MA20斜率 回撤期纹丝不动
收紧止损12→8 无改善(回撤是环境非单笔)
高槽位8-20 回撤仍27-32%,年化反降
同月信号≤8 回撤19.4%,年化9.6%→16.7%

16.3 最终方案:v_weak_8

  • 每月最多8个信号(自然序=最强超跌优先),等权6槽
  • 回测:301笔 / 组合6槽 +308% / 年化15-16.7% / 回撤19.4% / 收益回撤比15.9
  • 单笔 avg+4.83% / wr54.8% / 去2018 +6.00%(236笔/37月) / 正贡献10/11年
  • 每月8笔完全人工可操作

16.4 认知

  • 深超跌抄底的回撤来自集中出手而非单笔亏损——同月限8让资金不"一篮子抄底",收益/回撤4.7→15.9
  • 择时过滤(大盘RSI/斜率)对阴跌市无效,2024-01微盘危机大盘指标是假回升

17. 入场修正:只买"下方有支撑"的票(2026-08-03,老莫洞察)

老莫指出:"支撑太远的票根本不该买"。验证并落地。

17.1 洞察验证(距20日低点分桶)

距20日低点 n avg wr
<5%(近支撑) 2258 +10.93% 70.0%
5-10% 351 +9.73% 59.5%
10-15% 36 +4.38% 55.6%
15-25% 4 -2.04% 50.0%

结论:支撑越近越好。距前低<5%的票(跌到近期底部、下方有承接)反弹最有力(+10.93%/wr70%);>10%的还在下跌途中、无支撑(avg崩至+4%以下)。

17.2 修正后入场条件

原 v_weak 条件 + 距20日低点 <5%(剔除"还在下跌途中、下方无支撑"的票)

17.3 修正后表现

指标 原v_weak_8 修正版
单笔 avg +4.83% +5.13%
胜率 54.8% 57.5%
去2018 +6.00% +6.34%
正贡献年 10/11 10/11
组合6槽 310%/16.8%/19.4% 310%/15.1%/19.4%

17.4 止损结论(前文S1/S2测试的教训)

  • 弱支撑S1距入场仅1.6%→wr崩至17.9%(太近,一买就被扫)
  • 强支撑S2可能在-20~-40%→最大单亏-41.6%(太远=没止损,扛单扛到死)
  • 深超跌票下方无可靠技术支撑,止损用固定-12%(回测最优),入场用"距前低<5%"筛选确保有承接

18. 止损+RR 正式定稿(2026-08-03RR维度验证)

老莫要求:①支撑太远不买(已落地§17);②必须考虑RR(Risk/Reward盈亏比)。本节省完整验证。

18.1 止损×RR 全组合扫描(7止损 × 3RR = 21组合,每月≤8)

止损 RR avg wr 去2018 max亏
固定-12% 2.5 +5.13% 57.5% +6.34% -12.0%
固定-12% 2.0 +5.11% 58.9% +6.23% -12.0%
固定-12% 3.0 +5.17% 56.5% +6.22% -12.0%
ATR×3 3.0 +4.61% 57.2% +5.51% -22.4%
前低-8% 3.0 +4.24% 51.0% +5.04% -12.2%
前低-6% 3.0 +3.73% 48.3% +4.40% -10.3%

18.2 为什么"跌破前低止损"不如固定-12%(诚实结论)

  • v_weak 入场要求距前低<5%(§17),跌破前低止损距离仅4-8%
  • 深超跌高波动票的正常波动就达4-6%,支撑止损太紧频繁被扫(wr 42-53% vs 固定58.9%
  • 支撑筛选已在入场侧完成(确保下方有承接),止损侧用固定-12%控制单笔风险

18.3 正式止损+止盈逻辑

  • 止损:入场价 -12%(盘中触发即出)
  • 止盈:入场价 +30%= RR2.5 × 12%止损距离,满足盈亏比≥2:1要求)
  • 超时40个交易日按收盘平仓
  • 同日冲突:止损优先
  • RR 验证:止盈/止损 = 30/12 = 2.5 ≥ 2

18.4 入场筛选(完整)

弱市(MA20下) + ADX∈[25,30] + bias60∈[-35,-20] + RSI≤25 + 5日急跌≤-3% + 距20日低点<5%(下方有支撑) + 每月≤8 + 等权6槽

19. 三次评估流程优化:入场重评确认(缩量+收阳)(2026-08-03

按老莫"三次评估流程"(选股→入场重评→出场重评)重构回测,找到入场重评的确认条件。

19.1 三次评估回测探索

  • 3stage初版(等回调买入): wr 48.2%——等回调=等继续跌,错过反弹不回调的票
  • 3stage实盘对齐(深套/弱势豁免+swing MA10出场): wr 54.9%——MA10波段对深超跌高波动太敏感(97%被swing平掉)
  • 结论: v_weak深超跌反弹票不适合实盘swing/MA10出场体系,需简单出场(tp/sl/time)

19.2 入场重评确认最优解(信号日12维确认)

确认条件 n avg wr 去2018
基线(信号日直接买) 292 +5.13% 57.5% +6.34%
当日收阳 204 +4.43% 54.4% +6.40%
缩量<1.0 221 +2.82% 53.8% +3.56%
缩量+收阳 136 +7.00% 61.8% +8.46%
RSI3日回升 115 +3.35% 48.7% +4.82%
大盘RSI<45 172 +2.86% 47.7% +4.57%

最优: 缩量(<1.0)+收阳 双确认——缩量=抛压衰竭, 收阳=资金进场, 过滤弱信号。

19.3 v_weak 最终形态(三次评估)

  • Stage1选股: 甜区(弱市+ADX25-30) + bias60∈[-35,-20] + RSI≤25 + 5日急跌≤-3% + 距前低<5% + 每月≤8
  • Stage2入场重评: 当日收阳 + 缩量(<1.0) 确认才买入
  • Stage3出场: 固定 tp30%/sl12%/hold40(简单出场,不适合swing/MA10
  • 结果: 136笔/avg+7.00%/wr61.8%/去2018+8.46%/正年8/11/6槽ret163%/dd18.7%

20. C 机器学习探索:时序外验证(2026-08-03)

老莫要求 C(机器学习)在三次评估框架内试,不偏离实盘路径。用纯Python逻辑回归(无sklearn,防环境依赖)。

20.1 设计

  • 样本: 2260 个 v_weak 候选(甜区+深超跌+RSI+急跌+距前低<5%),12维特征
  • 标签: 未来40日是否达+30%止盈(正例率34%)
  • 时序外: 前70%(2016-2023)训练, 后30%(2024-2026)测试——防过拟合

20.2 结果

概率阈值 精确率 召回率 预测买入
0.45 0.511 0.446 186笔
0.40 0.483 0.596 263笔
基线正例率 0.34

时序外有效: 逻辑回归把止盈精确率从基线34%提到51%(+17pp),非过拟合。

20.3 特征权重(新洞察)

特征 权重 含义
mkt_adx +0.695 大盘ADX越高越倾向止盈(甜区内接近30上沿反弹更确定)
r10f -0.278 10日跌越深越好(恐慌释放充分)
r20f +0.195 20日动量微正(企稳)
dist_lo20 +0.187 距前低略远(站稳)
rsi_delta -0.150 RSI回升反而不利(已反弹的追高风险)

20.4 结论

  • ML 时序外有效(51% vs 34%),但不优于"缩量+收阳"硬规则wr 61.8%
  • 硬规则可解释、无模型维护成本,v_weak 保持硬规则
  • ML 发现的新因子(mkt_adx接近上沿、r10f深跌、rsi_delta为负)作为未来增强方向记录

21. 仓位优化:每月≤30 + 等权8槽(2026-08-03

老莫指出136笔/10年少、回撤18.7%高、问仓位控制影响。系统扫描 每月上限×槽位 矩阵。

21.1 仓位矩阵(每月上限 × 槽位)

月上限 n 年化 总收益 回撤 收益/回撤
8 136 6 12.0% 163% 18.7% 8.7
8 136 8 12.2% 166% 19.3% 8.6
30 234 8 12.8% 178% 16.4% 10.9
30 234 10 12.5% 172% 17.5% 9.9
5 100 4 10.9% 142% 20.4% 6.9

仓位结论:8槽最优。4→8槽: 年化+2pp, 回撤-4pp, 收益/回撤6.5→10.9。等权分散是核心。

21.2 最终 v_weak 配置

  • 每月≤30 + 等权8槽 + 缩量收阳确认 + tp30/sl12/40
  • 234笔/10年(年均23笔) / avg+7.17% / wr62.4% / 去2018+8.02% / 正年8/11
  • 组合8槽: +178% / 年化12.8% / 回撤16.4% / 收益回撤10.9

21.3 对比(解决三个质疑)

指标 原(月8/6槽) 最优(月30/8槽)
笔数 136 234(+72%)
年化 12.0% 12.8%
回撤 18.7% 16.4%
收益/回撤 8.7 10.9

§22 消息面补数据研究:同花顺 API 定向拉取能力(2026-08-04

老莫提醒:现代 web 应用是"拉到最后触发拉取下一批"(无限滚动),不是"下一页"翻页。且做过的事要记录(§ + 代码块规范)。本节固化消息面补数据的研究结论。

§22.1 同花顺 timeline API 定向拉取能力(实测验证)

接口https://news.10jqka.com.cn/timeline_web/web/v1/news/list

分页参数

  • marketId: 17=上交所(6开头), 33=深交所(0/3开头)
  • code: 6位股票代码
  • size: 每页条数(默认20实测可用100,减少请求数)
  • offset: 秒级时间游标publishTime/1000),语义=严格排他上界(返回该时间戳之前的新闻)

实测确认(600519 茅台)

  • offset=2024-06-01 00:00 → 返回 2024-05-31 21:49:29 及更早新闻(offset 之前的
  • offset=某条新闻的确切秒 → 该新闻自身不被返回(严格排他)
  • 翻页连续无重叠无缺口(page1末 05-30 08:02:19 → page2首 05-30 06:41:30
  • 历史深度可回溯到 2011 年offset=2015 时返回 2011/2013/2014 新闻)
  • startTime/endTime/start/end/beginTime 等参数全部无效——API 只支持 offset 单边上界

窗口化拉取算法(用于定向补某时间段新闻):

  1. offset = 窗口终点 + 1秒(排他上界,包含终点时刻)
  2. 往回翻页(size=100 减少请求)
  3. 当本页最后一条 publishTime < 窗口起点 → 停止
  4. 过滤只保留 [起点, 终点] 区间内的新闻
  5. 实测:6 周窗口 19 页(size=20)→ size=100 只需 ~4 页,0 条越界

§22.2 消息面补数据方案:定向拉取(非全量)

原则:不全量补全市场新闻,而是先定赢家波段,只补相关股票在相关时段的消息

首批研究对象:涨幅≥80% 的极端波段,每年取涨幅前 20 → 220 个波段,210 只股票,年份分布均衡(2016-2026)。

定向窗口:波段起点前 7 天 ~ 起点后 40 天(约 47 天),覆盖入场前后的消息面。

执行结果news_backfill_window.py 已完成首批拉取:

  • 210 只 × 波段窗口
  • 共入库 9471 条新闻stock_news 表,source=同花顺iNews
  • 单票窗口拉取约 3-8 页(size=20),全程约 20-30 分钟

§22.3 12 维消息面可补的结论

维度 数据源 历史覆盖 状态
个股消息面 同花顺 ths_news.py 2011+(实测) 可补
个股消息面(近期) 东财 search-api 近6个月 ⚠️ 仅近期
大盘消息面 macro_context_collector.py 仅实时 硬缺口
行业消息面 signal_news 仅实时 硬缺口

消费端strategy_lab.py 的 prepare_news_context() + news_mult=2.0 已启用,补数据直接进回测增益。

§22.4 已固化的采集脚本

/home/hmo/MoFin/deploy/profile-scripts/ths_news.py        # 同花顺翻页采集(全量backfill+daily
/home/hmo/MoFin/deploy/profile-scripts/news_collector.py  # 东财翻页采集(近6个月)
/tmp/news_backfill_window.py                              # 定向窗口拉取(赢家波段相关时段)

§23 消息面分析最终结论:数据补全但无选股价值(2026-08-04)

老莫指导补全消息面数据(4001只赢家波段股×相关时段,401万条新闻)。全量分析后结论:消息面不可用作选股因子

§23.1 全量消息面数据

  • 4001 只赢家波段股 × 波段起点前后窗口(起点-7天~+40天)
  • 401 万条新闻入库(stock_news 表)
  • 覆盖:同花顺iNews(主)+ 东财(近6月补充)

§23.2 消息面 vs 波段收益(全量,诚实结论)

情绪 n avg_gain 判断
利好(positive) 198 +52.8% 无显著优势
中性(neutral) 941 +56.4% 反而最高
利空(negative) 153 +49.5% 仅略低
无新闻 ~4100 ~51.5% 基线

关键发现

  1. 新闻情绪与波段收益几乎无关联——利好52.8% vs 利空49.5% vs 中性56.4%,差异不显著
  2. 之前"有新闻波段+126.5%"是小样本噪音248只子集),全量后消失
  3. 反向因果:大涨的票更可能有新闻(新闻是结果不是驱动)

§23.3 12维消息面最终定位

  • 数据已补全(消息面维度不再缺)
  • 不能作为选股筛选因子(无统计显著关联)
  • ⚠️ 可作辅助参考/排除:波段起点有重大负面公告(监管处罚/业绩暴雷)的谨慎——但数据验证排除信号也弱

§23.4 方法论教训

  • 小样本假象248只子集的"新闻+大涨"关联在全量后消失——必须先全量再下结论
  • 反向因果陷阱:消息是涨的结果不是原因,不能用"涨得多的有新闻"反推"有新闻的会涨"
  • 数据补全 ≠ 策略价值:补了400万条新闻,证明消息面在波段选股上无稳定规律——这是有价值的研究结论(证明此路不通)

§24 新闻与上涨的时间关系:先导反而降低收益(2026-08-04)

老莫问:新闻发布时间和上涨开始时间有什么关系?分析发现:新闻更多是滞后报道,先导新闻反而降低收益

§24.1 新闻发布时间与波段起点的时间差分布

时间关系 占比 含义
新闻在先>7天 33.3% 新闻发布7天以上后股票才涨(先导)
新闻在先1-7天 10.2% 先导
新闻当天 2.2% 引爆
新闻在后1-7天 12.5% 滞后报道
新闻在后>7天 41.8% 滞后报道

平均时间差 -1.5天(新闻略滞后);先导43.5% vs 滞后54.3%。

§24.2 先导新闻数与收益的关系(关键发现)

先导新闻数 avg_gain
无先导 +59.5%
1条先导 +48.8%
2条先导 +49.7%
3+条先导 +49.9%
纯滞后(无先导) +64.6%

结论

  1. 无先导新闻的波段收益最高(+59.5%)——先导新闻不但不预测大涨,反而抑制收益(有先导49.8% vs 无先导59.5%
  2. 纯滞后(新闻只在涨后报道)的波段收益最高(+64.6%)——再次证明"新闻是涨的结果"
  3. 先导新闻越多,收益略降——新闻密集=高关注=拥挤交易,推高后回落

§24.3 消息面不能作选股因子的三重铁证

  1. §23:有新闻/无新闻收益无差异(全量数据)
  2. §23:利好/利空情绪无显著差异
  3. §24先导新闻反而降低收益——"没新闻盯上的票涨得更猛"

§24.4 这解释了 v_weak 为什么用技术面能赚钱

v_weak 用"深超跌+缩量+收阳"选的是没被新闻盯上的超跌票(低关注度、无先导新闻、非拥挤交易),这些票反弹空间大。新闻先导的票是高关注拥挤交易,容易冲高回落。技术面避开"新闻拥挤度",正是 v_weak 的优势来源。

§25 卖点研究:波段终点因子画像 + 出场机制验证(2026-08-04

老莫质疑:①Stage3 机械出场(tp30/sl12/40)是否合理、是否符合实盘"卖前12维重评"流程? ②v_next4 先于六步法/12维框架,是否还有调优空间?③v_weak 真的是最优吗? 核心提醒:研究要准确研究最佳买卖点(可多个/分仓)的具体因子,不要机械划百分比/时间区间硬凑。

§25.1 波段终点数据重建(58135 波段补全终点画像)

  • 之前 wave_starts.json 只存波段起点因子(买入点画像),无终点。
  • 本次重建 /tmp/wave_ends.json58135 个 zigzag(8%) 波段补全终点因子: 结束日期/价/涨幅/持续天数 + 终点处 rsi/bias20/bias60/量能(surge)/5日涨幅/连涨天数/距20日高/大盘ADX/大盘RSI + 峰后5/10/20/40日回撤 + 20日内是否创新高(假顶标记)。
  • 波段终点画像(中位):涨幅+42.2%、持续22天、RSI 70.5、bias20 +19.6%、量能1.42(放量见顶)、连涨3天、大盘ADX 33.7。
  • 峰后回撤(从峰顶)5日-10.8%、10日-13.5%、20日-16.7%、40日-21.0% —— zigzag 峰是真实的顶,卖出点有依据。
  • 假顶率 32%20日内创新高),真顶 68%。

§25.2 真顶 vs 假顶:单因子无法区分(诚实结论)

因子(中位) 真顶(68%) 假顶(32%)
RSI 70.4 70.7
bias20 +19.3% +20.5%
量能surge 1.42 1.41
连涨天数 3 3
大盘ADX 33.6 34.4
  • 单因子在"峰顶那一刻"分不出真假顶——顶是事后定义的(zigzag 需要 8% 回落确认)。
  • 但这不代表卖点研究失败:真正的决策点不是 zigzag 峰顶,而是"涨到+30%那一刻"tp 触达时)。

§25.3 +30%时刻分析(58133 样本):分仓卖出的数学依据

  • 73.3% 的波段在 +30% 后还会创新高(峰在+30%后),平均还能涨 18.6%,中位 10.1%。
  • 但 post_min20 中位 -9.2%46% 的票 20 日内回撤超 -10%。
  • 数学:全卖在+30% = 放弃 73% 票的后续涨幅(中位+10.1%);全不卖 = 46% 回撤超-10%。分仓可两头吃。
  • 涨速是强区分因子:≤5天到+30% 峰后还能涨 21.1%(快涨=强动能,不该全卖);>30天仅 9.3%(慢涨=弱动能,该落袋)。
  • bias20 强区分<10% 回撤小(-6.1%);≥25% 弹性大但回撤深(-13.1%)。
  • 无效因子RSI@+30%9.9~10.1%全平)、量能、连涨天数——在+30%时刻无区分度。

§25.4 v_weak 234笔实单的卖点真相

  • 只有 68/23429%)触达+30%——v_weak 选的是深超跌慢反弹票,多数靠 time(40日) 或 stop 出场。
  • 触达+30%的中位耗时 29.5 天(vs 全市场 21.4 天)——v_weak 的票没有"快涨"类别
  • 触达后:60日峰值收益中位 +50.5%(一半的票还能冲+50%),但 20日回撤 -10.7%。

§25.5 出场机制严格回测(v_weak 信号全量 + 每月30 + portfolio_sim

出场 单笔avg 6槽 8槽 10槽
机械 tp30/sl12/40(现版) 6.91% 194.7% 181.4% 170.4%
分仓(半仓tp+半仓trail8%) 7.01% 173.9% 160.8% 157.1%
全移动止盈 trail8% 7.09% 169.1% 152.0% 152.9%
  • 机械出场在 6/8/10 槽全部最优(非实验假象,三口径一致)。
  • 原因:组合资金效率主导。移动止盈/分仓延长持仓,8槽组合资金周转率下降,复利受损。
  • 单笔最优 ≠ 组合最优v_weak 深超跌慢反弹票,+30%后继续持有的期望收益(中位+10%但回撤-11%)不足以补偿资金占用。
  • 结论:对 v_weak 这类票,+30% 机械止盈就是组合最优卖点——不是硬凑因子,是资金效率的自然结果。

§25.6 入场侧验证(严格对齐复现)

  • 严格对齐 v_weak 三次评估流程复现:信号日收阳+缩量确认 → 235笔/avg 6.91%/wr 63.4%(与库里 234笔/7.17%/62.4% 一致)
  • 对比"次日确认"4.56%)和"无确认"3.56%):信号日确认是最优——入场侧已是最优。
  • 全市场(无甜区)扫描发现:起点收涨 avg 5.27% vs 急跌 3.30%,放量 1.0-1.2 优于缩量——但叠甜区后贴底+缩量仍然最优(甜区是前提)。

§25.7 对老莫三个质疑的回答

  1. Stage3 机械出场"不合理"的质疑:经严格回测,机械出场在组合口径下确实最优(资金效率论据)。但实盘"12维出场重评"的价值不在单笔收益,而在风险控制(大盘转坏/消息面恶化时提前离场)——组合回测无法体现,需实盘验证。
  2. v_next4 调优空间:确认存在——它先于方法论,出场是 swing MA10 机械规则,从未做过终点因子研究;10y 仅103笔/5槽cagr 4.6% 弱于 v_weak(10.7%)。按六步法重走 v_next4 是下一步(趋势市赢家的买卖点)。
  3. v_weak 是否最优:入场侧已最优(信号日确认验证);出场侧组合口径下机械已最优。剩余优化空间在 v_next4 重做,不在 v_weak 微调

§25.8 数据与脚本位置

  • /tmp/wave_ends.json58135波段终点)、/tmp/tp30_moments.json58133个+30%时刻)
  • /tmp/wave_ends.py(终点重建)、/tmp/tp30.py+30%时刻)、/tmp/strict_cmp.py(严格对齐)
  • /tmp/final_cmp.py、/tmp/scale_cmp.py(组合口径出场对比)

§26 v_next4 六步法重做研究(2026-08-04

老莫质疑:v_next4 先于六步法/12维框架诞生,是否有调优空间? 结论:有——但不是换入场因子(赢家采样陷阱),而是调优信念权重结构。

§26.1 趋势市波段起点画像(15639 个,大盘MA20上方的赢家)

  • 趋势市赢家起点特征:贴MA60上方(bias60≈-2.7%) + RSI中等(46.6) + 大盘ADX低(20.7,趋势酝酿期) + 大盘RSI健康(56.7)——是"趋势回踩/启动点",不是超跌抄底。
  • 与弱市起点(RSI 37/深跌-10%/大盘ADX 47)完全不同——两个市场状态需要完全不同的选股逻辑,验证了 v_weak(弱市)+v_next4(趋势市) 分工的必要性。

§26.2 赢家采样陷阱(重要方法论教训)

  • 从趋势市赢家起点归纳三因子:bias60[0,5)+r20f[0,5)+shrink[1.0,1.2) → 赢家集内涨幅均值165%/中位114%/p90 329%/大赢家75%。
  • 但全市场实时筛股完全失败avg -0.3%/wr 40%(信号爆炸8万+,正例率被稀释)。
  • 原因:wave_starts 是事后采样(只含最终涨≥30%的波段起点),"先知道答案再找特征"。
  • 教训:赢家采样归纳的因子必须用全市场实时回测验证才能落地。v_weak 能成功是因为甜区(大盘ADX 25-30)先压缩了宏观状态。

§26.3 v_next4 实单103笔因子分析(有效发现)

组合 n avg wr 解读
dist_ma20[5,10] × ma20_slope<-2 12 24.64% 92% 回调中突破(最强)
RSI 60-70 × dist_ma20[10,15] 19 32.02% 68% 强势突破买点
RSI 60-70 × dist_ma20[5,10] 13 -5.49% 31% 追高陷阱(RSI高+贴均线)
RSI 50-60 × dist_ma20[5,10] 35 13.62% 66% 回调企稳买点
  • 但全市场验证单因子组合同样失败(avg -0.6~-3.2%)——v_next4 的 alpha 不在单因子,在 v8.1 评分体系+信念叠乘

§26.4 信念叠乘是真正 alpha

boost n avg wr
4.03+信念命中) 26 25.89% 92%
2.01-2信念) 44 10.33% 61%
1.0(无信念) 33 8.24% 42%
  • flow_delta>0:10笔 100% wr(已验证最强信念)
  • 行业ADX>25:28笔 wr89%(有效,但可能限制收益弹性)
  • DNA24笔 wr62% vs 无 63%——几乎无效,DNA×2 应降权

§26.5 出场侧:swing 波段体系有效

出场类型 n avg wr 中位
swing_re(破MA10出→收回再进) 21 32.79% 86% 25.37%
swing_out(破MA10出) 42 11.18% 67% 5.56%
stop 40 6.04% 48% -3.00%
  • 23 笔 >30% 大赢家(含 181.3%/157.7%)主要来自 swing_re 再进场——波段体系捕捉多波行情的能力是核心价值

§26.6 结论:v_next4 优化方向(六步法第6步:细调参数)

  1. DNA×2 信念降权(无区分度 62%vs63%)——节省的权重给 flow_delta/行业ADX
  2. flow_delta>0 强化100%wr 最强)
  3. 行业ADX>25 维持wr89% 有效)但验证是否限制弹性
  4. boost 封顶结构优化(4.0 已验证 wr92%,可探索提高封顶或中间档)
  5. swing 出场保留(大波段捕获机制,优于固定出场)
  6. 不做:换入场单因子(已证明赢家采样陷阱)

§27 v_next4 适用范围真相 + 信念权重调优(2026-08-04

变体调优过程中发现比调优本身更重要的事实:v_next4 从未经过全市场验证

§27.1 重大发现:v_next4 的全部历史验证都在 267 池上(非全市场)

  • 备份时间线(data/backups/):stock_daily 代码数 07-29=272、07-30~08-01=520、08-02=4266(全市场扩表)
  • v_next/v_next3/v_next4 的全部 2y/5y/10y 回测(2026-07-30~08-02 凌晨)都跑在扩表前的小库上:
    • 当时 stock_daily 520 codes 中 ~253 只是港股(5位0开头),universe='a' 过滤后 A 股仅 ~267 只(204 科创板 + 36 沪市 + 其他)
    • 即 MoFin 实盘跟踪池——与实盘 watchlist_stocks 的构成一致(688/603 为主)。
  • strategy_research 记录佐证:v_next4 全部记录 total_stocks_screened=267v_mr08-02 10:18 扩表后)screened=4013。

§27.2 全市场复跑:v8.1 评分体系池外完全失效

口径 trades wr avg 3槽组合 full ret
池内复现(261只) 108 61.1% 12.65% +23.1% +79.5%
库里记录(267池) 103 63.1% 13.59% +57.6% +81.6%
全市场(4001只) 1427 35.9% 2.65% -34.3% +36.6%
  • 池内 vs 全市场:wr 61%→36%、3槽组合 +23%→-34%——v8.1 的 edge 严格依赖跟踪池的票质(科创板+沪市大盘)。
  • 池内复现与库里记录的微小差异(108 vs 103 笔)来自 08-04 新闻回填(新闻信念因子全周期可用性改变)。
  • 结论:v_next4 是"池内有效策略",不是"全市场策略"。组合页数字(103笔/63.1%)是池内口径——对实盘(跟踪池=生产范围)有效,但不能外推。

§27.3 信念权重变体调优(池内 10y,内部一致口径)

变体 3槽 ret 3槽 dd full ret full dd
v_next4 基准 23.1% 23.4% 79.5% 5.9%
A: DNA×1 降权 20.4% 21.9% 75.7% 3.5%
B: flow×3 强化 28.6% 23.4% 79.9% 5.9%
C: cap×6 提高 23.1% 23.4% 80.5% 5.9%
D: 三者组合 25.7% 21.9% 78.0% 3.5%
  • DNA 降权反而变差full 75.7% vs 79.5%)——§26 的"DNA 无区分应降权"被 106 笔噪声误导:DNA 虽不区分胜率,但 ×2 仓位对收益有正贡献。DNA 权重维持 ×2
  • flow×3 是唯一正差异3槽 +5.5pp),但 full 口径无差异(79.9% vs 79.5%)——疑似噪声,108 笔样本不足以确认。
  • cap×6 无影响(封顶×4 极少触发)。
  • 结论:108 笔样本下所有变体差异都在噪声范围内,信念权重无显著调优空间。v_next4 现有配置即为局部最优。

§27.4 对组合策略的修正认知

  1. v_weak(弱市):全市场验证(4007只 screened 证据强度高
  2. v_next4(趋势市):仅池内验证(267只)⚠️ 但实盘扫描范围=跟踪池,池内数字对实盘有效
  3. 两策略验证口径不对称——v_next4 若要声称"全市场趋势策略",需要在全市场上重新推导(v8.1 评分在全市场失效,需重构);若实盘范围就是跟踪池,则现有数字可用
  4. 行动项:组合页 v_next4 卡片应标注"适用池:系统跟踪池(267只)";v_next4 全市场化的重构是独立的后续课题(如果要的话)

§28 市场周期分策略方案评估(2026-08-04)

老莫问题:分市场周期(牛/熊/震荡)采取不同策略的方案是否正确?能否更细分?能否拓展到行业/概念粒度?

§28.1 赢家口径(58135 波段起点):ADX 细分差异小

  • 大盘MA20上:各 ADX 桶波段涨幅 54.557.2%(全平);MA20下:48.152.2%(全平)。
  • 上 vs 下有 ~5pp 差异(55.9% vs 50.9%)——主分类(上/下)有效,ADX 细分在赢家层面无增量

§28.2 信号口径(任意买入前瞻收益,400股采样):细分有真实价值

格子 r60均值 r60胜率 解读
下+ADX15-20 -3.72% 35.8% 下跌中继,接飞刀区(最危险)
下+ADX25-30 +0.49% 42.6% v_weak 甜区
下+ADX>=40 +3.51% 48.9% 恐慌极值,均值回复区(基准最好)
上+ADX20-25 +1.07% 46.1% 趋势酝酿
上+ADX>=40 +0.47% 43.1% 强趋势中
  • 格子间 r60 差距 7pp——信号口径下细分有真实信息量。
  • 现有 3 分类(trend_up/choppy/trend_down)的问题trend_down 把"下跌中继"(下+15-20r60 -3.7%)和"恐慌极值"(下+>=40r60 +3.5%)混为一谈——这两个状态风险收益完全相反。
  • 结论:方案方向正确(按周期分策略),但弱市侧应加 ADX 子状态:下+15-20=禁买区、下+25-30=v_weak甜区、下+>=40=极值观察区(潜在新策略空间)。

§28.3 行业粒度:池内证据强,全市场数据缺失

  • 池内样本(259只有行业映射的票):M下+S下+行业ADX<20 → r60均值+21.65%/wr79.4%n=68),M上+S上+ADX20-30 → +10.99%/58.7%。
  • 行业周期在大盘周期之外有明显独立信息量79.4% vs 全体~45%)。
  • 但全市场行业映射缺失stock_sectors_em 只覆盖 259 只(跟踪池)、stock_sectors(ths) 是旧港股体系。sector_index_daily 有 140 个行业指数全历史。
  • 结论:行业粒度值得做,前置条件=回填全市场行业映射(东财行业成分股 API,~140 行业)。概念粒度数据基础更缺,暂缓。

§28.4 周期方案最终建议

  1. 保留"大盘MA20上下"主分类(v_next4趋势/v_weak弱市分工正确)
  2. 弱市侧加 ADX 子状态:15-20禁买 / 25-30甜区(现v_weak) / >=40极值区(潜在新策略)
  3. 行业粒度作为 12 维第二层,回填映射后做"行业周期×大盘周期"双周期策略
  4. 数据前置:行业映射回填(140行业成分股)+ 资金流回填(现只有259只)

§29 v_next 全市场重建尝试:三条路径全败(阴性结论,2026-08-04)

按老莫指示"不局限v8.1,按3/6/12规则重建"。三条独立路径全市场验证全部失败。

§29.1 路径A:赢家状态因子(六步法第1-3步)

  • 趋势市赢家起点画像(15639):贴MA60上方(bias60[0,5)) + 20日企稳(r20f[0,5)) + 温和放量(shrink[1.0,1.2))——赢家集内均值165%/中位114%/p90 329%。
  • 全市场实时筛股:avg -0.32%/wr 40%(82485信号)。加流动性过滤 amt≥3000万/1亿/3亿:全部仍负-1.68%/-1.32%/-0.33%)。
  • 流动性过滤救不了赢家因子——温和状态在全市场太常见,正例率被稀释到无法挽救。

§29.2 路径B:v8.1 评分直接推广

  • 全市场:1427笔/wr35.9%/avg2.65%/3槽组合 -34.3%
  • 池内 vs 池外拆分:池内 108笔/61.1%/12.65% vs 池外 1319笔/33.8%/1.84%。
  • 同交易所内池内也优688池内 13.45%/61.9% vs 688池外 6.95%/43.2%603池内 5.8%/50% vs 池外 0.53%/30.3%。
  • edge 与池子策展绑定,不可泛化。池外最差是创业板300(wr 27.3%)。
  • 池内分年:2022 +16.0%/2025 +28.8%/2026 +18.9%(趋势年赚),2023 -3.8%(熊年亏)——趋势策略属性正确。

§29.3 路径C:事件触发(稀缺事件假设)

信号 月30后 avg wr
首次站上MA60(60日内≥45天在下) 3132 -1.61% 35.0%
首站MA60+放量1.5 2599 -1.28% 34.6%
破20日新高 3234 -1.76% 33.8%
破20新高+放量1.5 3175 -2.35% 30.5%
  • 放量在趋势市是负面因子(放量组全更差)——与直觉相反,A股放量突破=追高坟墓。

§29.4 硬结论

  1. A股全市场趋势跟踪无简单技术 edge:趋势市基准率≈0(r60 0.5~2.6%),所有简单技术信号(状态/事件/放量)全是零或负贡献。
  2. v_next4 的 edge = 池子策展 × v8.1复杂评分 × 信念叠乘三者组合,拆开任何一个都失效——不可拆解泛化。
  3. 与 v_weak 的对比:v_weak 的 edge 来自极端状态+宏观甜区(深超跌+ADX25-30),是统计上真实的均值回复边缘;趋势侧没有对应的简单边缘。
  4. 若要坚持全市场趋势策略,唯一未试的路径是 12 维全因子(技术+消息+资金+行业)综合评分——前置条件:回填全市场资金流(现259只)和行业映射(现259只)。消息面已全市场(3971只/403万条)。
  5. 当前最合理配置:趋势侧用 v_next4(池内有效,实盘范围=池)+ 弱市侧 v_weak(全市场验证)+ 周期细分按 §28.4 加 ADX 子状态。

§30 行业粒度验证 + 行业数据回填(2026-08-04

承接 §28.3:行业粒度是否有独立信息量。先回填数据再验证。

§30.1 行业映射回填(stock_sectors_em 259 → 3454

  • 东财从 246 不可达(07-22 实证),从 Windows 端经代理拉取:东财行业板块(fs=m:90+t:2496 个板,与 sector_index_daily 命名匹配 103 个行业。
  • 逐行业拉成分股(fs=b:BKxxxxpush2delay 节点绕开封禁),3454 条 code→行业映射入库 stock_sectors_em(保留原 259 条池内映射)。
  • 覆盖我们 A 股 2346/401058.5%)。未覆盖的 1664 只属命名不匹配的行业(东财三级名 vs 服务器混合命名),后续慢速任务补。

§30.2 行业周期独立信息量验证(1902 只有完整数据的票)

大盘 行业 行业ADX r60均值 胜率
M上 S上 >=30 +7.74% 54.2% ← 最差(追涨陷阱)
M上 S下 20-30 +11.00% 63.6%
M下 S上 <20 +16.02% 64.5%
M下 S下 <20 +20.80% 70.0% ← 最好

分年稳健性(注意:行业行情数据仅 2024-07 起,此为 2 年窗口内分年):

状态 2024H2 2025 2026
M下S下(双弱) +35.9%/88% +11.6%/65% +8.1%/44%
M下S上 +22.7%/73% +9.0%/59% +4.3%/41%
M上S下 +9.1%/59% +11.1%/65% +1.1%/37%
M上S上(双强) +5.0%/48% +10.3%/61% +3.9%/42%
  • "双弱>双强"三个时段全成立——行业周期在大盘周期之外有稳健独立信息量。
  • 这与 §29 结论自洽:A股均值回复主导所有层级(个股深超跌 v_weak 有效 / 行业双弱最优 / 双强追涨最差)。

§30.3 数据缺口与回填状态

  1. 行业映射3454 条(58.5% 覆盖) 已入库;剩余 ~1664 只待慢速补齐
  2. 行业指数历史sector_index_daily 仅 2024-07 起(125 行业)——10y 回填被东财封禁阻塞clist 端点 502、kline 端点 push2his 一度可用后也被重置)。Windows 后台脚本带退避重试+断点续跑(/tmp 对应本机 fetch_sector_hist.ps1),解封后自动补齐 ~103 行业 10y 日K
  3. 资金流stock_capital_flow 仅 259 只(池),全市场回填未开始(新浪路线可行,capital_flow_collector.py 已有新浪 fallback

§30.4 组合页修正(本次已落地)

  • v_next4 卡片加适用池警告267池验证,全市场失效,不可外推)
  • v_weak 卡片数字更新为最终 8 槽口径(234笔/62.4%/8槽ret178.3%/年化12.8%/回撤16.4%

§30.5 行业粒度策略展望(数据齐后)

  • 双周期框架:大盘周期 × 行业周期 12 格定位,v_weak 可加行业状态增强(双弱区加权)
  • 行业轮动角度:超配"行业ADX<20的双弱行业"做均值回复,回避"双强高ADX"追涨
  • 前置:§30.3 的三项回填完成

§31 行业指数10y合成回填 + 行业周期10年验证(2026-08-05

东财封禁期间的替代方案:用成分股自己合成行业指数——不等解封,当天完成。

§31.1 行业指数合成方法(153,944 行新增,15秒完成)

  • 数据源:stock_daily(全市场10y日K+ stock_sectors_em3454条新映射)。
  • 方法:每行业每日取成分股等权日收益累乘成指数(base=1000);high/low 用成分股 high/prev_close、low/prev_close 均值近似(供 ADX 计算);volume=成分股成交量合计。
  • 接缝对齐:合成序列缩放到 2024-07-01 EM 官方值的"昨收"(由 EM change_pct 反推),保证接缝收益连续(实测接缝日收益与记录完全一致)。
  • 校验:半导体 2018 -45.3%(熊市)/2019 +92.1%(芯片牛)、银行 2024 +49.5%(银行牛)——符合史实。
  • 幸存者偏差注记:合成用今日成分股回看历史,退市股缺失——因子分析可接受,绝对收益略有高估。
  • 结果:全部 103 个行业从 2016-07 起有完整日K(原 EM 数据仅 2024-07 起)。

§31.2 行业周期 10 年全样本验证(1964 只 × 10 年,~16 万采样)

格子 r60均值 胜率 定位
M下+S下+ADX<20(双弱+衰竭) +3.93% 47.1% 最优
M下+S下+20-30 +2.85% 46.3% 次优
M上+S上+<20 +2.82% 47.5%
M上+S上+>=30(双强) -0.01% 41.4% 追涨陷阱
M下+S上+>=30(弱市+行业强撑) -2.75% 35.7% 补跌陷阱(最差)

分年(关键三格):双弱在 8/10 年最优或次优(2018熊 -0.5% vs 双强 -7.5%2024反转 +16.7%/62%);补跌阱在弱市年年垫底(2018 -11.4%/26%);双强永远平庸。

§31.3 对 §30 结论的修正(2y → 10y)

  • §30 的 2y 窗口(2024-07~2026)高估了行业周期强度(+20.8%/70%);10y 全样本为 +3.93%/47.1%——方向不变,幅度收敛
  • 2y 窗口恰逢 9/24 行情等极端反转期,均值回复边缘被放大。
  • 定性结论全部保留:双弱>双强、补跌阱回避、追涨无edge。

§31.4 行业状态的策略定位:过滤/倾斜,不是信号

  • 格子间差距 6.7pp 均值 / 11.4pp 胜率——真实但温和
  • 正确用法:①v_weak 信号在"补跌阱"M下S上>=30)行业时降权或回避;②双弱行业的信号加权;③行业状态作为 12 维的行业×技术面输入。
  • 错误用法:单独用行业状态做买入信号(基准率本身仍为负中位)。

§31.5 数据资产现状(本轮后)

数据 覆盖 状态
stock_daily 个股日K 4010只 10y 全量
stock_news 消息面 3971只 403万条 全量(08-04回填)
stock_sectors_em 行业映射 3454条(58.5% ⚠️ 部分,剩余1664只待东财解封慢补
sector_index_daily 行业指数 103行业 10y 合成回填完成(§31.1
stock_capital_flow 资金流 259只 仅池内,全市场待回填(新浪路线)
  • 12维全市场数据基础:技术面 消息面 行业(合成)资金面——唯一缺口=资金流

§32 资金流全市场回填完成——12维数据基础全齐(2026-08-05

§32.1 关键发现:新浪资金流 API 有全历史

  • MoneyFlow.ssl_qsfx_zjlrqs 单票返回上市以来全部日线(茅台 3983 天,2010 起)——现有 capital_flow_collector.py 只取最近 5 天是浪费。
  • 字段:netamount(主力净流入额)、ratioamount(净流入占比)、r0_net(超大单)。无 r1/r2/r3 大中小单分解(老接口已死)。
  • 与东财口径数值不同但符号一致(3/3 对照验证)——flow 因子是符号驱动,混源可用(INSERT OR IGNORE 保留原东财行)。

§32.2 回填执行(双机分流绕开单IP限速)

  • 246 直跑被新浪限速(~19s/只,ETA 7 小时)→ 拆分:246 跑前 800 只 + Windows 本机 8 进程跑 3210 只(不同 IP)。
  • Windows 侧 10 分钟跑完(0 封禁),scp 回 246 入库(720 万行/28 秒)。
  • 最终:9,243,548 行,3980/4010 codes99.3%v_weak 实单票覆盖 221/222。
  • 30 只永久缺口:920 北交所 / 518880 ETF / 退市股(新浪天然无数据,可接受)。

§32.3 数据质量校验

  • 茅台 9/24 行情日主力净流入 +31.57 亿(+24.1%)、9/26 +32.7 亿、10/8 崩盘日 -31.98 亿——与史实完全吻合。
  • 历史深度 2016-01 起(2016 年 64.8 万行)。

§32.4 12维全市场数据基础——最终状态(全部就绪)

维度 数据 覆盖 状态
技术面 stock_daily 4010只 10y
消息面 stock_news 3971只 403万条 08-04回填)
行业 stock_sectors_em + sector_index_daily 3454映射(58.5%) + 103行业10y(合成) (§31
资金面 stock_capital_flow 3980只 10y 924万行 (本节)
  • 12 维全因子研究的数据基础已全部就绪。剩余小尾巴:1664 只行业映射未覆盖(东财解封后慢补)。

§32.5 回填资产清单(复用价值)

  • 新浪资金流全历史接口:vip.stock.finance.sina.com.cn/.../MoneyFlow.ssl_qsfx_zjlrqs?daima=sh600519(单票全历史,0.4s 间隔安全)
  • 双机分流模式:246 被限速时,Windows 本机(不同 IP)分片并行 + scp 回传 + INSERT OR IGNORE 入库
  • 行业指数合成:成分股等权收益累乘(§31.1),不再依赖东财行业指数接口
  • 脚本:/tmp/flow_backfill.py246)、fetch_flow_chunk.ps1Windows 分片)、/tmp/import_flow.py(入库)