MT5 Web Terminal 命令覆盖情况
本页跟踪在私下保留的 MT5 Web Terminal 前端分块文件 D8ROuLSQ.js (捕获于 2026-03-12)
中发现的命令 ID,并将其与截至 2026-03-16 的公开 pymt5 API 进行比较。第三方 JavaScript
快照保存在公开仓库之外;项目中仅保留由此得出的协议事实和本地静态分析辅助工具。
已于 2026-03-16 重新检查线上站点。当前官方终端入口页报告构建版本为 5687 ,构建日期为
2026-03-15,并且仍加载同名 API 分块文件( D8ROuLSQ.js ),其中具有相同的直接
sendCommand(...) 调用集合。
观察到的前端请求命令
当前前端快照包含以下命令的直接 sendCommand(...) 调用点:
0引导握手2注销3获取账户4获取持仓和订单5获取交易历史6获取交易品种7订阅报价9获取交易品种组11获取 K 线12交易请求18获取完整交易品种信息20获取点差22订阅订单簿24修改密码27验证码 / 验证流程28登录29初始化30开设模拟账户34获取交易品种(gzip)39开设真实账户40发送验证码41交易者参数42通知43OTP 设置 / 连接 OTP44获取公司链接51心跳
观察到的前端事件处理程序包括 8 、 10 、 13 、 14 、 15 、 17 、 19 和 23 ,
分别对应报价、交易、交易品种、账户、登录、交易品种详情、交易结果和订单簿推送。
pymt5 中已实现
pymt5 现在已覆盖可见的前端命令接口:
会话/身份验证:
0、2、24、27、28、29、30、39、40、41、42、43、51账户/交易数据:
3、4、5、12市场数据:
6、7、9、11、18、20、22、34、44推送处理程序:
8、10、13、14、15、17、19、23
命令含义
cmd=27开户验证请求: 当前前端发送int16 build + cid + base opening payload。pymt5通过request_opening_verification()提供此功能,并将双字节响应解析为VerificationStatus(email, phone)。cmd=30开设模拟账户: 当前前端发送完整的注册负载,而不是较早的类初始化负载。pymt5现在通过open_demo_account()镜像此行为。旧版open_demo()封装仍为兼容性而保留。cmd=39开设真实账户: 此命令在模拟账户负载的基础上扩展了身份/KYC 字段、一个propType=9出生日期字段, 以及零个或多个已上传文档。pymt5通过open_real_account()实现此功能。cmd=40提交验证码: 此命令重新发送基础开户负载,并填入电子邮件/电话验证码字段。pymt5通过submit_opening_verification()提供此功能,并解析与 cmd=27 相同的双标志响应结构。cmd=43OTP 设置: 前端在启用和禁用 TOTP 时使用同一种负载结构。pymt5将其映射为enable_otp()和disable_otp()。
根据前端用法确认的响应结构
cmd=27和cmd=40返回两个u8标志。 推断:这些标志表示电子邮件和电话验证状态,因为前端使用它们来决定显示哪些确认字段, 以及提交的验证码是否被接受。cmd=30和cmd=39返回[code, login, password, investor_password]。 这一点已由前端控制器确认:它将第一个字段视为错误代码,并将其余三个值保存为新账户凭据。
未知或保留的 ID
前端传输允许列表还接受以下 ID:
21 、 25 、 33 、 37 、 50 、 52 、 100 、 101 、 102 、 103 、
104 、 105 、 106 、 107 、 108 、 109 、 110 、 111 、 112 。
在当前前端快照或 2026-03-16 的线上分块文件中,均未发现这些 ID 的直接
sendCommand(...) 调用点。
线上探测结果
2026-03-16 对 web.metatrader.app 进行的最小化线上探测产生了以下可重复的结果:
21、25、33、37、50、100-112: 传输层接受这些命令,但无论登录前还是登录后,空负载在客户端超时前都未产生响应。 推断:这些命令可能需要专用负载,或者在 MetaQuotes-Demo 服务器上被禁用。52: 仅在刚完成引导握手、尚未执行其他命令的套接字上返回code=0和空响应体。 执行cmd=29或cmd=28后,同一命令会导致服务器在不发送关闭帧的情况下断开连接。pymt5通过实验性辅助函数send_bootstrap_command_52()提供这一确切行为。
在更新的分块文件、较早的历史分块文件或特定经纪商的捕获数据揭示其负载模式和业务含义之前, 这些 ID 仍应视为保留或尚未识别。
[ ] 重新扫描未来的 Web Terminal 分块文件,并在为未解析的 ID 添加命名业务 API 之前完成映射。