“算法交易”可以指任何东西,从一张检查规则的电子表格,到负责路由订单并对成交进行对账的软件。这个标签本身并不能告诉你正在运行的是哪一种。在评估一个机器人或搭建原型之前,先梳理从获取市场观察到确认持仓之间发生了什么。
将研究与订单执行分开
从研究规格开始:市场与标的、数据来源、时间周期、每个决策点可用的输入、开仓与平仓条件、仓位大小规则、成本假设、基准,以及一个会使测试结论不确定的条件。对规格和数据集进行版本管理。回测应当留下一份可供他人检查的账本,包括在模型下未成交的信号。
然后区分三种运行状态:
| 状态 | 它能确立什么 | 它不能确立什么 |
|---|---|---|
| 历史模拟 | 既定规则在所选历史数据和成交假设下如何表现 | 数据是否完整,或未来结果是否会与样本相似 |
| 模拟观察 | 一个流程在观察期内如何记录假设性决策 | 订单能否到达交易所,或能否获得模型假设的成交 |
| 实盘订单路径 | 经过认证的交易所确认、成交、费用和账户记录显示了什么 | 策略是否具有持久的优势,或是否适合某个人 |
一次成功的软件测试只覆盖它所检验的行为。它不会验证交易所账户、API 权限、生产环境密钥存储或真实订单。
先设计控制边界,再设计策略
如果系统能够提交真实订单,就应把其运行路径当作一个独立的工程问题来处理。在使用信号之前,检查数据新鲜度和标的身份。在发送请求之前,应用最大订单、敞口和亏损限制。在交易所支持的情况下,于发送前保存一个唯一的决策引用和客户端订单引用。该引用有助于查询和对账一个状态不确定的请求;它并不能让重复提交在所有交易所都变得安全。收到响应后,将订单和仓位状态与交易所记录进行对账;HTTP 请求成功并不等同于成交。
定义当任何环节不确定时系统该怎么做。过期的价格、格式错误的数量、被拒绝的订单、部分成交、连接中断或未知仓位,都应停止新的风险承担,直到状态被重新核查。紧急停止开关应具有经过明确测试的效果、负责人和恢复流程。止损单本身并不保证执行价格,也不能在交易所规则下防止强平。
SEC 的 Rule 15c3-5 指南描述了美国证券市场中对受涵盖经纪自营商的市场准入风险控制,包括下单前阈值和定期审查。该规则并非强加于每个零售加密货币脚本的通用清单,也不是对每个司法管辖区加密货币法律的陈述。其有限的范围是一个有用的示例,说明市场准入控制可以如何分配和记录;任何搭建或运行系统的人都必须另行确定实际适用于自己的规则。
走一遍失败路径,而不只是顺利路径
设想一个策略流程提交了订单,而网络在响应到达之前超时。即使客户端没有看到任何答复,该请求也可能已经到达撮合引擎。Binance 的现货 REST 文档明确将一种超时和某些服务器错误标记为执行状态未知,并建议检查用户数据流或查询订单状态。Hyperliquid 记录了客户端订单 ID,以及按订单 ID 或客户端 ID 查询订单状态的功能。这些是特定于交易所的工具,并非通用的精确一次保证;请使用交易所当前的合约,不要仅仅因为第一个响应丢失就发送第二个订单。参见 Binance 现货 REST API 指南、Hyperliquid 交易所端点和 Hyperliquid 订单状态查询。
采用一套小型对账协议,并记录每次状态变化背后的证据:
| 情况 | 对照交易所证据检查 | 运行决策 |
|---|---|---|
| 请求超时或返回含义不明的服务器错误 | 在支持的情况下使用原始客户端 ID 查询;检查订单状态和成交 | 保持该决策未决;在敞口未知时不要作为新订单重试 |
| 订单部分成交或撤单待处理 | 汇总单笔成交、费用和剩余未成交数量;然后在撤单后重新核查 | 根据对账后的敞口而非请求数量来确定下一步动作的规模 |
| 进程或私有数据流重新连接 | 刷新未成交订单、仓位和近期成交;仅在状态一致后才恢复事件处理 | 如果缺口无法对账,暂停新的风险 |
| 交易所返回限流响应 | 遵循该交易所的退避指示,并检查当前订单/账户状态 | 停止快速重试;反复请求可能延长故障时间 |
例如,Binance 的现货 REST 指南称其 429 响应表示超出了速率限制,要求客户端退避,并警告持续违规可能导致 IP 封禁。这是 Binance 现货的行为,并不承诺另一个 API 使用相同的代码。Hyperliquid 的交易所文档定义了自己的有效期指令选项:ALO 会取消,而不是立即吃单获取流动性,而 IOC 会取消未成交的剩余部分。这些规则会影响订单结果,因此相同的策略意图在不同的交易所指令下可能留下不同的持仓。在演练中记录所使用的确切交易所、产品、API 版本和订单标志。
在将执行控制器视为可用于任何部署之前,请在非生产环境中刻意演练这些失败情形。注入过期报价、接受后响应丢失、撤单期间部分执行、私有数据流断开和限流响应。对每种情形,验证系统既不会因未知状态而增加敞口,也不会丢失对剩余数量的跟踪,并且操作员能够根据记录的证据停止、检查并恢复它。仅有一次顺利路径的模拟会话并不能测试恢复能力。
对于期货或杠杆工具,控制边界还会遇到账户风险:CFTC 的虚拟货币期货公告指出,在其讨论的期货情境中,杠杆可能放大亏损并触发追加保证金或仓位关闭。
SuperQuant 的实际边界
SuperQuant 提供一个本地历史研究引擎,以及使用合成捆绑历史数据的手动模拟练习流程。它不提交交易所订单,也不连接用户的交易账户。不要将其描述为自动交易机器人。要了解研究侧,请从趋势跟踪示例开始,跟随回测工作流程,并比较主观交易与系统化交易。这是一份架构指南,不是实盘执行建议,也不是策略推荐。