MT5挂单被拒显示“无效价格”,是经纪商限制还是代码问题

新帖
登录发帖
XM 推荐平台

覆盖品种全,新手友好,支持多种入金方式

CySEC(塞浦路斯) / ASIC(澳洲) / IFSC(伯利兹) · 最低入金 $5
橘子汽水
橘子汽水 楼主 1 小时前 浏览 3 回复 0 阅读 1 分钟
Lv.1 新手汇友 等级 Lv.1 主题 3 帖数 8 积分 1346 汇币 868
1楼
之前用EA跑黄金的时候,我图省事挂了个距离现价特别近的buy stop,结果MT5直接弹窗拒单,当时没当回事就手动补了一单,没想到这个坑后面越踩越深。最近写了个专门做欧美M15突破的EA,回测的时候信号都正常,一上模拟盘就频繁出现挂单失败,日志里清一色刷的是 invalid price 或者 TRADE_RETCODE_INVALID_PRICE,搞得我头都大了。
具体现象是这样的:我EA里用的是OrderSendAsync发挂单,buy stop设在Ask上方大概15个点,sell stop设在Bid下方15个点,按理说这个距离不算离谱,欧美点差正常也就1到2个点。但实际跑起来,有时候能挂上,有时候直接被拒,尤其是非农前后那几分钟几乎必挂。我试过把距离拉大到30点、50点,情况好一点但偶尔还是报错。也试过用SymbolInfoDouble去取Ask和Bid,加个NormalizeDouble处理小数位,5位报价的欧美我按3位归一化,理论上没问题。
然后我怀疑是不是经纪商那边有最小挂单距离限制,就去查了SYMBOL_TRADE_STOPS_LEVEL,返回的是0,按理说没有硬性限制。又试了把OrderSendAsync换成同步的OrderSend,报错信息一样。现在有点懵,到底是我的价格计算逻辑有问题,还是这家经纪商的撮合引擎对挂单距离有隐藏要求?有没有汇友遇到过类似的情况,你们是怎么排查的?
0 回复 众裁0 复制
#1
💬
暂无回复,来抢沙发吧!
THE END
本帖内容仅供学习交流,不构成任何投资建议。外汇交易存在高风险,请谨慎参与。
← 上一帖 Python回测与MT5实盘结果不一致,是滑点还是建模质量问题 下一帖 → 今天遇到个事忍不住想分享,折腾cTrader又搞到半夜