复盘时发现把点差成本写进EA的止损逻辑,回测曲线完全不同

新帖
登录发帖
Exness 推荐平台

入金门槛低,出金到账快,支持多种账户类型

FSA(塞舌尔)/FCA(英国) / CySEC(塞浦路斯) · 最低入金 $130
山间清风
山间清风 楼主 1 小时前 浏览 4 回复 0 阅读 1 分钟
Lv.1 新手汇友 等级 Lv.1 主题 2 帖数 13 积分 2284 汇币 1851
1楼
前两天看了一则关于某经纪商被监管处罚的新闻,里面提到一个细节:监管方在核查交易执行质量时,专门调取了不同账户类型下的实际成交点差数据,发现某些时段实际点差比宣传的均值高出不少。这让我想起自己上个月复盘时踩的一个坑,正好跟点差成本的处理有关。
当时我在回测一套做欧美M15的EA,逻辑很简单,用ATR动态算止损,参数设的是ATR(14)乘以1.8。跑了一年数据,净利润曲线看着还行,最大回撤12%左右。但实盘跑了三周,发现止损被扫的频率明显比回测高,有几笔单子回测里明明能扛过去,实盘却被精准打损然后行情反转。一开始我以为是滑点或者VPS延迟的问题,换了台延迟更低的机器,情况没改善。
后来我把注意力放回到回测设置上,发现问题出在两个地方。第一个是回测时用的是“当前点差”模式,而实盘账户是浮动点差,欧美在北京时间下午四点以后经常从1.2个点跳到1.8甚至2.5个点。第二个更隐蔽:我的止损逻辑里,止损价是直接用开仓价加减ATR值算出来的,没有把点差成本计入。这意味着回测引擎在判断是否触发止损时,用的是中间价,而实盘经纪商是按卖价平多、买价平空来触发的。对于多单来说,实际需要的价格波动比回测多出一个点差的距离才能打掉止损。
解决方案其实不复杂,但需要改EA的代码逻辑。我做了这么几步:

  • 第一步,在回测设置里把点差模式改成固定点差加浮动模拟,我直接设了1.8个点的固定值,比历史均值略高,留一点安全边际。
  • 第二步,修改止损价的计算公式。多单止损从“开仓价减去ATR”改成“开仓价减去ATR再减去当前点差”,空单反过来加。这样回测触发的条件就贴近实盘的bid/ask触发机制。
  • 第三步,重新跑三年数据,同时把手续费和隔夜利息也加进去,之前偷懒只算了点差。

改完之后曲线变化挺明显的。同样的参数,净利润从原来的年化18%掉到了11%左右,最大回撤反而扩大到17%。但实盘又跑了两周,止损被扫的频率降下来了,回测和实盘的偏差从之前的30%缩到10%以内。这才是我想要的结果——宁可回测难看一点,也要让模拟环境尽量逼近真实成交条件。
所以我现在养成的习惯是,每次调整止损逻辑或者换品种回测,先把点差成本手动塞进止损公式里跑一遍,再看去掉点差后的“理想曲线”做对比。两条曲线的差距,基本就是点差对这套策略的侵蚀程度。黄金和镑美这种点差波动大的品种,差距会更夸张。
不知道你们平时回测时是怎么处理点差和止损触发价之间关系的?有没有人试过用实际tick数据来回测,跟固定点差模式差别大不大?
0 回复 众裁0 复制
#1
💬
暂无回复,来抢沙发吧!
THE END
本帖内容仅供学习交流,不构成任何投资建议。外汇交易存在高风险,请谨慎参与。
← 上一帖 EA参数迁移到新VPS后回测结果不一致的排查路径 下一帖 → 聊聊外汇资讯网站推荐的真实体验