โ† 全部教程
MT5 API ยท 4:51

交易方法的错误处理

区分成交、挂单与券商拒绝。 发送下一笔交易前,先读懂结果。

分步文字说明

  1. 0:00

    交易方法的错误处理

    本教程介绍 MT5 的交易结果和错误。我们会区分完全成交、部分成交、挂单、券商拒绝以及结果尚未确定的情况。

  2. 0:17

    打开交易方法的结果指南

    打开 M T 五点 M R P C 点 pro,在交易操作分类中选择 Order Send,然后展开代码示例下方的结果指南。使用其他交易方法时,应查看那个方法自己的指南。

  3. 0:37

    1. 检查 HTTP 状态码

    首先检查 HTTP 状态码。HTTP 状态码二百表示 API 已收到请求并返回响应,接下来读取 JSON 响应体。如果是其他状态码,先查看 HTTP 错误及其响应内容。

  4. 0:59

    2. 检查 error 和交易错误详情

    如果 error 不为空,读取 errorCode 和 errorMessage。如果包含 mqlErrorTradeIntCode 及其说明,也要一起检查。券商拒绝可能出现在这个错误结构中,应根据实际错误码选择处理方式。

  5. 1:21

    3. 读取券商返回的结果

    对于交易请求,HTTP 状态码二百且没有 API 错误,表示请求已提交给券商,但并不代表订单已经成交。请读取 data 点 returnedCode、returnedStringCode,以及该方法对应的结果字段。

  6. 1:45

    市价单:完全还是部分成交?

    对于市价买入或卖出,一万零九 Done 表示已完成。一万零一十 Done Partial 表示部分成交。读取成交量、成交价和成交记录,并查看持仓和历史,确认剩余部分的状态。

  7. 2:05

    挂单成功不等于立即成交

    市价单返回一万零八 Placed,表示已接受执行,但尚未确认成交。挂单返回 Placed 或 Done,表示挂单已建立。保存 data 点 order,并查看 Opened Orders。挂单仍在等待触发价格。

  8. 2:27

    市场休市属于券商拒绝

    即使没有 error,data 中仍可能包含券商拒绝结果。一万零一十八表示市场休市,需要等待该品种的交易时段。不能因为 data 存在就认定交易成功,应根据返回码判断实际结果。

  9. 2:48

    根据具体错误修正请求

    资金不足时,应降低交易量或确保有足够可用保证金。止损止盈无效时,修正价格和距离。交易量无效时,按品种允许的范围和步长设置。没有报价时,等待新报价。指南将错误码与处理步骤放在一起。

  10. 3:13

    超时后先核对账户状态

    交易超时或券商连接中断时,结果可能尚未确定。再次提交前,先检查挂单、持仓和历史,否则可能造成重复交易。同一券商错误码可能出现在 data 的 returnedCode 或 error 的 mqlErrorTradeIntCode 中。

  11. 3:37

    平仓和修改分别有自己的规则

    使用 Order Close 时,读取平仓结果,再检查剩余持仓。部分平仓后仍会保留持仓量。使用 Order Modify 时,Done 表示修改完成,No Changes 表示目标值本来就已设置。不要将 Order Send 的规则套用到所有交易方法。

  12. 4:02

    预检查不会发送交易

    Order Check 与 Order Send 不同。请读取 data 点 mqlTradeCheckResult 内的返回码和说明。返回码为零且说明为 Done,表示预检查通过,但不会创建订单。仍需单独发送交易并检查执行结果。

  13. 4:26

    交易检查:一、二、三

    每笔交易都应先检查 HTTP 状态码,再检查 error,最后按当前方法读取券商结果。保存相应的订单、成交或持仓标识符。发生超时或连接中断后,先核对账户状态,再决定是否重新发送请求。