OptiNod 学院

ATR:平均真实波幅

当ATR达到30日均值的2倍以上时,直接缩小仓位规模,让亏损R保持恒定。

ATR是一个既决定止损距离、又决定仓位规模的指标。在波动加大的日子里,即使入场条件相同,也要减少数量。如果ATR是平时的两倍,数量却保持不变,亏损R也会增加到两倍。


ATR(14)用Wilder平滑计算,所以与简单的14根K线平均值公式不同。波动大的K线出现一次后,它的值不会立刻消失,而是在若干根K线内持续留存。因此ATR不仅反映当前的波动,还会在一段时间内反映最近大幅波动的冲击。


看法很简单。止损距离定为ATR×k,可承受的亏损额R固定。ATR变大,止损距离也相应变宽,所以必须减少数量。只放宽止损而不减少数量,即使是同一个形态,每笔交易承担的风险也会每次不同。


在出现跳空的K线上,把到前一根K线收盘价为止也计入波动幅度的True Range
在出现跳空的K线上,把到前一根K线收盘价为止也计入波动幅度的True Range

R per ATR:仓位公式的核心


先固定每笔交易可承受的亏损额R(通常是账户的1%),再把止损距离定为ATR×k,数量就会自动由R除以止损距离得出。波动变为平时的两倍,止损距离也变成两倍,数量减半。因此无论波动如何,R都保持恒定。


用这个简单的公式,数量会随波动自动调整。ATR无论增加还是减少,亏损金额都保持在同一水平。相反,总是以同样数量入场的人,在波动爆发的日子里,会一次承受平时两三倍的亏损。


天然气日线在2024年一年中,ATR从0.08变动到0.22。在ATR 0.22的区间里,以与0.08区间相同的数量入场的人,在同样的止损(2 ATR)下亏损接近三倍。要保持同样的R,在0.22区间里应把数量降到36%,忽视了ATR是决定数量的变量这一点的人,最终没能守住同样的R。


固定R之后,ATR越大,数量按反比例减少的关系
固定R之后,ATR越大,数量按反比例减少的关系

ATR达到30根K线均值的2倍:把仓位减半的标准


把止损距离的倍数(k=2、k=3)定为自己的交易规则之后,只需再决定在哪个区间进一步缩小仓位。最简单的规则,是看当前ATR除以前30根K线ATR均值得到的比值。


  • 比值0.7~1.3:正常区间。保持平时的仓位和平时的R。
  • 比值1.3~2.0:波动变大的区间。基本原则是按倍数的倒数减少数量,以保持同样的R。如果ATR是平时的1.5倍,就降到1/1.5 ≈ 65%,让R保持不变。
  • 比值2.0以上:波动爆发的区间。倒数(2.0倍则为50%)是基本做法,但在这个区间里,一次亏损就可能把一个月能承受的亏损一次性耗尽,所以要更保守地降到25~40%,或者暂缓新的入场。
  • 比值0.5以下:波动收缩的区间。仓位按平时保持,但止损幅度太窄,有被噪声扫掉的风险。这时把止损从ATR 2放宽到2.5或3,同时减少数量来匹配R。

WTI原油日线在2024年10月因中东局势,ATR升到4.3美元,是平时(约1.8美元)的2.4倍。同一时期以平时仓位入场的人亏损很大,而看比值的人把仓位降到了30%。按相同的R标准,约42%(=1/2.4)就够了,但因为这是波动爆发的区间,所以降得更保守。


账户10,000美元,R = 100美元(1%)。WTI日线ATR为4.3,前30根K线ATR均值为1.8,比值为2.4。止损距离:2 × 4.3 = 8.6美元。平时区间数量:100 / 8.6 ≈ 11.6单位 × 仓位系数。比值在2.0以上,所以采用30%仓位:约3.5单位。入场后ATR重新回到2.5以下,就按那一时点的ATR重新计算新的仓位。


关键是止损距离保持ATR×k,R靠数量来匹配。如果想通过缩小止损来匹配R,止损就会落进平时的噪声之内,正常的形态每次都会被扫掉。


按ATR比值区间减少仓位或暂缓入场的标准
按ATR比值区间减少仓位或暂缓入场的标准

True Range对跳空的处理:因资产结构而异的含义


