跳至主要內容
台股研究 約 10 分鐘閱讀

ATR 是什麼?ATR 指標公式與用法:肯特納通道設定、停損停利與回測

ATR 是什麼?ATR 指標是衡量股票真實波動幅度的技術指標,可用在停損停利、通道寬度與波動過濾。本文整理 ATR 公式、ATR 指標用法、股票 ATR 查詢與設定方式,再用 finlab 畫出肯特納通道(Keltner Channel),比較它和布林通道在突破、抱波段、ATR 停損停利與回測上的差異。

ATR 是什麼?ATR 指標在量化交易裡怎麼用?

一句話: ATR 指標(Average True Range,平均真實區間)衡量股票近期的真實波動幅度,ATR 計算是先取每日真實波動 TR(當日高低價之差、前日收盤到當日高點、前日收盤到當日低點三者取最大值),再做 N 日移動平均;肯特納通道(Keltner Channel,也作 Keltner 通道)則是以 EMA 為中軸、上下加減 ATR 倍數畫出的趨勢通道。常見入門設定是 EMA 20、ATR 10 或 20、上下軌 2 倍 ATR,本文範例用 EMA 10 搭配 2 倍 ATR。完整公式、Python 查詢與回測見下方各節。

ATR 指標(Average True Range,平均真實區間)是衡量一段期間內價格波動幅度的技術指標。它把每日的真實波動(True Range,TR)做移動平均後,得到一條反映「這檔股票最近震得有多大」的數值;股票 ATR 越高,代表近期價格波動越劇烈。ATR 只描述波動大小,不指出未來方向,所以要和價格趨勢、均線或通道一起解讀。在程式交易裡,ATR 常被用來設定停損停利距離、做 ATR 移動停利,或當作肯特納通道的頻寬。完整 ATR 公式、ATR 計算方法與 Python 查詢方式,見下方各節,也可參考程式交易是什麼的整體脈絡。

如果你的主要問題是「ATR 指標怎麼查」、「股票 ATR 怎麼排序」或「ATR / 收盤價波動率怎麼用在台股選股」,本文後半的應用段會逐一回答;如果想檢查 ATR 條件放進策略後的報酬與風險,可用 FinLab 回測工具 重新跑自己的股票池。

肯特納通道(Keltner Channel)是什麼?

肯特納通道(Keltner Channel)是以移動平均線為中軸、上下用 ATR 的倍數畫出通道的趨勢指標。中軸通常取 EMA,上下軌則是中軸加減某個倍數的 ATR,因此通道寬度會隨波動放大或收斂。它和布林通道的思路相近,差別在於肯特納通道用 ATR 當波動頻寬、用 EMA 當中線,相對標準差更穩定,較適合用來判斷趨勢與抱波段。本文後段會用 finlab 套件實際畫出通道並回測一個突破策略。

6104創惟 ATR 指標與肯特納通道 Keltner Channel 走勢圖

ATR 指標公式與計算方法

ATR 指標全名為 Average True Range,中文常稱平均真實區間或平均真實波幅。它要解決的是一般高低價區間看不到的跳空問題:今天最高價與最低價的距離很小,不代表昨天收盤到今天開盤之間沒有出現大幅跳空。

ATR 公式分兩步。第一步先算每天的 TR(True Range):

TRt = max(Ht - Lt, abs(Ht - Ct-1), abs(Lt - Ct-1))

第二步再把 TR 做 N 日移動平均,常見 ATR 計算可寫成:

ATR(n) = EMA(TR, n)

其中 Ht 是當日最高價,Lt 是當日最低價,Ct-1 是前一日收盤價。TR 會取下列三個數值中的最大值:

  1. 當日高低價之差額
  2. 前日收盤與當日最高價之差額
  3. 前日收盤與當日最低價之差額

第一點衡量當日 K 棒內的波動,第二與第三點把跳空缺口納入計算,避免只看單一 K 棒造成低估。用 EMA 計算 ATR,會把 TR 平滑成較穩定的波動讀數,讓指標不易被單日極端值拉得暴起暴落;和 SMA(簡單移動平均)相比,EMA 對近期波動的反應也較快。

