VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
策略學院 / 指標與訊號

ATR 指標:如何用平均真實波幅設定停損與部位大小

ATR 衡量一個市場每根 K 棒平均會走多遠,跳空也計算在內。交易人用 ATR 的倍數來設定停損與停利,並據此決定部位大小,讓每筆交易承擔的風險金額大致相近。

作者 · 發佈 · 更新於 · 編輯原則

目錄
  1. ATR 指標是什麼?如何計算?
  2. ATR 週期該設多少?
  3. ATR 停損與停利,和固定跳動點出場相比如何?
  4. 如何用 ATR 決定期貨部位大小?
  5. 如何測試 ATR 倍數,並檢查設定是否穩定?
  6. ATR 無法告訴你什麼?
  7. 常見問題
  8. 參考資料

ATR 指標(Average True Range,平均真實波幅)衡量一個市場每根 K 棒平均會走多遠,跳空也計算在內。你先算出每根 K 棒的真實波幅,再取一段週期(例如 14 根 K 棒)的平均。接著用 ATR 的倍數來設定停損與停利,並決定部位大小,讓每筆交易承擔的風險金額大致相近。

ATR 指標是什麼?如何計算?

ATR 是每根 K 棒真實波幅的平均值,因此能以價格單位告訴你,這個市場一根 K 棒通常會走多少。它由 J. Welles Wilder 提出,他同時也是 RSI 的發明者。ATR 指標頁面有完整的定義說明,所以本文把重點放在停損、部位大小與測試。

真實波幅是一根 K 棒下列三個距離中最大的一個:

  1. 該 K 棒的最高價減最低價。
  2. 前一根收盤到這根 K 棒最高價的距離。
  3. 前一根收盤到這根 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 週期與倍數
價格線先平靜後快速的示意圖:固定距離的停損停在同一價位,在快速階段被正常震盪觸及;而 2 ATR 的停損會在行情加速時放寬,因此沒有被觸及 固定停損被觸發 示意圖:先平靜後快速的行情 平靜 快速 觸發 價格 固定停損 ATR 停損 ATR 停損在快速行情中會放寬。 因此: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 設定會落在一大片結果相近的高原上。被弱結果包圍的單一尖峰,通常表示回測擬合的是雜訊。可以想成在山坡上選站的位置:寬闊平坦的山頂很安全,尖細的針尖則不然。

  1. 固定進場規則。一次只針對一條進場規則測試出場,這樣你才知道是哪個改變造成了結果。
  2. 選用粗略的網格。例如,週期 7、14、21 和 28,對上停損倍數 1.0、1.5、2.0、2.5、3.0 和 4.0。
  3. 每次執行都納入成本與下一根 K 棒成交。小倍數會造成大量停損出場,而每一次都要付手續費與滑價。
  4. 檢視整個網格。檢查相鄰格子的淨損益與回撤是否相近。
  5. 從高原的中間挑選,而不是挑單一最佳格子。
  6. 用樣本外確認。執行推進分析,檢查每個視窗選出的倍數是否來自同一個區域。
假設的淨損益格狀圖,橫軸為 ATR 週期 7、14、21、28,縱軸為停損倍數 1 到 4:週期 14 到 28、倍數 2 到 3 形成一大片績效良好的高原區,而週期 7、倍數 1 有一個孤立的亮格,周圍都是表現不佳的格子,很可能只是運氣 選高原,不選尖峰 示意:週期 × ATR 倍數 1× 1.5× 2× 2.5× 3× 4× 週期 7 14 21 28 高原區 運氣尖峰 孤立的尖峰多半是運氣。 所以:選高原中間。
淨損益的假設網格。寬廣的高原是穩定的選擇。孤立的亮格比較可能是運氣,而不是優勢。

你每多試一個設定,最佳那一個只是碰巧好看的機率就越高。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 棒成交與你的交易時段來評估每個候選策略。

看方案與價格