把「我觉得这招有效」变成一个你真的能检查的数字。
你有一个想法:某个形态出现就入场,跌 3% 出场。回头看图觉得对,可是真的下单之后,你分不出来自己是看对了,还是只是挑了几根顺眼的 K 线。量化交易处理的就是这个落差。
量化交易是用数据和统计把进出场规则事先定义清楚,再让规则决定每一笔交易,而不是临场判断。规则可以很简单(均线交叉、RSI 超卖),也可以很复杂(多因子模型、机器学习)。复杂度不是重点。
重点是:写下来的规则每次跑都给你同一个答案。这件事让它变得可以检查。你可以把这套规则套回四年的历史数据,得到具体的数字——收益多少、最糟的那段跌了多深、手续费吃掉多少。
交易信号是一个条件的输出,只说「现在该站在哪一边」,不说买多少、什么时候砍。这三个词常被混着用,搞混它们是一个有潜力的想法最后跑不起来最常见的原因。
| 名词 | 是什么 | 不包含什么 |
|---|---|---|
| 信号 | 一个条件的输出,通常是 +1(做多)、0(空仓)、−1(做空)。它回答的是现在有没有事发生。 | 要买多少、什么时候砍、下单失败怎么办 |
| 策略 | 信号再加上仓位大小、风控上限、执行规则。这才是可以部署、可以被检验的东西。 | 它跟你其他仓位怎么互动 |
| 投资组合 | 多个策略或多个标的,加上彼此之间的权重配置。 | — |
大部分说「我有一个策略」的人,手上其实是一个信号。这不是在挑毛病——信号是最难、最需要创意的那一段。但信号本身没办法被诚实地回测,因为结果完全取决于你还没写下来的仓位与风控规则。
在 Blave Agent 里,这个区分是写进结构的:信号式、单一标的的策略是 Type A,必须回测;多标的加权重向量的投资组合是 Type C,也必须回测;其余都是 Type B,不回测。
交易信号本身不会下单。它只是一个数字,要先被翻成「这个标的现在该有多少仓位」,再跟你手上已经有的仓位相减,差额才是那张要送出去的委托。从回测走到实盘,多数人第一次发现自己少写的就是中间这几步。
Blave Agent 的做法是让一支常驻的 reconciler 跑第三、四步:它自己记账,只跟自己下过的单对,不拿交易所的账户持仓当基准——所以你手动开的仓不会被当成策略仓位去加码或平掉。金额怎么配、什么情况会触发对账,见〈实盘下单组合〉。
还有一件事决定这条链诚不诚实:信号成立之后,用哪一根 K 线的哪个价格成交。回测和实盘在这里不一致,前面的收益数字就不算数——规则和它的例外,见〈回测报告怎么看〉的前视偏差那段。
| 手动交易 | 量化交易 | |
|---|---|---|
| 进出场依据 | 当下判断 | 写死的规则——同样的输入,永远同样的答案 |
| 能不能验证 | 没办法用你真正用的那套逻辑回头验 | 可以——Sharpe、最大回撤、手续费全都算得出来 |
| 什么时候在跑 | 只有你醒着、盯着的时候 | 部署完就是 24 小时 |
| 会坏在哪 | 压力来的时候纪律会断 | 规则会在它适用的市场消失之后,继续照跑 |
注意最后一列:自动化不是消除失败模式,是换一种——手动的人在最糟的时候放弃计划,自动的策略在计划失效之后还照跑,而且安静得多。
这是 Blave Agent 回测引擎跑出来的真实例子——btc_sma_cross,BTCUSDT 1 小时线,SMA45/SMA100,从 2022-01-01 跑到执行当天(下面是其中一次执行的快照)。总收益是买入持有的两倍多。它同时有 −42.6% 的最大回撤,而且四年下来手续费付掉了本金的 22%。
三个数字都重要,但大家只会引用第一个。一个收益翻倍、却要你撑过 42% 回撤的策略,不见得比一个收益少一点、但从来没把你吓出场的策略好。而手续费等于本金 22% 这件事表示交易频率不是免费的——同一个想法做得更快一点,优势就有可能整碗端给交易所。
能产生这三个数字的流程永远是同样五步:
Blave Agent 把「想逻辑」和「搭基础设施」拆开。你用对话描述策略,由 agent 负责研究、写代码、跑回测、上线自动交易。跑法有两种:电脑版免费开源,接上你自己的 Claude Code 或 Codex;要关电脑也照跑,就把同一个工作台搬到你专属的云端主机,网页、Telegram、SSH 都能操作。
如果你还没有想法,官方策略是免费的,每一个都附真实回测。送验的策略要过三道关卡:诚实回测、MCPT 显著性检验、参数稳健性检查;三道都过才会挂上「已验证」徽章。没有徽章不代表它没过,是没有附上这三项的检定结果——自己看它的回测数字。
五个检查。任何一个没过,回测数字的意义都跟你以为的不一样。
你的规则能不能写成一句话?「当 X 成立就做 Y,遇到 Z 就出场。」写不出来,代表你手上是直觉不是策略——现在还没有东西可以测。
回测期间有没有包含一次真正的下跌?只在多头跑过的策略等于没被测过。去找你这个标的历史上最糟的那段,确认它在你的回测窗口里面。
回测有没有算手续费?前面 btc_sma_cross 的例子四年付掉本金 22%。费率要对得上你要下的市场:FEE = 0.0005 是 Binance U 本位合约 VIP0 的 taker(0.05%),Binance 现货最低阶则是 0.1%。官方策略上架的手续费关卡看的就是 FEE 有没有 ≥ 该交易所 VIP0 的 taker 费率,低估就过不了。
你试过几组参数?扫一百组,纯靠运气也会有几组看起来显著。如果你用全部数据调参数,再用同一段数据报告绩效,你报告的是训练误差,不是它未来的表现。
报告里最大的那段回撤,你撑得住吗?−42.6% 对 100 万的仓位是 42.6 万的账面亏损。如果那会让你把策略关掉,就先把仓位缩到不会——你撑不住的那段回撤,就是把账面亏损变成真亏损的那一段。
不用等到想出一个完美的策略才开始。先部署一支官方策略,看它在一个亏钱的星期里怎么表现,等你看懂它的数字在讲什么,再改成自己的版本。