做趋势这行的,谁没被”扫止损”恶心过——价格刚好打到你止损位下方一个点,然后头也不回地朝着你原来的方向跑了。你骂街,你改止损,改宽了亏更多,改窄了天天被扫。折腾了两年我才想明白:止损不该是固定点数,应该跟着市场的呼吸走。今天讲我的ATR动态追踪止损方案。
先看效果。左图是EURUSD同一段行情,红线是固定18点止损,绿线是ATR追踪止损,注意波动放大的那段,固定止损被反复扫,ATR自动放宽躲过去了:
ATR是什么?平均真实波幅,衡量市场波动大小的指标。简单说:市场安静时ATR小,市场疯狂时ATR大。我的止损就用它定:止损距离 = 2.2倍ATR。黄金平时ATR大概15个点,止损就设33点;数据行情ATR飙到40,止损自动变88点。市场嗓门越大,我离它越远,专治那些”刚好扫损”的贱单。
为什么是2.2倍不是3倍?回测加实盘一共两年两百多笔,我测过1.5到4倍整个区间:1.5倍太紧,正常波动就被打;3倍以上,单笔亏损扛得住,但止盈也被拖没了,盈亏比掉得厉害。2.2倍是我的甜蜜点——回测最大回撤和实盘滑点都能接受,你们可以拿自己的数据在这个附近微调。
追踪怎么追?两个规则。一是只朝有利方向走:价格涨,止损跟着上移,价格回落,止损不动。二是启动时机:盈利超过1倍ATR之后才开始追踪,之前用固定初始止损保护。这两条是为了不让刚开的单就被正常波动洗出去——趋势策略最怕的不是亏,是根本没上车。
两年数据看右图:被扫次数从34次降到11次,平均盈利从142刀涨到238刀,盈亏比1.4变2.3,年化从17.5%到31.2%。不是我策略变神了,是我把止损从”猜”变成了”算”。
有伙计会问EA怎么实现:MQL4里iATR(NULL, PERIOD_H1, 14, 1)拿到当前ATR,乘2.2算出距离,用OrderModify动态改止损位,每根新K线算一次就够,不用tick级刷新,省资源。代码不长,需要的扣1。
你们止损都是固定的还是动态的?有没有更好的平滑波动方法,评论区聊聊。
