一、订单流基础:什么是订单流?Level 1、Level 2与Tick级数据的区别
大家好,我是老张。在量化这行摸爬滚打了十几年,今天咱们聊聊订单流。
很多人一上来就问我:「老张,订单流到底是个啥?跟K线有啥区别?」
嗯,这个问题问得好。我刚开始做交易的时候,也以为看K线就够了。直到有一次,我在做股指期货的日内策略,明明K线形态走得漂亮,一进场就被打止损。后来复盘才发现——订单流早就告诉我有人在偷偷吃货了。
说白了,订单流就是市场最原始的「心跳」。每一笔成交、每一个挂单,都是市场参与者在用真金白银投票。K线是加工过的「新闻联播」,订单流才是「现场直播」。
核心定义:订单流(Order Flow)是指市场中所有买卖订单的实时流动情况,包括挂单、撤单、成交等全部微观行为。它反映了市场参与者的真实意图和资金动向。
1.1 为什么订单流这么重要?
我举个例子你就明白了。
假设某只股票在10块钱的位置,突然出现一笔5000手的买单,把卖一到卖五全部吃掉。K线上只会显示一根阳线,但订单流告诉你:有人在用大单扫货。这种信息,K线给不了你。
我个人习惯把订单流比作「战场上的脚步声」。你听不到脚步声,怎么知道敌人是撤退还是进攻?
做量化交易,尤其是高频策略,订单流就是你的「雷达」。没有它,你就是在闭着眼睛做交易。
2.2 Level 1、Level 2与Tick级数据
好,接下来咱们聊聊这三个概念。很多人搞混它们,其实很简单。
我画了一张图,帮你理清关系:
这张图你看懂了吗?从上到下,数据越来越细,信息量越来越大。
2.3 三种数据的详细对比
咱们用一张表来对比,这样更清楚:
| 对比维度 | Level 1 | Level 2 | Tick 级 |
|---|---|---|---|
| 包含内容 | 最佳买卖价、成交量 | 多档盘口、挂单量 | 逐笔成交+逐笔挂撤单 |
| 数据频率 | 秒级/分钟级 | 毫秒级 | 微秒级 |
| 信息量 | ★☆☆☆☆ | ★★★☆☆ | ★★★★★ |
| 存储成本 | 低 | 中 | 极高 |
| 典型用途 | 散户看盘 | 专业交易员 | 量化/做市商 |
你看,Level 1 就像看报纸上的股市行情——知道个大概。Level 2 就像看实时监控——能看到谁在门口排队。Tick 级数据呢?那是直接看监控录像的每一帧——谁来了、谁走了、谁在门口犹豫了一下,全知道。
我的经验:做日内策略,至少要用 Level 2 数据。做高频策略,Tick 级数据是标配。我曾经用 Level 1 数据做高频,结果被市场打得鼻青脸肿——信息太滞后了。
2.4 代码示例:如何获取Tick级数据
光说不练假把式。我给你们看一段 Python 代码,演示怎么获取 Tick 级数据:
import pandas as pd
import requests
# 模拟获取某交易所的Tick数据
def get_tick_data(symbol="BTCUSDT", limit=100):
"""
获取逐笔成交数据
注意:实际生产环境需要处理鉴权和限流
"""
url = f"https://api.example.com/tick/{symbol}"
params = {
"limit": limit, # 获取最近100笔
"sort": "desc" # 按时间倒序
}
# 我习惯加个重试机制,网络波动太常见了
for retry in range(3):
try:
resp = requests.get(url, params=params, timeout=5)
if resp.status_code == 200:
data = resp.json()
break
except Exception as e:
print(f"第{retry+1}次请求失败: {e}")
time.sleep(1)
# 转换成DataFrame方便分析
df = pd.DataFrame(data)
df['timestamp'] = pd.to_datetime(df['timestamp'])
df['price'] = df['price'].astype(float)
df['volume'] = df['volume'].astype(float)
# 标记买卖方向
df['side'] = df['side'].map({'B': '买', 'S': '卖'})
return df
# 使用示例
tick_df = get_tick_data()
print(tick_df.head())
# 输出示例:
# timestamp price volume side
# 0 2024-01-15 09:30:01.123 100.50 100 买
# 1 2024-01-15 09:30:01.456 100.51 200 卖
# 2 2024-01-15 09:30:01.789 100.50 150 买
避坑指南:我曾经犯过一个错误——直接用 Tick 数据做回测,没考虑数据延迟。结果实盘时策略表现差了一大截。记住:Tick 数据虽然细,但交易所到你的服务器有网络延迟,这个延迟在高频场景下是致命的。
2.5 三种数据在实战中的选择
你可能会问:「老张,那我该用哪种数据?」
我的建议是:
- 做长线(日线以上):Level 1 就够了,别折腾。我见过有人用 Tick 数据做长线,纯属浪费资源。
- 做日内(分钟级):至少 Level 2。你能看到盘口的厚度,知道支撑和压力在哪。
- 做高频(秒级以下):必须 Tick 级。没有逐笔数据,你就是在盲人摸象。
我记得有一次帮一家私募做策略优化,他们一直用 Level 1 数据做高频。我一看回测曲线,漂亮得很。结果一上实盘,直接亏了三天。后来换成 Level 2 数据才发现——原来盘口一直在被操纵,Level 1 根本看不到。
嗯,这就是数据的价值。
2.6 小结
订单流是市场的「心电图」,Level 1、Level 2、Tick 级数据是不同精度的「心电图机」。选对数据层级,比选对策略更重要。
你想想看,如果你连市场在发生什么都看不清,怎么赚钱?
下一章咱们聊聊「订单簿的微观结构」,我会用实际案例告诉你——庄家是怎么通过挂单来骗线的。