查詢問題 可看的 ATR 數字 實務用法
ATR 是什麼指標? N 日平均真實波幅 衡量近期價格震幅,不判斷多空方向
ATR 公式怎麼算? 先算 TR,再做 EMA 把高低價與跳空缺口一起納入
股票 ATR 怎麼看? ATR 或 ATR / 收盤價 比較同一檔股票近期波動,跨股票比較建議用 NATR
ATR 停損停利怎麼設? 1.5 至 3 倍 ATR 常見 依股性調整出場距離,需回測驗證
肯特納通道怎麼畫? EMA 中軸 ± k × ATR 用 ATR 當通道寬度,追蹤趨勢突破

ATR 如何解讀與使用

ATR 指標的重點在只反映波動性,而不指出未來價格方向。看股票 ATR 時,最好同時看價格趨勢,才能分辨波動放大是「上漲擴張」還是「下跌擴張」。

  • ATR 指標和價格趨勢同步向上,代表向上波動加強,價格甩高機會變大。
  • ATR 指標和價格趨勢同步向下,代表向下波動加強,價格急跌機會變大。
  • ATR 指標向下,價格趨勢向上,代表向上動能漸弱,價格高檔震盪走向整理機會變大。
  • ATR 指標向上,價格趨勢向下,代表向下動能漸弱,價格急跌後出現反彈整理機會變大。

多數看盤軟體或 ATR 指標 app 都會直接顯示 ATR 線,但如果想查詢全市場股票 ATR、批次計算 ATR 指標或把它放進選股條件,用 Python 會更方便。下面用 finlab 套件畫出 ATR 技術指標與肯特納通道。以近期飆股 6104 創惟為例,ATR 與股價不一定同向:

顯示程式碼
from finlab import data
from finlab.plot import plot_tw_stock_candles
from finlab.data import indicator
overlay_func={
              'ema_10':indicator('EMA',timeperiod=10),
              'keltner_up':indicator('EMA',timeperiod=10)+2*indicator('ATR',timeperiod=10),
              'keltner_down':indicator('EMA',timeperiod=10)-2*indicator('ATR',timeperiod=10),
                                  }
technical_func={
                'atr_10':indicator('ATR',timeperiod=10),
                'atr_20':indicator('ATR',timeperiod=20)
                }
plot_tw_stock_candles('6104',overlay_func=overlay_func,technical_func=technical_func)

股價波動率

ATR 主要應用在停損停利設定與結合通道理論來操作。每一檔股票的價格不同,直接比較 ATR 金額會失真,所以跨股票比較時通常會看 NATR,也就是 ATR / 收盤價 × 100%。高波動率股票代表劇烈震盪是常態,適合短線或當沖交易者追蹤;低波動率股票則較適合不想承受短線劇烈波動、或想找底部沉澱期的投資人。把 ATR 換算成波動率後拿來選股,就是跨股票比較時最常用的正規化做法。

6104短線波動率大,適合當作短線標的 6104短線波動率大,適合當作短線標的。

6263波動率小,不適合短線操作 6263波動率小,不適合短線操作。

停損停利

停損停利改用 ATR 作為標準,能避免用固定的單一數值統一出場造成粗糙結果。例如整個策略統一用 10% 當停損點,但大波動股票上下震盪 20% 可能是常態,用 10% 停損容易被洗出場。若改成「進場價或近期高點 - 2 倍 ATR」這類 ATR 停損線,就能依每檔股票的波動性調整出場距離。

