订单流数据基础:逐笔成交、订单簿与市场深度

做量化交易这些年,我越来越觉得——订单流数据才是市场的“心电图”。K线图是加工过的信息,而订单流是原始信号。今天咱们就来拆解一下,订单流数据到底长什么样,怎么用。

一、逐笔成交数据:最细颗粒度的交易记录

逐笔成交数据,说白了就是交易所把每一笔真实的成交都记录下来。你想想看,每一秒可能发生几百笔交易,每一笔都有价格、数量、时间、买卖方向。

我个人习惯把逐笔成交数据比作“流水账”。它不加工,不汇总,就是最原始的交易记录。

核心字段:
  • 时间戳:精确到毫秒甚至微秒
  • 成交价格:这笔交易实际成交价
  • 成交量:这笔交易成交了多少手/股
  • 成交方向:主动买还是主动卖(Buy/Sell)
  • 成交编号:交易所给的唯一ID

举个例子,我在做A股高频策略时,曾经遇到过一个问题:为什么同样的K线形态,有时候赚钱有时候亏钱?后来我看了逐笔数据才发现——同样的价格波动,背后的资金流向完全不同。有的上涨是散户堆起来的,有的上涨是机构大单扫货。这两者的后续走势,天差地别。

# 逐笔成交数据示例(Python伪代码)
tick_data = {
    'timestamp': '2024-01-15 09:30:01.234',
    'price': 15.68,
    'volume': 200,
    'side': 'Buy',      # 主动买
    'trade_id': 'T123456789'
}
我的经验:逐笔数据量非常大,一天可能几千万条。存储和查询是个挑战。我建议用列式存储(比如Parquet)来压缩,查询时按时间分区。

二、订单簿数据:市场的“挂单墙”

订单簿就是当前所有未成交的限价单。它告诉你——在什么价位上,有多少人想买,有多少人想卖

嗯,这里要注意:订单簿是动态变化的。每一秒都在变。你看到的订单簿,其实是某个瞬间的快照。

订单簿结构:
  • 买盘(Bid):按价格从高到低排列
  • 卖盘(Ask):按价格从低到高排列
  • 价差(Spread):最优买价和最优卖价的差值
  • 深度(Depth):每个价位上的挂单量

我曾经踩过一个坑:用订单簿数据做策略时,没考虑“冰山订单”。有些大机构会把大单拆成小单,只显示一部分。你看到的深度可能只是冰山一角。后来我加了订单簿变化率检测,才把这个问题解决。

# 订单簿快照示例
orderbook = {
    'asks': [  # 卖盘,价格从低到高
        {'price': 15.70, 'volume': 500},
        {'price': 15.71, 'volume': 1200},
        {'price': 15.72, 'volume': 800}
    ],
    'bids': [  # 买盘,价格从高到低
        {'price': 15.68, 'volume': 1000},
        {'price': 15.67, 'volume': 600},
        {'price': 15.66, 'volume': 900}
    ]
}

三、市场深度与流动性分析

市场深度,说白了就是订单簿上各个价位的挂单总量。它直接反映了市场的流动性状况。

你想想看,如果一个股票在买一价只有100手挂单,而你想卖1000手——那价格肯定会被打穿好几档。这就是深度不够,流动性差。

避坑指南:我曾经在流动性差的品种上做回测,策略表现很好。但实盘一跑,滑点直接吃掉所有利润。后来我强制要求:策略必须考虑订单簿深度,计算预期滑点

流动性分析的几个关键指标:

指标 含义 我的用法
买卖价差 最优买价与最优卖价之差 价差越小,流动性越好
市场深度 各价位挂单总量 计算大单冲击成本
订单簿斜率 价格变化与挂单量的关系 斜率陡峭说明深度不足
成交率 挂单被成交的概率 判断挂单策略的有效性

四、核心逻辑:订单流数据如何串联起来?

下面这张图,是我自己总结的订单流数据流转逻辑。你看一遍就能明白:逐笔成交、订单簿、市场深度,这三者是怎么配合的

订单流数据核心逻辑 交易所原始数据 逐笔成交数据 订单簿快照 市场深度数据 策略应用:资金流向分析 · 大单检测 · 冲击成本计算 三者结合,才能还原市场的真实交易行为

五、实战中的几个关键点

做订单流分析,我总结了三个必须注意的地方:

  1. 数据延迟:逐笔数据和订单簿数据都有延迟。你看到的“当前”订单簿,其实是几十毫秒前的快照。做高频策略时,这个延迟会要命。
  2. 数据清洗:交易所的数据偶尔会有错误。比如成交价格异常、成交量对不上。我习惯加一道校验逻辑,把明显异常的数据过滤掉。
  3. 存储策略:订单流数据量巨大。我建议只保留关键字段,按天分区存储。历史数据可以压缩后归档。
一个小技巧:做回测时,别直接用逐笔数据。先把数据聚合成1秒或100毫秒的切片,这样既能保留订单流特征,又不会让回测跑得太慢。

好了,订单流数据的基础就讲到这里。记住一句话:数据是死的,但你对数据的理解是活的。多花时间看原始数据,比看任何指标都管用。

专注资料整理