吊灯止损(Chandelier Exit)由 Chuck LeBeau 提出,名字来自它的挂法:止损线像吊灯一样从天花板垂下来——天花板是持仓期间出现过的最高价,垂下的长度是若干倍 ATR。价格越涨,天花板越高,吊灯跟着往上挂;价格回落,天花板不动,吊灯也不动。
这篇文章讲清楚三件事:这条线怎么算、为什么必须只上移不下移、以及它在什么情况下会让你亏钱。
先说 ATR:为什么用波动率而不是百分比
固定百分比止损(比如「跌 8% 就走」)有一个说不通的地方:8% 对不同标的的含义完全不同。一只日均波动 1% 的公用事业股,跌 8% 说明发生了实质性的坏消息;一只日均波动 5% 的成长股,跌 8% 可能只是一个普通的周二。用同一把尺子量两件不同尺寸的东西,结果必然一边太松、一边太紧。
ATR(Average True Range,平均真实波幅)解决的就是这个问题。先算单日真实波幅:
TR = max(今日最高 - 今日最低,
|今日最高 - 昨日收盘|,
|今日最低 - 昨日收盘|)
后两项是为了把跳空计入波动——如果今天整根 K 线都在昨天收盘价之上,只看当日高低点会严重低估实际的价格移动。
再对 TR 做 Wilder 平滑(注意不是普通 EMA,两者的系数不同):
ATR(n) = (前一日 ATR × (n-1) + 今日 TR) / n
我们的引擎默认 atr_period = 14。ATR 的单位是价格,不是百分比,所以「3 倍 ATR」在高波动标的上自然就是更宽的距离,不需要你手动为每个标的调参。
吊灯止损线的完整算法
设持仓期间出现过的最高价为 HH(从入场当日算起,逐日更新),倍数为 k:
止损线 = HH - ATR(n) × k
最终止损 = max(历史上算出的所有止损线) ← 关键:取最大值,只上不下
第二行才是「吊灯」的灵魂。如果只有第一行,价格从高点回落时 HH 不变、ATR 却可能因为波动放大而变大,止损线反而会往下掉——那就不是止损,而是一个会自己让路的假承诺。
我们的引擎给了两个倍数,是有意为之:
| 参数 | 默认值 | 作用 |
|---|---|---|
entry_mult | 2.0 | 入场当日的初始止损,贴得紧一点,避免刚进场就承担过大风险 |
exit_mult | 3.0 | 持仓期间的跟踪止损,放得宽一点,给趋势留出呼吸空间 |
atr_period | 14 | ATR 的平滑周期 |
sma_period | 100 | 入场过滤:只在收盘价站上均线时才考虑做多 |
breakout_period | 22 | 入场触发:收盘价创下过去 22 日新高 |
初始止损与跟踪止损分开设,是因为这两件事的目的不同。入场那一刻你对这笔交易一无所知,唯一该控制的是「如果立刻证明我错了,我最多亏多少」;而在浮盈状态下,过紧的止损会把你从一段刚刚开始的趋势里洗出去。同一个倍数同时承担这两个职责,必然有一头被牺牲。
为什么必须只上移
把「止损可以下移」允许一次,你就失去了策略里唯一一个确定的量。
考虑一笔在 100 元入场、初始止损 92 元的交易。如果止损可以下移,那么当价格跌到 93 元时,你会面临一个非常有说服力的理由:「最近波动变大了,ATR 从 4 变成了 6,止损应该放宽到 88 才合理。」这个论证在数学上甚至是自洽的——ATR 确实变大了。但它的结果是:你的最大亏损从入场时说好的 8 元,变成了一个由「未来波动率」决定的、事先不知道上限的数。
这不是纪律问题,是结构问题。回测里最容易被忽略的一点是:一个允许止损下移的策略,其亏损分布没有右尾截断。你在样本里看到的最大单笔亏损,只是这段历史恰好没有走到更糟而已;换一段样本,它可以任意大。而「只上不下」的止损让每笔交易的最坏情况在入场时就已锁定(跳空除外,下面会说),整个策略的风险因此可以被加总、被预算。
反过来说,止损上移带来的另一个效果同样重要:它把一笔亏损交易逐步变成保本交易,再变成盈利交易,且这个过程不需要你做任何判断。趋势跟踪的收益结构就是「大量小亏 + 少量大赚」,而那些大赚之所以能变大,正是因为止损始终在价格下方跟随,而不是在某个你觉得「涨够了」的位置提前把它砍掉。
它会在哪些情况下让你亏钱
任何声称没有代价的策略都在骗人。吊灯止损的代价很具体:
跳空穿越。 止损线是一个价格水平,不是一张保单。财报或并购消息导致次日直接低开在止损线之下时,实际成交价就是低开价,亏损会超过你算好的那个数。这是止损唯一无法覆盖的场景,也是仓位管理不能省略的原因。
震荡市里的反复止损。 价格在一个区间内上下,每次向上突破 22 日新高触发入场,随后回落触发止损。这种环境下策略会持续小亏,而且亏得非常规律。历史上趋势跟踪最难熬的时期从来不是暴跌,而是长时间没有方向的横盘。
波动放大导致的过宽止损。 在一次剧烈下跌之后 ATR 会显著上升,此时新开仓位的止损距离会比平时宽得多。名义上你的止损百分比变大了,实际承担的风险也随之变大——除非你同步缩小仓位。ATR 让止损距离自适应,但它不会替你调整仓位。
它不告诉你买什么。 吊灯止损是一套出场规则。入场条件(站上均线 + 创新高)只是把它接进一个完整策略的最小配置。把出场规则的有效性理解成整个策略的有效性,是回测解读里最常见的错位。
动手验证
以上每一条都可以在回测工具里自己跑一遍。建议的三组对照实验:
- 固定
exit_mult = 3.0,把entry_mult从 1.5 调到 4.0,观察交易次数与胜率如何反向变化; - 固定入场参数,只改
atr_period(7 / 14 / 28),看止损的敏感度; - 挑一段公认的横盘区间跑一次,把「大量小亏」这件事看成数字,而不是概念。
需要说明的是:这些实验能告诉你参数如何影响结果,但不能告诉你哪组参数「更好」——那属于另一个话题,见《回测的三个陷阱》里关于过拟合的部分。
本文仅用于量化技术研究与教育目的,不构成任何投资建议。历史回测结果不代表未来收益,交易风险由投资者自行承担。