用ATR過濾橫盤垃圾信號
摘要:本文介紹如何利用 ATR 與其 20 日平均來建構波動率過濾器,在市場動能不足時自動跳過假訊號,並以假設範例說明設定倍率的方式,以及新手常見的誤用情形。

很多外匯新手都遇過這種情況:明明技術指標出現買進訊號,價格卻遲遲不動,甚至突然反轉,打掉停損後又繼續盤整。這種在低波動環境中頻繁出現的「橫盤垃圾訊號」,往往吃掉大量小虧損,累積下來比幾次大賠更傷帳戶。
如果有一個方法,能在市場安靜時自動跳過大部分可疑訊號,只保留波動夠大、方向較明確的機會,是不是能省下不少學費?我們可以借助 ATR 波動率過濾器來做到這件事。
什麼是 ATR 與波動率過濾?
ATR(Average True Range,平均真實區間)是衡量價格波動程度的技術指標,計算公式考慮當日最高最低價、以及與前一日收盤的差距,再取一定週期的移動平均。它本身不判斷方向,只告訴你 K 棒「平均有多長」。
當 ATR 數值變小,代表行情震幅收縮,市場進入低波動狀態,容易形成盤整。這時順勢策略容易產生反覆的假突破訊號,因為價格在區間內來回,短暫穿破支撐或壓力後又回頭。
波動率過濾的概念很簡單:拿當下的 ATR 和它的長期平均做比較。常用的做法是計算一條 20 日(或其他週期)的 ATR 平均線,然後設定一個條件:只有當最新 ATR 高於這條平均線時,才容許進場;如果 ATR 掉到平均線以下,代表市場動能不足,訊號就先放掉。
如何設定門檻,過濾約 30% 的訊號?
直接用「ATR > ATR 平均」作為過濾條件雖然有效,但有時候過於敏感,可能漏掉波動正在回升的初期。更彈性的做法是引入一個過濾倍率,例如將條件設為:
`最新ATR ≥ 門檻倍率 × ATR 平均`
其中門檻倍率通常設在 0.8 到 1.0 之間。若倍率為 0.85,不僅涵蓋「高於平均」的情形,也允許略低於平均但不算太冷的環境。這樣能過濾掉多數明顯的橫盤訊號,又不會太早就拒絕市場回春的訊號。
下面是一個純粹的假設示範,目的是說明計算邏輯,絕非實際操作指示:
- 假設我們在 EUR/USD 日線圖上使用 14 日 ATR,並計算其 20 日簡單移動平均(ATR_MA20)。
- 某一天 ATR 值為 0.0050,ATR_MA20 為 0.0062,我們選定的過濾倍率為 0.85。
- 計算門檻值:0.0062 × 0.85 = 0.00527。
- 當日 ATR 0.0050 < 0.00527,所以即使某個順勢系統在這一天發出做多訊號,過濾器也會排除它,不接受進場。
- 若另一天 ATR 為 0.0060,超過門檻,訊號則被保留。
實作上,我們可以在交易平台的自訂指標中寫入這條邏輯,並對過去的訊號進行統計。一些使用者回測顯示,將倍率設在 0.85 附近時,約可過濾掉 30% 左右的總訊號,而被淘汰的多數確實來自盤整期。
編寫指標的核心邏輯
無論使用哪一種程式語言或平台,過濾器的核心結構都差不多:
- 計算真實區間(True Range):取「當日最高-當日最低」「當日最高-昨日收盤絕對值」「昨日收盤-當日最低絕對值」三者的最大值。
- 計算 ATR:通常是 14 日的真實區間移動平均。
- 計算 ATR 的 20 日簡單移動平均。
- 設定過濾倍率(例如 0.85)並計算動態門檻。
- 在主要進場條件中增加一個判斷式:`if (ATR >= 門檻) 則容許進場;否則忽略訊號`。
不需要把過濾器單獨畫成副圖,直接嵌入策略中即可。
新手最常見的誤區
- 誤把 ATR 當成方向指標。ATR 只衡量波動大小,無論價格往上或往下衝,ATR 都會升高。用它判斷多空會得到毫無意義的結論。
- 過度最佳化倍率。拿 0.85 過濾掉 30% 訊號只是一個統計上的經驗參考,不同市場和時間框架都要重新評估,不能直接套用。
- 以為過濾後就可以放心交易。即使跳過多數盤整訊號,剩下的訊號仍然可能失敗。風險管理和部位控制永遠不能省略。
- 忘記週期匹配。如果主要策略看 1 小時圖,就用 1 小時的 ATR;用日線 ATR 去過濾短線訊號,會因為數值時間落差而失效。
波動率過濾器的價值,不在於找到更多獲利訊號,而是幫你少做很多徒勞的交易。當市場動能不足,強行進場只是增加成本。學會等待 ATR 跨過門檻,本身就是一堂重要的風險控制課。
免責聲明:
本文觀點僅代表作者個人觀點,不構成本平台的投資建議,本平台不對文章信息準確性、完整性和及時性作出任何保證,亦不對因使用或信賴文章信息引發的任何損失承擔責任
