MT5 到 Web3 执行,一步一步拆开看
MT5 的成交以「手」计价,合约大小由 broker 自己定义。链上永续合约以别人部署的合约单位计价,有自己的保证金、资金费和交易时段。把前者变成后者,是五个独立的判断,其中任何一个都可能让这次复制无法成立。
1. 采集信号,不等于取得控制权
复制系统首先需要一个信号,而最安全的信号是一个无法下单的信号。HyperMatch Bridge 是一个 MT5 智能交易程序,它读取所在账户的新增成交并发送到网页端点。它完全不包含下单代码:公开源码里只有成交历史读取,没有 OrderSend、CTrade 或任何开仓调用。这里说的是抛单桥接器;带护航引擎的 HyperMatch EA 是另一个程序,它可以在你自己的终端里下单,但只在你打开引擎并点「启动」之后。
它挂载后默认暂停,抛单采集会话启动之前不采集任何成交。每次会话都从启动那一刻开始,因此启动之前的任何成交都不会被补发,暂停期间也不会留下补单。默认情况下,你在网站上开始跟随时,EA 会自动启动会话;面板上的「启动抛单采集」按钮仍可手动启动,而你在面板上点的暂停,网站不会替你撤销。传输采用至少一次投递,也就是说重复投递是可能的,去重必须由接收端负责。
- 配对终端的设备 token 以哈希形式存储,可以单独撤销;MT5 账户有付费窗口时一直有效;没有付费窗口时,30 天不联网才失效。
- 配对只能证明有人控制着登录该账户的终端,它不是 broker 出具的账户归属证明。
- 撤销 token 会停止事件采集,但不会平掉任何仓位,它和场所交易授权是两套独立的控制。
2. 一手不等于任何固定数量
「手」是 broker 定义的乘数。同一个品种在两家 broker 可能代表两个不同数量,而目标市场有自己的合约大小和最小变动步长。换算必须以 broker 规格作为数据输入,不能靠品种名称去推断。
HyperMatch 用一次精确的有理数计算完成换算,并且只向下取整到目标步长一次。它从不把源敞口向上取整:无法精确表达的数量只会变小,不会变大。
- 文档中使用的参考合约大小(黄金每手 100 盎司、BTC 或 ETH 每手 1 枚)是占位值,请替换为你自己 broker 的规格。
- 存在两种互相冲突的规模策略:保留美元名义敞口,或保留标的数量。任何不告诉你用了哪一种的工具,都是在隐藏这个差别。
- 运算使用定点整数而不是二进制浮点数,数量不会因为舍入误差而漂移。
3. 杠杆是上限,不是倍数
设置为 1:500 或 1:1000 的 MT5 账户,只是拥有较高的保证金上限。它不代表账户实际持有那么大的敞口,也不代表任何目标场所会对同一品种给出同样的上限。
真正重要的是你实际持有的敞口与你实际拥有的权益之比。举一个纯算术的例子:一个设置为 1:1000、权益 10,000 美元的账户,持有名义价值 4,375.50 美元的黄金仓位,实际敞口约为权益的 0.438 倍,远低于 1:1000 的设置。那个配置上限对这个仓位完全没有起作用。
- 在场所调整杠杆设置,不会改变同样名义价值下的盈亏,它改变的是锁定多少抵押资金以及强平价位有多近。
- 抵押资产不会在场所之间共享,每一个可用目标都需要自己的可用保证金。
- 止损不构成亏损上限的保证。跳空、资金费、强平与实际成交都可能偏离你设置的价位。
4. 目标市场决定了什么做得到
名字眼熟的市场,不会自动成为等价的合约。永续场所上的黄金品种,是一个有自己预言机、自己交易时段、自己抵押资产和自己运营方规则的合约。等价性必须逐项核对,而 HyperMatch 把「没有完成这项核对」视为拒绝该路线的理由,而不是先试一次的理由。
最小名义价值、数量精度、资金费率、时段限制与可用深度,共同决定某个规模能不能下出去,以及退出时要付多少成本。点差只是这个成本的一部分,而且通常不是最大的一部分。
- 不同 LP 的杠杆上限差异很大,并随交易时段变化。它们是参数而不是保证:交易时段与新闻限制随时可能把上限调低,真正起作用的是下单那一刻生效的数值。
- 这些数字属于那家场所,只在所列日期成立,并且可能在不通知的情况下变化。来自场所运行时的元数据,优先于任何被抄进网页的表格,包括本页。
- 场所出现在我们的目录里,描述的是接入阶段。它不代表路线已获启用,也不构成可以成交的承诺。
5. 一张回执到底说明了什么
事件被接收,意味着引擎已经把它持久化保存。它不代表事件已被选路、已成交、已结算,也不代表任何资金可以提取。在整条链路里,HTTP 成功是最弱的一个信号。
当前工作台的选路决定属于纸上决定,并且在返回结果里直接标注:不做持久化、作用域是独立场景而非账本、模拟腿使用合成行情。从场所读取的公开订单簿数据是真实的,并被标注为不可执行;由它推导出的纸上回执是模拟结果,不会提交订单。
6. 评估任何复制系统时该问的问题
这些问题与 HyperMatch 无关,它们区分的是「能告诉你到底发生了什么」的系统和做不到这一点的系统。
- 源端连接是否具备下单能力?如果具备,一个 bug 的影响范围就包含你的源账户。
- 中继关闭期间产生的交易会怎么处理?静默补单是账户莫名其妙继承仓位的常见原因。
- 使用的是哪一种规模策略?目标数量是否存在向上取整?
- 结果不明确时系统会做什么?对一笔可能已经执行的订单重试,是一个信号变成两个仓位的典型路径。
- 源端连接和交易授权能否分别撤销?撤销其中任何一个会不会平仓?
- 源端业绩、模拟结果与目标执行,是作为三份数据分开展示,还是被混成同一条曲线?
HyperMatch 目前的实际阶段
下表使用的阶段用词,与代码库和交付记录中的用词一致,未作改写。