一、拆单算法概述
大家好,我是你们的讲师。今天咱们聊聊拆单算法——这个在量化交易里,说实话,挺容易被忽视但又极其关键的环节。
先问个问题:你下了一笔大单,比如100万股,直接挂到盘口上,会发生什么?
嗯,大概率是瞬间把卖单打穿,价格剧烈波动。你本来想买在10块钱,结果成交均价可能到了10.05甚至更高。这就是冲击成本。我早年刚入行时,就吃过这个亏。当时觉得“大单直接干就完了”,结果被市场狠狠教育了一顿。
1.1 什么是拆单算法
拆单算法,说白了,就是把一个大订单拆成无数个小订单,然后分批、分时、甚至分不同交易场所去执行。
举个例子:你想买10万股茅台。拆单算法不会一次性挂10万股,而是拆成1000股、2000股这样的小单,每隔几秒或几分钟发出去。这样市场就不会注意到你的真实意图。
我个人习惯把拆单算法比作“蚂蚁搬家”——每次搬一点点,不引起注意,最后不知不觉就把货搬完了。
1.2 为什么需要拆单
你可能会问:我直接挂个限价单不就行了?
理论上可以,但现实很骨感。原因有三:
- 市场深度有限:盘口的挂单量是有限的。大单直接砸下去,会把几个价位的单子全吃掉,价格瞬间偏离。
- 流动性不足:很多股票,尤其是中小盘股,每天的成交量就那么点。你一个大单进去,可能占了当天成交量的10%甚至更多。
- 信息泄露风险:大单挂在那里,就像在说“我来了,快来收割我”。做市商和算法交易系统会立刻嗅到你的意图。
我记得有一次,一个朋友做期货,直接挂了500手空单。结果不到10秒,价格就被打下去2个点,他还没反应过来,对手盘已经平仓获利了。这就是典型的“被盯上了”。
1.3 拆单的核心目标
拆单算法要解决的核心问题,其实就两个:
- 降低冲击成本:这是最直接的。通过小单分批进场,避免对市场价格造成大的扰动。
- 隐藏交易意图:不让市场知道你的真实方向和规模。你想想看,如果大家都知道你要买100万股,那价格肯定先涨上去等你。
这两个目标有时候是矛盾的。比如,你拆得太细,时间拉得太长,虽然冲击成本低了,但市场可能已经变了方向,你反而买在了高位。这就是所谓的“时机成本”。
核心权衡:拆单算法本质上是在“冲击成本”和“时机成本”之间找平衡。没有完美的参数,只有最适合当前市场环境的参数。
1.4 拆单算法的知识体系
为了让你更直观地理解,我画了一张图。这张图展示了拆单算法的核心逻辑和各个模块之间的关系。
个人经验:我刚开始做拆单时,总想着把订单拆得越细越好。结果有一次,一个1000万的订单拆了2000多笔,最后成交均价反而比直接挂单还高。为什么?因为拆得太碎,市场已经变了方向。后来我学乖了,拆单不是越细越好,而是要“恰到好处”。
1.5 拆单算法的分类
拆单算法有很多种,但万变不离其宗。我习惯把它们分成三类:
| 类型 | 核心逻辑 | 适用场景 | 优缺点 |
|---|---|---|---|
| 时间驱动型 | 按固定时间间隔发单 | 流动性较好的市场 | 简单易实现,但可能错过最佳时机 |
| 成交量驱动型 | 按市场成交量比例发单 | 流动性波动大的市场 | 更贴合市场,但需要实时数据 |
| 价格驱动型 | 按价格偏离程度发单 | 趋势明显的市场 | 能捕捉价格优势,但风险较高 |
你可能会问:哪种最好?说实话,没有最好的,只有最合适的。我个人的做法是:先跑一段时间的历史回测,看看哪种策略在目标股票上表现最好,然后再实盘验证。
避坑指南:我曾经在实盘中直接套用别人的参数,结果亏得很惨。每个股票、每个市场、甚至每个时间段,最优参数都不一样。千万别偷懒,一定要自己做参数调优。
1.6 拆单算法的核心参数
不管用哪种策略,有几个参数是绕不开的:
- 订单间隔:每两笔小单之间的时间差。太短容易被识别,太长可能错过行情。
- 单笔数量:每笔小单的股数或手数。太小了交易成本高,太大了冲击成本高。
- 参与率:你的交易量占市场成交量的比例。一般建议控制在5%-15%之间。
- 滑点容忍度:允许价格偏离多少。太严格可能成交不了,太宽松成本又高。
这些参数怎么调?嗯,这就是咱们这门课的核心内容。后面我会用整整30章来详细讲解每个参数的调优方法和实战技巧。
好了,第一章就到这里。记住一句话:拆单不是目的,降低成本和隐藏意图才是。下一章我们开始讲具体的策略实现。
本章小结:拆单算法就是把大单拆成小单,分批执行。核心目标是降低冲击成本和隐藏交易意图。没有完美的参数,只有不断调优的过程。