一、课程导论:拆单算法与暗池流动性对接的背景、目标与整体架构
大家好,我是你们这门课的主讲人。
先聊点实际的。做量化交易这些年,我见过太多人把精力全花在策略信号上,觉得信号准了就万事大吉。结果呢?信号确实准,一进场就把价格打飞了,滑点吃掉所有利润。说白了,你赚的是逻辑的钱,但亏的是执行的命。
今天这门课,我们就来啃这块硬骨头——拆单算法与暗池流动性对接。
1.1 为什么我们需要拆单算法?
想象一下,你手里有10万手买单要进场。如果你直接挂一个市价单,会发生什么?
- 盘口深度瞬间被吃掉,价格飙升
- 你的平均成交价远高于预期
- 市场其他参与者看到大单,立刻反向操作,把你套在山顶
这就是典型的市场冲击成本。我刚开始做高频交易时,就吃过这个亏。有一次策略信号非常准,我直接一把梭进去,结果成交均价差了0.3%。那笔单子虽然方向对了,但最后算下来还亏了手续费。嗯,从那以后,我再也不敢忽视执行算法了。
拆单算法的核心目标就三个:
- 降低冲击成本:把大单拆成小单,像水滴一样慢慢渗透进市场
- 隐藏交易意图:不让别人看出你是大户,避免被狙击
- 优化成交价格:在时间与价格之间找到最佳平衡点
一句话总结:拆单算法不是让你的策略更准,而是让你的策略执行得更稳。
1.2 暗池流动性:藏在冰山下的交易机会
讲完拆单,我们聊聊暗池。
暗池是什么?说白了,就是一个不公开显示挂单的交易所。你看不到里面的订单簿,只能把自己的单子丢进去,等系统帮你撮合。
为什么会存在暗池?你想想看,如果你在明盘上挂一个1万手的大单,所有人都能看到,对手盘会怎么想?他们要么撤单,要么反向挂单等你来吃。但在暗池里,你的订单是隐藏的,只有成交那一刻,别人才知道发生了什么。
我个人习惯把暗池分成三类:
| 类型 | 特点 | 典型场景 |
|---|---|---|
| 独立暗池 | 独立运营,不连接明盘 | 大型机构内部撮合 |
| 交易所附属暗池 | 挂靠在主流交易所下 | 如某交所的隐藏订单功能 |
| 聚合暗池 | 连接多个暗池的流动性网络 | 机构间的大宗交易平台 |
暗池最大的优势是减少信息泄露。但注意,它也有坑。我曾经在一个聚合暗池里做测试,发现某些暗池的成交率极低,订单挂进去半小时都没反应。后来一查,原来是流动性提供方设置了最低交易量限制。所以,对接暗池前,一定要搞清楚它的规则。
避坑指南:暗池不是万能的。如果你的订单太小,暗池可能根本不会撮合;如果订单太大,暗池也可能无法完全消化。拆单算法与暗池需要配合使用,而不是二选一。
1.3 整体架构:拆单算法如何对接暗池?
好了,现在我们把拆单算法和暗池放在一起。它们之间是什么关系?
我画了一张架构图,帮你理清思路:
从这张图你能看到,整个流程是分层的:
- 策略层:生成原始订单,比如「买入10万手BTC」
- 拆单算法层:把大单拆成若干小单,比如每次只发100手
- 路由决策层:决定每个小单去哪——是去明盘、暗池,还是其他流动性池
- 执行层:最终在各个场所完成成交
这里有个关键点:路由决策。不是所有订单都适合去暗池。比如,如果你的订单很小,去暗池可能根本成交不了,还不如直接去明盘吃单。反过来,如果订单很大,全部砸在明盘上,冲击成本会让你哭。
我的经验:在实际项目中,我通常会把订单按大小分类。小单(< 1% of 日均成交量)直接走明盘;中等单(1%-5%)走暗池+明盘混合;大单(> 5%)则必须用拆单算法,并配合多个暗池分散执行。
1.4 这门课你会学到什么?
嗯,说了这么多,我们来总结一下这门课的核心内容:
- 拆单算法的原理与实现:从最简单的TWAP到复杂的自适应算法,手写代码
- 暗池的对接实战:如何接入主流暗池,如何处理暗池特有的订单类型
- 智能路由的设计:如何动态选择最优执行路径
- 回测与优化:如何评估你的执行算法是否真的有效
我个人觉得,这门课最有价值的部分,不是教你几个算法公式,而是帮你建立一套执行系统的思维框架。你想想看,市场上那么多量化团队,策略水平其实差不太多,真正拉开差距的,就是执行这一块。
好了,导论就到这里。接下来,我们直接进入正题,开始拆解第一个算法——TWAP。