一、做市数据概览:高频做市数据来源、频率与字段解析

做市交易,说白了就是跟市场流动性打交道。你报出去的单子,能不能被吃掉?你的库存风险有多大?这些问题的答案,全都藏在数据里。

我刚开始做高频做市那会儿,最头疼的不是策略逻辑,而是数据本身。交易所给的数据长什么样?券商的数据又有什么坑?第三方数据商的数据能不能直接用?嗯,今天咱们就把这些底层的「数据家底」翻个底朝天。

核心观点:做市数据的质量,直接决定了你的回测可信度和实盘稳定性。数据清洗不是「锦上添花」,而是「生死攸关」。

1.1 数据来源:三条腿走路

做市数据来源,我习惯分成三类:交易所直连、券商通道、第三方数据商。每条路都有自己的脾气。

来源 特点 典型场景 我踩过的坑
交易所直连 延迟最低,数据最原始,但接入成本高 自营做市、高频策略 曾经因为交易所行情快照的「时间戳」是本地生成而非交易所时间,导致回测偏差
券商通道 经过一层封装,可能带延迟,但接口友好 中小做市商、量化私募 券商的数据有时会「丢tick」,尤其是行情剧烈波动时
第三方数据商 数据经过清洗和标准化,但可能丢失细节 回测研究、策略开发 第三方数据商对「逐笔成交」的合并逻辑,跟交易所原始数据不一样

我个人建议:实盘用交易所直连,回测用第三方数据商做基准,再用券商数据做交叉验证。三条腿走路,才不容易摔跟头。

小技巧:如果你刚开始做做市,可以先从第三方数据商入手。比如某数据商的「Tick级行情」数据,虽然延迟比直连高几毫秒,但做回测研究完全够用。等策略跑通了,再考虑上直连。

1.2 数据频率:Tick级、秒级、分钟级,各有用处

做市数据频率,我一般分三个层级。你想想看,不同频率的数据,就像不同倍数的放大镜——看的东西不一样。

  • Tick级数据:每一笔成交或每一次行情变化都记录。这是做市策略的「显微镜」。我曾在Tick级数据里发现过「订单簿幽灵挂单」——某个价位挂单量突然暴增又瞬间消失,明显是试探性挂单。
  • 秒级数据:每秒聚合一次。适合做日内趋势判断和波动率计算。我记得有一次做波动率建模,用Tick级数据算出来的结果噪声太大,换成秒级数据反而更稳定。
  • 分钟级数据:每分钟一个快照。适合做中低频策略的基准分析,或者用来做风险监控的「粗筛」。

为什么会这样?因为Tick级数据里包含了大量的「市场微观结构噪声」——比如做市商之间的博弈、算法交易的试探性订单。这些噪声对高频策略是信号,但对中低频策略就是干扰。

注意:千万不要以为「频率越高越好」。我见过有人用Tick级数据做日频策略的回测,结果过拟合得一塌糊涂。频率选择要跟策略持仓周期匹配。

1.3 数据字段解析:行情快照、逐笔成交、订单簿深度

做市数据里,最核心的三个字段类型:行情快照、逐笔成交、订单簿深度。咱们一个一个说。

行情快照(Snapshot)

行情快照就是「某个时间点上的市场全貌」。包括最新价、涨跌幅、成交量、持仓量等。我习惯把它当作「基准数据」——用来校准其他数据源的时间对齐。

# 一个典型的行情快照字段结构(以某交易所为例)
{
  "symbol": "BTCUSDT",
  "timestamp": 1700000000000,  # 毫秒级时间戳
  "last_price": 50000.00,
  "volume_24h": 1234567.89,
  "open_interest": 987654.32,
  "bid_price_1": 49999.50,
  "ask_price_1": 50000.50,
  "bid_volume_1": 12.34,
  "ask_volume_1": 8.76
}

关键点:行情快照的「时间戳」一定要搞清楚是交易所时间还是本地时间。我曾经因为这个问题,回测时发现策略「穿越」了——明明还没发生的行情,策略却已经做出了反应。

逐笔成交(Trade by Trade)

逐笔成交记录的是每一笔真实的成交。这是做市策略的「黄金数据」——你能看到谁在买、谁在卖、成交速度有多快。

我记得有一次做「订单流分析」,发现某个大单一直在「拆单买入」。逐笔成交数据里,连续几十笔都是小额买单,但累计成交量巨大。这就是典型的「冰山订单」——表面上看是小单,实际上是大资金在悄悄建仓。

# 逐笔成交字段示例
{
  "trade_id": "123456789",
  "symbol": "BTCUSDT",
  "timestamp": 1700000000001,
  "price": 50000.00,
  "volume": 0.5,
  "side": "buy",  # 主动买还是主动卖
  "aggressor": "buyer"  # 谁主动吃单
}

避坑指南:我曾经发现第三方数据商的「逐笔成交」里,side字段跟交易所原始数据不一致。原因是数据商把「主动买」和「被动买」搞混了。所以,拿到数据后第一件事:用行情快照的成交量和逐笔成交的累计量做交叉验证。

订单簿深度(Order Book Depth)

订单簿深度就是「挂在盘口上的所有买卖单」。做市策略的核心就是跟订单簿打交道——你在哪个价位挂单?挂多少?别人在哪个价位埋伏?

订单簿深度数据,我一般关注三个维度:

  • 价差(Spread):买一和卖一之间的差距。价差越小,流动性越好。
  • 深度分布:不同价位上的挂单量。我曾经在某个山寨币上发现,买一到买五的挂单量分布极不均匀——买一只有0.1个币,买二却有100个币。这就是典型的「薄壁订单簿」,很容易被大单打穿。
  • 订单簿斜率:挂单量随价格变化的速率。斜率越陡,说明市场在这个价位上的「阻力」越大。
# 订单簿深度数据示例(前5档)
{
  "symbol": "BTCUSDT",
  "timestamp": 1700000000002,
  "bids": [
    [49999.50, 12.34],  # [价格, 数量]
    [49999.00, 45.67],
    [49998.50, 89.01],
    [49998.00, 23.45],
    [49997.50, 67.89]
  ],
  "asks": [
    [50000.50, 8.76],
    [50001.00, 34.56],
    [50001.50, 78.90],
    [50002.00, 12.34],
    [50002.50, 56.78]
  ]
}

警告:订单簿深度数据是「快照」而非「流」。两个快照之间可能发生了多次挂单和撤单。如果你用订单簿深度数据做「订单流重建」,一定要小心——你看到的可能是「中间状态」而非「完整过程」。

知识体系总览

下面这张图,是我自己梳理的做市数据知识体系。你可以把它当作「地图」——每次遇到数据问题,先看看自己站在哪个位置。

做市数据体系 数据来源 数据频率 数据字段 交易所直连 券商通道 第三方数据商 Tick级 秒级 分钟级 行情快照 逐笔成交 订单簿深度 核心原则:数据质量 > 数据速度 > 数据量 先搞清楚数据怎么来的,再谈怎么用

嗯,这张图其实是我自己刚入行时画的。每次带新人,我都会先让他们看这张图——先搞清楚数据怎么来的,再谈怎么用。很多做市策略的失败,根源不在策略逻辑,而在数据源头就出了问题。


专注资料整理