上一篇《个人量化选股(五):调仓频繁利益侵蚀,用双线缓冲区和调仓窗口降换手》通过双线缓冲区降低了频繁换手。但进入日常运行后,另一个问题是跌破均线时如何退出。
很多交易者倾向于把止损当成无条件执行的通用规则,比如收盘价跌破 200 日线 1.5% 满 3 天就清仓,并直接套用到所有市场。
这种一刀切的规则在不同市场中表现分化明显。不同市场的微观盘性、假突破频率以及账户是否有杠杆负债并不相同。2021 年至 2026 年中港美日全市场 789 笔真实破位样本与全周期回测显示,机械止损在某些市场不仅没能控制回撤,反而切断了均值回归带来的反弹。

一、成熟市场:带借款杠杆账户的 P0 绝对止损底线
风控规则的第一道分水岭在于账户是否有负债。
在成熟市场(美股与日股)配置中引入外币融资借款时(账户整体维持在 1.2x 到 1.35x 杠杆区间),资金的底层物理约束与普通现货不同。
普通现货账户遇到标的下跌,可以承受时间拉长等待均值回归;但带有融资负债的账户,防守必须前置。股票持仓市值会随价格下跌缩水,但借款本金和利息不会减少。个股破位下杀会加速侵蚀净资产,贷款资产比被迫上升,保证金缓冲迅速收窄。遇到类似 2022 年加息周期的单边下行,极易触发追加保证金甚至强平。
因此,在带有借款杠杆的成熟市场中,系统执行最高优先级的 P0 绝对止损规则:
- 触发条件:收盘价低于 200 日均线 1.5%(收盘价 MA200 0.985),且连续 3 个交易日确认,或者周五收盘确认跌破。
- 执行动作:次日开盘市价清仓,不等待双月末调仓窗口。
- 资金去向:所得现金优先偿还外币借款负债,收缩杠杆敞口。

如上图左侧所示,在系统日常监控中:
- 当日股金融标的索尼金融收盘跌破止损阈值 145.12;
- 随后连续 3 个交易日收盘价未能收复失地;
- 系统在第 3 个交易日确认触发 P0 告警,并于次日开盘输出强制清仓指令,执行市价卖出还款。
在带有借款杠杆的成熟市场,个股跌破 200 日线并连续 3 天无法收复,通常意味着中长期趋势走弱。系统不等月末调仓,次日市价离场,通过收缩敞口防范杠杆风险。
二、中国市场:为什么季度内取消机械止损
把连续 3 天跌破 1.5% 止损的规则套用到中国资产(港股通与 A 股)账户时,回测数据给出了完全相反的反馈。
在 A 股整手实测中(每边预算 4.5 万元,单边摩擦成本 15 bps,涵盖 2022 年 3 月至 2026 年 9 月完整周期),7 种不同退出方案的表现如下:

上图左侧给出了具体的实测对比:
- 季度内不止损(季末统一处理):年化复合收益 +14.1%,最大回撤 -23.8%,夏普比率 0.58。
- 执行原规则(破位 1.5% 后空仓):年化收益降至 +3.1%,最大回撤反而扩大到 -32.0%(回撤加深 8.2 个百分点),夏普比率降至 0.16。
- 放宽阈值至 5% 或 10%:无论是破位后空仓还是换下一只,年化收益依然明显低于不止损方案,最大回撤在 -24.8% 到 -29.1% 之间,没有一种方案能达到让最大回撤缩小 3 个百分点的预期。
在零股口径下,反差同样明显:A 股不止损年化收益为 +26.6%(最大回撤 -25.9%),执行 1.5% 止损后年化降至 +8.7%(最大回撤 -30.6%)。
港股与 A 股各半合成来看(如上图右侧所示):
- 两边均不止损:合成年化收益达 +19.1%,最大回撤 -16.6%,夏普比率 0.99。
- 两边均执行 1.5% 止损:合成年化收益降至 +11.5%,最大回撤 -16.5%,夏普比率 0.72。
机械止损完全没有起到压缩回撤的作用(回撤仅改善 0.1 个百分点),却让组合损失了 7.6 个百分点的年化收益。
三、微观实证:308 笔破位事件与反弹分布
为了查明原因,我们对 2021 年至 2026 年 9 月期间中港美日 4 个市场跌破年线 1.5% 满 3 天的样本进行了全量追踪(港股 142 次,A 股 166 次,美股 345 次,日股 136 次,共 789 笔真实破位事件)。
统计数据提炼在以下图表中:

