MT5下单被拒的返回码与排查优先顺序
目录
结论:先看是“每次都失败”,还是“偶尔失败”
EA的订单在MT5中被拒绝时,日志里会出现类似“retcode=10030”的数字。我们这里也收到很多关于这些返回码的咨询。
先说结论。最先要看的是:拒单是每次都发生,还是只是偶尔发生。
- 每次都失败 → 优先怀疑 10030、10013、10018。这类问题出在设置或时间段上,不修正或不避开的话,无论重试多少次都不会通过。
- 偶尔失败 → 优先怀疑 10004、10006。这类问题由行情状况或券商一侧的判断引起,稍等一会儿有时就能通过。
属于哪一种,决定了该查哪里,也决定了处理的紧急程度。
推荐经纪商比较 →
🎁 免费下载EA📧 免费邮件课程(共 8 封)+ 订阅者专享 MT5 指标 13 款合集
※ 严格保护隐私。可随时取消订阅。
原理:返回码是“服务器的答复”
EA发出订单后,券商服务器会判断是否受理,并用数字返回结果。成功时会返回 10009(已成交)等,失败时则返回代表拒绝原因的编号。
需要注意的是,这个编号只是服务器给出的分类,并不一定能告诉你拒单的真正原因。尤其是 10006,常常无法从日志看出券商到底判断了什么。
| 返回码 | MT5中的含义 | 出现方式 | 主要排查位置 | 等待后能否通过 |
|---|---|---|---|---|
| 10018 | 市场已休市 | 每次(取决于时间段) | 交易时间、休市日 | 开市后即可通过 |
| 10030 | 不支持所指定的成交方式(Filling) | 每次 | EA设置、品种规格 | 不会通过 |
| 10013 | 请求无效 | 多数情况下每次 | 手数、价格、品种名 | 不会通过 |
| 10004 | 重新报价(价格已变动) | 偶尔 | 允许滑点、时间段 | 多数能通过 |
| 10006 | 请求被拒绝 | 偶尔至每次 | 咨询券商 | 无法判断 |
排查步骤:按这个顺序查
1. 10018:先看时间
这是最容易确认的,所以放在最前面。检查是否碰上了周末、节假日、年末年初,以及各品种自己的休息时段(黄金和股指在不少券商那里白天会有休息时间)。在报价窗口中右键点击品种并打开“规格”,就能看到交易时间。也请留意服务器时间与北京时间之间存在时差。如果原因是时间段,不用做任何处理,开市后就能通过。
2. 10030:对齐成交方式
不同券商、不同账户类型所接受的成交方式(FOK、IOC、Return)各不相同。如果EA使用了不被支持的方式下单,每次都会被拒。EA的输入参数中如果有类似“Filling”的选项,就按品种规格中“成交”一栏所写的方式来设置。如果没有这个选项,就需要在EA一侧修改,请联系发布方。这种情况常见于刚换到新的券商或新的账户类型之后。
3. 10013:怀疑订单内容
手数小于最小手数、手数不符合步长、品种名后缀(如“.m”“#”等)不对,这类订单内容上的错误经常触发该返回码。有时日志里也不会给出详细原因,只能一点点调整手数或品种名来逐项试。参数项的检查方法已整理在 EA设置方法 中。
4. 10004:允许滑点与时间段
这个返回码容易出现在价格变动很快的时间段,比如经济数据公布之后或清晨。如果EA有“Slippage”“Deviation”这类参数,适当调大有时可以减少出现。不过调得过大,就等于接受以不利的价格成交。如果同时存在网络延迟的问题,使用 VPS 也可能有所改善。
5. 10006:有时只能问券商
这是由券商一侧的判断造成的拒单,用户这边看不到原因。可能的情形包括账户的交易限制、品种的临时停止交易、对下单过于频繁的限制等,但具体属于哪一种,我们也无法断定。最稳妥的做法是记下日志中的时间和订单内容,向券商客服咨询。如果频繁发生,参考 券商对比 考虑换一家,也是办法之一。
局限与注意事项
- 模拟账户中可能无法复现。 模拟账户与真实账户的成交方式不一定相同,重新报价和拒单的发生概率也可能不同。即使在模拟账户上运行正常,也不能保证在真实账户上同样能通过。
- 反复重试有时适得其反。 10030 和 10013 即使把同一张订单再发一次也不会通过。如果EA每次被拒都重发,订单会在短时间内集中涌入,还可能因此触发券商一侧的限制。我们自家的EA只对 10004 这类临时性返回码,在限定次数内重发。
- 被拒的那次交易不会留下记录。 回测中几乎不会出现这类拒单,所以实盘运行时成绩会因此产生偏差。这也是实盘结果与测试器结果对不上的原因之一。
- 返回码除了这里讲的 5 个之外,还有手数无效、价格无效、保证金不足等其他编号。本文只整理了咨询较多的这 5 个。
总结
- 先看是“每次都失败”还是“偶尔失败”
- 每次都失败时,按 10018(时间)→ 10030(成交方式)→ 10013(订单内容)的顺序排查
- 偶尔失败时,先看 10004(滑点、时间段),10006 则向券商咨询
- 10030、10013 无论重发多少次都不会通过,请修正设置
- 10006 的真正原因有时用户这边看不到,我们也无法断定
- 即使在模拟账户上能通过,也不一定在真实账户上同样能通过
相关文章
📧 免费邮件课程(共 8 封)+ 订阅者专享 MT5 指标 13 款合集
※ 严格保护隐私。可随时取消订阅。