True Range取max(H−L, |H−C_prev|, |L−C_prev|),即三个值中最大的一个。看起来简单,但在不同资产上会得到不同的结果。


  • 24小时交易的加密货币、外汇:几乎没有跳空,H−L大体就是TR,ATR实际上接近日内波动幅度。
  • 股票、ETF、股指期货:夜间、周末的跳空频繁,经常出现 |H−C_prev| 或 |L−C_prev| 成为TR的K线。所以对这类资产,不能只把ATR当作日内波动来读,一次跳空就可能让ATR大幅跳升。
  • WTI原油、天然气等商品期货:交易时间之外的事件(中东新闻、飓风、EIA库存报告)会直接以跳空反映出来。所以即使价位相同,日内交易者和波段交易者对ATR的解读也不同。

这个差别决定了用哪个ATR周期。在跳空频繁的资产上,ATR(14)会让一次大跳空的影响持续整整14根K线,而延长到ATR(30),这种影响会平滑得多。在像天然气这样每周因EIA报告出现大幅波动的资产上,ATR(30)是更稳定的基准。


随有无跳空而不同的各类资产True Range构成
随有无跳空而不同的各类资产True Range构成

Wilder平滑造成的延迟


ATR(14)是对前14根K线赋予不同权重来计算的。Wilder平滑的公式是ATR_today = (ATR_prev × 13 + TR_today) / 14,新的TR占1/14,前一个ATR占13/14。因此过去所有的ATR都在逐渐衰减的同时累积进来,实际上与EMA属于同一类结构。


由此可以知道两点。第一,ATR反应缓慢。一根大K线会把ATR拉高,但不会当场把它变成两倍。第二,过去大K线的影响会留存很久。像8月5日那样的暴跌K线,余波会一直留在ATR值里,持续到9月中旬。


要弥补这种延迟,可以同时看ATR(14)和ATR(30)。ATR(14)较快地显示近期变化,ATR(30)稳定地显示大的走势。所以两个值明显拉开时,可以认为当前波动正在快速变化。


Wilder平滑使大波动K线的影响在多根K线上留存的延迟
Wilder平滑使大波动K线的影响在多根K线上留存的延迟

各资产ATR分布的厚尾


即使是相同的比值(平时的2倍),各资产达到这个比值的频率也不同。天然气日线的ATR,一年里有5~8次升到比值2.0以上,是尾部最厚的资产之一。而在SPY日线上,同样的事一年只有1~2次,在外汇的EURUSD上,一年也只有0~1次。


这个差别会改变再入场频率和仓位管理方式。交易天然气的人需要经常根据波动来缩小仓位,而对交易EURUSD的人来说,这样的事一辈子可能也就经历一两次。只要看一遍自己所交易资产的ATR分布,就能感觉到在该资产上,比值2.0有多罕见。


各资产突破ATR比值2.0的频率不同,尾部厚度有差异
各资产突破ATR比值2.0的频率不同,尾部厚度有差异

ATR会说谎的三种情况


  • 用ATR绝对值在资产之间比较:BTC的ATR 1,500美元与ETH的ATR 80美元,不能用同一把尺子比较。资产之间比较时,使用ATR/价格的比例(%)或相对平时的比值。天然气的ATR 0.3相当于价格的7%,而WTI的ATR 1.8约为价格的2.5%,所以天然气是波动大出近三倍的资产。
  • 把ATR当作方向信号:有人把ATR增加读作趋势开始的信号,但ATR没有方向。它可能向上爆发,也可能向下,方向由价格结构、趋势线、动量来定,ATR只决定仓位和止损距离。
  • 跳空之后立刻相信ATR:一根大跳空K线会立刻把ATR拉高,但它是真正的波动变化,还是一次性的异常值,要稍晚一拍再判断。跳空之后留出3~5根K线,确认比值是否维持,再调整仓位策略,会更安全。

决定仓位时要一起看的两点


要让基于ATR的仓位系统持续运转,需要同时看两点。


  • HTF ATR比值:即使1小时线的ATR比值是1.0,只要日线比值是2.0,就说明整个市场已进入高波动区间。以HTF为优先基准,LTF作为辅助参考。
  • 事件日程:FOMC、CPI、EIA库存报告这类预定的事件,会把ATR的分布整体改变。更安全的做法是,另设一条规则,在事件前后24小时自动缩小仓位。等ATR反应过来时,大K线已经出现了。

确认使用该指标的策略结果

上传按该指标信号交易的 TradingView 策略的交易列表(CSV)或 MT5 报告,即可计算盈亏、回撤和交易分布。无需登录即可分析。

分析我的交易记录 查看分析示例