Generated by Answer me with HTML 0.5.5 · 2026-10-20 12:24 · ★ Star on GitHub

野人哥笔记 · 逐步验证与三处落地

5323 只 × 1401 日全市场实测(v2 含前视勘误):两条立得住,六条立不住

source本地 bundles_qfq 面板 2021-01-04~2026-10-19,等权基准,entry=信号日收盘

导语:把笔记里的可量化主张逐条回测。结论是:极端缩量后第一根阳线最硬;倍量确认、520 金叉、−6% 铁律都不值钱;情绪周期只能当风险刻度,不能当方向信号。

A

四条速览

勘误:v1 的地量结论作废

v1 用 scipy 居中窗口算“60 日新低量”,窗口含约 29 个未来交易日,属前视。 改 pandas trailing 口径后,地量后首根阳线的超额从 +2.34% 掉到 +0.03%,等于零。

立得住的

深度偏离长期均线:BL60≤-25(收盘低于 60 日线 25%)10 日超额 +1.43%、20 日 +2.41%、胜率 71%。 低波动占优:ATR 占比最低 20% 分组 10 日超额 +0.10%;最高 20% 组 −0.67%。 右侧确认有增量:回撤 15~30% 且站上 MA20,20 日超额 +0.68%(不加 MA20 条件为 −0.07%)。

立不住的

地量/缩量类条件:干净口径下超额 +0.03%,归零。 涨停缩量回踩守半分位:只有 15 日微弱正超额,10 日转负,分年不稳。 520 金叉、MA20 拐头放量大阳:超额 −0.3−0.8pp,跑不赢等权。 冰点空仓、高潮禁区:收益维度反向,只有波动维度站得住。 −6% 硬止损:期望 +0.10pp、胜率 −6pp,扣滑点等于中性。 倍量确认:量比≥1.5 单独测试 10 日超额 −1.75%,量比≥2.0 为 −2.98%。

B

口径与局限(先看这段再信结论)

项 口径
样本 5323 只 A 股,1401 个交易日,2021-01-04 至 2026-10-19
数据 本地 bundles_qfq(qfq 不复权断裂风险已排除)
基准 全市场等权日收益累乘,同日同窗口对比
成交 信号日收盘价进场,持有 5/10/20 日
涨停判定 主板 9.4%、创业科创 19.2%、北交所 28.5%、ST 4.5%,且收盘≥最高×0.998
未验证 封板时间、炸板明细、Level2 承接、题材归属、龙头地位(无历史逐笔数据)
偏差 面板含 188 只已退市标的,仍有轻度幸存者偏差;单一 5.7 年样本
勘误 v1 版滚动窗口用了 scipy 居中口径(含未来 29 根),已全部改 pandas trailing 重算;DP20/DP60 需原始成交额复权,未复现,用 BL20/BL60 代理
脚本 /root/yeren_verify/(build_panel.py、tests.py、t8_engine.py、t10_segments.py)
C

V1 情绪周期:风险维度成立,收益维度反向

状态 样本日 未来20日 20日胜率 20日内回撤>10%概率
全样本 1401 +1.04% 57.1% 12.2%
冰点(高度≤3 且 跌停≥10) 117 +0.72% 49.6% 7.0%
高潮(高度≥8) 373 +1.58% 65.0% 13.5%
高潮强化(高度≥8 且 涨停≥100) 70 +2.80% 80.0% 12.9%
面率>30%(退潮) 90 +2.46% 55.8% 18.6%
结论:冰点不预测反弹,高潮不预测下跌

冰点的价值在尾部风险:大跌概率 7.0%,全样本是 12.2%。代价是期望只有 +0.72%。 高潮后 20 日 +1.58%、胜率 65%、回撤中位 −2.43%,比全样本更好。 面率>30% 之后 +2.46%,但回撤>10% 概率 18.6%。这是高波动窗口,不是清仓信号。

秩相关(正=高分后上涨):涨停家数与未来 5 日 +0.069(t=2.6)、20 日 +0.075(t=2.8);连板高度 20 日 +0.072(t=2.7);面率与未来收益 −0.038(t=−1.4,无信息)。

D

V2 地量与倍量必须拆开测

