
blog 高级 · ~1 min read
执行算法:TWAP、VWAP、冰山
进仓位不把市场推到对自己不利是一门单独的技能。学 TWAP、VWAP、冰山执行算法以及何时用哪个。
#algorithmic#quant-trading
本文为英文。需要查看中文翻译吗?
交互工具在翻译视图中可能无法使用。
执行算法:TWAP、VWAP、冰山
好信号配烂执行就是平庸策略。成交价就是你的优势的一部分。
策略说"买 10000 股"之后,问题变成怎么买。直接甩一笔这么大的市价单会把价格推到对你不利——这个成本叫市场冲击。执行算法把大单切成片来最小化冲击。
朴素执行的成本
如果对成交稀薄的品种下 10000 股市价单,你会吃穿多个价位。平均成交价比屏幕价差一截。这个差距——你看到的价和你拿到的价——就是滑点。对零售小;对大单,它能抹掉整个优势。
TWAP:时间加权平均价
Time-Weighted Average Price 把订单在一个时间窗口里均匀切:
切片大小 = 总量 ÷ N_切片
例子:100 分钟买 10000 股 → 每分钟 100 股。
- 强项:简单、不依赖数据、最小化时机风险
- 弱项:忽略成交量模式;死寂时段交易量大,那时冲击最高
- 适合:想伪装的低成交量时段,或没有成交量分布时
VWAP:成交量加权平均价
VWAP 按历史成交量比例切:
VWAP = Σ(Price_i × Volume_i) ÷ Σ(Volume_i)
每片大小匹配那个时段的典型成交量占比。流动性深时(开盘和收盘)多交易,午休低谷时少交易。
- 强项:把交易对齐流动性,最小化市场冲击
- 弱项:需要可靠的成交量分布;突发放量会误导它
- 适合:正常交易时段、流动性好的品种上的大单
冰山:藏起你的规模
冰山订单只在订单簿上展示总量的一小部分,每片成交后补足。剩下隐藏。
可见 = min(切片, max_show)
隐藏 = 总量 − 可见
- 强项:防止盯簿子的交易员抢跑
- 弱项:成交慢;簿子动了可能错过窗口
- 适合:透明簿子上的大单,发信号危险时
之间怎么选
| 需求 | 算法 |
|---|---|
| 简单、时间驱动 | TWAP |
| 最小化冲击、正常流动性 | VWAP |
| 对盯簿者藏大单 | 冰山 |
| 紧急入场 | 单笔市价单(接受滑点) |
| 耐心、不给市场信号 | 冰山 + VWAP 混合 |
实现注意
- 成本建模:回测永远带现实滑点,不是中间报价
- 暗池:切片走暗场所避免发信号
- 智能订单路由:跨交易所拆分抓最佳可用流动性
- 自适应逻辑:切片大小随实际波动率缩放;点差扩大时暂停
小结
说"买"的信号是交易的一半。另一半是怎么买而不告诉市场。TWAP 简单、VWAP 最小化冲击、冰山隐蔽。把算法匹配到订单的紧急度、规模、品种的流动性分布——因为滑点是真实的、反复出现的成本,悄悄侵蚀每个策略。
实时行情
打开完整图表 →相关市场数据由 TradingView 提供。
📝
我的笔记
登录后可在本文保存笔记并与社区分享。
由 Marcus Cole 起草 · 由 Timi Chen 于 2026-06-03 审核 · 最后检查于 2026-06-03
下一篇推荐
algorithmicquant-trading 2026-07-01
Quant Research Workflow: Jupyter Notebooks and Feature Engineering
A repeatable quant research workflow using Jupyter notebooks covers feature engineering, validation, and notebook hygiene that produces deployable signals.
阅读更多 →Smart Recommendations