从上图左侧的数据分布来看:
- 破位对港 A 股的后续走势几乎没有单边预示作用。跌破年线后 63 个交易日(约 3 个月),港股平均上涨 5.3%,A 股平均上涨 6.5%,上涨概率均过半(港股 58.5%,A 股 52.4%)。
- 股票跌破年线后并未发生单边流动性枯竭,其平均表现与平常随机买入持有的表现(港股基线 +3.0%,A 股基线 +8.3%)处于同一量级。
微观现象在上图右侧的 A 股 24 次整手止损事件明细中更为具体:
- 全部 24 次止损卖出中,卖出后到季末调仓日股价继续下跌的只有 8 次,有 16 次(占比 66.7%)在卖出后出现反弹。
- 止损卖出后到调仓日,个股平均录得 +9.0% 的反弹涨幅(中位数为 +1.8%)。
典型样本的微观轨迹:
- 新易盛(2023 年 10 月):股价跌破年线,系统在 279.18 止损卖出。卖出后到季末,股价反弹 42.9%,四季度末调仓时因动量恢复再次被系统高价买回。
- 中际旭创与新易盛(2024 年 1 月):在年线下方破位止损卖出后,两只标的到一季度末分别上涨 62.5% 与 59.1%。
- 中国铝业与紫金矿业(2024 年 9 月):止损卖出后,到季末分别上涨 35.3% 与 23.4%。
- 寒武纪(2025 年 7 月,零股口径):止损卖出后,到季末单季涨幅达 146.2%。
在 A 股和港股的高波动环境下,上升趋势标的经常出现宽幅震荡。执行日线级止损容易把仓位砍在短期波动的低点。卖出后空仓持有现金错失反弹;到了季末调仓日动量指标重新回升,又以更高的价格追回。
这种低位离场、高位追回的往复损耗,直接导致回撤加剧到 -32.0%。
因此,在中国股票账户中确立了 P1 破位不止损、季末自然淘汰规则:
- 冻结加仓:持仓跌破年线时标记为 P1,冻结追加买入。
- 季度内不日内平仓:季度内不发出紧急卖出指令,让持仓完整度过季度周期,留出均值回归的修复空间。
- 季末统一淘汰:到达季末调仓窗口(3、6、9、12 月末),由全市场截面动量打分统一仲裁。未收复失地、不再满足准入门槛的标的,在调仓日自然换出。
四、高波动标的的 MA50 移动止盈防护
除跌破年线的防守外,退出机制还需要覆盖浮盈保护。
200 日均线反映的是长达一年的持仓成本,对低波动的公用事业或消费股较合适。但对于 20 日年化波动率超过 35% 的高贝塔周期股与成长股(如算力、有色、航运、金融),上涨斜率陡,回落速度也快。如果等股价跌破 200 日线才退出,标的往往已从顶部回撤 30% 到 50%,大部分浮盈都会回吐。
系统对这类高波标的启用了 50 日均线(MA50)移动止盈:
- 当持仓标的的 20 日年化波动率大于 35% 时,激活移动防守状态。
- 以 MA50 作为移动止盈参考线。收盘价跌破 MA50 时,发出 P1 移动止盈警戒,锁定波段利润。
如前文图 3 右侧的监控案例:
- 银行龙头标的现价 3295.00,20 日年化波动率达 37.0%(超过 35% 阈值)。
- 该股 MA50 位于 3559.94,现价跌破 MA50 达 -7.4%;其 MA200 年线位于 3100.05(相距 -6.0%)。
- 系统发出移动止盈提示。相比等跌破年线 3100,MA50 规则提前锁定了 12.9% 的浮盈,减少了收益回吐。
五、核心底仓 ETF 的均线双向防守规则
纳指 100(QQQM)与欧洲宽基(VGK)属于不参与截面轮动的核心底仓,目标是获取主要市场的长期 Beta。
遇到 2008 年次贷危机或 2022 年加息周期时,主要指数最大回撤均超过 30%。系统对核心 ETF 设定了双向三日年线过滤规则:
- 离场条件:收盘价跌破 200 日均线 1.5% 满 3 个交易日,次日全部转入现金防守。
- 买回条件:连续 3 个交易日收盘重新站上 200 日均线,次日全额买回。
回测检验数据:
- 纳斯达克 100(QQQ):执行该规则后,历史最大回撤从 -30.5% 收缩至 -13.1%。
- 欧洲指数(VGK):历史最大回撤从 -24.4% 收缩至 -10.2%。
在当前跟踪状态中:
- 纳指 100 ETF 高于年线 4.3%,连续 30 天位于年线上方,保持持有。
- 欧洲 ETF 低于年线 0.1%,未满足连续 3 天站上条件,维持现金等待。
六、工程落地:多市场分层风控决策流
我们将上述微观约束与退出分流收敛为统一的决策架构:

