第二章 金融市场微观结构:订单簿与市场深度

做统计套利这些年,我越来越觉得,不懂微观结构就像开车不看仪表盘。你策略再牛,订单簿上的暗流也能把你掀翻。今天咱们就聊聊这个底层的东西——市场微观结构。

2.1 订单簿与市场深度

订单簿是什么?说白了,就是所有买卖挂单的实时清单。买一、买二、卖一、卖二……这些价格和数量堆在一起,就构成了市场的骨架。

我个人习惯把订单簿想象成一个多层蛋糕。买方在下面托着,卖方在上面压着。蛋糕越厚,市场越稳。这个厚度,就是市场深度。

市场深度:在某个价格水平上,能成交的订单总量。深度越大,大单冲击越小。

举个例子。假设某股票当前价格100元,买一挂了1000股,卖一挂了800股。这时候你砸一个5000股的卖单,会怎么样?

嗯,卖一那800股瞬间被吃掉,价格跌到买二的价位。这就是深度不够的后果。我在项目中遇到过这种情况,一个套利信号刚出来,我这边还没填完单,价格已经滑了三个档位。利润?全给流动性买单了。

所以,看订单簿不能只看最优报价。你得看整个深度分布。我一般会拉一个累计深度曲线,看看在5档、10档、甚至20档内,到底有多少对手盘。

2.2 买卖价差与交易成本

买卖价差,就是买一和卖一之间的差价。这个差价,是你每笔交易必须付出的隐性成本。

你想想看,你买入的那一刻,价格已经比中间价高了半个价差。卖出时又低半个价差。一进一出,一个完整的价差就没了。如果价差是0.01元,你交易10万股,光这一项就损失1000元。

市场类型 典型价差 交易成本影响
大盘蓝筹股 0.01-0.03元 低,适合高频套利
中小盘股 0.05-0.15元 中等,需考虑滑点
冷门股/ETF 0.20元以上 高,套利空间被压缩

我曾经吃过这个亏。做一对统计套利,两个标的价差看起来有0.5%的利润空间。结果一算,买卖价差加上佣金,实际利润只剩0.1%。忙活半天,还不够手续费。从那以后,我每次回测都会把价差成本算进去,而且是按实际订单簿数据算,不是用收盘价估算。

注意:价差不是固定的。开盘和收盘时价差通常较大,盘中流动性好的时候价差会收窄。做套利策略,最好避开开盘前15分钟和收盘前15分钟。

2.3 流动性对套利的影响

流动性,就是市场承接大单的能力。流动性好的市场,你进出都方便。流动性差的市场,你进去容易,出来难。

做统计套利,流动性是生死线。为什么?因为套利策略通常需要同时开仓和平仓。如果一边流动性好,一边流动性差,你的腿就瘸了。

我记得有一次做跨品种套利。螺纹钢和热卷,理论上价差应该收敛。我这边螺纹钢的仓位很快就建好了,但热卷那边挂单稀稀拉拉,我挂了半天才成交一半。等全部建完仓,价差已经变了。结果?本来该赚的钱,变成了亏损。

流动性指标我常用这几个:

  • 买卖价差:越小越好
  • 订单簿深度:前5档总量越大越好
  • 成交频率:每秒成交笔数,越高越好
  • 大单冲击成本:模拟一个标准单量,看价格滑多少

我个人习惯在策略上线前,先跑一个流动性测试。用历史订单簿数据,模拟你的交易量,看看平均滑点是多少。如果滑点超过预期利润的30%,这个策略就得重新考虑。

2.4 高频数据的特点与处理

高频数据,就是Tick级数据。每一笔成交、每一次挂单变动,都记录下来。数据量巨大,一天的数据可能顶得上传统数据的几年。

高频数据有几个特点:

  • 非均匀时间间隔:交易密集时,一秒几十笔;冷清时,几分钟没动静
  • 噪声大:很多微小波动是随机噪声,不是信号
  • 存在微观结构噪声:比如买卖价差反弹、订单簿的短暂失衡

处理高频数据,我踩过不少坑。最典型的一个——数据对齐。不同股票的交易时间戳不是完全对齐的。你拿A股票的10:00:00.000的成交价,和B股票10:00:00.000的成交价比,可能A的成交发生在10:00:00.000,B的成交发生在10:00:00.005。这5毫秒的偏差,在套利策略里就是致命的。

我的做法:用时间加权平均价格,或者用最新报价数据,而不是成交数据。报价数据更新更频繁,时间戳也更可靠。

还有一个常见问题——数据清洗。高频数据里经常有错误数据,比如价格突然跳到离谱的位置,或者成交量异常大。我一般会用以下规则过滤:

# 简单的数据清洗规则
def clean_tick_data(df):
    # 价格不能为负
    df = df[df['price'] > 0]
    # 价格不能超过前收盘价的±20%
    df = df[abs(df['price'] - prev_close) / prev_close < 0.2]
    # 成交量不能为0
    df = df[df['volume'] > 0]
    # 去除重复时间戳
    df = df.drop_duplicates(subset=['timestamp'])
    return df

嗯,这里要注意。过滤规则不能太严,否则会丢失真实的市场异动。也不能太松,否则噪声会污染你的信号。我一般会根据历史数据的分布,动态调整阈值。

最后,说说高频数据的存储。一天的数据可能几个GB,用CSV存?别闹了。我建议用列式存储格式,比如Parquet或者HDF5。压缩率高,读取速度快。而且最好按日期分区,方便回测时只加载需要的数据。

核心总结:订单簿是市场的骨架,价差是隐形成本,流动性是套利的生命线,高频数据是精细化的基础。这四个点,每一个都能决定你的策略是赚钱还是亏钱。

金融市场微观结构知识体系 微观结构 订单簿与市场深度 买卖价差与交易成本 流动性对套利的影响 高频数据特点与处理 多层挂单 深度曲线 隐性成本 滑点计算 流动性测试 冲击成本 数据对齐 噪声过滤 核心:微观结构决定套利策略的可行性

好了,这一章的内容就这些。记住,市场微观结构不是理论,是实战中每天都要面对的现实。你越早理解它,你的策略就越不容易翻车。

专注资料整理