1、做市商策略回测概述
做市商策略回测,说白了就是拿历史数据去模拟你的策略在过去会怎么表现。我刚开始接触这个领域时,觉得回测就是个“跑个分”的活儿,后来才发现——嗯,这里面的坑比想象中多得多。
今天咱们就聊聊回测到底是什么,为什么它这么重要,以及它和实盘到底差在哪。
什么是做市商策略回测
做市商策略回测,就是用历史行情数据,模拟你的做市策略在过去某个时间段内的表现。你给它一个规则,它告诉你:如果当时按这个规则做,能赚多少、亏多少、风险多大。
举个例子。我设计了一个简单的做市策略:在买一价挂单,在卖一价挂单,赚取价差。回测就是把这个规则放到过去一周的BTC/USDT数据上跑一遍,看看最终收益如何。
核心要素:
- 历史数据:包括价格、成交量、订单簿快照等
- 策略逻辑:何时挂单、何时撤单、如何调整报价
- 模拟引擎:模拟订单簿变化、成交匹配、手续费扣除
- 绩效指标:收益率、夏普比率、最大回撤、胜率等
我个人习惯把回测分成两类:
- 离线回测:用历史数据一次性跑完,速度快,适合初步验证
- 在线回测:模拟实时行情逐笔推进,更接近实盘,但慢一些
你想想看,离线回测就像看录像回放,在线回测就像现场直播。两者各有用途,我一般先用离线回测快速筛选想法,再用在线回测做精细验证。
回测的重要性
为什么非得做回测?直接实盘干不行吗?
我见过太多人,策略想法一拍脑袋就上实盘,结果亏得底裤都不剩。回测的意义,说白了就是帮你省钱、省时间、省精力。
| 回测的价值 | 具体说明 |
|---|---|
| 验证策略有效性 | 在真金白银投入前,先看看策略在历史上是否赚钱 |
| 发现策略缺陷 | 比如在极端行情下会不会爆仓、流动性不足时能否成交 |
| 优化参数 | 找到最优的报价宽度、挂单深度、撤单时间等 |
| 评估风险 | 计算最大回撤、VaR等风险指标,心里有个底 |
| 对比不同策略 | 同一市场环境下,哪个策略表现更好 |
我在项目中遇到过一件事:一个看起来很完美的做市策略,回测时年化收益高达80%,最大回撤只有5%。结果一上实盘,三天就亏了15%。为什么?因为回测时没考虑滑点和延迟。后来我花了大量时间优化回测引擎,才把这个问题解决。
我的建议:回测不是万能的,但没有回测是万万不能的。至少跑三个月以上的历史数据,覆盖不同市场环境(牛市、熊市、震荡市),才能对策略有个基本判断。
回测与实盘的区别
这是最容易被忽视的部分。很多人回测跑得漂亮,一上实盘就翻车,原因就在于回测和实盘之间存在巨大差异。
我总结了几点核心区别:
- 成交假设不同
回测里,你挂单了,价格到了,就成交了。实盘呢?可能你的单子排在后面,别人先成交了;可能价格只是瞬间扫过,你的单子没被吃掉。说白了,回测的成交是“理想状态”,实盘是“残酷现实”。
- 延迟和滑点
回测里,你的订单瞬间到达交易所。实盘里,网络延迟、交易所处理时间、撮合排队,都会导致你的订单晚到一步。我曾经因为没考虑延迟,回测年化收益30%,实盘只有8%。
- 手续费和资金费率
回测时很多人忽略手续费,或者按最低标准算。实盘里,手续费、资金费率、甚至提币费用,都会蚕食你的利润。尤其是高频做市策略,手续费占比可能高达收益的50%以上。
- 市场冲击
回测假设你的订单不影响市场价格。但实盘里,如果你的资金量够大,你的挂单和撤单本身就会影响订单簿深度,甚至引发其他交易者的跟风操作。
- 心理因素
回测是冷冰冰的数字,实盘是活生生的钱。连续亏损时,你还能坚持策略吗?看到别人赚钱,你会不会冲动改参数?这些在回测里完全体现不出来。
避坑指南:我曾经犯过一个低级错误——回测时用了未来数据。比如用当天的收盘价来决定当天的挂单策略,这在实盘里根本做不到。后来我养成了一个习惯:回测代码写完后,先检查一遍有没有“偷看未来”的地方。
为什么会这样?因为回测本质上是“事后诸葛亮”,而实盘是“事前猪一样”。回测能看到过去的所有数据,实盘只能看到当前这一秒。这个区别,决定了回测永远无法完全替代实盘。
但话说回来,回测仍然是做市策略开发中最重要的一环。它就像你造飞机前的风洞实验——虽然风洞里的数据和真实飞行有差距,但总比直接试飞要安全得多。
知识体系总览
下面这张图,是我对做市商策略回测核心逻辑的总结。你可以把它当作本章的思维导图:
这张图把本章的核心内容串起来了。你可以看到,回测不是孤立的概念,它连接着策略设计、风险控制和实盘交易。每一个环节都值得深入钻研。
好了,关于做市商策略回测的概述就聊到这里。记住一句话:回测做得好,实盘少踩坑。下一章咱们会深入讨论回测框架的设计和搭建,到时候再细聊。