一、大单拆分的底层逻辑:为什么需要拆分大单?
做量化交易这些年,我见过太多人一上来就问:「我资金量大,直接一把梭不行吗?」
嗯,这个问题其实挺要命的。你想想看,如果你在市场上挂一个1000万的买单,会发生什么?
1.1 市场冲击成本——你动,市场就动
市场冲击成本,说白了就是「你的交易行为本身影响了价格」。我刚开始做自营交易时,吃过一次大亏。当时我接了一个大单,想快速建仓,直接按市价砸进去。结果呢?
- 第一笔成交还算正常
- 第二笔开始,卖单明显变少
- 第三笔,价格直接跳了3个点
等我全部成交完,成本比预期高了0.8%。那次教训让我记住了:市场不是无限深度的,你的每一笔交易都在改变供需。
冲击成本公式(简化版):
冲击成本 ≈ 订单规模 × 市场深度倒数 × 波动率因子
订单越大,冲击成本呈非线性增长。不是线性,是指数级。
举个例子:
| 订单规模(万股) | 预期成交价(元) | 实际均价(元) | 冲击成本(bps) |
|---|---|---|---|
| 1 | 10.00 | 10.01 | 1 |
| 10 | 10.00 | 10.08 | 8 |
| 100 | 10.00 | 10.35 | 35 |
看到没?规模放大10倍,冲击成本放大8倍;再放大10倍,冲击成本直接跳到35倍。这就是为什么必须拆分。
1.2 隐藏交易意图——你在明处,对手在暗处
市场里不只有你一个人。你挂一个大单,等于告诉所有人:「我手里有大量资金,快来收割我。」
我记得有一次,我监控到一个账户在慢慢吸筹。他的单子拆得很碎,每笔只有几百股,间隔时间也不规律。但我的微观结构模型还是抓到了他——因为他的订单流模式有规律:每次在卖一被吃掉后,0.5秒内必有新买单出现。
这就是意图暴露。你想想看,如果他不拆分,直接挂一个50万股的单子,那等于在说:「快来打我。」
我的经验:隐藏意图的核心不是「不让人发现」,而是「让人发现时已经来不及反应」。拆单的目的,是把大单的「信号」稀释到市场噪音中。
1.3 博弈的本质——你与市场的猫鼠游戏
大单拆分,本质上是一场博弈。博弈的双方是:
- 你:想低成本完成交易,不想被狙击
- 市场对手:想从你的交易中获利(做市商、高频交易者、其他大资金)
我做过一个统计:在A股市场,如果一笔超过流通市值0.5%的订单不做拆分,被狙击的概率超过70%。狙击的方式有很多种:
- 先拉高价格,等你追高
- 先砸盘,等你止损
- 在关键价位挂大量订单,逼你吃高价
所以,拆分大单不是为了「好看」,而是为了生存。
1.4 拆分的核心目标——三个维度
我个人习惯把拆单目标拆成三个维度:
- 降低冲击成本:让每一笔小单对市场的影响最小化
- 隐藏交易意图:让对手无法判断你的真实规模和方向
- 控制执行风险:避免因市场突变导致无法完成交易
这三个目标有时候是矛盾的。比如,你想完全隐藏意图,就得把单子拆得特别碎,但这样执行时间会拉长,市场波动风险就大了。怎么平衡?这就是后面章节要讲的内容。
避坑指南:我曾经犯过一个错误——为了隐藏意图,把单子拆得太碎,结果花了3个小时才完成交易。中间市场突然反转,我亏了2%。记住:隐藏意图不是目的,低成本完成交易才是。
1.5 知识体系总览
下面这张图,是我自己整理的大单拆分核心逻辑框架。你看一眼,就能明白整个章节在讲什么。
这张图把大单拆分的底层逻辑串起来了。左边是「为什么拆」,右边是「拆成什么样」。中间的三个目标,就是后面所有算法的出发点。
1.6 一个简单的拆单示例
光说不练假把式。我写个最简单的拆单逻辑给你看看:
# 最简单的等量拆单
def split_order(total_qty, num_slices):
"""
把一个大单拆成等量的N个小单
"""
base_qty = total_qty // num_slices
remainder = total_qty % num_slices
slices = []
for i in range(num_slices):
# 把余数分配到前几笔
qty = base_qty + (1 if i < remainder else 0)
slices.append(qty)
return slices
# 示例:100万股拆成10笔
slices = split_order(1_000_000, 10)
print(slices)
# 输出:[100000, 100000, 100000, 100000, 100000, 100000, 100000, 100000, 100000, 100000]
这个代码很简单,但实际中没人这么用。为什么?因为等量拆单太容易被识别了。你想想看,如果对手发现你每30秒固定挂10万股,他完全可以算准时间提前挂单等你。
我的建议:真正的拆单算法,至少要加入随机化。比如每笔数量随机、时间间隔随机、甚至方向都可以伪装(先买后卖,制造假象)。这些后面章节会详细讲。
1.7 小结
大单拆分,说白了就是一场「你想低成本买,别人想高价卖给你」的游戏。市场冲击成本是物理限制,隐藏意图是战术需要,博弈是生存法则。
我个人习惯把这三件事刻在脑子里:
- 不拆单,就是送钱给市场
- 拆得不好,等于没拆
- 拆得太好(过度优化),可能错过时机
嗯,这一章就到这里。记住:拆单不是目的,低成本完成交易才是。