4、数据源与工具:订单簿、逐笔成交、Level 2数据、Tick数据、常用平台与API
做市商情绪分析的前提是获得高质量、低延迟的市场微观结构数据。与普通投资者依赖的日线或分钟K线不同,情绪分析需要深入到每一笔委托和每一笔成交的粒度,观察挂单的动态变化、主动买卖的方向以及大单资金的流动痕迹。本章将系统梳理订单簿(Order Book)、逐笔成交(Time & Sales)、Level 2数据与Tick数据的概念、层级关系及实战应用,并介绍主流的获取平台与API接口,帮助学员建立一套完整的数据获取与预处理框架。
4.1 核心概念:从Level 1到Tick数据的分层体系
理解做市商情绪分析,首先需要厘清不同数据层级之间的差异。Level 1数据(又称行情快照)仅包含当前最优买价(Bid)和最优卖价(Ask)及其对应的委托量,这是普通交易软件默认展示的盘口。Level 2数据则进一步提供多档位的委托明细,通常包括买一到买五、卖一到卖五(部分交易所提供更深档位),甚至包含委托队列中的逐笔委托信息。Tick数据则是最细粒度的记录,每一笔成交(包括成交价格、成交量、成交时间、成交方向——主动买或主动卖)都会生成一条记录,部分Tick数据还包含当时的盘口快照。
在实际分析中,Level 1数据只能提供最浅层的情绪信号,例如买卖价差扩大可能意味着流动性不足或做市商避险。而Level 2数据能够揭示挂单的动态变化——例如某价位频繁出现大额挂单又迅速撤单,这往往是做市商试探市场深度或制造虚假压力的手段。Tick数据则能精确计算主动买入量与主动卖出量的比值,这是判断市场主导力量的核心指标。下表对比了不同数据层级的特点与适用场景:
| 数据层级 | 内容粒度 | 更新频率 | 情绪分析价值 | 典型应用 |
|---|---|---|---|---|
| Level 1 | 最优买卖价与量 | 秒级 | 低(仅反映表面供需) | 价差监控、简单方向判断 |
| Level 2 | 多档位委托明细 | 毫秒级 | 高(可观察挂单厚度与撤单) | 盘口压力分析、虚假挂单识别 |
| Tick数据 | 逐笔成交记录 | 事件驱动 | 极高(精确计算主动买卖) | 大单追踪、资金流向、动量分析 |
4.2 订单簿深度解析:挂单行为与情绪信号
订单簿(Order Book)是市场微观结构的核心,它记录了所有未成交的限价委托。做市商情绪分析的关键在于解读订单簿的“形状”与“动态”。一个健康的订单簿通常呈现“金字塔”结构——靠近最优价位的委托量较小,远离最优价位的委托量逐渐增大。当订单簿出现“倒金字塔”结构(即靠近最优价位的委托量异常巨大)时,往往意味着做市商在关键价位设置了“厚墙”,意图阻止价格突破或诱使对手方成交。
判断订单簿情绪的核心方法包括:委买委卖比(Bid/Ask Volume Ratio)——计算买盘总委托量与卖盘总委托量的比值,比值大于1.2通常被视为偏多情绪,小于0.8则偏空;撤单率(Cancellation Rate)——统计一段时间内被撤销的委托量占总委托量的比例,高撤单率(超过30%)往往暗示做市商在“挂单试探”而非真实成交意图;大单阈值监控——设定一个阈值(如单笔委托量超过该标的日均成交量的0.5%),监控大额挂单的进出场行为。
实战中,订单簿分析需要结合时间维度。例如,在开盘前30分钟,做市商经常通过挂出大额买单营造“护盘”假象,随后在价格小幅上涨后迅速撤单并反手做空。这种“诱多”行为在订单簿上表现为:买一档位持续出现大单,但成交记录中主动卖单却占据主导。此时,订单簿信号与Tick数据信号出现背离,是典型的情绪陷阱。
4.3 逐笔成交与Tick数据:捕捉真实交易意图
逐笔成交数据(Time & Sales)是市场最真实的声音。每一笔成交都包含成交价格、成交量、成交时间以及成交方向(主动买或主动卖)。主动买(Buy)意味着买方以卖一价或更高价格成交,反映了买方急于成交的意愿;主动卖(Sell)则相反。做市商情绪分析的核心指标之一是主动买卖量比(Buy/Sell Volume Ratio),计算公式为:
主动买卖量比 = 主动买入总成交量 / 主动卖出总成交量
该比值大于1.5表示买方力量占优,小于0.7表示卖方力量占优。但需要注意,这一指标在流动性极低的时段(如午盘休市前)可能失真,因为少量成交就能改变比值。更稳健的做法是结合大单净买入量——将单笔成交量超过一定阈值(如该标的日均成交量的0.1%)的成交单独统计,计算大单主动买入量减去大单主动卖出量的差值。大单净买入持续为正,说明机构或做市商在积极吸筹;持续为负则暗示出货。
Tick数据的另一个重要应用是成交速度分析。在短时间内(如1秒内)出现连续多笔同向成交,且每笔成交量递减,往往意味着“冰山订单”在执行——做市商将大单拆分为多笔小单,以避免冲击市场价格。此时,虽然单笔成交量不大,但累计成交量可观,情绪信号偏强。此外,Tick数据还能用于计算成交量加权平均价格(VWAP)与当前价格的偏离度,偏离度过大(超过1%)通常意味着短期情绪过热或过冷。
4.4 常用平台与API:数据获取实战
获取高质量的市场微观数据需要选择合适的平台与API。对于国内A股市场,交易所官方API(如上交所、深交所的Level 2数据接口)提供最权威的数据,但通常需要机构资质并支付较高费用。对于个人交易者,第三方数据平台是更现实的选择。以下为常用平台对比:
| 平台/API | 数据覆盖 | 更新延迟 | 费用模式 | 适用场景 |
|---|---|---|---|---|
| Wind金融终端 | Level 2、Tick、订单簿 | 毫秒级 | 年费制(较高) | 机构研究、量化策略开发 |
| 聚宽(JoinQuant) | Level 2、分钟Tick | 秒级 | 免费/付费 | 个人量化、策略回测 |
| Tushare Pro | Level 1、部分Tick | 分钟级 | 积分制 | 入门学习、低频分析 |
| 交易所官方API | 全量Level 2、逐笔委托 | 微秒级 | 机构年费 | 高频交易、做市策略 |
在API使用层面,以聚宽为例,获取Tick数据的典型代码片段如下:
from jqdatasdk import *
auth('your_account', 'your_password')
# 获取某股票2024年1月10日的Tick数据
df = get_ticks('000001.XSHE', '2024-01-10', count=5000)
# 输出字段:time, price, volume, pre_close, buyorsell
# buyorsell: 1=主动买, 2=主动卖
print(df.head())
对于加密货币市场,Binance API和Coinbase Pro API提供免费的Level 2深度数据与逐笔成交数据,且支持WebSocket实时推送。例如,Binance的depth接口可以获取20档买卖盘口,aggTrades接口提供聚合的逐笔成交数据。使用WebSocket连接后,可以实时接收订单簿增量更新(depthUpdate事件),从而在本地重建订单簿。
在数据存储方面,建议使用时序数据库(如InfluxDB)或列式存储(如Parquet文件)来管理Tick数据。由于Tick数据具有高频、追加写入的特点,传统关系型数据库(如MySQL)在写入性能上可能成为瓶颈。一个实用的数据管道设计为:API采集 → 消息队列(如Kafka) → 流处理(如Flink) → 时序数据库/数据仓库 → 分析引擎。
4.5 常见误区与复盘总结
在做市商情绪分析的数据处理环节,初学者常犯以下错误:误区一:忽视数据时间戳的时区与对齐问题。不同数据源的时间戳可能基于UTC或本地时区,且Tick数据的记录时间与交易所撮合时间可能存在毫秒级延迟。若未对齐时间,计算出的主动买卖量比将失真。误区二:直接使用原始Tick数据计算指标而不进行清洗。例如,部分交易所会推送“系统内部成交”或“零股成交”,这些数据不应纳入情绪分析。误区三:过度依赖单一指标。委买委卖比高并不一定代表看多,如果同时伴随高撤单率,则可能是虚假繁荣。必须结合多个维度(订单簿、Tick、成交速度)进行综合判断。
复盘总结时,建议建立一套数据质量检查清单:1)检查数据完整性——是否存在缺失的时间段;2)检查数据一致性——Tick数据中的最后一笔成交价是否与分钟K线的收盘价一致;3)检查异常值——单笔成交量是否超过该标的流通盘的1%(可能是数据错误);4)检查延迟——从数据时间戳到本地接收时间的间隔是否稳定。只有通过质量检查的数据,才能用于后续的情绪模型构建。