其他方法的结果与错误
账户、行情、历史、计算和数据流。 空列表、零和 false 也可能是有效结果。
分步文字说明
- 0:00
其他方法的结果与错误
本教程介绍 MT5 其他方法的结果和错误处理,包括账户数据、市场信息、历史记录、计算方法以及 WebSocket 数据流。
- 0:15
打开当前方法的结果指南
打开 M T 五点 M R P C 点 pro。选择 Account Summary、Opened Orders 等需要的方法,在代码示例下方展开如何判断请求是否成功。请阅读当前方法对应的说明。
- 0:37
1. 检查 HTTP 状态码
首先检查 HTTP 状态码。HTTP 状态码二百表示 API 已收到请求并返回响应,接下来读取 JSON 响应体。如果是其他状态码,先查看 HTTP 错误及其响应内容。
- 0:59
2. 检查 error
第二步检查 error。如果它不为空,读取 errorCode 和 errorMessage。这里是一条真实的 Account Summary 请求:虽然 HTTP 状态码为二百,但终端标识符无效,红色结果给出了修正说明。
- 1:21
修正缺失或无效的会话
终端标识符无效时,使用 Connect Ex 返回的完整 id。如果找不到终端,检查标识符和平台,再检查终端状态。已结束的会话需要重新建立有效连接,才能继续查询账户。
- 1:42
按当前方法解释 data
对于账户、市场、历史和计算方法,检查 error 后,应读取该方法自己的 data 字段。空列表表示没有符合条件的项目,计数为零可能表示没有持仓,false 可能是一个正常的否定回答。这些值本身并不代表 API 失败。
- 2:06
读取方法的准确结果字段
Account Summary 返回账户信息,Positions Total 返回持仓数量。计算方法返回估算的保证金或利润,并不会执行交易。历史查询返回空列表时,请检查筛选条件和时间范围。
- 2:28
终端繁忙:等待后再试
如果终端返回 Busy 或 Rate Limit Exceeded,请检查 error 的 properties 中是否提供 RetryAfterSeconds。等待指定时间并减少并发请求。查询超时后,先检查终端状态,待终端就绪再重试。
- 2:51
数据流:逐条检查消息
使用 WebSocket 方法时,每条消息都应先检查 error,再处理 data。连接已打开并不代表每个操作都成功。暂时没有数据或收到空心跳不等于请求失败。连接断开后,按需重连,并查询当前账户状态以补齐信息。
- 3:17
其他方法:一、二、三
普通方法依次检查 HTTP 状态码、error 和当前方法的 data。数据流则需要检查每条收到的消息。保留原始诊断信息用于排查,但在分享响应前,删除凭据和账户信息。