ATR 移動停利也是同一個概念:價格創高時停利線跟著上移,停利距離用 1.5 至 3 倍 ATR 表示。倍數越小,出場越快;倍數越大,越能抱波段,但回吐也會增加。停損停利參數仍需用回測驗證,因為不同頻率、持股數與股票池會讓結果差很多;用 ATR 控制波動與回吐後,是否真的換到更好的風險調整後報酬,可用夏普比率計算器實際比對不同停損距離下的夏普值與最大回撤。想進一步用回測數據檢驗停損距離該設多遠,可參考MAE / MFE 分析與停損停利設定;若想看 ATR 移動停損在台股月頻策略中的反面教材,可讀ATR 停損台股實測

肯特納通道(Keltner Channel)設定

通道模型利用過去一段時間內的價格訊息,繪製出上下軌通道,藉此設定股價的相對高低界線;兩條通道線的距離也呈現股價的震盪幅度,震盪小時通道窄,震盪大時通道寬。通道模型將價格高低與波動幅度融合,能協助判斷市場趨勢,也能過濾均線系統中的假突破訊號。

肯特納通道設定通常有三個元素:中軸 EMA 週期、ATR 計算週期、ATR 倍數。常見入門設定是 EMA 20、ATR 10 或 20、上下軌 2 倍 ATR;本文範例使用 EMA 10 搭配 2 倍 ATR,反應較快,較偏短線。若你在券商軟體或 ATR 指標 app 查詢 Keltner Channel,看到的參數欄位通常也是這三個。

常見的通道模型為「布林通道」用股價的標準差當作波動頻寬,肯特納通道的概念也非常類似,主要差異在使用 ATR 當作波動頻寬,並使用 EMA 當中間線。

肯特納通道 V.S. 布林通道

2倍標準差的布林通道與2倍ATR的肯特納通道比較圖 2倍標準差的布林通道與2倍ATR的肯特納通道比較

由上面的比較圖可知,布林通道(bband)的標準差(std)收斂和發散快,數值跳動很大。剛往上突破、通道開始發散時,布林上軌是明顯訊號;但上軌不一定適合當趨勢線,因為只要股價動能稍弱,就很容易跌破上軌,不適合作為抱波段或中途切入的指標。

ATR 的波動相較標準差穩定,數值不會太急速跳動,更適合當作抱長波段的指標,減低大飆股太早被洗出場的可能。布林通道標準差的概念較適合做逆勢策略,抓價格過高或過低的反轉點。

兩者的結構差異整理如下(以下為概念性對照,實際績效仍需以自己的選股池回測為準):

比較項目 肯特納通道(Keltner Channel) 布林通道(Bollinger Bands)
中軸 多以 EMA 指數移動平均為中線 多以 SMA 簡單移動平均為中線
通道寬度依據 ATR 平均真實區間(含跳空缺口) 價格標準差(std)
寬度變化特性 隨波動緩步擴張或收斂,數值較穩定 收斂與發散較快,數值跳動較大
對突破與抱波段 上軌相對穩定,較適合順勢追突破、抱長波段 上軌易因動能稍弱被跌破,較不利抱波段
對盤整的反應 盤整時通道平緩,假突破訊號相對少 盤整時帶寬快速收窄,常見作為逆勢反轉與過熱判斷

肯特納通道策略範例

策略條件

  • 限定上市櫃普通股股票。
  • 收盤價位剛站上肯特納上軌通道為買進條件。
  • 收盤價位於肯特納上軌通道之上為持有條件,位於之下則賣出。
  • EMA均線多頭排列。
  • 換股頻率為兩週(短線)。
  • 排除日均成交量過小標地。
顯示程式碼
from finlab.backtest import sim
from finlab import data
 
data.set_universe(market='TSE_OTC')
 
adj_close = data.get('etl:adj_close').loc['2012':]
ema_5=data.indicator('EMA', adjust_price=True, resample='D',timeperiod=5)
ema_10=data.indicator('EMA', adjust_price=True, resample='D',timeperiod=10)
ema_20=data.indicator('EMA', adjust_price=True, resample='D',timeperiod=20)
atr=data.indicator('ATR', adjust_price=True, resample='D',timeperiod=10)
keltner_up=ema_10+2*atr
vol=data.get('price:成交股數')/1000
vol_avg=vol.average(20)
 