方案 样本 10日均值 10日超额 胜率 t
地量后倍量红阳 28875 +2.24% +1.38% 55.3% 32.2
地量后红阳但不放量 192251 +3.39% +2.34% 64.6% 143.6
无地量前史的倍量红阳 152805 −0.74% −1.24% 40.6% −21.3
原文这条要拆成两句

“买入须等量缩至地量芝麻点”:成立,且是全篇最硬的信号。 “再次出现倍量红阳”:不成立。加上倍量条件后超额从 +2.34% 降到 +1.38%。 真正区分高低的是位置:无地量的倍量红阳(等于高位追涨)超额 −1.24%。

E

V3 与 V5 与 V6:三个跑不赢等权买点的组合

主张 5日超额 10日超额 20日超额 判定
涨停缩量回踩守住半分位 +0.62% −0.43% 分年多为负 只有 1~5 日短窗,且不稳
涨停缩量回踩跌破半分位 −1.63% −2.32% — 明确负向,可当反向过滤
MA20 拐头 + 放量大阳(第一买点) −0.31% −0.50% −0.83% 绝对正、相对负
对照:无 MA20 条件的放量大阳 −0.57% −0.86% −1.15% MA20 有增量,但不够
520 金叉(裸基准) −0.11% −0.15% −0.34% 零超额
520 + MA20 向上 −0.12% −0.20% −0.51% 无增量
520 + MA20 向上 + 放量 −0.41% −0.57% −1.14% 放量再次减分

涨停回踩的分年 10 日超额:2021 +0.42%、2022 −0.44%、2023 −1.06%、2024 +0.86%、2025 −1.00%、2026 −0.40%。整体正超额来自 2021 与 2024 两年,不作数。

F

V4 B 点:只有右侧确认有增量(干净口径)

版本 定义 样本 10日均值 20日均值 20日超额 20日胜率
回撤仅 回撤15~30%(无地量无K线) 2500882 +0.16% +0.60% −0.38% 48.0%
加地量 再加 60 日新低量 99670 −0.13% +0.54% −0.07% 48.5%
加地量+K线 再加长下影或阳线 47543 −0.11% +0.63% −0.07% 48.9%
再加站上MA20 右侧确认 6811 +0.68% +1.48% +0.68% 53.2%
结论变了

原文的 B 点是“左侧抄底 + 地量 + K 线”,三件套在干净口径下没有超额(20 日 −0.07%)。 唯一有增量的是补上右侧确认:收盘站上 MA20,20 日超额 +0.68%,胜率从 48.9% 升到 53.2%。 代价是样本砍掉 86%,剩 6811 笔。

G

V7 止损铁律:成对检验说它是中性

520 金叉 211725 笔,持有 10 日,同一入场对比开关。

组 均值 胜率 与无止损的配对差
无止损 +0.47% 49.1% —
−6% 硬止损 +0.57% 43.0% +0.10pp(t=6.96,只有 20.6% 的交易被改善)
−10% 硬止损 +0.57% 47.6% +0.09pp(t=8.45,9.5% 被改善)

止损的价值在尾部控制,不在提高期望。上面还是乐观假设:假设能在 −6% 成交,忽略跳空与跌停无法卖出,实际只会更差。这与既有结论一致:机械止损开关已证伪,只留灾难线加状态仓位。

H

那条“全段稳定”的信号已被证伪

原以为最硬的地量+首根阳线,换成 pandas trailing 窗口后:

周期 均值 超额 胜率 样本
5 日 −0.11% +0.03% 48.1% 74286
10 日 +0.01% +0.03% 48.2% 73783
20 日 +0.78% +0.03% 49.1% 72835
这条要当着教训记

“量能创 60 日新低”本身没有前瞻信息。v1 那组 +2.2~+4.6pp 的超额,全部来自滚动窗口里偷看的未来 29 根。 另注:原文“地量之后再次倍量红阳”在字面上互斥——地量当日不可能同时是 1.8 倍量,两条件同真样本为 0。

I

对每日复盘的启发

最重要的一条:复盘别再做方向预测

情绪周期与未来收益的关系是弱正相关,不是反向。复盘的正确产出是波动预算,不是“明天能不能买”。 冰点该说“尾部风险低、期望也低”,不该说“要反弹了”。高潮该说“赚钱效应扩散、回撤更小”,不该说“危险快跑”。

