學習指南
ATR 可重現計算與風險界線
核對 ATR、True Range、Wilder 平滑、ATRP 與 K 線資料邊界。
只供教育用途;不是財務建議或交易訊號,沒有開戶連結。
讀者最常問的問題
- True Range 為何要比較當根 High-Low 與前一根 Close?
- 第一個 ATR 與其後 Wilder smoothing 應怎樣處理?
- 短週期與長週期、不同 timeframe 為何產生不同數值?
- ATR versus ATRP 在比較不同價格資產時有何分別?
- ATR 能否直接決定止損倍數或交易方向?
這一頁想讓你弄懂的事
- 由完整 K 線手算三個 True Range 候選值及 ATR 遞推。
- 記錄 seed、period、平滑方法、暖機長度與 completed-candle policy。
- 分辨絕對 ATR 和按收市價正規化的 ATRP。
- 辨認缺漏、重複、時區、交易場所與合約規格造成的差異。
- 把 ATR 限定為風險尺度輸入,而不是方向或強制止損訊號。
重點段落
幅度不等於方向
Average True Range 把最近每根 K 線的真實波幅平滑成一條非負序列。上漲大陽燭與下跌大陰燭都可能令 ATR 上升,窄幅橫行則可能令它下降;相同 ATR 不能告訴下一根向上還是向下。
最短的審計標籤是 magnitude, not direction。ATR 不是買賣訊號、勝率或預期盈利,也不會讀取訂單簿、費用、資金費率與個人槓桿。所有設定都要寫入研究表,讓另一位讀者用相同資料重新計算並逐項查找差異來源。
True Range 與跳空
每根完整 K 線計算 max(high-low, abs(high-previous close), abs(low-previous close))。第一項量度當根上下界;第二、三項把前收市價與當根兩端比較,避免跳空被短小 High-Low 掩蓋。
三項都用同一報價單位並取絕對值,所以結果只保留距離。資料若沒有可信 previous close,不能默默以零或當根 open 代替。
資料合約
同一 symbol 在現貨、永續合約與不同交易所會形成各自 K 線;interval、timezone、開收盤邊界也會改變 OHLC。計算表至少保存 venue、instrument、contract、timeframe、timezone、價格來源、抓取時間和是否只採 completed candles。
這是 venue-specific candles 的問題:ATR 對輸入忠實,卻不保證各資料源彼此相同。
延伸說明
TR 手算
假設前收市 ₹100,當根 high ₹108、low ₹103。High-Low 為 ₹5;|High-Previous Close| 為 ₹8;|Low-Previous Close| 為 ₹3,因此 TR 是 ₹8。若只看當根實體或 ₹5 的日內範圍,便遺漏由 ₹100 到 ₹103 的向上距離。
另一根若 high ₹99、low ₹94,三項是 ₹5、₹1、₹6,TR 為 ₹6。兩例方向相反,輸出仍是正距離。
種子與首期
首筆資料沒有 previous close。可重現的 first-period handling 是把第一個 TR 定為 high-low,然後用最初 n 個 TR 的算術平均作第一個 n-period ATR。另一套軟件若直接從不同歷史起點啟動遞推,早期值可能不同。
研究不可只寫 ATR(14);還要寫 seed rule、資料起始時間和至少保留多少暖機 bars。
週期敏感度
較短 n 讓新 TR 佔較大權重,對波幅突升與回落反應較快,也更容易受單根異常資料影響;較長 n 較平滑但轉變較慢。這是 period sensitivity,不是短週期較準或長週期較安全。
應按研究問題事前固定 n,並以少量鄰近設定做敏感度表,不可看到結果後才挑最貼合的一條。
缺漏 K 線
一分鐘、四小時與日線把交易流切成不同區間,所以不能把 ATR(14) 當成相同時間跨度。Timezone 也可能移動日線邊界。Missing candle 會令 previous close 跳到更早時間;duplicate candle 則重複加權某段波動。
必須檢查時間戳連續性、唯一性、排序和完成狀態。這就是 timeframe and missing-candle effects。
ATR 與 ATRP
ATR 保留報價貨幣單位。₹100 資產 ATR ₹4 與 ₹1,000 資產 ATR ₹10,不能只看 10 大於 4 就斷言第二者相對波動更高。ATRP=(ATR/Close)×100,把幅度轉成當期收市價百分比;上例約為 4% 與 1%。
這是 ATR versus ATRP:前者適合該工具自身的價格距離,後者較便於跨價格尺度比較,但兩者都仍依賴同一 K 線品質。
波動制度
假設某市場 ATRP 由 1.2% 緩升至 2.4%,只表示近期真實波幅相對收市價擴大;它沒有說明擴大後向上或向下。若同時 spread 擴闊、滑價上升,實際執行風險可能增加,但這些要由各自資料證明。
反之 ATRP 下降也不代表沒有跳空、清算或突發風險,只代表所選回看窗的歷史平滑值較低。
怎樣核對 Wilder 遞推沒有錯位?
先用一小段固定 K 線建立獨立核對表,每列保存 high、low、previous close、三個候選距離、TR 與 ATR。第一個可比較值必須落在第 n 個有效 TR;其後第 t 列只可引用第 t-1 列 ATR,不可誤用同列結果或跳過缺漏處理。
再用兩種等價方式交叉檢查:直接套用 ((前 ATR×(n-1))+當期 TR)/n,以及確認新舊 ATR 差額等於 (當期 TR-前 ATR)/n。兩式若不一致,通常是列索引、種子、數值型別或捨入時點出錯。最後把中間值保留較高精度,只在展示層捨入,避免每列截斷造成累積漂移。
現貨、永續與指數資料可以直接混用嗎?
不可以先假定它們可互換。現貨 K 線反映該交易對的成交,永續合約可能以另一個訂單簿形成 high、low、close;標記價格或指數價格又可能由多個市場及風險規則合成。名稱相近不代表價格來源、時間邊界或異常值處理相同。
若研究的是永續倉位風險,便要聲明 ATR 使用合約成交價、標記價還是外部指數,並解釋選擇和用途。跨來源比較時應分欄計算,不能把現貨 previous close 接到永續 high-low 序列。只有在相同時間戳、相同區間和明確映射下,差異表才有解釋意義;否則數值差可能只是資料定義不同。
未完成 K 線應何時納入?
若目標是可重現的歷史研究,預設只使用已完成 K 線較容易核對,因為開放中的 high、low 與 close 仍會改變。把未完成資料混入後,ATR 可能隨每次刷新上落;事後只保存最終值,便無法重現當時畫面。
若用途確實需要盤中監察,應把暫時計算與收盤序列分開命名,保存抓取時間及該根狀態,並在收盤後重算。比較兩次輸出時先確認最後一根是否相同,不可把盤中變化誤判為平台公式差異。任何訊息延遲、斷線補值或交易所修訂也要留下紀錄。
怎樣留下可重算的 ATR 研究紀錄?
最小紀錄不是一張只顯示 ATR(14) 的截圖,而是一份能回答輸入從哪裡來、經過甚麼轉換的表。保存來源網址或端點、venue、symbol、contract、interval、timezone、起訖時間、抓取時間、完成狀態,以及原始 OHLC 檔案的雜湊;另列 period、seed、平滑方式、暖機長度與捨入規則。
輸出表至少保留 timestamp、previous close、三項距離、TR、ATR 和可選 ATRP。改設定時另存版本並比較差異。這樣可讓讀者重算結果,並分開資料問題與解讀分歧。
止損不是公式
研究者可把 ATR 當作候選距離尺度,例如比較固定價格距離與 k×ATR 的歷史行為;k 必須事前聲明並接受費用、tick size、流動性和結構失效點檢查。ATR 本身不知道交易論點何時失效,也不保證 trigger price 等於 fill price。
最重要的標籤是 not a mandatory stop formula:不存在由 ATR 自動推出、適合所有市場與槓桿的必然倍數。
₹ 計算示例
- 情境
- 假設前收市 ₹100,當根 high ₹108、low ₹103,並以已完成日線計算 14-period ATR。
- 計算過程
- TR=max(₹5,₹8,₹3)=₹8;首個 ATR 為最初 14 個 TR 的平均,其後用 ((前 ATR×13)+當期 TR)/14。
- 怎麼解讀
- ₹8 是該根真實波幅,不是預測下一根方向;平滑 ATR 仍需同一 venue、timeframe、seed 與完整資料才可比較。
常見的誤會
把 ATR 上升翻譯成價格必升,再於回看後選一個止損倍數;這混合了方向誤讀、參數挑選和未建模的成交假設。
自我檢查清單
- 固定 venue、instrument、contract、timeframe、timezone 與 completed-candle policy。
- 驗證 OHLC 數值、排序、唯一時間戳、缺漏與異常 wick。
- 保存 previous close,逐根核對三個 True Range 候選值。
- 記錄 period、first-period handling、seed、smoothing type 與暖機長度。
- 中間計算保留精度,只在顯示層捨入。
- 同資產距離用 ATR;跨價格尺度比較另看 ATRP 並聲明分母。
- 把方向、進場、結構失效、費用、滑價和清算風險分開驗證。
- 任何 k×ATR 都寫成待測情境,不寫成 mandatory stop formula。
這一頁的限制
- ATR 是滯後的歷史幅度摘要,不能提供未來方向或收益概率。
- 首期種子、平滑類型、歷史起點與捨入可令平台早期值不同。
- 時間框架、時區、缺漏或重複 K 線會改變序列。
- 不同交易場所與合約的 OHLC 不能假定可互換。
- ATRP 改善尺度比較,但不消除資料品質、流動性或執行風險。
常見問題
- ATR 上升是否代表價格將上升?
- 不是。ATR 使用絕對距離,向上或向下的大幅 K 線都可令它上升;它只量度幅度,不提供方向。
- 第一個 True Range 沒有 previous close 怎辦?
- 應明寫初始化規則。常見可重現做法是首個 TR 用 high-low,首個 n-period ATR 用最初 n 個 TR 的平均。
- 為何兩個平台的 ATR(14) 不完全相同?
- 先比較 venue、K 線邊界、平滑類型、seed、暖機歷史、未完成 K 線政策與捨入;任一差異都可能改變結果。
- 比較不同價格資產應看 ATR 還是 ATRP?
- ATR 是絕對報價距離;ATRP 以 close 正規化成百分比,較適合跨價格尺度比較,但仍要固定資料與時間框架。
- 可以一律用 1.5×ATR 作止損嗎?
- 不應視為通則。倍數只是一項待測參數,還要配合結構失效、tick、流動性、滑價、費用、部位與清算風險。
風險提示
ATR 只描述指定資料與時間框架內的歷史波動幅度,不預測方向、成交、盈利或清算結果;合約槓桿可令損失超過原先預期。
資料來源
- TradingView:Average True Range核對三個 True Range 候選值、只量度波動幅度而非方向、RMA 預設平滑與週期設定。核對於 2026-08-09
- TradingView:ADR% 與 ATR% 計算核對 ATR% 以 RMA 平滑 True Range 後除以收市價,並保留相對前收市價的跳空資訊。核對於 2026-08-09
- Fidelity Learning Center:ATR核對 Wilder 遞推式以及 High-Low、High-Previous Close、Low-Previous Close 三個候選距離。核對於 2026-08-09
- StockCharts ChartSchool:ATR 與 ATRP核對首個 TR、首個 ATR 種子、暖機差異、絕對 ATR 的比較限制與 ATRP 公式。核對於 2026-08-09
- StockCharts ChartSchool:True Range核對 True Range 用前一根收市價捕捉當根 High-Low 未包含的跳空距離。核對於 2026-08-09
- Binance Developer Docs:Spot Kline核對特定交易場所的 K 線按開盤時間識別,含 interval、timezone、Open、High、Low、Close 等欄位。核對於 2026-08-09