在代码工程中,这一分流逻辑通过核心函数 assess_holding(位于 src/cang/analytics/monitor.py)落地:
def assess_holding(
symbol: str,
name: str | None,
market: str,
broker: str | None,
klines_rows: list[tuple[date, float, float, float, float]],
current_weight: float | None = None,
price_buffer_pct: float = 1.5,
time_buffer_days: int = 3,
high_vol_threshold: float = 35.0,
stop_enabled: bool = True, # 港股与 A 股传入 False
) -> MicroRiskAssessment:
closes = [r[4] for r in klines_rows]
p_last = closes[-1]
mas = calc_moving_averages(closes)
ma50, ma200 = mas[50], mas[200]
ann_vol = calc_annualized_volatility(closes, 20)
is_high_vol = bool(ann_vol is not None and ann_vol > high_vol_threshold)
# 双重时间价格滤网判定 (跌破年线 1.5% 满 3 天)
dual_buf_trig, consec_days, fri_broken, stop_loss_px = calc_dual_buffer_status(
dates, closes, buffer_pct=price_buffer_pct / 100.0, required_days=time_buffer_days
)
# 1. 港 A 股:破位不加仓,季度内不日内平仓
if not stop_enabled and stop_loss_px is not None and p_last <= stop_loss_px:
return MicroRiskAssessment(
alert_level=RiskAlertLevel.P1_YELLOW,
action="P1 破位不止损:低于年线,本市场调仓期内不止损不加仓,季末不符条件换出"
)
# 2. 美日杠杆仓 P0 强制清仓
if dual_buf_trig:
return MicroRiskAssessment(
alert_level=RiskAlertLevel.P0_RED,
action=f"P0 强制清仓:连续 {consec_days} 日跌破 MA200 1.5%,坚决止损清仓还债"
)
# 3. 高波标的 MA50 移动止盈
if is_high_vol and ma50 is not None and p_last < ma50:
return MicroRiskAssessment(
alert_level=RiskAlertLevel.P1_YELLOW,
action=f"P1 移动止盈:年化波动 {ann_vol:.1f}% 跌破 MA50,锁定浮盈防范回吐"
)
在系统日常监控运算中,多市场状态机按照以下层级归类输出:
- P0 强制清仓:成熟市场中连续 3 天跌破年线 1.5% 的标的,触发次日开盘市价清仓。
- P1 移动止盈:20 日年化波动率超过 35% 且跌破 MA50 的标的,提示锁定浮盈。
- P1 逆风警戒:中国现货市场中跌破均线的标的,冻结加仓,保留仓位直至季末窗口统一评估。
- P2 顺势持有:稳定运行在年线与 50 日线上方的标的,保持正常持有状态。
总结
退出规则的设计取决于具体的账户约束与市场特征:
- 杠杆账户:美股与日股存在借款负债,趋势破位执行 P0 强制清仓还款,控制负债敞口。
- 现货账户:港股与 A 股假跌破频繁,破位后平均反弹 5% 到 7%,机械止损会导致最大回撤从 -23.8% 扩大到 -32.0%,采用季度内不加仓、季末调仓窗口统一处理。
- 高波动标的:年化波动率超过 35% 的标的以 MA50 作为移动止盈线,减少浮盈回吐。
- 底仓 ETF:纳指 100 与欧洲宽基执行 3 天年线进出规则,过滤极端熊市风险。
门槛准入、双线缓冲与退出规则就位后,下一步是解决仓位分配问题:选出的标的如何分配资金,以及为什么等权重会放大组合波动。下一篇记录第七层:波动率倒数配仓与资金构建。