第三章:大单交易策略——冰山订单、TWAP与VWAP
各位同学,今天我们来聊聊大单交易策略。说实话,这个话题我刚开始做量化的时候也踩过不少坑。大单交易,说白了就是怎么把一大笔订单拆成小块,悄无声息地塞进市场里。
为什么要拆?你想想看,如果你一次性把100万股砸进去,市场瞬间就炸了。价格会被你推高好几个点,你的成交成本会高得离谱。所以,我们需要一些聪明的策略。
3.1 冰山订单:藏在水面下的交易
冰山订单这个名字很形象。就像冰山一样,你只看到水面上的那一小部分,水面下藏着巨大的体积。
核心逻辑: 只暴露订单总量的一小部分,成交后自动补上新的订单。
举个例子:
// 假设你要买入100万股
// 设置显示量为10万股
// 每次成交10万股后,自动再挂出10万股
// 直到100万股全部成交
订单簿显示:
卖一:10万股 @ 10.00元 // 这是冰山的一角
实际隐藏:90万股 @ 10.00元 // 这是水下部分
我在项目中遇到过这样的情况:有一次做ETF套利,需要快速建仓1000万。如果用普通订单,估计价格要被打飞3个点。用了冰山订单后,市场几乎没感觉到压力,成交均价只比开盘价高了0.2个点。
冰山订单的优缺点:
- 优点:隐藏真实意图,减少市场冲击
- 缺点:容易被高频交易者探测到(他们能通过订单簿变化推断出冰山的存在)
我的经验: 冰山订单的显示量不要设得太小。我曾经设过1%的显示比例,结果被高频交易者一眼看穿,他们专门在我前面挂单,导致我成交成本反而更高了。建议显示量设在10%-20%之间。
3.2 TWAP:时间加权平均价格算法
TWAP,全称Time-Weighted Average Price。说白了,就是把订单均匀地分散到一段时间内执行。
核心逻辑: 把总订单量按时间均匀切分,每个时间片执行固定数量。
// TWAP算法示例
总订单量:100万股
执行时间:10:00 - 11:00(60分钟)
时间片:1分钟
每个时间片执行量 = 100万 / 60 ≈ 16,667股
// 伪代码
for each minute in [10:00, 11:00):
execute(16,667 shares)
wait(1 minute)
嗯,这里要注意。TWAP有个大问题——它完全不考虑市场行情。如果市场在下跌,你还在傻傻地买,那不是亏大了吗?
避坑指南: 我曾经在2015年股灾时用TWAP执行一个卖出订单。市场在暴跌,我的TWAP还在按部就班地卖,结果卖在了最低点。从那以后,我学会了给TWAP加一个止损条件——如果价格跌破某个阈值,就暂停执行。
3.3 VWAP:成交量加权平均价格算法
VWAP,全称Volume-Weighted Average Price。这个比TWAP聪明一些,它会根据市场成交量来调整执行速度。
核心逻辑: 在成交量大的时候多交易,成交量小的时候少交易。目标是让成交均价接近市场VWAP。
// VWAP算法示例
总订单量:100万股
执行时间:10:00 - 11:00
// 假设历史成交量分布:
// 10:00-10:15:成交量 200万
// 10:15-10:30:成交量 150万
// 10:30-10:45:成交量 100万
// 10:45-11:00:成交量 50万
// 按成交量比例分配订单:
第一个15分钟:100万 * (200/500) = 40万股
第二个15分钟:100万 * (150/500) = 30万股
第三个15分钟:100万 * (100/500) = 20万股
第四个15分钟:100万 * (50/500) = 10万股
我个人习惯用VWAP做日内交易。为什么呢?因为它能更好地适应市场节奏。市场活跃的时候多交易,市场冷清的时候少交易,这样能有效降低冲击成本。
三种策略对比:
| 策略 | 核心逻辑 | 适用场景 | 风险 |
|---|---|---|---|
| 冰山订单 | 隐藏真实订单量 | 流动性较好的股票 | 被高频交易者探测 |
| TWAP | 时间均匀分配 | 市场波动较小 | 忽略市场行情 |
| VWAP | 按成交量分配 | 日内交易、大单执行 | 依赖历史成交量数据 |
3.4 知识体系结构图
下面这张图展示了这三种策略的核心关系和应用场景:
实战建议: 我个人习惯把三种策略组合使用。比如,先用VWAP确定每个时间片的交易量,然后用冰山订单来隐藏真实意图。这样既能适应市场节奏,又能减少被对手盘发现的概率。
好了,这一章的内容就到这里。记住,没有完美的策略,只有最适合当前市场的策略。多实践,多总结,你也能找到自己的交易节奏。