EA挂单总是偏移几个点成交,是滑点还是我的代码逻辑有漏洞

较热69.4
登录发帖
Exness 推荐平台

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

FSA(塞舌尔)/FCA(英国) / CySEC(塞浦路斯) · 最低入金 $130
EasyGoingo
EasyGoingo 楼主 2026-9-5 10:21:31 浏览 574 回复 6 阅读 1 分钟
Lv.1 新手汇友 等级 Lv.1 主题 3 帖数 14 积分 568 汇币 96
1楼
刚才截了个图,EA在欧美1.0850挂的buy limit,结果成交记录里显示的是1.0854,差了4个点。我盯着屏幕看了半天,这到底是滑点还是我代码哪儿写错了啊?😭
先说下环境,Windows 10系统,MT4 build 1420,用的VPS是阿里云香港节点。EA是找论坛汇友分享的网格策略改的,挂单用的OrderSend函数,我检查过price参数是1.0850没错。然后我特意开了
  • 滑点设置,我设的是20个点(200),按理说4个点应该能接受啊
  • 账户是标准账户,欧美点差1.8个点左右

我试过把滑点改成0,结果更离谱,直接不成交了。后来改成50个点,成交还是偏移2-3个点。我怀疑是不是代码里用了MarketInfo去取当前价,然后加减点数的时候搞错了?但日志里price明明显示的是1.0850啊……
还有个小细节,成交时间总是比挂单时间晚个1-2秒,是不是VPS网络延迟导致的?我看专家日志里没有报错,就是正常的order opened。但每次成交价都对不上,回测的时候倒是挺准的,一到实盘就飘,搞得我都不敢跑大资金了。
另外我注意到一个规律,如果是buy limit挂单,基本都是向上偏移,sell limit就是向下偏移,这正常吗?还是说我的代码逻辑在设置挂单价格的时候用了Ask/Bid搞混了?求大佬指点下,这个问题困扰我好几天了,论坛里搜了一圈也没找到类似的案例。
0 回复 众裁0 复制
#1
理财菜鸟1314
理财菜鸟1314 #2· 2026-9-8 10:02:43
2楼
补充一下,你观察到的规律很关键——buy limit向上偏移、sell limit向下,这通常是代码里用了Ask/Bid设置挂单价而非Bid/Ask。建议打印出OrderSend前的Bid和Ask值对比下,快收盘和新闻时段流动性差,滑点放大正常。把滑点设回200,加个重试机制更稳妥。
赞 回复 众裁0 复制
2026-9-8 10:02:43 #2
大平头
大平头 #3· 2026-9-8 20:07:05
3楼
看你这现象,buy limit向上偏、sell向下偏,基本排除纯滑点,更像挂单价格设错边了。OrderSend里买止损单该用Ask加减,买限价单用Bid才对。建议把OrderSend前的Bid/Ask和price都写到日志里对比下。另外你滑点设20点,但成交偏4点还在范围内,别急着排除网络,先确认代码再说。
赞 回复 众裁0 复制
2026-9-8 20:07:05 #3
理性的新朋友
理性的新朋友 #4· 2026-9-9 09:10:06
4楼
大平头和理财菜鸟都点了Ask/Bid方向问题,我再补个坑:VPS香港节点跑欧美,物理延迟其实很低,成交晚1-2秒更像MT4服务器端排队,不是网络问题。我自己也遇到过类似偏移,后来在OrderSend里加了SL/TP的价位打印,发现网格策略改单时容易带错止损价,连带成交价偏移。建议你把每笔挂单的Ask、Bid、price全打到日志,跑两天对比下,比猜滑点靠谱。
赞 回复 众裁0 复制
2026-9-9 09:10:06 #4
小刘师傅
小刘师傅 #5· 2026-9-9 09:16:05
5楼
我自己也遇到过类似问题,但我是把Slippage设成0测试的,结果挂单直接不成交,跟你说的很像。你那个规律挺有意思的,buy limit向上偏,说明代码里可能真用错Ask/Bid了。我跑EURUSD用IC Markets,新闻时段也飘2-3点,流动性差时滑点放大正常,但先排查代码方向更稳妥。
赞 回复 众裁0 复制
2026-9-9 09:16:05 #5
MeadowScribe
MeadowScribe #6· 2026-9-11 09:01:05
6楼
楼主问题核心其实是:挂单价和实际成交价差了4个点,你在纠结是滑点还是代码把Ask/Bid用反了。补充一下大平头他们没提的:你日志里price=1.0850不代表服务器收到的就是这个值,MT4的OrderSend在挂单时若用MarketInfo取值,异步刷新下可能取到旧tick。建议在OrderSend前把Bid、Ask、price三个值都打印出来对比,再检查挂单类型对应的边是否搞混。
赞 回复 众裁0 复制
2026-9-11 09:01:05 #6
rain36
rain36 #7· 2026-9-15 19:01:40
7楼
你那个buy limit 1.0850成交在1.0854,我怀疑核心不在滑点,而是OrderSend里price参数传的是MarketInfo的Ask。检查下单前的Bid/Ask打印,limit挂单必须用Bid边挂,用Ask就会整体抬价。
赞 回复 众裁0 复制
2026-9-15 19:01:40 #7
THE END
本帖内容仅供学习交流,不构成任何投资建议。外汇交易存在高风险,请谨慎参与。
← 上一帖 EA回测曲线完美实盘却连续爆仓,问题到底出在哪个环节? 下一帖 → MT5策略测试器里优化参数全过,实盘一跑就亏,哪步设置没同步