摘要#
HyperMatch 是面向 MT5 黄金交易者的云端护航台。交易始终留在客户自己的券商账户里;HyperMatch 提供运行在客户终端里的护航引擎(EA)、云端控制与预警、账户体检、可核验的链上存证战绩,以及可选的链上护航对冲。
本白皮书写给客户、合作方和技术评审:产品由哪些部分组成、系统怎样搭建、安全边界在哪里、我们使用了哪些开源技术,以及我们不能承诺什么。
链上部分采用多条技术架构,聚合多家链上 LP(流动性提供方),按规则选择路线。出于商业保密,本文不列出具体的 LP:登录后的客户看到的是固定代号(「流动性通道 1、2、3」),在钱包里签名时,钱包会显示实际的交易对手。
官方客服:Telegram @hypermatch123(窗口开通、使用问题;EA 安装包在官网直接下载)。
行业问题#
MT5 黄金交易者长期面对四个问题:
- 网格与加仓类 EA 缺少外部风控。 单边行情里浮亏可能迅速扩大,而交易者往往不在电脑前:手机上看不到账户,也管不了 EA。
- 成绩难以核验。 截图可以修改,历史可以补录,公开的「战绩」很难证明是当时真实发生的记录。
- 链上与券商之间的价差常被夸大。 在我们记录的样本里,链上黄金报价与券商报价之间的差距多为几美分,而且很快收敛;而一次开平仓的往返成本是每盎司数美元。这些样本有限,还没有覆盖美盘和数据发布时段。价差本身不是稳定的收益来源。
- 交出资金或交易密码的风险。 很多「托管」「代操」方案要求客户把资金或交易密码交给第三方,一旦出问题很难追回。
HyperMatch 从这四点出发:风控在客户自己的终端里执行,云端负责看盘与提醒;战绩在发生时就封存并锚定上链;价差只作为开局时避开不划算价格的参考,不作为收益承诺;资金和交易权限始终留在客户手里。
产品体系#
HyperMatch 由下面几部分组成。每一项都写明它做什么、由谁控制、默认状态;各项当前的开放情况,以系统状态页为准。
| 部分 | 当前状态 | 由谁控制 |
|---|---|---|
| HyperMatch EA V2.2(中文版「HyperMatch抛单套利引擎」、英文版「HyperMatch Copy & Arbitrage Engine」;V2.0、V2.1 照常可用) | 两个版本功能相同;官网直接下载 EX5(「使用说明」页);面板「检查更新」提示新版本,「更新助手」(Windows)一键装进这台电脑所有的 MT5;美国重大数据公布前,面板和 MT5 会提醒(只提醒,不改变交易) | 客户安装在自己的 MT5 |
| 护航引擎 A–D | 随 V2.0 EA 提供;不会自己开始 | 客户:MT5 面板「开启自动模式」或「启动」并确认(真实账户多确认一次) |
| 风险偏好 1–10 级与频率 10%–100% | 随 V2.0 EA 提供;服务器按级别、余额和行情决定引擎、安全垫和爆仓保护深度 | 客户:只选级别和频率;「高级」里可以自选引擎、安全垫和保护深度 |
| 本轮止损 | 可选,默认关闭:可自设每轮最大亏损(本金 3% 起,也可设固定金额) | 客户 |
| 套利开局 | 开发中,先以观察模式运行 | 客户开关;平台只能让它更保守 |
| 获利了结 | 随 V2.0 EA 提供,目标默认 +5% | 客户 |
| 快速首单 | 随 V2.0 EA 提供(引擎 A、B) | 客户启动;方向和时机由服务器决定 |
| 轮动护航 / 自动模式 | 随 V2.0 EA 提供;自动模式按风险偏好在对应的引擎之间轮换(5 级为 A、B) | 客户:MT5 面板「开启自动模式」并确认 |
| 扫码绑定与云端授权 | 随 V2.0 EA 提供 | 客户:手机确认;可随时解除绑定或撤销 |
| EA 直接抛单链上 | 已上线:官方客服为你的账户开通链上执行(和窗口一样)后,门户可使用完整功能——在网页开始跟单,MT5 成交自动下到你自己的链上账户,平仓跟随,保证金回到你自己的钱包;各项以系统状态页为准 | 客户:在自己的钱包里授权交易代理,在网页开始和随时停止;平台不能提现 |
| 云端控制台与预警 | 可用 | 客户;EA 可以拒绝任何网页命令 |
| 账户体检 | 可用,只读 | 客户 |
| 窗口(一年或永久) | 1 个窗口 = 1 个 MT5 账户的授权:一年 150U(开通起 365 天,到期前提醒)或永久 900U(长期有效,不用续费),模拟账户和实盘账户都需要;目前联系官方客服付款开通 | 客户:每个窗口(一年或永久)可换一次 MT5 账户 |
| 券商直读 | 仅管理员使用;客户接入统一安装 EA | 管理员 |
| 链上存证战绩 | 逐步开放,默认私有 | 客户决定是否公开 |
| 链上护航对冲 | 默认隐藏,按账户开放 | 客户 |
| 链上模拟账户(模拟,不是真钱) | 随 V2.0 EA 提供:每个绑定的账户默认附带 500U 模拟账户,和 MT5 已实现收益并排显示 | 客户:起始资金、重置、开关;「开通真实链上」是可选的下一步 |
| 黄金价差与资金费监控 | 公开,只读 | — |
护航引擎 A–D
运行在客户自己 MT5 终端里的四档网格护航引擎(护航版 EA),风险由低到高。控制台按账户余额用公式估算每档引擎的适配度,给出「适合」「能跑,余量小」「不够」三种提示(新版按资金定手数时是「够几份」和「资金不足」,见下文);这是公式估算,不是回测,也不是收益预测。
每档引擎都有客户可调的上限:层数、手数、每日成交笔数、保证金占用和交易时间窗,最后一道线是爆仓保护(新版不再默认 20% 浮亏熔断,见下文)。引擎不会自己开始:只有客户在 MT5 面板点「开启自动模式」(或手动「启动」)、读过卡片上的做法和风险并确认后,才会在自己的终端里下单;这张确认卡就是开关,不需要改 EA 输入参数。真实账户还要在面板上多确认一次「这是真实账户,会用真钱下单」。EA 保留一个高级的紧急关闭开关(强制关闭后不下单、不管理、不上报)。
新版护航版 EA 的引擎参数(开仓周期、通道、间距等)不写在公开的 EA 文件里:EA 绑定 HyperMatch 账户之后,由服务器按设备加密下发,只在引擎空仓时生效(见安全与风控)。
套利开局(开发中,仅 A、B)
每一侧的第一单先参考链上盘口中间价:券商报价明显偏贵时先等一等,最多 30 秒。它只避开明显不划算的价格,从不追逐更便宜的价格。上线后先以观察模式运行,只记录「本来会怎么做」;观察样本达到统计门槛、确认对开局没有害处之后,才会转为执行模式。
获利了结
一次运行的合计盈亏(本次运行中引擎在 MT5 的盈亏,加上链上部分的盈亏,减去预估平仓成本)在两次间隔不少于 30 秒的独立检查中都达到目标(默认 +5%)时,EA 先平掉 MT5 上的引擎仓位,确认已平之后再以只减仓的方式平掉链上部分,然后停止。达不到目标就继续护航;爆仓保护(或客户自己设的本轮止损)照常生效,一次运行仍可能以亏损结束。
快速首单
每一轮开始后,如果约 20 秒内引擎自己的开仓信号还没有出现,引擎就用它自己的开仓路径下一张基础手数的第一单,方向按现价相对引擎通道中线决定。开启了「套利开局」时,这一单先经过它的价格保护,最晚在开仓时段内第 50 秒放行,所以第一单在一分钟左右下出;在不开新仓的时段(周末、时间窗之外)启动时,从时段打开时开始计时。快速首单只决定第一单的时机,之后的加仓、平仓和上限规则不变;它不代表这一单更容易盈利。
按资金定手数、爆仓保护与频率系数
新版护航版 EA 按账户资金定基础手数:客户选一档「安全垫」——进取、标准(默认)或稳健,分别按金价单边约 $100、$150、$200 计算每 0.01 基础手数需要多少资金;余额够几份,基础手数就是几个 0.01,手数上限同比放大。手数只在引擎空仓时重算,一轮中间不变。EA 不看币种、账户类型和品种后缀,只看余额这个数(0.01 手 × 金价 $1 ≈ 1 个账户货币单位的账户都一样)。余额不够一份时按最小手数 0.01 运行:自动模式里这一档的引擎照样用(V2.1;V2.0 只有 A 按 0.01,B、C、D 余额够各自一份才加入),面板写「最小手数 0.01」;手动启动的确认卡片写明「最小手数 0.01」。这时能扛的单边比安全垫小,更容易触发爆仓保护。这些数值由服务器下发,可以调整;它们是公式估算,不是回测。
原来默认的 20% 浮亏熔断不再默认使用,最后一道线是「爆仓保护」:本引擎浮亏达到余额的 70%(客户可调 50%–90%),或保证金比例降到 150%(券商强平线较高时相应提高),EA 就平掉本引擎的全部仓位,冷却 1 小时后自动恢复(保证金比例要回到保护线以上;面板点「解除停止」可马上恢复)。比安全垫更大的单边会触发它,一次约亏掉余额的 70%;跳空和滑点可能让实际亏损更大。另外客户可以自设「本轮止损」(默认关闭,见下文)。
「频率系数」(10%–100%,默认 100% = 引擎本来的节奏)只影响每轮第一单之后的新篮子:系数越低,入场越严,每边平仓后等待越久,每天新篮子越少。快速首单不受影响。三项设置都可以在网页、MT5 面板或 EA 输入参数里改:手数在下一次空仓时按新档位算;频率立即生效;爆仓保护调深立即生效,调浅要等本引擎平仓后才生效(改设置不会马上平掉现有持仓)。这三项是你自己的选择,网页和面板可以往两个方向调;其余安全上限只能收紧。
风险偏好 1–10 级与本轮止损(V2.0)
V2.0 起,客户只需要选两样:风险偏好 1–10 级(默认 5 级)和频率 10%–100%。服务器下发一张档位表,把级别、余额和行情变成要用的引擎、安全垫和爆仓保护深度(V2.1 余额不够一份的引擎按最小手数 0.01;V2.0 只有 A 按 0.01,其余引擎够一份才用;轮动每一轮用哪个引擎由服务器算好):
| 级别 | 引擎 | 安全垫 | 爆仓保护 |
|---|---|---|---|
| 1–3 稳健 | 只用 A | 稳健(约 $200 单边) | 50% / 60% / 70% |
| 4–6 标准 | A、B 轮换(5 级 = 原来的默认) | 标准(约 $150) | 60% / 70% / 80% |
| 7–8 进取 | A、B、C 轮换(平稳时由 C 领跑;V2.0 要余额够 C 的一份) | 进取(约 $100) | 70% / 75% |
| 9–10 进取 | A、B、C、D 轮换(平稳时由 D 领跑,D 只按最小手数;V2.0 要余额够 D 的一份) | 进取(约 $100) | 80% / 85% |
级别越高,同样余额下起手手数越大、不会变小。7–10 级在 A、B 之外加入引擎 C,9–10 级再加入 D:平稳行情里,这一档最活跃的引擎领跑这一轮(依次是 D、C、B、A;V2.1 余额不够一份的按最小手数 0.01,V2.0 只用余额够一份的);单边、大波动和忙时照样先暂停。C 每轮固定一份手数(用自己的手数表,不随余额放大),D 在自动模式里只按最小手数。C、D 不在回放研究里:只是公式估算,没有历史回放数字,C、D 的实际亏损可能比 A、B 更大。 在网页「一键开始」或 MT5 面板选到加入 C 或 D 的级别时,都要再确认一次。A、B 的数字来自 26 个月历史行情的离线回放和公式估算;A、B 自动模式在进取安全垫下触发过 1–2 次爆仓保护。回放不是预测,不保证盈利。参数本身可以调:想自己定引擎、安全垫或保护深度,可以在「高级」里选;手动 A、B 默认也用自动模式的行情规则(单边、大波动、忙时不开新一轮),可以关掉。
本轮止损(可选,默认关闭):可自设每轮最大亏损(本金 3% 起,也可设固定金额),默认关闭;两个都设时先到先停。触发时 EA 走原来的平仓流程全平本引擎这一轮的持仓,冷却 1 小时后自动恢复(面板点「解除止损」可马上恢复)。跳空时实际亏损可能超过设定;设得太紧会砍掉本来能收回的一篮——历史回放里,大多数深浮亏的篮子后来都盈利平仓了。
轮动护航与自动模式
轮动护航一轮一轮地运行,每轮只用一个引擎:按行情状态(震荡、单边、大波动、忙时)在客户勾选的引擎之间选择;单边、大波动和忙时默认先暂停,等待行情平稳。只在没有持仓时切换引擎,可以设每日最多轮数(默认 6 轮)。
自动模式由 EA 在客户自己的终端里执行:客户在 MT5 面板点「开启自动模式」,读过确认卡片上的做法和风险之后确认,EA 才开始。它在风险偏好对应、余额又够用的引擎之间一轮一轮轮换(5 级为 A、B;7–8 级加入 C,9–10 级再加入 D,D 只按最小手数),每轮第一单走快速首单;一轮合计达到获利了结目标(默认 +5%)就平仓,接着自动开始下一轮。触发爆仓保护(或客户自己设的本轮止损)后,自动模式暂停 1 小时自动恢复;一轮以亏损结束,暂停 15 分钟后自动继续。客户也可以在面板上马上恢复。网页的「一键开始」可以把自动模式保存并发送给 EA,但不会替客户启动。
无论哪种方式,网页下发的安全上限(层数、手数、成交数、本轮止损、保证金、时段)都只能收紧、不能放宽 EA 本地参数;风险偏好、安全垫、频率系数和爆仓保护深度是你的选择,网页和面板都能改。按行情选择引擎不代表更赚钱;在历史回放里,+5% 目标很少达到,多数轮次在行情转向时空仓结束。
已实现优先的盈亏显示
MT5 面板和网页控制台都先显示已实现盈亏:累计(自护航引擎第一笔成交起,按终端能读到的历史)、本轮、今日、本月,以及获利了结次数——一边的篮子全部平完算一次平仓,结果为正算一次获利了结,显示为「获利了结 N 次 · 共平仓 M 次」。获利了结目标按本轮合计判断,所以只显示完成进度。持仓中的浮动盈亏不作为主数字:它和安全垫已用多少、距爆仓保护金价还能逆向多少、净值和保证金比例一起放在单独的「风险」页(网页里是可展开的「风险」)。只计已平仓的结果,含佣金和隔夜利息;这些数字来自客户自己的终端,是过去的结果,不预示未来。
云端控制台与预警
在手机或电脑上查看每个账户最近一次上报的已实现盈亏、余额和引擎状态;净值、浮动盈亏、保证金比例和距强平在「风险」里展开。需要时可以暂停或恢复加仓、平掉护航单(需要确认)、切换引擎、调整安全参数:
- 网页发出的每条命令在 120 秒内未送达就自动作废,由 EA 决定执行或拒绝。
- EA 端有「允许网页远程控制」开关,关闭后所有网页命令都会被拒绝。
- 邮箱登录只能暂停加仓;恢复加仓、平仓、切换引擎和修改参数需要通行密钥或钱包登录。
预警覆盖浮亏比例、保证金水平、引擎停止和 EA 离线,默认规则是浮亏 20%、保证金比例 200%、引擎停止、离线 5 分钟。预警通过邮件发送,配置后也可以通过 Telegram 发送。
账户体检
用读到的账户快照评估风险:每一侧的网格深度、最大单笔手数、浮亏占余额的比例、保证金水平、金价要变动多少才会触及强平线,以及周末持仓敞口。体检只读,不改变账户里的任何东西。
券商直读(只读,免安装)
目前只供管理员使用;客户接入统一安装 EA、扫码绑定。
不装 EA、不用开着终端:HyperMatch 通过自建的只读协议网关直接从券商读取账户、成交和报价。网关只调用读取接口,无论客户提供的是哪一种密码;平台还可以切换为「只接受观摩(投资者)密码」的模式。
链上存证战绩(逐步开放)
每一笔成交和每天的账户摘要在发生时生成指纹,按小时批量锚定到以太坊 L2(原理见技术架构)。战绩默认私有,由客户自愿公开:公开页只显示成绩和「已链上存证」标记;详细证明只对账户本人开放,本人可以生成有有效期、可随时撤销的分享链接。
可选:链上护航对冲
当引擎浮亏达到客户设定的触发线时,在客户自己的链上账户里按规则开一笔反向仓位,减缓亏损扩大;浮亏回落到释放线后逐步平掉。对冲规模受钱包大小限制,对冲仓位本身也可能亏损。这项功能默认隐藏在「高级(链上)」中,需要单独开启。
链上模拟账户(模拟,不是真钱)
起步阶段,客户的收益主要来自自己 MT5 里的护航引擎:控制台和 MT5 面板先显示 MT5 已实现收益,链上模拟账户是每个客户默认附带的陪跑视图,不需要另外开通。客户不需要先把钱存到链上,就能看到链上部分在自己的账户上会怎样运作:每个绑定的护航版 EA 连接默认有一个链上模拟账户,虚拟 500 USDT(可改 300 / 500 / 1000 或自定义,随时可以重置,旧记录保留)。它不持有资金、不签名、不在任何地方下单,也不会让 EA 下单。
模拟用的都是真实数据:客户这台 MT5 的实时报价(EA 在需要时随心跳发送)、链上订单簿的真实挂单和深度、实时手续费和资金费率,以及实测的下单到成交用时。两部分:
- 套利对:按套利引擎自己的规则,在链上挂单,只有成交价穿过挂单价时才按那笔成交的数量算成交;MT5 一边按客户报价的买卖价加滑点和佣金计算。每次最多一对,数量是客户 MT5 的最小手数。
- 护航对冲和回本腿:客户本机的护航引擎请求链上对冲时,按真实护航对冲的同一套决策规则(触发、释放、回本腿、获利了结时一起平、钱包上限)模拟,全部按吃单逐档吃深度,并计入实测用时;模拟资金小时只对冲一部分。
只有平仓后的结果计入「已实现」:控制台和 MT5 面板显示今日、本月、累计、笔数和获利次数,浮动只在「风险」里。控制台另有「本地 MT5 护航 已实现」和「合计(真实 + 模拟)」,合计明确标注含模拟结果。模拟没有包括下单失败、交易所暂停、极端行情下深度突然消失和其他人抢同一笔成交;真实结果可能比模拟差,模拟结果不代表未来收益。
「开通真实链上」是可选的下一步:客户观察一段时间后,可以在同一张卡片上选择「开通真实链上」:入金开放时进入 USDT 入金步骤;未开放时显示「即将开放」,可以登记「开放时通知我」。
黄金价差与资金费监控
公开页面展示 HyperMatch 聚合多家链上 LP 得到的黄金综合报价、点差和资金费区间,并与 MT5 的往返成本对比。观察模式的套利引擎只记录、不下单。
技术架构#
HyperMatch 分为四层:客户侧的 MT5 终端层、云端控制面、执行与流动性层,以及存证层。资金与交易权限留在最外侧的客户账户里;越往内的层级,拿到的权限越少。
MT5 终端层
- HyperMatch EA V2.2(中文版与英文版两个公开版本,功能相同;V2.0、V2.1 照常可用):上报心跳、成交事件和报价(抛单),并带护航引擎——在客户自己的终端里按引擎规则下单、加仓、平仓,默认关闭,客户在面板上确认后才开始。面板每 12 小时读一次官网的版本清单,有新版本时提示;「更新助手」按同一份清单下载,核对 SHA-256 后装进 MT5。重大数据提醒读的是 MT5 自带的经济日历,只提醒,不改变交易。只读抛单版只在内部测试使用。
- 券商直读网关:免安装、只读,从券商读取账户和成交。
设备通过扫码绑定接入:在 MT5 面板点「绑定 HyperMatch」,面板显示二维码和 8 位代码(10 分钟内有效);客户用手机扫码,或在 hypermatch.org/b 输入代码,登录后核对 MT5 账号、服务器和代码再确认。设备令牌直接下发给这台 EA,不经过手机。控制台生成的专属配置文件(.set)作为另一种方式仍然可用。设备令牌在服务端只以哈希形式保存;MT5 账户有付费窗口时一直有效(长期授权),没有付费窗口时 30 天不联网才失效;在控制台撤销或在 EA 上解除绑定后立即失效。
云端控制面
- 边缘网络:TLS 加密、安全响应头和内容安全策略(CSP);公开页面在边缘缓存,访问量再大也不会逐次读库。
- 无服务器计算(Node.js):认证、设备配对、命令队列、预警判定,以及公开数据的合并读取与缓存。
- 托管 PostgreSQL:事务写入;证据类的表只追加,由数据库触发器守护;每个后台服务使用独立的最小权限数据库角色。
- 后台任务:定时预警扫描、观察模式的套利账本、存证批处理、跟单执行进程,各自使用独立的主机账户和数据库角色。
执行与流动性层
链上部分采用多条技术架构(目前用于真实选路的是订单簿型和预言机报价型),聚合多家链上 LP,按规则选择路线。浏览器不直接连接任何 LP:需要客户签名的内容由服务器按 LP 的官方格式生成,客户在自己的钱包里签名,服务器只把签好的请求原样转交一次。签名覆盖全部字段,服务器改不了其中任何内容。
需要持续自动执行的功能(例如链上护航对冲)使用客户单独授权的执行密钥,权限范围由对应 LP 的授权机制限定,客户可以随时撤销。我们不索取、也不保存客户主钱包的私钥或助记词。
执行遵守四条不变量:
- 先把执行意图持久化,再派发。
- 一旦可能已经派发,绝不盲目重发,也不改投别的 LP。
- 结果不确定就标记为「结果未确认」,暂停增加风险,并按原始标识核对。
- 平仓等降低风险的操作,不会被入场过滤条件挡住。
存证层
- 指纹:每笔成交和每天的账户摘要,字段做 ABI 编码后做两次 keccak256,得到一个叶子。MT5 登录号和服务器名只以加盐哈希出现。
- 批次:每小时把新叶子批成一棵 Merkle 树,布局与 OpenZeppelin StandardMerkleTree 的公开规范一致(叶子排序、有序配对哈希)。
- 锚定:每个批次用一笔交易把根写入以太坊 L2:一笔零金额的自转账,48 字节的调用数据里只有批次号、叶子数和根。所有账户共用这一笔交易,成本很低。
- 封存与迟报:UTC 日结束 15 分钟后封存当日;收到时间比成交晚 1 小时以上的记为「迟报」,照样存证,但不计入任何成绩。
- 核验:持有证明的人可以在自己的浏览器里直接向公共节点查询锚定交易,重算叶子和 Merkle 证明,不需要信任我们的服务器。
链上存证证明的是「这条记录不晚于锚定区块时,就以这个样子存在」;它不证明 EA 上报了每一笔成交,也不预示未来的结果。
一次心跳的数据流
EA 定期向云端发送心跳,带上账户快照、护航状态和上一批命令的回执。云端校验并写入之后,判定是否越过预警线(只在越线时记录并通知),再把待执行的命令放进回复里;有命令等待送达时,云端会让 EA 在两分钟内把心跳加快到每 3 秒一次。EA 执行或拒绝命令,并在下一次心跳里带回结果。
安全与风控#
登录与授权
- 三种登录方式:通行密钥(WebAuthn,要求用户验证)、钱包签名、邮箱验证码。钱包登录的签名只用于登录,不会转账,也不授权交易。
- 会话 Cookie 为 HttpOnly、SameSite=Strict,有效期 24 小时。
- 按风险分级授权:邮箱登录只能暂停加仓;恢复加仓、平仓、切换引擎和修改参数,需要通行密钥或钱包登录。
- 管理员由部署端白名单指定,并且必须用钱包或通行密钥登录。内容编辑人员只能编辑本页这样的公开内容,进不了任何资金或交易功能。
- 写操作校验请求来源,并按账户和网络限流。
云端授权的边界
- 网页发出的只是请求,由 EA 决定执行或拒绝;网页下发的安全上限(层数、手数、成交数、熔断、保证金、时段)只能比 EA 本地参数更严格,安全垫、频率系数和爆仓保护深度是客户自己的选择。
- 「启动」只在 MT5 面板上,网页不能替客户启动引擎。
- EA 端可以一键关闭「允许网页远程控制」。
引擎的云端授权
- 新版护航版 EA 开新仓需要三样东西:一个绑定到 HyperMatch 的账户、服务器按设备加密下发的引擎参数(AES-256 加密并带消息认证,密钥由设备令牌、MT5 账号、服务器、终端编号和每次心跳的随机数派生)、以及一张约 3 分钟有效、随心跳续期的开仓授权。
- 同一个 MT5 账户同一时间只有一台终端能开新仓;客户可以在控制台把开新仓改到另一台终端。
- 已有持仓在任何情况下都照常管理:断网几天、授权过期、解除绑定或被撤销时,EA 都用本机密封保存的参数继续管理和平掉已有仓位,只是不再开新仓。
凭据封存
券商直读所需的密码,在客户的浏览器里用网关公钥加密(RSA-OAEP-256)之后才上传。网站只保存它解不开的密文,只有只读网关能解开。撤销连接时密文随即删除;连续 30 天没有连上券商,这个密码就作废并删除。能用观摩(投资者)密码时,建议使用观摩密码:这样即使是读取服务也无法交易。
只读直读
券商直读网关只调用读取接口,只监听本机回环地址,并由网络规则隔离;它的日志字段按白名单输出,账号打码。
风险控制
- 爆仓保护(可另设本轮止损:本金 3% 起或固定金额,默认关闭)、按资金定手数(风险偏好 1–10 级)、交易时间窗、层数与手数硬上限、保证金占用上限。
- 链上对冲的规模受钱包大小限制。
- 数据陈旧时不做新的决定:例如护航状态过期时,链上部分保持不动,不新开风险。
资金边界
- HyperMatch 不托管券商资金,运行 EA 也不需要客户的 MT5 密码。
- 护航对冲、跟单等链上功能在客户自己的链上账户中执行;如果某项高级功能涉及平台代管的资金,会在该功能的页面单独说明,并要求单独确认。
- 每家 LP 自己的官方界面,始终是独立于 HyperMatch 的退出途径。
保密与透明
公开页面、公开接口和浏览器下载的代码里都不列出具体的 LP;登录的客户看到的是固定代号。客户签名的内容由服务器准备,页面在请求签名前会核对它自己知道的数值(自己的交易密钥、客户的地址、页面显示的金额和费率)。客户在钱包里签名时,钱包会显示实际的交易对手,这一点我们不隐藏,也无法隐藏。签好的请求之后不能再被改动:服务器最多只能推迟或丢弃它,这时控制台会显示为「结果未确认」。例外是快捷交易:开启后,订单由页面里的一把短期交易密钥签名,不再弹出钱包,签的是服务器准备的订单;页面只让这把密钥签订单,它不能提现,并在会话结束(最长 8 小时)时失效。
开源技术栈#
HyperMatch 建立在成熟的开源软件之上。下表列出网站与客户端实际使用的主要开源组件;版本以代码仓库的锁定文件为准,这里只写主版本。
| 组件 | 用途 | 许可证 |
|---|---|---|
| Next.js 16 | 网站与接口框架:App Router、服务端渲染、增量静态生成 | MIT |
| React 19 | 界面 | MIT |
| TypeScript 5 | 主要开发语言与类型检查 | Apache-2.0 |
| Tailwind CSS 4 | 样式基础 | MIT |
| viem 2 | 以太坊交互:签名校验、ABI 编码、keccak256 | MIT |
| wagmi 2、RainbowKit 2 | 浏览器钱包连接 | MIT |
| WalletConnect、Reown AppKit | 手机钱包连接(间接依赖) | Apache-2.0 |
| TanStack Query 5 | 客户端数据请求与缓存 | MIT |
| SimpleWebAuthn 14 | 通行密钥(WebAuthn)注册与验证 | MIT |
| Neon serverless driver、PostgreSQL | 托管数据库的连接与存储 | MIT / PostgreSQL License |
| Node.js 24 | 服务端运行时 | MIT |
| tsx | TypeScript 脚本与后台任务运行 | MIT |
| cuer | 二维码生成 | MIT |
| Vitest 4、Playwright、ESLint 9 | 单元测试、浏览器测试与静态检查 | MIT / Apache-2.0 / MIT |
| Foundry anvil | 本地链测试 | MIT 或 Apache-2.0 |
| solc-js | 测试用的合约编译,只用于开发测试,不随产品分发 | MIT(编译器本体为 GPL-3.0) |
| psycopg 3 | 后台 Python 服务的数据库驱动 | LGPL-3.0 |
| cryptography | 后台 Python 服务的加解密 | Apache-2.0 或 BSD-3-Clause |
| websockets | 后台 Python 服务的实时连接 | BSD-3-Clause |
- Merkle 树:自研实现,布局与 OpenZeppelin StandardMerkleTree(MIT)的公开规范一致,任何人都可以用标准的 Merkle 证明折叠方式独立核验。
- MetaTrader 5 与 MQL5 是第三方商业平台,不是开源软件;护航引擎运行在它之上。
- 上表是网站与客户端实际使用的主要开源组件;各 LP 的集成组件只在服务器端使用,并遵守各自的许可证。
开源工程实践
我们在工程上坚持几条可以检查的做法:
- 先持久化、再派发:任何对外执行都先写入数据库,再发出。
- 幂等命令:每条命令都有唯一 ID,EA 记住最近处理过的 ID,重复送达不会重复执行。
- 防护令牌(fencing token):用在「比较并交换」的写入条件和签名、发送的边界上,避免过期的执行者写入。
- 证据只追加:证据类的表由数据库触发器禁止修改和删除。
- 最小权限:每个后台服务一个数据库角色,只授予它需要的表和操作。
- 精确数值:金额与数量使用十进制字符串或整数原子单位,不用浮点数。
- 公开读取合并与缓存:同一时刻的大量公开请求合并为一次读取,并在边缘短时缓存。
数据与隐私#
我们收集什么
- 登录标识:钱包地址、邮箱地址或通行密钥的公钥。
- MT5 账户快照与成交事件:由客户终端里的 EA 上报,或由券商直读读取。
- 客户的设置:预警规则、引擎与安全参数,以及战绩是否公开。
我们不收集什么
- 主钱包的私钥或助记词:从不索取,也不保存。
- 明文密码:除券商直读所需、已在浏览器里加密封存的只读凭据外,不保存任何密码。
公开什么
只有客户主动公开的战绩:客户自选的别名、成绩和「已链上存证」标记。MT5 登录号在链上和公开页只以加盐哈希出现;券商服务器名默认隐藏,除非客户选择显示。
谁能看
- 你的数据只通过你本人的会话读取,其他客户看不到。
- 链上凭证(交易哈希、Merkle 证明、锚定信息)只对账户本人开放;本人可以生成有有效期、可随时撤销的分享链接。分享链接的令牌放在网址的「#」之后,不会进入服务器日志。
保留与删除
- 撤销连接后,设备令牌立即失效,券商直读保存的加密密码随即删除;连续 30 天没有连上券商的密码也会作废并删除。
- 链上模拟账户:EA 为模拟发送的报价 30 分钟后删除;模拟成交记录保留 180 天;每台连接的模拟累计数字和连接一起保存,客户要求删除账户数据时一并删除。
- 成交与存证记录作为证据保留。已经锚定上链的 Merkle 根无法撤回,但其中只有哈希,不含可以识别账户的信息。
- 需要删除账户数据时,请通过官方社群或支持渠道联系我们。
路线图#
路线图不写日期:每一项在完成验收、打开开关之前,都会在产品和系统状态页如实标注为「在建」或「逐步开放」。
在建
- 链上存证正式开启:存证服务上线、完成首批锚定后,战绩页开始显示「已链上存证」。
- 套利开局转为执行模式:观察样本达到统计门槛之后。
之后
- 接入更多 LP 与流动性架构,扩大可选的执行路线。
- 支持更多交易品种。
- 合作方报价簿(架构接口已就绪,尚未用于真实选路)。
持续进行
- 安全加固。
- 中文、英文、俄文三种语言同步维护。
团队#
HyperMatch 由一支跨职能团队开发和维护,按职能分工如下:
| 职能 | 负责什么 |
|---|---|
| 交易策略与风控 | 护航引擎的规则、上限、安全垫与爆仓保护,以及回放和估算的方法。 |
| MT5 / MQL5 工程 | 护航版与抛单版 EA、MT5 面板和终端验收。 |
| 云端平台与数据 | 网站、接口、数据库、控制台与预警。 |
| 链上工程与存证 | 执行与流动性层、签名中转、存证批次与浏览器核验。 |
| 安全与运维 | 权限与凭据、主机与数据库角色、上线流程与监控。 |
| 产品与客户支持 | 产品设计、多语言内容与客户沟通。 |
风险声明#
- 本文不构成投资建议或收益承诺。过去的表现、回放和模拟都不代表未来的结果。
- 网格与加仓类策略在单边行情中可能大幅亏损。爆仓保护和本轮止损可以限制亏损,但不能消除亏损(跳空时实际亏损可能超过设定);比安全垫更大的单边会触发爆仓保护,一次约亏掉余额的 70%;跳空和滑点可能越过保护线。
- 链上风险:智能合约漏洞、预言机或市场故障、强平、资金费、网络拥堵、钱包安全,以及 LP 自身的运营风险。
- 券商风险:报价、隔夜利息和交易条件的变化,以及断线。
- 技术风险:EA 离线、网络中断或服务不可用时,命令可能无法送达,数据可能过时。
- 法律与合规:客户需要自行确认所在司法辖区是否允许使用相关产品与服务。
- HyperMatch 不是券商,不提供投资建议。杠杆黄金交易风险高,可能损失全部保证金。