← 返回看板
中枢回归 · 原理与止损说明🧪 观察项 · 不产实盘信号
最后更新 2026-11-02 · 回测样本:545 只 A 股(含后来退市/ST 的),2016-01-01 → 2026-09-12 · 数据:通达信服务端后复权日线
一、一句话原理
收盘跌破布林带下轨、当天又止跌收阳(且喇叭口在张开)→ 次日开盘买;等价格回到买入当天冻结的中轨就卖。
文章里说的「中枢」= 布林带中轨 MA20;「偏离中枢越远、回归概率越大」= 收盘跌破下轨(MA20 − 2σ20);「回到中枢平推出局」= 回到中轨。
关键修正:中轨必须在买入当天冻结。用会移动的中轨,价格跌 84% 之后均线会"追上来"判定成"已回归",把巨亏当成正常平推出场——这是文章原版最致命的漏洞。
二、买入规则(收盘算,次日开盘成交)
| 条件 | 内容 | 作用 |
| ① | 收盘 ≤ 布林下轨(MA20 − 2×20日标准差) | 核心信号:偏离中枢足够远 |
| ② | 收盘 > 昨日收盘 | 止跌确认 —— 实测最值钱的一条(盈亏比 1.28 → 1.72) |
| ③ | 带宽比 5 日前更大(喇叭口张开) | 轻微加分(每笔 1.64% → 1.74%) |
| ④ | ADX(14) > 25 | 只有过关版 / 板块 ZSHG 有;基准版没有 |
为什么「趋势强反而更好」?按入场时 ADX 分组(池子 1333 只、64312 笔):ADX>25 组每笔 +1.78%、胜率 63.1%;ADX≤25 组只有 +0.46%。加上止跌确认+开口后,ADX>25 组 +3.24%/笔、胜率 69.5%、亏超 10% 占比最低(8.78%)。
说明它的真实身份不是"超卖反弹",而是强趋势里的回踩买点。注意这和《20 均值回归》里「ADX>25 时停用均值回归」那条纪律方向相反——两条结论并存,别混用。
三、卖出规则(收盘评估,次日开盘成交)
| 条件 | 内容 | 说明 |
| ① | 收盘 ≥ 买入日冻结的中轨 | 回归达标,正常平推 |
| ② | 收盘 ≤ 买入价 × 0.85(−15%) | 固定止损,2026-11-02 起启用 |
| ③ | 持有 > 20 个交易日 | 时间止损,到期无条件清(这就是"不会一直亏下去"的那道闸) |
| ④ | 退市 / 长期停牌 | 强制平仓,停牌顺延 |
2026-11-02 起:已启用 −15% 固定止损。判定顺序是 回归 → 止损 → 时间:先看有没有回到冻结中轨(正常赚钱出场),没回来看有没有跌破买入价 ×0.85(砍掉灾难单),都不是再等 20 个交易日的强制时间止损。
按 11-02 收盘价核对,第一批要清的是:基准版 7 只(星环科技 −20.5%、赤峰黄金 −19.3%、万润科技 −25.5%、晓程科技 −25.3%、\*ST元道 −18.4%、688825 −16.5%、沪电股份 −15.2%),过关版 1 只(汇源通信 −24.7%)。
为什么"不会一直亏":20 个交易日时间止损 + −15% 价格止损,任何仓位最多持 20 天、或者亏到买入价 85% 就强制离场。模拟盘实测:2026-10-23 一天砍掉 8 只持满 21 天的,10-26 砍九安医疗、10-30 砍瑞鹄模具。
注:2026-11-02 之前这里写的是"没有个股止损"。历史上那三版亏钱的止损是结构止损(挂在下轨上、刚买就触发),与本次"相对买入价的固定止损"不是一回事,见第四节。
四、历史上那三版"止损"为什么亏钱(别混淆)
| 变体 | 止损是什么 | 总收益 | 最差单笔 | 结论 |
| A 文章原版(不止损) | — | +34.6% | −84.2% | 累计为正,但尾部极深 |
| F 过滤+结构止损 | 跌破下轨再跌 5% / 下轨加速下行 | −0.5% | −20.9% | 亏损 |
| G 不过滤+结构止损 | 同上 | −2.3% | −21.2% |
| H 固定中枢出场 | 同上 + 冻结中轨 | −2.1% | −25.0% |
这三版是"结构止损",不是"相对买入价的止损"——触发条件挂在布林下轨上,而买入本来就发生在下轨附近,等于刚买就可能触发,持有期被从 15 天砍到 2~5 天,回归还没发生就被打掉。
真正救回这个策略的是两件事,都不是止损:①冻结中轨(不冻结时"回归中枢"平仓的 2095 笔里 8.8% 亏超 10%、最差 −84%;冻结后同口径 549 笔全赚、平均 +5.05%、最差 −3.0%);②分散到底——单票最惨 −94.6%,放进 20 只等权只拖累 4.7%。
五、全样本止损对照(2026-11-02 新做)
同一入场口径(跌破下轨+止跌+开口+ADX>25)、同一出场(冻结中轨+20日时间止损)、含手续费,只改"价格止损"这一条。触发按收盘判定、次日开盘成交(A 股 T+1 口径)。
采用结论:2026-11-02 起上线 D 档(固定 −15%)。取舍是明确的 —— 用每笔少 0.35pp 的期望,换单票最坏从 −58% 压到 −31%、组合回撤改善 2.2pp。这是风险偏好选择,不是"收益更优"。
5.1 单笔层面
| 方案 | 笔数 | 每笔均值 | 胜率 | 平均持有 | 最差单笔 | 止损触发占比 |
| B 无价格止损(旧口径) | 2407 | +3.91% | 67.2% | 18.6 天 | −58.4% | — |
| C 固定 −10% | 2452 | +3.49% | 64.9% | 16.9 天 | −25.8% | 15.9% |
| D 固定 −15%(已采用) | 2428 | +3.56% | 66.4% | 17.8 天 | −30.7% | 8.2% |
| E 固定 −20% | 2414 | +3.65% | 66.8% | 18.3 天 | −34.8% | 3.9% |
| F 固定 −25% | 2409 | +3.83% | 67.1% | 18.5 天 | −42.0% | 1.7% |
| I 连 2 日跌停才卖 | 2410 | +3.92% | 67.2% | 18.5 天 | −58.8% | 0.7% |
规律极清楚:止损越紧,每笔期望越低(−10% 最贵,每笔少 0.42pp);但尾部单调改善(最差单笔 −58% → −26%)。"连 2 日跌停"这类事件止损几乎免费,但挡不住慢性暴跌(最差仍是 −58.8%)——退市边缘股是慢慢阴跌,不是连续跌停。
5.2 组合层面(20 只等权、真实资金、含手续费)
| 方案 | 总收益 | 年化 | 最大回撤 | 夏普 | 笔数 | 胜率 |
| A 移动中轨/无时间止损/无价格止损(早期检验口径) | 50.7% | 3.91% | −30.24% | 0.46 | 1042 | 64.0% |
| B 冻结中轨/20日/无价格止损(旧口径) | 77.2% | 5.50% | −31.12% | 0.62 | 1084 | 57.6% |
| C 固定 −10% | 84.3% | 5.89% | −28.35% | 0.67 | 1200 | 56.4% |
| D 固定 −15%(已采用) | 81.6% | 5.74% | −28.92% | 0.66 | 1140 | 57.8% |
| E 固定 −20% | 76.3% | 5.45% | −33.45% | 0.60 | 1114 | 57.9% |
| F 固定 −25% | 84.5% | 5.90% | −28.92% | 0.68 | 1096 | 57.9% |
| G 连 2 日跌停 | 82.0% | 5.76% | −29.41% | 0.66 | 1089 | 57.7% |
| H 1.0×20日σ 止损 | 79.3% | 5.62% | −30.75% | 0.63 | 1215 | 54.9% |
| I 1.5×20日σ 止损 | 72.8% | 5.25% | −31.40% | 0.58 | 1156 | 56.7% |
| J 2.0×20日σ 止损 | 82.3% | 5.78% | −28.62% | 0.65 | 1120 | 57.3% |
怎么读这张表(重要):
1. E(−20%)反而比 B(不止损)更差,而 F(−25%)又比 C(−10%)略好——说明这些差异在单一路径的噪声范围内,不能当成"−10% 优于 −20%"的结论。差异量级:年化 0.1~0.4pp、回撤 2~3pp。
2. 止损不是收益工具,是尾部保险。它把"单票最坏"从 −58% 压到 −26%~−42%,对应到 5% 仓位的净值冲击从 −2.9% 压到 −1.3%~−2.1%。
3. 按波动率定宽没有优势(H/I/J 都在噪声内,1.5σ 反而最低)——理论上更合理的做法,实测没兑现,因为被打掉后少吃了回归那一段。
4. 平均持仓只有 8.1/20 只:同时满足四个条件的信号不够多,资金利用率约 40%。所以"20 只分散"在这条策略上经常只用到 8 只,实际分散度低于设计值。
六、仓位与分散("不止损"能活下来的真正原因)
| 同规则随机抽 N 只等权、重复 200 次 | 总收益中位 | 最差的那次抽样 |
| 1 只 | 25.4% | −71.5% |
| 5 只 | 34.0% | −32.2% |
| 10 只 | 32.4% | −12.9% |
| 20 只 | 35.3% | +2.0% |
| 50 只 | 33.2% | +7.5% |
单票最惨 sh600654 单独持有 −94.6%,放进 20 只等权只拖累 4.7%。"不止损"不是靠中枢理论扛住的,是靠分散扛住的——所以每只 1/20、最多 20 只、不补仓、不加杠杆,这几条不是可选项。
七、2026-11-02 口径修正:ST / 退市硬过滤
问题:通达信板块(make_blk.py)一直排除名字含 ST / 退的票,但模拟盘与看板(paper.py)没有这道过滤——两套口径不一致。结果是看板上的账户买了 sz301139 *ST元道:10-09 以 1.14 买入、冻结中轨 3.31(价格低于中轨 66%,20 日内回归概率≈0),只能干等 20 日时间止损,锁死 −18.4%。
修正:信号入口加 ST / 退市过滤,与 make_blk.py 完全同口径,两个账户(基准版 / 过关版)同时生效,不改任何买卖逻辑。
验证:2026-10-08 当天 3 个信号 → 过滤后 2 个,被挡掉的正是在 −38.2% 深度上的 *ST元道;2026-11-02 当天 27 个信号 → 过滤后 25 个(挡掉 ST通脉、ST迪瑞)。
说明:回测引擎(engine.py)本身也没有 ST 过滤,样本明确"含后来退市/ST 的"。所以历史回测里的收益率是"允许买 ST"口径下的;真实执行时这道过滤会让实际交易数略少于回测。这是一处已知的口径差。
八、已知限制
- 单一历史路径:2016-2026 只有一段历史,0.1~0.4pp 的差异无法区分运气与本事。
- 跌停卖不出:止损/时间止损触发在收盘,次日开盘才成交;若次日一字跌停,实际亏损比止损位更深(组合表里的"最差单笔"已包含这一层)。
- 涨停买不进:回测按次日开盘价成交,未建模"开盘一字涨停买不到",会略微高估。
- 复权口径:回测用后复权(除权已处理);看板持仓价用不复权真实价,浮动盈亏按后复权收盘比价估算。
- 无成交量字段:eltdx 返回的 volume 全为 0,所以"中枢"只能用均线,用不了成交量分布 / VWAP。
- 历史 ST 无法回溯:只有当前的名称表,回测里无法判断"某个历史日期它是不是 ST",所以第五节表格是"未加 ST 过滤"的口径。
九、证伪条件(出现就该改或该废)
改止损档位:若加止损后,实盘/样本外每笔期望跌破 +2.0%(无止损样本外是 +2.72%),说明止损吃掉的是真 edge,应撤掉或放宽。
废掉整条策略:①连续两个年度每笔均值为负;②样本外 Sharpe 跌破 0.5(过关门槛 0.8);③组合最大回撤超过 35% 且同期全A等权回撤明显更小——那种情况该改的是仓位/择时,不是止损。
当前结论(2026-11-02):已上 −15% 固定止损。它的作用是"把单票最坏情况砍半",不是提高收益——每笔期望少 0.35pp,换来单票最坏 −58% → −31%、组合回撤 −3.1pp → −2.9pp。这是风险管理偏好,不是收益优化。