OptiNod 学院
ATR:平均真实波幅
当ATR达到30日均值的2倍以上时,直接缩小仓位规模,让亏损R保持恒定。
ATR是一个既决定止损距离、又决定仓位规模的指标。在波动加大的日子里,即使入场条件相同,也要减少数量。如果ATR是平时的两倍,数量却保持不变,亏损R也会增加到两倍。
ATR(14)用Wilder平滑计算,所以与简单的14根K线平均值公式不同。波动大的K线出现一次后,它的值不会立刻消失,而是在若干根K线内持续留存。因此ATR不仅反映当前的波动,还会在一段时间内反映最近大幅波动的冲击。
看法很简单。止损距离定为ATR×k,可承受的亏损额R固定。ATR变大,止损距离也相应变宽,所以必须减少数量。只放宽止损而不减少数量,即使是同一个形态,每笔交易承担的风险也会每次不同。

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。

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,止损就会落进平时的噪声之内,正常的形态每次都会被扫掉。

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)是更稳定的基准。

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)稳定地显示大的走势。所以两个值明显拉开时,可以认为当前波动正在快速变化。

各资产ATR分布的厚尾
即使是相同的比值(平时的2倍),各资产达到这个比值的频率也不同。天然气日线的ATR,一年里有5~8次升到比值2.0以上,是尾部最厚的资产之一。而在SPY日线上,同样的事一年只有1~2次,在外汇的EURUSD上,一年也只有0~1次。
这个差别会改变再入场频率和仓位管理方式。交易天然气的人需要经常根据波动来缩小仓位,而对交易EURUSD的人来说,这样的事一辈子可能也就经历一两次。只要看一遍自己所交易资产的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线已经出现了。