配置
连接设置
MT5WebClient 构造函数最常用的设置如下:
设置 |
默认值 |
用途 |
|---|---|---|
|
MT5 Web Terminal URL |
WebSocket 地址,应使用当前环境获授权的入口。 |
|
|
命令与初次连接的超时秒数。可能已经发送的请求超时后会隔离连接; 超时不等于服务器 ACK 或 NACK。 |
|
|
登录后心跳 ping 的间隔秒数。 |
|
|
意外断线后重新连接并登录。 |
|
|
每轮重连的最大尝试次数。 |
|
|
带抖动指数退避的基础值和上限。 |
|
|
可选令牌桶命令限流;零表示不限流。 |
|
|
可选 |
完整构造函数和缓存设置见 API 参考。
协议兼容设置
历史K线:rate_bar_format
auto 仅在响应长度能唯一识别 48 字节标准记录或 56 字节扩展记录时解析。
长度有歧义或不匹配会抛出 ProtocolError。已知服务器布局时可显式选择
standard 或 extended,也可向支持的 rates 方法传入 bar_format。
长度校验不能证明所有 payload 在语义上都正确。
tick 价格:tick_price_mode 和 tick_price_modes
auto是默认值,保留旧版按品种/幅度判断的启发式行为。这是兼容行为, 不是通用线格式保证。scaled将非零价格除以10 ** symbol.digits。normalized保留原始 wire 价格。tick_price_modes={"EURUSD": "scaled"}可覆盖指定品种的全局模式; 品种键不区分大小写且优先级更高。
同一配置会应用于原始回调、强类型事件和缓存。依赖价格前,应对目标服务器/
build 的小规模授权样本进行验证。可以使用 scripts/demo_tick_probe.py
进行只读探测;其输出需要人工判断,不是自动验收结论。
交易请求:trade_protocol
默认线格式为 legacy。build_6090 显式启用某个环境报告的保留字节和
market-deal 行为。客户端不会根据握手 build 号自动推断该配置。券商、执行
模式和 build 兼容性必须独立验证。
环境变量
变量 |
用途 |
|---|---|
|
示例和 integration 测试使用的 WebSocket URI。 |
|
显式启用 demo integration 测试时使用的凭据,绝不能提交其值。 |
|
tick integration/探测使用的活跃、高流动性品种。 |
|
显式启用在线 integration 测试;离线门禁不设置它。 |
|
库日志阈值。采样报告中避免输出凭据/session 等敏感日志。 |
核心客户端不会自动加载 .env。请使用应用的密钥管理器或显式 dotenv
加载器,并确保本地环境文件已被 Git 忽略。
推荐的初始配置
import os
from pymt5 import MT5WebClient
client = MT5WebClient(
uri=os.environ["PYMT5_SERVER"],
timeout=30.0,
auto_reconnect=True,
rate_bar_format="auto",
tick_price_mode="auto",
trade_protocol="legacy",
)