cond1 = (adj_close > keltner_up) & (adj_close.shift() < keltner_up.shift())
cond2 = (ema_5 > ema_10) & (ema_10 > ema_20)
cond3 = vol_avg > 100
entries =  cond1 & cond2 & cond3
exits = adj_close < keltner_up
 
position = entries.hold_until(exits,nstocks_limit=20, rank=vol_avg)
rr=sim(position,resample='2W',position_limit=0.05)

回測結果

效果普通,多頭年份較強。可能要搭配其他指標應用,也可以把這套通道突破條件丟進線上回測平台,疊加其他因子後再看整體績效。

肯特納通道策略回測結果績效圖

結合二次創高策略

融合hahow課程中的二次創高策略,將收盤價位於肯特納上軌通道之上為持有條件,位於之下則賣出,換股頻率改為2週。更加確認股價突破強度。

肯特納通道結合二次創高策略回測績效圖

常見問題(FAQ)

ATR 是什麼指標?

ATR 是 Average True Range 的縮寫,中文常稱平均真實區間或平均真實波幅,是用來衡量價格波動幅度的技術指標。它會把當日高低價、前一日收盤到當日高點、前一日收盤到當日低點三者中的最大值納入,再做移動平均。ATR 高代表近期波動大,ATR 低代表近期波動小;它不判斷價格會漲或跌,所以實務上會搭配趨勢、均線、布林通道或肯特納通道一起看。想看更多技術指標的台股實測,可延伸到技術指標回測總覽

肯特納通道(Keltner Channel)是什麼?

肯特納通道(Keltner Channel,也作 Keltner 通道)是以移動平均線為中軸、上下用 ATR 的倍數畫出通道的趨勢指標。中軸通常取 EMA,上下軌則是中軸加減某個倍數的 ATR,因此通道寬度會隨波動放大或收斂。它和布林通道的思路相近,差別在於肯特納通道用 ATR 當波動頻寬、用 EMA 當中線,相對標準差更穩定,較適合用來判斷趨勢與抱波段。常見入門設定是 EMA 20、ATR 10 或 20、上下軌 2 倍 ATR;本文範例使用 EMA 10 搭配 2 倍 ATR,反應較快,較偏短線。

ATR 指標怎麼計算?

ATR 計算先求每天的真實波動 TR,再對 TR 取 N 日的指數移動平均。TR 取三個數值的最大值:當日高低價之差、前日收盤與當日最高價之差的絕對值、前日收盤與當日最低價之差的絕對值,第二與第三項把跳空缺口也納入考量。用 EMA 而非 SMA 來平滑,能讓指標較不易被單日暴衝的雜訊干擾,也較能反映近日的波動。實務上不必手刻 ATR 公式,用 finlab 套件的 indicator('ATR', timeperiod=10) 一行就能算出,計算原理也可對照用 Python 計算 158 種常見技術指標

股票 ATR 查詢要看哪個數字?

單看某一檔股票時,可以看原始 ATR,因為它代表近期平均每天大約震多少元。跨股票比較時,建議看 NATR,也就是 ATR 除以收盤價後的百分比,否則高價股的 ATR 天然會比低價股大。舉例來說,500 元股票 ATR 10 元和 20 元股票 ATR 1 元,原始 ATR 看起來前者較大,但換成比例後分別是 2% 與 5%,後者才是波動更劇烈的標的。

ATR 指標設定要用 10、14 還是 20?

Wilder 原始 ATR 常用 14 期,技術分析軟體也常把 14 設為預設值。短線交易者會用 10 期讓 ATR 更敏感,波段交易者可能用 20 期讓波動讀數更平滑。本文肯特納通道範例用 ATR 10,是因為策略換股頻率為兩週,較重視短期突破;若用在月頻選股或中長線停損,建議把 10、14、20 都放進回測比較,不要只相信預設參數。

ATR 可以用來做什麼?

