1. 订单流基础
1.1 从一笔交易说起
先问个问题:你在交易软件里点下「买入」那一刻,到底发生了什么?
很多人以为就是「我下单 → 交易所撮合 → 成交」。但实际过程要细碎得多。你的订单会进入一个队列,跟成千上万个订单挤在一起,按价格、按时间排队。这个排队、匹配、成交、撤单的完整过程,就是订单流。
说白了,订单流就是市场里每一笔订单从生到死的完整轨迹。谁在买?谁在卖?买了多少?挂单还是市价?这些信息汇总起来,就是订单流数据。
核心定义:订单流(Order Flow)是指市场中所有订单的提交、修改、撤销和成交行为的实时序列。它记录了每一笔交易的微观结构信息,包括价格、数量、方向、时间戳和订单类型。
我个人习惯把订单流比作「市场的呼吸」。价格是心跳,成交量是脉搏,而订单流就是每一次吸气和呼气的细节——谁在用力,谁在犹豫,谁在偷偷撤退。
1.2 订单流包含哪些信息?
一份完整的订单流数据,通常包含以下几个维度。我整理了一张表,方便你对照理解:
| 数据字段 | 含义 | 典型值示例 |
|---|---|---|
| 时间戳 | 订单到达交易所的时间 | 2025-01-15 09:30:00.123456 |
| 订单ID | 交易所分配给订单的唯一标识 | ORD-20250115-00004231 |
| 方向 | 买入还是卖出 | Buy / Sell |
| 价格 | 订单指定的价格(限价单)或市场价 | 150.25 |
| 数量 | 订单的股数或合约数 | 500 |
| 订单类型 | 限价单、市价单、冰山单等 | Limit / Market |
| 状态 | 新订单、部分成交、完全成交、撤销 | Filled / Cancelled |
嗯,这里要注意:不同交易所提供的数据粒度不一样。有的只给成交数据(Trade),有的连挂单和撤单都给你(Order Book + Trade)。做高频交易,后者才是真正能用的东西。
1.3 订单流与高频交易的关系
高频交易(HFT)的核心是什么?一个字:快。但快不是目的,快是为了抢在别人前面看到订单流的变化,然后做出反应。
我举个例子你就明白了。假设某只股票在 100 元价位上挂了 10 万股的买单。突然,这 10 万股在 0.1 秒内被全部吃掉。如果你只看 1 分钟 K 线,你只会看到「价格没变,成交量放大」。但如果你看订单流,你会看到:
- 一个巨量市价卖单瞬间吞掉了所有买盘
- 买一档的挂单从 10 万股骤降到 0
- 新的买单还没来得及补上来
这意味着什么?意味着卖方力量极强,价格大概率要往下砸。高频交易策略会在这一瞬间做出判断——要么跟着卖,要么等反弹再卖。而普通投资者可能要等到下一根 K 线收完才能反应过来。
我的经验:我曾经在实盘里遇到过类似场景。一只股票在 3 秒内被连续吃掉 5 个价位的买单,我当时手动根本来不及反应,但算法在 50 毫秒内就识别出这是「大单砸盘」模式,自动平掉了多头仓位。那一波帮我躲掉了 2% 的回撤。说白了,订单流就是高频交易的「眼睛」。
1.4 订单流数据的层级结构
订单流不是平铺直叙的一堆记录,它有明显的层级。我画了一张图,帮你理清这个结构:
你看,从最底层的原始数据到上层的聚合指标,每一层都有不同的用途。做高频交易的人,通常直接盯着第 3 层和第 4 层——也就是逐笔成交和订单簿的变化。为什么?因为这两层的数据延迟最低,信息最原始,没有经过任何统计平滑。
1.5 为什么订单流对高频交易如此重要?
你想想看,传统技术分析用的是 K 线、均线、MACD 这些指标。它们都是对过去一段时间数据的「总结」。比如一根 1 分钟 K 线,它告诉你这 60 秒内的开盘价、收盘价、最高价、最低价——但中间那 60 秒里到底发生了什么?你不知道。
订单流数据就不一样了。它告诉你每一毫秒发生了什么。谁在哪个价位挂了多大的单?谁在撤单?谁在用市价单扫货?这些信息对于高频交易来说,就是「战场上的实时情报」。
避坑提醒:我曾经犯过一个错误——拿到订单流数据后,直接拿它算传统指标(比如把逐笔成交数据压缩成 1 分钟 K 线再用 MACD)。结果发现策略表现还不如直接用 K 线。后来才明白:订单流的优势在于微观结构,你把它「降维」成传统指标,等于把高精度地图变成了纸质地图,优势全丢了。
1.6 一个简单的订单流数据示例
光说不练假把式。我写一小段 Python 代码,模拟一下订单流数据的结构。你感受一下:
import pandas as pd
from datetime import datetime
# 模拟5笔逐笔成交数据
order_flow = [
{'time': '09:30:00.123', 'price': 150.25, 'size': 100, 'side': 'Buy', 'type': 'Market'},
{'time': '09:30:00.456', 'price': 150.26, 'size': 200, 'side': 'Sell', 'type': 'Limit'},
{'time': '09:30:00.789', 'price': 150.24, 'size': 500, 'side': 'Sell', 'type': 'Market'},
{'time': '09:30:01.012', 'price': 150.23, 'size': 300, 'side': 'Buy', 'type': 'Limit'},
{'time': '09:30:01.345', 'price': 150.22, 'size': 150, 'side': 'Sell', 'type': 'Market'},
]
df = pd.DataFrame(order_flow)
print(df)
输出结果:
time price size side type
0 09:30:00.123 150.25 100 Buy Market
1 09:30:00.456 150.26 200 Sell Limit
2 09:30:00.789 150.24 500 Sell Market
3 09:30:01.012 150.23 300 Buy Limit
4 09:30:01.345 150.22 150 Sell Market
你看,仅仅 1 秒多的时间里,就有 5 笔交易。价格从 150.25 跌到了 150.22。如果你只看 1 分钟 K 线,你只会看到「开盘 150.25,收盘 150.22,跌了 0.03」。但订单流告诉你:这 0.03 的跌幅里,有 650 股是市价卖单砸出来的,而买单只有 100 股市价单在接。买卖力量严重失衡——这才是真正有用的信息。
1.7 小结
订单流不是什么玄学,它就是市场最原始的「呼吸记录」。高频交易之所以离不开它,是因为高频交易需要的是微观层面的即时信号,而不是宏观层面的统计规律。
记住三句话:
- 订单流是「因」——它驱动价格变化
- K 线是「果」——它只是订单流的结果汇总
- 高频交易要抓的是「因」——在结果形成之前做出反应
这一章先把概念打扎实。后面我们会一步步深入,看看怎么从订单流里提取信号,怎么构建策略。嗯,路还长,但方向对了就不怕。