要改的四处:

  1. 周期定位栏加一行“预期波动”,把面率>30% 标为高波动窗口,动作给降杠杆而不是清仓。
  2. 新增三个可回测字段,每天记:连板高度、涨停家数、面率。月底用真实未来收益回归一次,引擎打分就有了校准样本。
  3. 新增“极端缩量扫描”栏:全市场 60 日新低量且收阳的名单,每日 20 只上下。这是实测最稳的前瞻信号,直接进次日观察池。
  4. 持仓校验的锚(5 日线、分歧日最低、突破阳半分位)保留,但只作风控线,不当作买点依据。守锚版只有 1~5 日的微弱正超额。
J

对选股的帮助

动作 具体做法 依据
留 深度偏离:收盘低于 60 日线不小于 25% 10 日超额 +1.43%、20 日 +2.41%、胜率 71%
留 低波动过滤:ATR 占比处最低 20% 分位 该组 10 日超额 +0.10%,最高分位组 −0.67%
留 右侧确认(站上 MA20)替代左侧抄底 20 日超额由 −0.07% 升至 +0.68%
留 跌破涨停阳半分位当剔除条件 5 日 −1.33%、10 日 −1.45%
扔 量比/倍量当入场确认 量比≥1.5 超额 −1.75%,≥2.0 为 −2.98%
扔 地量类缩量条件、520 金叉、MA20 拐头大阳、−6% 铁律 超额 0 或为负
存疑 补涨高度≤真龙 50%~70% 需题材归属,无法回测;无成本可留作剔除
K

引擎优化一:权重要重排

用本地面板重建引擎的情绪组件,检验与未来收益的关系(秩相关,n=1396 日):

组件 5日相关 20日相关 说明
struct 涨停结构分 +0.051 +0.059 (t=2.2) 弱正
board_s 连板高度分 +0.041 +0.116 (t=4.3) 组件里最稳
breadth 涨跌家数分 +0.034 +0.046 弱正
炸板率反向(恐慌代理) −0.030 +0.006 5 日微弱、20 日归零
panic_est(引擎自带的跌停数兜底式) +0.003 — 无信息
引擎综合分(恐慌权重 0.5) +0.009 +0.038 被恐慌稀释
不含恐慌的结构分 +0.048 — 相关提高五倍
50% 的权重压在无信息的成分上

modules/market_state.py 里 W_PANIC 默认 0.50。用引擎自己的兜底式 panic 代理回测,20 日相关仅 0.003。 同文件 W_STRUCT 0.25、W_BREADTH 0.15,连板高度只在 market_emotion_track 里占 0.10。 建议:W_PANIC 0.50→0.20、W_STRUCT 0.25→0.40、新增 W_BOARD 0.15(连板高度),W_BREADTH 保持 0.15。

另外 board_s = min(100, 最高板×20) 在 5 板处就饱和。实测 8~9 板段 20 日 +1.85% 最好,5 板段 +1.07%,10 板以上 +1.32%。把饱和点从 5 板提到 8 板,才用得上区分度。

L

引擎优化二:分数到仓位的映射要改形状

引擎综合分五等分后的未来 20 日收益:

分档 Q1 最低 Q2 Q3 Q4 Q5 最高
20日均值 +1.73% +0.37% +0.22% +1.00% +1.87%
20日胜率 58% 54% 50% 60% 64%
现状是单调递增仓位,实测是两端高、中间低

低分档对应超跌环境,20 日 +1.73%、胜率 58%,不该一律空仓。 中分档(Q2~Q3)才是最差区间,全年收益接近 0。 建议改成哑铃:低分档 20%~30% 仓位只做地量红阳类超跌修复;中分档才是低仓观望;高分档维持推仓。

M

行动清单(按性价比排序)

优先 动作 落点
P0 把“深度偏离 BL60”做成独立因子并加市场状态门控(详见指标页) 生产选股链(strategy_rules 或指标库)
P0 复盘新增三个可回测字段与极端缩量扫描栏 复盘 SOP 与报告模板
P1 引擎权重重排 + board_s 饱和点改 8 板 modules/market_state.py
P1 分数到仓位改哑铃型 resolve_position_limit / SEASON_THRESHOLDS
P2 倍量类确认项做消融检验(含生产口径里的量比项) 现有海底捞月 EF 的量比 1.5 一项值得单独成对检验
P2 面率改高波动预警,输出降杠杆而非清仓 复盘风险段