第三章:订单类型——市价单、限价单、冰山订单、TWAP、VWAP的原理与适用场景
做高频交易这几年,我越来越觉得一个道理:选对订单类型,比选对方向还重要。方向对了,订单执行不好,照样亏钱。方向错了,订单执行得好,还能少亏点。今天咱们就把几种主流订单类型掰开揉碎了讲清楚。
3.1 市价单(Market Order)
市价单,说白了就是「不管价格,立即成交」。你下单的那一刻,系统会以当前市场上最好的价格帮你买入或卖出。
核心特点:
- 成交速度最快,几乎瞬间完成
- 成交价格不确定,可能滑点严重
- 适合流动性好的品种
我个人习惯在两种情况下用市价单:一是行情剧烈波动时,我需要快速平仓止损;二是流动性极好的品种,比如沪深300股指期货主力合约,买卖价差只有0.2个tick,市价单几乎没滑点。
避坑指南:
我曾经在流动性差的品种上用过市价单,结果滑了3个tick,直接亏掉当天的利润。记住:流动性越差,市价单越危险。
3.2 限价单(Limit Order)
限价单就是「不到我的心理价位,坚决不成交」。你指定一个价格,只有市场价格达到或优于这个价格时,订单才会执行。
| 对比项 | 市价单 | 限价单 |
|---|---|---|
| 成交确定性 | 高(立即成交) | 低(可能不成交) |
| 价格确定性 | 低(可能滑点) | 高(指定价格) |
| 适用场景 | 快速进出场 | 做市、套利 |
你想想看,做市商为什么能赚钱?就是因为他们大量使用限价单,在买一卖一挂单,赚取买卖价差。我刚开始做做市策略时,总担心限价单成交不了,后来发现只要挂单价格合理,成交率其实很高。
小技巧:限价单可以结合「冰山订单」使用,避免暴露你的真实意图。这个下面会讲。
3.3 冰山订单(Iceberg Order)
冰山订单,顾名思义,只露出水面一小部分,大部分藏在下面。你挂一个大单,但市场上只显示一小部分,成交完一部分再露出下一部分。
为什么要用冰山订单?说白了就是不想让别人知道你的底牌。我记得有一次,我在某个品种上挂了一个500手的限价买单,结果刚挂上去,价格就往上窜了2个tick。为什么?因为别人看到大单,知道有人在吃货,赶紧跟着买。
冰山订单的核心参数:
- 总数量:你实际想成交的量
- 显示数量:每次暴露在市场上的量
- 刷新机制:成交完显示量后,自动补充
我在项目中遇到过这样的情况:用冰山订单执行一个2000手的建仓任务,显示量设为100手。结果市场波动大,每次补充显示量时价格已经变了,导致平均建仓成本比预期高了0.5个tick。后来我调整了刷新频率,才把成本降下来。
注意:冰山订单不是万能的。有些交易所的订单簿深度足够,别人可以通过分析成交速度推断出你的总单量。嗯,这里要注意,没有绝对的隐藏。
3.4 TWAP(时间加权平均价格算法)
TWAP,全称Time-Weighted Average Price。它的逻辑很简单:把一个大单拆成若干小单,在指定时间内均匀执行。
举个例子:你要在1小时内买入1000手,TWAP会把它拆成60份,每分钟执行16-17手。这样做的目的是减少对市场的冲击。
// TWAP 简单实现示例(Python伪代码)
def twap_executor(total_qty, duration_seconds, interval_seconds):
num_slices = duration_seconds // interval_seconds
qty_per_slice = total_qty // num_slices
for i in range(num_slices):
# 在每个时间点执行固定数量
execute_market_order(qty_per_slice)
sleep(interval_seconds)
# 处理余数
remaining = total_qty % num_slices
if remaining > 0:
execute_market_order(remaining)
我个人习惯在流动性一般、时间窗口宽松的场景下用TWAP。比如收盘前半小时要减仓,用TWAP慢慢出,比一把梭哈好得多。
实战经验:TWAP的间隔时间不要设得太短。我曾经设过1秒间隔,结果因为网络延迟和交易所限流,实际执行效果很差。建议至少5秒以上。
3.5 VWAP(成交量加权平均价格算法)
VWAP,全称Volume-Weighted Average Price。它和TWAP的区别在于:TWAP按时间分配,VWAP按成交量分配。
VWAP的核心思想是:在成交量大的时候多执行,成交量小的时候少执行。这样你的成交价格会更接近市场均价。
| 对比项 | TWAP | VWAP |
|---|---|---|
| 分配依据 | 时间 | 成交量 |
| 市场冲击 | 中等 | 较低 |
| 执行难度 | 简单 | 较复杂 |
| 适用场景 | 时间窗口固定 | 追求低冲击 |
为什么VWAP更难?因为它需要预测未来的成交量分布。我常用的方法是:用过去N天的成交量分布作为预测依据。比如过去10天,每天上午10点到10点15分的成交量占全天的8%,那我就把8%的订单分配到这个时段。
VWAP的典型应用:
- 机构大单建仓/减仓
- 指数基金调仓
- 算法交易策略的基准
我曾经用VWAP执行过一个5000手的建仓任务,最终成交价格比市场VWAP只高了0.3个tick。而如果用市价单一把梭,至少滑1个tick。差距就是利润。
3.6 五种订单类型的对比与选择
说了这么多,到底什么时候用哪种?我整理了一个对比图,帮你快速决策。
最后说一句:没有最好的订单类型,只有最合适的。我见过有人用市价单做高频套利赚得盆满钵满,也见过有人用限价单做趋势跟踪亏得底掉。关键是要理解每种订单的优缺点,结合自己的策略和市场环境来选择。
我的建议:刚开始做高频交易的朋友,先从市价单和限价单练起。等你对市场微观结构有了感觉,再尝试冰山订单和算法交易。别一上来就搞VWAP,容易翻车。
公众号:蓝海资料掘金营,微信deep3321