吊燈停損(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),看停損的敏感度; - 挑一段公認的橫盤區間跑一次,把「大量小虧」這件事看成數字,而不是概念。
需要說明的是:這些實驗能告訴你參數如何影響結果,但不能告訴你哪組參數「更好」——那屬於另一個話題,見《回測的三個陷阱》裡關於過度配適的部分。
本文僅用於量化技術研究與教育目的,不構成任何投資建議。歷史回測結果不代表未來報酬,交易風險由投資人自行承擔。