ATR 指標:如何用平均真實波幅設定停損與部位大小
ATR 衡量一個市場每根 K 棒平均會走多遠,跳空也計算在內。交易人用 ATR 的倍數來設定停損與停利,並據此決定部位大小,讓每筆交易承擔的風險金額大致相近。
作者 Soren Huang · 發佈 · 更新於 · 編輯原則
目錄
ATR 指標(Average True Range,平均真實波幅)衡量一個市場每根 K 棒平均會走多遠,跳空也計算在內。你先算出每根 K 棒的真實波幅,再取一段週期(例如 14 根 K 棒)的平均。接著用 ATR 的倍數來設定停損與停利,並決定部位大小,讓每筆交易承擔的風險金額大致相近。
ATR 指標是什麼?如何計算?
ATR 是每根 K 棒真實波幅的平均值,因此能以價格單位告訴你,這個市場一根 K 棒通常會走多少。它由 J. Welles Wilder 提出,他同時也是 RSI 的發明者。ATR 指標頁面有完整的定義說明,所以本文把重點放在停損、部位大小與測試。
真實波幅是一根 K 棒下列三個距離中最大的一個:
- 該 K 棒的最高價減最低價。
- 前一根收盤到這根 K 棒最高價的距離。
- 前一根收盤到這根 K 棒最低價的距離。
後兩個距離在市場跳空時很重要。一根 K 棒的高低價差可能很小,但如果開盤離前一根收盤很遠,它仍然是一段大幅的走動。
假設範例
前一根 K 棒收在 100。下一根 K 棒開盤走高,在 101 到 104 之間交易。最高價減最低價是 3。最高價減前一根收盤是 4。最低價減前一根收盤是 1。真實波幅是三者中最大的 4,所以從 100 到 101 的跳空也被算進去了。
平均真實波幅(ATR)是真實波幅在選定的 K 棒數量(稱為週期)內的平均值。Wilder 使用的是平滑平均:每個新的 ATR 值保留大部分舊值,再加上一小部分最新的真實波幅。有些平台改用簡單平均。兩者算出的數字略有不同,所以在拿回測與實單交易的數值比較之前,先確認你的平台用的是哪一種。
ATR 週期該設多少?
先用 Wilder 的預設值 14 根 K 棒,只有在測試給了你理由時才調整。週期是在反應速度與雜訊之間取捨。
| 週期 | 特性 | 常見用途 |
|---|---|---|
| 短(約 5 到 10 根 K 棒) | 反應快,一根大 K 棒之後就會跳升 | 需要跟隨波動度突然變化的出場 |
| 預設(14 根 K 棒) | 均衡,最常被拿來當參考 | 初始停損與部位大小 |
| 長(約 20 到 50 根 K 棒) | 平滑,變化慢 | 不希望每天都變動的部位大小 |
週期是以 K 棒數計算,不是以時間計算。5 分 K 上的 14 週期 ATR 涵蓋 70 分鐘;日線上則涵蓋約三個交易週。如果你改變 K 棒週期,同樣的週期所描述的市場區間就會差很多。
有兩個資料上的選擇,對 ATR 的影響比多數交易人預期的更大:
- 交易時段。如果你的圖表只顯示日盤,昨天收盤到今天開盤的跳空,會成為第一根 K 棒真實波幅的一部分。同一個市場用全時段 K 棒時,這段走動會分散到夜盤的 K 棒中。先決定交易時段,再量測 ATR。
- 合約轉倉。在未調整的連續月期貨序列上,轉倉時的價格跳動看起來像是巨大的真實波幅,這一根 K 棒就可能讓 ATR 膨脹好幾週。請使用回溯調整的序列,或確認你的資料有處理轉倉。
ATR 停損與停利,和固定跳動點出場相比如何?
ATR 出場會依目前的波動度調整距離。固定跳動點出場在任何情況下都維持相同距離,所以在快市場中常常太緊,在安靜的市場中又常常太鬆。
ATR 倍數是你用來乘以 ATR、得出出場距離的數字。倍數為 2、ATR 為 15 點時,多單的停損會設在進場價下方 30 點。停利則可能設在進場價上方 3 倍 ATR。移動停損的版本常被稱為吊燈出場(chandelier exit),它讓停損始終維持在進場後最高價下方固定倍數的 ATR 處。
| 固定跳動點出場 | ATR 出場 | |
|---|---|---|
| 停損距離 | 每筆交易都是相同跳動點數 | 隨近期波動度改變 |
| 安靜的市場 | 常常比需要的更寬 | 隨市場收窄 |
| 快速的市場 | 正常的震盪就可能觸發 | 放寬,停留在正常震盪之外 |
| 每口承擔的風險金額 | 固定 | 會變動,所以部位大小必須跟著調整 |
| 需要測試的參數 | 跳動點距離 | ATR 週期與倍數 |
有三個回測細節,決定 ATR 出場是否貼近實際:
- 使用最近一根已完成 K 棒的 ATR。目前這根 K 棒的 ATR 要等 K 棒收盤才知道。把它用在同一根 K 棒的停損上,會讓測試看到未來。
- 決定距離是固定不變還是持續更新。進場時就固定的停損,和每根 K 棒重新計算的停損,行為不同。寫下你測試的是哪一種,並用同一條規則下單。
- 模擬跳空穿越停損的情況。當市場開盤就越過你的停損,你是在開盤價成交,而不是停損價。回測若讓每次停損都剛好成交在停損價位,就太寬容了,而且停損越緊,誤差越大。
如何用 ATR 決定期貨部位大小?
依波動度調整的部位大小,會選擇口數,讓固定倍數 ATR 的停損,在每筆交易中大約佔帳戶相同的比例。波動度上升時,你交易的口數變少;波動度下降時,口數變多。
計算只有一行:
口數 = 帳戶風險 ÷(倍數 × ATR × 每點價值),無條件捨去。
- 帳戶風險是你願意在這筆交易中虧損的金額,例如帳戶的 1%。
- 倍數是你的 ATR 停損倍數,例如 2。
- ATR是以價格點數表示的目前 ATR。
- 每點價值是一口合約價格每變動一整點所代表的金額。
部位大小計算器可以根據給定的帳戶風險與停損距離做這個除法。期貨合約計算器會顯示跳動點大小、每跳動點價值與每點價值。這些數值由交易所制定,也可能調整,所以請到交易所的合約頁面確認。
假設範例
一個 $100,000 的帳戶每筆交易承擔 1% 的風險,也就是 $1,000。ATR 為 20 點,停損為 2 倍 ATR,所以停損距離是 40 點。以每點 $50 的標準口合約來算,每口的停損成本是 $2,000,超過 $1,000,所以結果是零口。改用每點 $5 的微型合約,每口的停損成本是 $200,因此帳戶可以交易 5 口。
之後波動度加倍,ATR 變成 40 點。停損現在是 80 點,每口微型合約是 $400。$1,000 ÷ $400 = 2.5,無條件捨去為 2 口。實際風險是 $800。部位縮小了,而承擔的風險金額仍接近目標。
期貨上的實務重點:
- 一律無條件捨去。進位會讓每筆交易承擔的風險超過你的計畫。
- 結果為零本身就是資訊。它表示以該合約來說,停損對這個帳戶太寬。可以改用較小的合約、較小的倍數,或略過這筆交易。
- 算完部位大小後要檢查保證金。在安靜的市場中,ATR 部位大小可能建議出比保證金允許的更多口數。
- 用金額比較市場,不要用點數。ATR 乘以每點價值,得出每口一個 ATR 值多少錢。這個數字能讓你把指數期貨與黃金期貨調整到相近的風險。
如何測試 ATR 倍數,並檢查設定是否穩定?
好的 ATR 設定會落在一大片結果相近的高原上。被弱結果包圍的單一尖峰,通常表示回測擬合的是雜訊。可以想成在山坡上選站的位置:寬闊平坦的山頂很安全,尖細的針尖則不然。
- 固定進場規則。一次只針對一條進場規則測試出場,這樣你才知道是哪個改變造成了結果。
- 選用粗略的網格。例如,週期 7、14、21 和 28,對上停損倍數 1.0、1.5、2.0、2.5、3.0 和 4.0。
- 每次執行都納入成本與下一根 K 棒成交。小倍數會造成大量停損出場,而每一次都要付手續費與滑價。
- 檢視整個網格。檢查相鄰格子的淨損益與回撤是否相近。
- 從高原的中間挑選,而不是挑單一最佳格子。
- 用樣本外確認。執行推進分析,檢查每個視窗選出的倍數是否來自同一個區域。
你每多試一個設定,最佳那一個只是碰巧好看的機率就越高。4 個週期、6 個停損倍數與 5 個停利倍數,就有 120 種組合。120 個裡最好的那個是被高估的,因為總會有某個組合剛好擬合了過去的雜訊。關於回測過度最佳化的研究顯示,嘗試的組合越多,最好的結果在新資料上失效的可能性就越高(Bailey、Borwein、López de Prado 與 Zhu,2014)。把網格保持粗略,記錄你試了多少種組合,並在擴大搜尋之前先閱讀策略生成中的過度最佳化。
AlphaPrime(Valynox)透過策略生成處理這類搜尋,你可以設定參數範圍、進出場條件與搜尋限制。AlphaPrime 以相同的手續費、滑價與下一根 K 棒成交來評估每個候選策略,因此網格中的比較是在同一基準上進行。
ATR 無法告訴你什麼?
ATR 衡量價格走動的幅度,而不是方向。用它來設定出場與決定部位大小,而不要單獨拿來當進場訊號。
- 沒有方向。ATR 在急漲與急跌時一樣會上升。高 ATR 只說明市場走動很大,僅此而已。
- 無法預測。ATR 描述的是過去 N 根 K 棒。消息公布後,下一根 K 棒的波動度就可能暴增,而 ATR 要到事後才會跟上。
- 暴增後的落後。一根非常大的 K 棒,可以讓長週期 ATR 在市場平靜下來之後,仍在許多根 K 棒內維持高檔。
- 只有價格單位。ATR 為 20 點,在價格 500 與價格 20,000 時意義大不相同。要比較不同市場或長時間,請把 ATR 除以價格,得到百分比形式的 ATR。
- 資料瑕疵。錯誤報價、缺漏的 K 棒與轉倉跳空,都會進入真實波幅。乾淨的資料是第一步。
如果你使用 AlphaPrime,這代表:把 ATR 週期與倍數當作參數範圍,並納入成本來測試,然後只保留在寬廣區域內與推進分析視窗中都站得住腳的設定。
常見問題
停損用多少倍的 ATR 比較好?
許多交易人從 1.5 到 3 倍 ATR 開始,但沒有哪個倍數適用於所有市場與 K 棒週期。請在你自己的策略上,納入成本測試一段粗略的範圍。從穩定區域中選一個值,在那裡相鄰的倍數結果也相近。
ATR 週期設多少最好?
常見的預設值是 14 根 K 棒,也就是 Wilder 使用的設定。較短的週期反應較快,但會在單一根大 K 棒之後跳升。較長的週期較平滑,但也較慢。請記得週期是以 K 棒數計算,所以 5 分鐘圖上的 14,時間跨度比日線圖上的 14 短得多。
ATR 能顯示趨勢方向嗎?
不能。ATR 衡量的是價格走動的大小,而不是方向。在強勢上漲與強勢下跌時它都會上升。請搭配另外的進場或趨勢規則。
為什麼我的 ATR 數值在不同平台上不一樣?
各平台可能使用不同的平均方法,例如 Wilder 平滑或簡單平均。交易時段設定,以及資料如何處理合約轉倉,也會改變真實波幅。請在回測與實單交易中使用相同的方法與相同的資料。
參考資料
- Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.
AlphaPrime 在這裡能幫上什麼
AlphaPrime 的策略生成會搜尋參數範圍與進出場條件。它的回測會以手續費、滑價、下一根 K 棒成交與你的交易時段來評估每個候選策略。

