与官方 MetaTrader5 Python API 的详细比较
本页将 MQL5 Python 集成
上发布的官方 MetaTrader5 Python 包函数集,与截至 2026-03-17 检查时的当前 pymt5
客户端进行比较。
比较对象
官方软件包与本地安装的桌面终端通信。 pymt5 则通过逆向工程得出的 WebSocket 协议与公开的
MT5 Web Terminal 通信。因此,虽然双方名称现在高度一致,但某些语义并不相同:
官方软件包:同步的模块级函数,例如
mt5.initialize()和mt5.order_send()pymt5:异步实例方法,例如await client.initialize()和await client.order_send({...})官方软件包:由终端管理的快照、namedtuple 和类数组返回类型
pymt5:dict、list 和 dataclass,其中一些视图根据推送流或本地公式重建
状态标签
Direct(直接):由已确认的 Web Terminal 命令或响应路径支持Derived(派生):根据其他命令、缓存的推送数据或本地过滤构建Best-effort(尽力):已公开提供,但没有具有完全等效语义的专用 Web Terminal RPC 支持
连接、会话和终端元数据
官方函数 |
|
状态 |
说明 |
|---|---|---|---|
|
|
直接 |
映射到 |
|
|
直接 |
通过 Web Terminal 协议登录。 |
|
|
直接 |
关闭 WebSocket 会话,而不是与桌面终端进程分离。 |
|
|
尽力 |
根据 |
|
|
尽力 |
跟踪 |
|
|
直接 |
|
|
|
尽力 |
仅公开 Web 账户配置能够证实的服务器/构建/时区/交易权限子集。有意省略桌面版特有的 文件系统和社区字段。 |
交易品种、MarketWatch 和 DOM
官方函数 |
|
状态 |
说明 |
|---|---|---|---|
|
|
直接 |
统计缓存的交易品种,或直接获取 Web 交易品种列表。 |
|
|
直接 |
由 |
|
|
直接 |
可用时使用 |
|
|
派生 |
返回最新缓存的 |
|
|
派生 |
实现为报价订阅管理,而不是桌面版持久化的 MarketWatch 可见性。 |
|
|
直接 |
使用 |
|
|
派生 |
返回最后缓存的 |
|
|
直接 |
从当前 DOM 订阅集合中移除该交易品种。 |
K 线和报价
官方函数 |
|
状态 |
说明 |
|---|---|---|---|
|
|
直接 |
对 |
|
|
派生 |
通过 |
|
|
派生 |
通过请求足够的历史数据并在客户端代码中切片,重建相对于当前 K 线的访问方式。 |
|
|
派生 |
返回根据观察到的 |
|
|
派生 |
与 |
订单、持仓、历史和计算
官方函数 |
|
状态 |
说明 |
|---|---|---|---|
|
|
直接 |
基于 |
|
|
直接 |
加载 |
|
|
直接 |
基于 |
|
|
直接 |
在客户端代码中支持 |
|
|
直接 |
统计经本地过滤的 |
|
|
直接 |
对 |
|
|
直接 |
统计经本地过滤的 |
|
|
直接 |
对 |
|
|
直接 |
封装 |
|
|
尽力 |
仅为本地预检验证器。它检查交易品种规则、止损止盈、到期时间、成交模式和保证金是否充足,
不使用专用的服务器 |
|
|
尽力 |
使用本地公式及缓存的 FX 换算报价。涵盖常见的外汇/CFD/期货/股票/债券模式; 经纪商特定的保证金档位仍为近似计算。 |
|
|
尽力 |
与 |
桌面软件包中没有官方对应项
pymt5 还公开了 Web Terminal 特有或协议级的辅助函数,它们在官方桌面软件包中没有直接对应项:
账户开户和验证:
request_opening_verification()、submit_opening_verification()、open_demo_account()、open_real_account()OTP 和验证辅助函数:
verify_code()、enable_otp()、disable_otp()仅 Web 提供的经纪商/UI 命令:
trader_params()、send_notification()、get_corporate_links()协议逃生通道:
send_raw_command()、send_bootstrap_command_52()异步流回调:
on_tick()、on_book_update()、on_trade_result()以及其他推送处理程序注册高级交易便捷接口:
buy_market()、sell_market()、buy_limit()、sell_limit()、buy_stop()、sell_stop()、buy_stop_limit()、sell_stop_limit()、close_position()、close_position_by()、modify_position_sltp()、modify_pending_order()、cancel_pending_order()
实际结论
在接口层面, pymt5 现在覆盖了交易、交易品种、持仓、订单、K 线、报价、历史以及终端/账户
元数据所涉及的相同官方函数名称。真正的差异在于语义:
官方软件包使用桌面终端 IPC,而
pymt5使用 Web Terminal WebSocket 传输某些官方快照 API 在
pymt5中建模为缓存视图某些终端侧计算被建模为本地尽力公式
返回结构采用 Python 风格的 dict/list/dataclass,而不是官方 namedtuple 或面向数组的结果
如需仅包含状态的简要摘要,请参阅 官方 Python API 兼容性。