第二章 市场微观结构:订单簿深度解析

做高频交易,说白了就是在跟市场微观结构打交道。很多人一上来就研究各种指标,却忽略了最底层的东西——订单簿。我个人习惯,看一个交易员水平怎么样,先问他怎么看订单簿。

这一章,我们就把订单簿、价差、流动性这些东西彻底讲透。嗯,都是实战中每天要面对的东西。

2.1 订单簿(Order Book)到底是什么?

订单簿就是交易所的「记账本」。它记录了所有交易者挂出的买单和卖单。你想想看,没有订单簿,市场就乱套了。

一个典型的订单簿结构是这样的:

价格 卖单量 买单量 价格
1.1050 200万
1.1049 150万
1.1048 100万
1.1047 80万 1.1047
1.1046 120万 1.1046
1.1045 180万 1.1045

左边是卖单墙,右边是买单墙。中间那个空隙,就是买卖价差。

核心概念:订单簿的深度,决定了你的大单能不能顺利成交。我在项目中遇到过,一个看似流动性很好的品种,结果一进去就把价格打穿了。

2.2 买卖价差(Bid-Ask Spread)

价差就是最佳卖价和最佳买价之间的差值。EUR/USD通常只有0.1-0.3个点,但一些冷门货币对可能到5个点以上。

为什么会这样?说白了就是流动性。参与者越多,竞争越激烈,价差就越小。

我给你们看个真实数据:

货币对 典型价差(点) 流动性等级
EUR/USD 0.1 - 0.3 极高
USD/JPY 0.2 - 0.5
GBP/USD 0.3 - 0.8 中高
USD/TRY 3 - 10

实战技巧:做高频交易,我建议只做价差小于0.5个点的品种。价差太大,你的策略还没赚钱就先亏在手续费上了。

2.3 市场深度与流动性

市场深度,就是订单簿上各个价位的挂单量。深度越厚,说明市场越有「厚度」,大单进来不容易滑点。

我曾经吃过一次亏。当时做USD/ZAR,看着价差不大,就进去了。结果一个50万的单子,直接把价格推了10个点。为什么?因为深度太薄了,中间没有足够的挂单来承接。

衡量流动性有几个关键指标:

  • 买卖价差:越小越好
  • 订单簿深度:前5档挂单总量
  • 成交速度:市价单能否立即成交
  • 滑点幅度:大单成交时的价格偏移

警告:别只看价差!有些品种价差小,但深度极差。你想想看,一个只有100万深度的市场,你进去200万,不滑点才怪。

2.4 订单类型与执行逻辑

做高频交易,订单类型就是你的武器。用错了,再好的策略也白搭。

市价单(Market Order)

立即以当前最优价成交。优点是快,缺点是可能滑点。我一般只在确定性很高的时候用。

限价单(Limit Order)

指定价格挂单,不成交就等着。优点是能控制成本,缺点是可能成交不了。

止损单(Stop Order)

价格触及某个位置才激活。做风控必备。

这里有个关键点:市价单吃掉流动性,限价单提供流动性。做高频交易,很多时候你是在跟别人的限价单博弈。

我给你们看个简单的MQL5代码,演示如何读取订单簿:

// 获取当前品种的订单簿深度
void GetOrderBookDepth(string symbol)
{
    MqlBookInfo book[];
    MarketBookGet(symbol, book);
    
    double bestBid = 0, bestAsk = 0;
    double bidVolume = 0, askVolume = 0;
    
    for(int i = 0; i < ArraySize(book); i++)
    {
        if(book[i].type == BOOK_TYPE_BUY)
        {
            if(bestBid == 0 || book[i].price > bestBid)
                bestBid = book[i].price;
            bidVolume += book[i].volume;
        }
        else if(book[i].type == BOOK_TYPE_SELL)
        {
            if(bestAsk == 0 || book[i].price < bestAsk)
                bestAsk = book[i].price;
            askVolume += book[i].volume;
        }
    }
    
    double spread = (bestAsk - bestBid) / Point();
    Print("价差: ", spread, " 点");
    Print("买单总量: ", bidVolume, " 卖单总量: ", askVolume);
}

避坑指南:我曾经在回测时忽略了订单簿的实时变化,结果实盘一跑,滑点直接把收益吃掉了。记住,回测一定要模拟真实的订单簿状态。

2.5 知识体系总览

下面这张图,把本章的核心逻辑串起来了:

市场微观结构 订单簿 (Order Book) 买卖价差 (Spread) 市场深度与流动性 订单类型与执行逻辑 买单墙 / 卖单墙 深度分布 最佳买价 vs 最佳卖价 点差计算 挂单总量 滑点风险 市价单 / 限价单 / 止损单 吃单 vs 挂单

这张图把四个核心概念串起来了。你想想看,订单簿是基础,价差是结果,流动性是环境,订单类型是工具。缺一个,你的交易体系就不完整。

好了,这一章就到这里。记住,理解市场微观结构,是做好高频交易的第一步。别急着写策略,先把订单簿看明白。

专注资料整理