ATR 最常見的用途是設定停損停利、衡量股票波動率,以及當作通道指標的頻寬。因為它反映的是每檔股票自己的波動股性,用 ATR 的倍數來設出場點,比所有股票統一用固定百分比更細膩,能降低大波動股票太早被洗出場的機會。把 ATR 除以股價換算成波動率,也可以用來區分適合短線或波段操作的標的。要提醒的是 ATR 只描述波動大小,不指出方向,需搭配價格趨勢一起解讀。想把 ATR 進一步變成出場規則,上面連過的 ATR 移動停利實測有完整的台股數據。

ATR 停損停利怎麼設?

常見做法是用 1.5 至 3 倍 ATR 當距離。多單停損可寫成「進場價 - k × ATR」或「近期最高價 - k × ATR」;若價格創新高,停損線跟著上移,就變成 ATR 移動停利。k 值越小,停損越緊、被洗出的機率越高;k 值越大,越能抱波段,但回吐也會變大。ATR 停損不一定適合所有策略,尤其月頻選股籃常已透過換股自然出場,相關實測可看ATR 移動停損台股反面教材

肯特納通道的參數怎麼設?

肯特納通道有三個主要參數:中軸 EMA 的週期、ATR 的計算週期,以及上下軌使用的 ATR 倍數。本文範例用 EMA 10 當中軸、ATR 10 的 2 倍當上下軌寬度,倍數越大通道越寬、訊號越少但越不易被假突破洗出。週期短、倍數小會讓通道更敏感、進出更頻繁,適合短線;週期長、倍數大則偏向抱波段。參數沒有絕對最佳解,建議用回測在自己的選股池上比較不同組合。

肯特納通道和布林通道差在哪?

兩者結構類似,都是中線加上下軌構成的通道,差別在波動頻寬的算法。布林通道用價格的標準差,肯特納通道用 ATR,且中線通常取 EMA。標準差收斂與發散較快、數值跳動大,股價動能稍弱就容易跌破上軌,較適合抓過高過低的逆勢反轉;ATR 相對穩定、不易急速跳動,上軌更適合當趨勢線抱長波段。本文中段附有兩者疊在同一張圖上的比較,若想看布林通道的完整台股回測,可讀布林通道策略實測

ATR 指標 app 或券商軟體查不到怎麼辦?

多數看盤 app 會把 ATR 放在技術指標清單,也可能寫成 Average True Range。若找不到,可以先確認是否支援 TA-Lib 類型指標,或改用 Python/FinLab 批次計算。手動查單檔時,app 顯示的 ATR 適合看近期股性;若要做全市場選股、排序股票 ATR 或比較不同參數,程式化查詢比較穩定,因為它能統一資料期間、還原價格與選股池口徑。

肯特納、肯特纳通道、肯透納通道是同一個指標嗎?

一般來說是同一個 Keltner Channel,只是中文翻譯與輸入法不同。台灣常見寫法是「肯特納通道」,簡體資料常寫「肯特纳通道」,也有人誤打成「肯透納通道」。查資料時可以同時用 Keltner Channel 與「肯特納通道」搜尋,較容易找到完整的參數說明與策略範例。

想直接把本文的 ATR 與肯特納通道條件跑成自己的策略,可用 AI 輔助流程安裝 finlab,一行算出全市場 ATR 並回測:

免費試用

用 AI 開始 FinLab

把這句話交給你的AI,它會帶你完成設定並做出第一個策略。

告訴你的AI:

幫我設定 FinLab,重現這篇文章,請讀:https://finlab.finance/setup?relatedUrl=/blog/keltner-channel-atr-indicator

風險提示

免責聲明:本文所有策略與回測結果僅供教學與研究用途,不構成投資建議。過去績效不代表未來表現。投資一定有風險,請審慎評估自身風險承受能力。

檔案分享

colab 範例檔連結

Reference

FinLab AI

想建立自己的策略?

用自然語言描述你的選股想法,AI 自動驗證、回測、給你答案

免費開始

更多技術指標研究

查看全部