第三章:订单类型——市价单、限价单、冰山订单、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 五种订单类型的对比与选择

说了这么多,到底什么时候用哪种?我整理了一个对比图,帮你快速决策。

订单类型选择决策树 需要执行大单? 是(大单) 否(小单) 时间窗口固定? → TWAP 追求低冲击? → VWAP 需要隐藏意图? → 冰山订单 追求速度? → 市价单 核心原则 1. 流动性好 → 市价单优先 2. 流动性差 → 限价单 + 冰山订单 3. 时间充裕 → TWAP / VWAP 拆单 4. 隐藏意图 → 冰山订单 / 随机化执行

最后说一句:没有最好的订单类型,只有最合适的。我见过有人用市价单做高频套利赚得盆满钵满,也见过有人用限价单做趋势跟踪亏得底掉。关键是要理解每种订单的优缺点,结合自己的策略和市场环境来选择。

我的建议:刚开始做高频交易的朋友,先从市价单和限价单练起。等你对市场微观结构有了感觉,再尝试冰山订单和算法交易。别一上来就搞VWAP,容易翻车。


公众号:蓝海资料掘金营,微信deep3321