把 ATR 当作方向信号
它衡量的是走了多远,而不是往哪边走。ATR 上升意味着市场波动得更多——这在趋势里、在暴跌里、在剧烈震荡里同样会发生。
一个以价格单位衡量近期价格波动平均幅度的波动率指标。EA 用它来设定能随当前行情自动调整的止损距离和仓位大小,而不是沿用昨天的条件。
亦称:ATR, True Range
更新于
这个市场在一根K线里通常能走多远,取近期的平均值。它对方向没有任何看法——它是一把量距离的尺子,而 EA 用点数衡量的几乎所有东西,用这个单位来衡量都更合适。
EA 里的每一段距离——止损、目标、移动止损的步长、突破阈值——都是某个人挑出来的点数。ATR 的作用,是把这些固定数字变成比例,让它们在市场加速或放缓时仍然表达同一件事。
| 设置项 | 常见取值 | 备注 |
|---|---|---|
| 周期 | 14 | 约定俗成的默认值。较短的周期(7–10)反应更快;较长的(20–30)更平滑,适合日线系统。 |
| 止损倍数 | 1.5–2.5 × ATR | 低于约 1.5 时,止损在多数品种上会落进常规波动之内。 |
| 移动止损倍数 | 2–3 × ATR | 通常比入场止损更宽,这样一次正常回撤不会终结一笔趋势交易。 |
| 目标倍数 | 2–4 × ATR | 在行情条件变化时保持盈亏比稳定。 |
| 读取所用周期 | 策略自身的周期 | M5 的 ATR 和 D1 的 ATR 回答的是不同的问题;把它们混用会悄悄改变每一段距离。 |
同一条风控规则,放在两种波动率环境下。EA 本身没有任何变化——变的是它用来测量的那把尺子。
把止损放宽却不缩小手数,会让承担的资金变成三倍。只有当这两半一起变动时,ATR 才真正有用。
计算 100 ÷ (24 × 10) = 0.42 · 100 ÷ (68 × 10) = 0.15
结果 一条风控规则,产生两个止损距离和两个仓位大小
ATR 是距离,不是信号。它告诉 EA 把东西放多远,从不告诉它该不该放。
| 区间 | 含义 |
|---|---|
| 当前 ATR 远低于回测均值 | 以 ATR 定义的目标同步缩小,于是策略赚到的每笔更小,而成本仍然固定。 |
| 当前 ATR 接近回测均值 | 正是这些参数被调校时所处的环境。公布的预期依然适用。 |
| 当前 ATR 明显高于回测均值 | 固定点数的止损现在落进了噪声里;基于 ATR 的止损会变宽,仓位大小必须相应下降来抵消。 |
| 把 ATR 当作入场信号 | 一种误用。它没有方向——数值高只说明市场在动,并不说明往哪边动。 |
[ATR 指标完整页面](/zh-Hans/indicators/atr)详细讲解了计算方式和参数设置。其中也包含我们的实测:MetaTrader 的 iATR 是一个滚动窗口,而不是 Wilder 的平滑。本词条讲的则是 ATR 在 EA 风控规则中扮演的角色。
它衡量的是走了多远,而不是往哪边走。ATR 上升意味着市场波动得更多——这在趋势里、在暴跌里、在剧烈震荡里同样会发生。
自适应止损的全部意义在于每笔风险保持恒定。如果距离变成三倍而手数没有下降,那么变成三倍的是亏损。
iATR 返回的是价格距离——在 5 位报价的 EUR/USD 上是 0.00120,而不是 12。把它当作点数处理的代码,会把止损放到一百倍远或一百倍近,而且这个错误在测试中很容易被漏掉,因为结果只是变差,而不是彻底出错。
索引 0 每个 tick 都在变,所以同一个信号会因触发时刻不同而产生不同的止损。凡是需要可复现的地方,都请使用最后一根已收盘的K线。