设置与故障排查
MT5 错误 10016:止损距离、冻结区与价格步长
无效止损通常需要结合订单类型、当前报价、入场价和保护价格一起检查。单看一个距离参数,并不足以解释完整请求。
从请求与返回码开始
返回码 10016 对应 TRADE_RETCODE_INVALID_STOPS。记录下单时的订单类型、Bid、Ask、入场价、Stop Loss 和 Take Profit。先分清是市价单、挂单,还是修改已有持仓,因为各自需要满足的价格关系不同。
区分两种限制
SYMBOL_TRADE_STOPS_LEVEL 表示以 Points 计的最小止损距离。SYMBOL_TRADE_FREEZE_LEVEL 表示影响市场价格附近操作的冻结区域。两者应分别检查。公布的止损距离为零,也不意味着可以忽略价格方向、步长或其他服务器条件。
对齐价格后重新核对
按 Tick Size 对齐价格后,应重新计算距离。向市场方向取整,可能使原本合格的止损距离变得不足。还应使用最新报价,因为计算与提交之间的行情变化也可能影响有效性。
按针对性的步骤修复
- 使用相同品种和请求类型复现。
- 比较请求价格与当前品种限制。
- 检查 OrderCheck 和交易服务器结果。
- 只修改相关价格计算,再检查失败案例与普通有效案例。
用 MQLume 开启你的定制
MQLume 为有编程和交易基础的用户提供可编辑项目,方便检查执行规则。可以从 Ultimate Breakout System MT5 的参数指南开始。