交易系统 · 方法论
在写下第一行规则之前,先把策略当成一个会主动证伪自己的科学假设来对待。
大多数人是倒着做策略的:先在历史里发现一个好看的模式,再回头给它编一个理由。可靠的设计是正着做的——你先说清楚"为什么这里应该存在一个赚钱的机会",然后用尽全力去证明自己是错的。两种顺序,做出来的是两种东西:前者是一段历史的拟合,后者才是一个策略。
对你来说有个现成的桥梁:一份交易策略的"可靠性"问题,本质上就是机器学习里的泛化(generalization)问题。回测就是训练集,样本外就是测试集,过拟合就是过拟合,"试一千个策略挑最好看的那个"就是测试集泄漏。你在调模型时所有关于"训练好看≠真的有用"的直觉,几乎可以原封不动搬过来。下面的整套方法,都可以看成是把这套泛化纪律应用到市场上。
你不是在找一个会赚钱的信号,你是在建一条会主动杀死自己坏想法的流水线。
这一节是你问题的正面回答:制作之前先想清楚什么。如果这七个问题你答不上来,那不管后面回测多漂亮,你都还没有一个策略。我建议把它们当成一道闸门——全部能给出诚实回答,才放行进入开发。
市场扣掉手续费之后是一个负和游戏。你要持续地赢,就必须有人持续地输给你。说不出对手是谁、为什么他会一直输,你就没有 edge,只有一个巧合。
真正可持续的 edge 通常来自下面几类,缺一个机制解释就要警惕:
为什么这个低效到今天还没被套利掉?它能持续多久?——对加密市场,资金费率(funding)、清算级联、永续合约的结构性流动,是少数普通人还能碰到的真实结构性 edge。但同样的,它们也最容易随着市场成熟而消失。
趋势跟随、均值回归、套利、做市、事件驱动、carry——每一类都只在某种市场状态(regime)里赚钱,在它的反面状态里稳定失血。趋势策略在震荡里慢慢割肉,均值回归在单边行情里一次爆仓。
动手前你必须能用一句话说出:"这个策略会在 ____ 的时候亏钱。"如果你说不出它的死法,说明你还没真正理解它。
HFT / 日内 / 波段 / 持仓——这个选择会向下游层层传导:需要什么精度的数据、对成本多敏感、容量多大、需要什么基础设施、要占用你多少注意力。
一个反直觉的权衡:越短的周期,样本越多、越容易做出统计显著性,但越被成本和聪明对手主导;越长的周期,独立样本越少、越难验证、越扛 regime 风险,但也越不拥挤。选错尺度,后面全白搭。
这是一票否决项,也是大多数漂亮回测真正死亡的地方。手续费、滑点、点差、冲击成本、(加密永续的)资金费率——一个毛利为正的信号,扣完成本可能深度为负。
如果你每笔的预期 edge 是 0.1%,而一次往返成本是 0.15%,那不管信号多神,你按定义就是亏的。这道减法要在写代码之前先做,而不是回测之后才发现。
在你的下单开始把价格推向对自己不利的方向之前,这个策略能装多少钱?小资金的天堂,常常是大资金的坟墓。最好的低效往往容量极小——你能用十万跑,不代表能用一千万跑。先知道天花板在哪。
在开始之前定义"疼痛",而不是在亏了之后。你能在情绪不崩的前提下,承受多大的回撤、多长的水下期(underwater)?这件事必须事先定,因为一旦真的回撤了 30%,你的判断力已经被污染了。
亏 20% 要赚 25% 才回本;亏 50% 要赚 100%;亏 80% 要赚 400%。路径本身会杀死你——哪怕终点为正,中途的深坑也可能让你在最低点放弃。所以仓位要小到让"最坏回撤"不至于逼你在谷底下车。
一份可靠的策略,出生时就该带着一张预先写好的死亡证明:在什么条件下你会停止使用它。比如"滚动三个月夏普 < 0"、"回撤超过回测最大回撤的 1.5 倍"、"我当初识别的那个机制消失了"。
没有这张证明,你会在策略已经坏掉之后还一直持有它,永远相信"它会回来的"——这是把一次正常的失效,拖成一次毁灭性的破产。事先定义失效条件,是区分专业和业余的分水岭。
过了闸门,才进入大家以为的"做策略"。这里最重要的纪律只有一句:样本内好看不算数。
把历史切成两段:一段用来开发和调参(样本内 / 训练集),另一段锁起来不碰(样本外 / 测试集)。你只有一次真正的样本外机会——一旦你看了样本外结果,回头又去改参数,这段样本外就被你"污染"成样本内了,泛化能力的证据当场归零。这跟你绝不会拿测试集去调超参,是完全一样的道理。
模拟盘和小额实盘这两步常被跳过,但它们专门用来抓回测永远抓不到的东西:真实的滑点、撮合延迟、API 故障、你自己手抖的时刻。用真金白银的小仓位买这些教训,比用大仓位买便宜得多。
"可靠"这两个字的全部重量都压在这一节。下面每一个陷阱,都能让一个其实没用的策略在历史上呈现出迷人的曲线。它们也几乎都能在你熟悉的 ML 语言里找到对应。
这里有个反直觉但致命的事实:即使你的信号有正期望,错误的仓位也能让你破产。方向对、下注太重,在足够长的时间里几乎必然会撞上那次让你出局的回撤。所以"赚钱"和"活着"是两个独立的问题,后者由仓位决定。
高胜率不等于赚钱。决定生死的是期望值:期望 = 胜率 × 平均盈利 − 败率 × 平均亏损。一个 30% 胜率、但盈亏比 5:1 的策略,长期远胜一个 90% 胜率、却会被一次大亏抹平所有小赢的策略。先看期望,再看胜率。
只看总收益率几乎没有意义——它没告诉你为了这个收益你承受了多大的风险、多深的回撤、多长的煎熬。要看风险调整后的指标:
一个高得离谱的夏普,常常来自悄悄卖出尾部风险——平时稳稳捡钢镚,直到某天压路机开过来一次清零(picking up pennies in front of a steamroller)。漂亮的均值背后,永远要去看那条肥尾。
把第一部分压缩成一张检查表。在投入第一块钱之前,下面这些你能不能逐条诚实地回答"能"——
真正的可靠,不是"它一定会赚钱",而是"如果它没用,我能在赔光之前、在纸面上、便宜地发现这件事"。
最后一句诚实话:市场是高度竞争的,绝大多数零售系统化策略最终扛不过成本和对手的进化——这是这个领域的常态,不是你的失败。上面这整套纪律的全部意义,就是让你的坏想法死在回测里,而不是死在账户里。这是方法论,不是投资建议;没有任何流程能保证盈利,能保证的只是让你失败得更便宜、更快、更清醒。
想往下钻的话,可以挑一个具体方向:给你现在 BTC/USDT 那套思路套这七问、搭一个能防前视偏差的回测骨架、或者把凯利在加密永续上的实际算法摊开来推。你定方向,我接着做。