做市策略开发流程:从策略想法、回测、模拟盘到实盘上线的全流程协作
做市策略的开发,说白了就是一场从「灵光一现」到「真金白银」的接力赛。我见过太多团队,想法很好,回测曲线漂亮得像教科书,结果一上实盘就崩了。为什么?流程没跑通,协作出了岔子。
今天我就把这条完整的链路拆开来讲。从策略想法怎么落地,到回测怎么避坑,再到模拟盘和实盘怎么平稳过渡。每个环节我都会聊聊我踩过的坑,以及团队协作里那些容易被忽略的细节。
核心观点:做市策略开发不是一个人的事,是量化研究员、交易员、开发工程师、风控四类角色共同完成的闭环。任何一个环节脱节,策略上线后都会出问题。
1. 策略想法:别让好点子烂在脑子里
做市策略的想法来源其实挺多的。可能是你盯盘时发现某个价差模式反复出现,也可能是你读了篇论文觉得可以移植过来。我个人习惯是,不管想法多粗糙,先写下来。
但光写下来不够。你得跟团队里的交易员聊一聊。为什么?因为很多研究员想出来的逻辑,在实盘里根本跑不通。比如你发现某个期权合约在到期前三天波动率会异常,但交易员会告诉你:那时候流动性太差,你根本做不了市。
我的经验:想法阶段最忌讳「闭门造车」。我建议每周固定一个小时的策略脑暴会,研究员、交易员、开发都参加。哪怕最后十个想法里只活下来一个,也比一个人闷头搞三个月强。
这个阶段要产出的东西其实很简单:一份一页纸的策略说明。写清楚以下几点:
- 策略逻辑:一句话说清楚你在赚什么钱(比如「赚隐含波动率与实现波动率之间的差值」)
- 交易标的:具体到哪个合约、哪个期限
- 预期收益来源:是赚价差、赚Gamma、还是赚Theta?
- 风险点:最坏情况下会亏多少?
嗯,这里要注意。很多团队在想法阶段就急着写代码,这是大忌。先让交易员看一眼,如果他说「这个逻辑我见过,但实际做的时候滑点会吃掉所有利润」,那你就省了后面三个月的开发时间。
3. 回测验证:别被漂亮曲线骗了
回测是策略开发里最容易被「美化」的环节。我见过太多回测曲线,夏普比率3.0以上,最大回撤不到2%,结果一上实盘就原形毕露。
为什么会这样?说白了,回测里有很多隐藏的坑。我一个个说。
3.1 滑点假设
做市策略的回测,滑点是最关键的参数。很多人在回测里假设自己能以中间价成交,这太理想了。做市商的实际成交价往往比中间价差好几个tick。
我个人习惯是,回测时至少用两个tick的滑点。如果策略在2个tick滑点下还能赚钱,那实盘才有戏。如果只设0.5个tick,那基本是在自欺欺人。
3.2 订单簿重建
做市策略跟普通的方向性策略不一样。你不能只靠OHLC数据来回测。你需要的是完整的订单簿快照数据,或者至少是逐笔成交数据。
我曾经犯过一个错误:用分钟级别的K线来回测一个高频做市策略。结果回测曲线漂亮得不行,实盘上去第一天就亏了。后来才发现,分钟K线里根本看不到订单簿的微观结构变化。
避坑指南:回测做市策略,至少要用tick级别的数据。如果数据量太大,可以抽样,但不能用聚合数据。否则你回测出来的结果,跟实盘完全是两码事。
3.3 回测框架的协作
回测阶段,研究员和开发工程师的协作特别重要。研究员负责策略逻辑,开发负责代码实现和性能优化。我建议用Git分支管理,研究员在feature分支上开发,开发工程师review代码。
这里有个小技巧:回测结果要能复现。每次回测都记录下参数、数据范围、滑点设置。不然你发现一个回测结果很好,但想复现时却忘了当时用的什么参数,那就尴尬了。
4. 模拟盘:让策略在「准实盘」里跑一跑
回测通过了,别急着上实盘。模拟盘是最后一道防线。模拟盘跟回测最大的区别是什么?回测是「事后」的,模拟盘是「实时」的。
模拟盘阶段,交易员要全程参与。我建议至少跑两周的模拟盘,而且要用实盘的行情的延迟。很多团队模拟盘跑得挺好,一上实盘就出问题,就是因为模拟盘的环境太「干净」了。
模拟盘阶段要关注几个指标:
| 指标 | 说明 | 关注点 |
|---|---|---|
| 成交率 | 策略发出的订单有多少被成交 | 如果成交率低于回测,说明滑点假设有问题 |
| 持仓时间 | 每笔订单从发出到成交的平均时间 | 时间太长说明流动性不足,策略可能不适合当前市场 |
| 最大回撤 | 模拟盘期间的最大亏损 | 如果超过回测的1.5倍,需要重新评估风险 |
| 系统延迟 | 从行情到策略到下单的延迟 | 延迟超过预期,需要优化代码或硬件 |
我的习惯:模拟盘期间,每天开一个15分钟的站会。交易员说说今天策略表现怎么样,有没有异常信号。开发说说系统有没有报错。风控说说风险指标是否在范围内。这个习惯帮我提前发现了不少问题。
5. 实盘上线:从「试水」到「放量」
终于到了实盘上线这一步。但别急着把全部资金都放进去。我见过最惨的案例,一个团队模拟盘跑了三个月,一切正常,结果实盘第一天就把一个月的利润亏回去了。为什么?因为实盘的环境跟模拟盘还是有差异的。
我建议分三步走:
- 试水期(第1-3天):只用最小交易单位,比如1张合约。主要目的是验证系统连通性、成交速度、滑点是否在预期范围内。
- 观察期(第4-10天):逐步放大到目标规模的10%-20%。这时候要重点关注策略的盈亏是否跟模拟盘一致。
- 放量期(第11天以后):如果前两个阶段都正常,可以逐步加到目标规模。但每次加量后都要观察至少一天。
实盘上线后,团队协作的模式也要变。之前是「开发为主,交易员辅助」,现在要变成「交易员为主,开发待命」。交易员要实时监控策略表现,开发要随时准备处理系统问题。
避坑指南:实盘上线第一天,一定要有一个人专门盯着系统日志。我曾经遇到过,策略逻辑里有个边界条件没处理好,导致某个极端行情下策略一直在报错。幸好当时有人盯着,及时手动干预了。如果没人盯,后果不堪设想。
6. 持续迭代:没有一劳永逸的策略
策略上线了,不代表就结束了。市场在变,波动率结构在变,流动性也在变。一个策略可能三个月前还很赚钱,三个月后就开始亏了。
我建议每周做一次策略复盘。看看这周的盈亏来源是什么,有没有出现新的市场模式。如果发现策略的收益在持续下降,就要考虑是不是需要调整参数,或者干脆开发新策略。
复盘的时候,研究员、交易员、开发都要参加。研究员分析策略逻辑是否还成立,交易员说说市场感受,开发看看系统有没有优化空间。这个习惯,我坚持了好几年,帮团队避免了不少损失。
最后说一句:做市策略开发,流程比策略本身更重要。流程跑通了,即使策略不行,也能快速迭代出新的。流程没跑通,再好的策略也活不长。