โ† 全部教程
MT5 API ยท 3:40

其他方法的结果与错误

账户、行情、历史、计算和数据流。 空列表、零和 false 也可能是有效结果。

分步文字说明

  1. 0:00

    其他方法的结果与错误

    本教程介绍 MT5 其他方法的结果和错误处理,包括账户数据、市场信息、历史记录、计算方法以及 WebSocket 数据流。

  2. 0:15

    打开当前方法的结果指南

    打开 M T 五点 M R P C 点 pro。选择 Account Summary、Opened Orders 等需要的方法,在代码示例下方展开如何判断请求是否成功。请阅读当前方法对应的说明。

  3. 0:37

    1. 检查 HTTP 状态码

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

  4. 0:59

    2. 检查 error

    第二步检查 error。如果它不为空,读取 errorCode 和 errorMessage。这里是一条真实的 Account Summary 请求:虽然 HTTP 状态码为二百,但终端标识符无效,红色结果给出了修正说明。

  5. 1:21

    修正缺失或无效的会话

    终端标识符无效时,使用 Connect Ex 返回的完整 id。如果找不到终端,检查标识符和平台,再检查终端状态。已结束的会话需要重新建立有效连接,才能继续查询账户。

  6. 1:42

    按当前方法解释 data

    对于账户、市场、历史和计算方法,检查 error 后,应读取该方法自己的 data 字段。空列表表示没有符合条件的项目,计数为零可能表示没有持仓,false 可能是一个正常的否定回答。这些值本身并不代表 API 失败。

  7. 2:06

    读取方法的准确结果字段

    Account Summary 返回账户信息,Positions Total 返回持仓数量。计算方法返回估算的保证金或利润,并不会执行交易。历史查询返回空列表时,请检查筛选条件和时间范围。

  8. 2:28

    终端繁忙:等待后再试

    如果终端返回 Busy 或 Rate Limit Exceeded,请检查 error 的 properties 中是否提供 RetryAfterSeconds。等待指定时间并减少并发请求。查询超时后,先检查终端状态,待终端就绪再重试。

  9. 2:51

    数据流:逐条检查消息

    使用 WebSocket 方法时,每条消息都应先检查 error,再处理 data。连接已打开并不代表每个操作都成功。暂时没有数据或收到空心跳不等于请求失败。连接断开后,按需重连,并查询当前账户状态以补齐信息。

  10. 3:17

    其他方法:一、二、三

    普通方法依次检查 HTTP 状态码、error 和当前方法的 data。数据流则需要检查每条收到的消息。保留原始诊断信息用于排查,但在分享响应前,删除凭据和账户信息。