Strasmore Research
学习 Matt Connor作者: Matt Connor · 更新于 2026-08-08

Level 1、Level 2 和 Level 3 市场数据区别

了解 Level 1、Level 2 和 Level 3 市场数据的区别,通过真实报价面板掌握最优报价、价格深度、逐笔订单,以及零售数据源省略的信息。

Level 1 与 Level 2 市场数据的区别,取决于您能看到多少订单簿信息。Level 1 展示订单簿顶部:最佳买价、最佳卖价、两侧报价数量,以及最新成交价。Level 2 展示顶部报价下方的深度,即每个已显示价格档位及其挂单总量。Level 3 则分别展示每一笔订单,并附带各自的标识符。每一层都包含下一层的全部信息。

什么是 Level 1 市场数据?

Level 1 也称为订单簿顶部,只回答一个问题:当前可获得的最佳价格是多少,该价格上有多少报价。在美国股票市场,订单簿顶部的合并版本是全国最佳买卖报价(NBBO)。我们的NBBO 是什么指南对此有完整介绍。Level 1 记录包括最佳买价、最佳卖价、两侧的显示数量,以及成交端的最新成交价和成交量。它不包含次优价格,也不显示报价方的身份。

这一层主要看两个数字:以美分计的买卖价差,以及以基点计的同一价差。一个基点是百分之一个百分点。下图展示了某只大盘股在一个完整交易时段内的两项数据,覆盖美国东部时间凌晨 4:00 的盘前交易开始时间,直至美国东部时间晚上 8:00 盘后交易结束。

查询一级行情最优买卖价:全时段报价价差(AAPL,2026年6月17日)
每个数字背后的完整 SQL
SELECT
    formatDateTime(
        toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE),
        '%H:%i'
    )                                                                      AS et_time,
    round(avg(toFloat64(ask_price) - toFloat64(bid_price)) * 100, 2)       AS spread_cents,
    round(avg((toFloat64(ask_price) - toFloat64(bid_price))
              / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2)) * 10000, 2) AS spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
  AND sip_timestamp >= '2026-06-17 08:00:00'
  AND sip_timestamp <  '2026-06-18 00:00:00'
  AND bid_price > 0
  AND ask_price > bid_price
  AND (toFloat64(ask_price) - toFloat64(bid_price)) / toFloat64(bid_price) < 0.05
GROUP BY et_time
ORDER BY et_time
Run this yourself

04:00 ET,平均报价价差为 37.38 美分,即 12.51 个基点。图中最后一个时间段 19:30 ET 的平均价差为 16.85 美分,即 5.67 个基点。32 个半小时区间覆盖了全天交易。图表上的每个点都是 Level 1 数据:订单簿的一行信息,被持续重复记录。

什么是 Level 2 市场数据?

Level 2 也称为按价格显示的市场数据或订单簿深度,展示顶部报价下方的价格梯级。系统会汇总每个价格上的显示挂单总量:49.98 美元有 4,000 股买单,49.97 美元有 1,200 股,49.96 美元有 900 股,49.95 美元有 2,500 股;卖方则呈现对应的另一侧结构。这种结构就是交易员所说的市场深度。

Level 2 不展示订单构成。49.98 美元的 4,000 股可能来自一笔机构订单,也可能来自 40 笔散户订单。无论是哪种情况,价格梯级看起来都一样。

从公开成交数据中,还可以衡量一种相关结构:股票实际在不同价格档位上成交了多少。报价梯级代表尚未成交的挂单意愿。下图展示的是同一交易时段中半小时内的已执行成交量。

查询按价格级别划分的成交量:成交价阶梯(KO,30分钟)
每个数字背后的完整 SQL
SELECT
    toString(px)             AS price_level,
    round(sum(sz) / 1000, 1) AS shares_thousands,
    count()                  AS prints
FROM
(
    SELECT
        round(toFloat64(price), 2) AS px,
        toFloat64(size)            AS sz
    FROM global_markets.stocks_trades
    WHERE ticker = 'KO'
      AND sip_timestamp >= '2026-06-17 14:30:00'
      AND sip_timestamp <  '2026-06-17 15:00:00'
      AND price > 0
      AND size > 0
)
GROUP BY px
ORDER BY px
Run this yourself

这半小时的交易分布在 63 个不同价格档位,最低价为 $79.42,最高价为 $80.04。两个极端价格档位的成交都很少,最低价档位为 0.1 千股,最高价档位为 0.8 千股;大部分成交量集中在两者之间。Level 1 数据流会在整个过程中逐次显示一个价格。Level 2 数据流则会提前显示价格梯级,展示尚未成交的挂单,而不是事后显示的成交记录。

什么是 Level 3 市场数据?

Level 3 也称为按订单显示的市场数据,提供完整信息:每一笔挂单分别显示,并附带订单标识符、价格、数量及其在该价格队列中的位置。按价格汇总 Level 3 数据,就能还原 Level 2。取买卖两侧的最佳价格,就能得到 Level 1。

Level 3 可以回答汇总层级无法回答的两个问题。第一,一笔订单在某个价格的队列中排在什么位置,这决定了该价格成交时订单是否会被执行。第二,一笔特定订单从提交到取消的整个生命周期发生了什么。Nasdaq TotalView-ITCH 等交易所专有数据流会提供这类深度信息。合并行情数据不会提供。

零售 Level 2 订阅实际提供什么?

在零售平台上,“Level 2”这个标签通常比较宽泛。它很少代表全国范围的完整订单簿深度。通常提供的是某一个交易场所的订单簿,往往是经纪商为您路由订单的交易场所;或者提供合并订单簿,但每侧最多显示五档或十档价格。对于以美分报价的股票,十档价格覆盖十美分的范围;对于活跃股票,这一范围会不断刷新。

消息量是不同层级数据价格差异较大的主要原因之一。下图统计了同一交易时段内一小时期间,五只知名股票的订单簿顶部报价记录数量,并列出各自的平均价差。

查询按名称划分的最优买卖价价差和报价消息数(美东时间上午10:00至11:00)
每个数字背后的完整 SQL
SELECT
    ticker                                                                 AS symbol,
    round(avg((toFloat64(ask_price) - toFloat64(bid_price))
              / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2)) * 10000, 2) AS spread_bps,
    count()                                                                AS quote_update_count
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'MSFT', 'NVDA', 'KO')
  AND sip_timestamp >= '2026-06-17 14:00:00'
  AND sip_timestamp <  '2026-06-17 15:00:00'
  AND bid_price > 0
  AND ask_price > bid_price
  AND (toFloat64(ask_price) - toFloat64(bid_price)) / toFloat64(bid_price) < 0.05
GROUP BY symbol
ORDER BY spread_bps
Run this yourself

在五只股票中,SPY 的平均价差最窄,为 0.32 个基点;KO 的平均价差为 1.95。这些更新次数只覆盖订单簿顶部。深度数据流会记录其下方每个价格档位的所有变化,而按订单显示的数据流还会记录这些变化背后的每一条消息。期权市场是同类数据量的极端案例:期权报价数据流有多大对此进行了量化。

为什么可见订单簿低估了真实流动性

显示出来的价格梯级只能代表可用流动性的下限,而不是流动性的完整规模。还有两类重要信息不在其中。

隐藏订单和储备订单。冰山订单只显示一小部分数量,其余部分作为储备数量隐藏。显示部分成交后,系统会继续补充可见数量。订单簿可能显示 200 股,但其后方可能还有 20,000 股。冰山订单如何运作介绍了具体机制。

场外成交。美国股票市场有相当一部分成交量不在公开交易所完成,而是在经纪商内部化交易机构和另类交易系统中成交。这些场所不会在交易前公开报价。场外暗池交易详解介绍了这部分成交量的去向。

市场数据流中的合并更新是什么意思?

合并数据流不会发送每一次更新。它会按照固定间隔对订单簿进行快照,例如每 250 毫秒或每秒一次,并发送该时点的状态。两次快照之间发生的任何变化都不会被传送。两个订阅者如果使用不同的更新间隔,看到的订单簿也会不同,但各自都只在自己的时间点上准确。

对于基于数据流开发系统的用户,这一区别尤其重要。未合并数据会按顺序发送每一条消息,这是撮合引擎模拟器或队列位置模型所依赖的数据。使用合并数据流时,这些计算只能是近似值。对于仅用肉眼查看价格梯级的人来说,更新间隔几乎无关紧要。

查询最优买卖价消息速率,逐分钟(NVDA,一小时)
每个数字背后的完整 SQL
SELECT
    et_time,
    round(avg(sec_updates), 1) AS avg_updates_per_second,
    max(sec_updates)           AS peak_updates_in_one_second
FROM
(
    SELECT
        formatDateTime(toStartOfMinute(toTimeZone(sip_timestamp, 'America/New_York')), '%H:%i') AS et_time,
        toDateTime(sip_timestamp)                                                              AS et_second,
        count()                                                                                AS sec_updates
    FROM global_markets.cache_stocks_quotes
    WHERE ticker = 'NVDA'
      AND sip_timestamp >= '2026-06-17 14:00:00'
      AND sip_timestamp <  '2026-06-17 15:00:00'
    GROUP BY et_time, et_second
)
GROUP BY et_time
ORDER BY et_time
Run this yourself

在该小时的第一分钟,即 10:00 ET,订单簿顶部记录的平均到达速度为每秒 163.8 条;这一分钟内最繁忙的单秒包含 371 条记录。每秒更新一次的行情数据流,只会从这一数据流中传递一个订单簿状态。这还只是单只股票的订单簿顶部。深度数据流和按订单显示的数据流会使记录数量进一步增加。

Level 2 数据值得付费吗?

这取决于持仓周期。需要在买卖价差内挂单、以秒为单位选择入场时机的交易员,可以通过深度数据获取订单簿顶部没有的信息:买卖双方的挂单集中位置,以及哪一侧正在变薄。由于前文所述的隐藏流动性,这种判断并不完美,但仍然比完全看不到价格梯级更有价值。

如果持仓周期为数天或数周,十档订单簿提供的边际信息通常不足以抵消其成本。Level 1 以下的层级在这里也有作用:延迟报价通常滞后 15 分钟,在大多数平台上免费,足以支持以天为单位的交易决策。股票报价为何延迟 15 分钟解释了这一惯例的由来。还需要确认数据的传输方式:如果价格梯级只来自一个交易场所,且供应商未公布合并更新间隔,那么您看到的只是局部视图中的局部视图。

常见问题

Level 1 和 Level 2 市场数据有什么区别?

Level 1 提供最佳买价、最佳卖价及各自的数量,并提供最新成交信息。Level 2 在此基础上增加下方各个已显示价格档位及其挂单总量,因此包含 Level 1 的全部信息,并提供更多深度数据。

Level 2 市场数据是实时的吗?

这取决于订阅内容。交易所深度数据流是实时的,但需要付费。许多零售平台提供的是按固定间隔生成快照的合并版本。产品页面很少明确说明具体类型,您可以向经纪商的客服或交易支持部门确认。

Level 2 会显示隐藏订单吗?

不会。订单簿深度数据只显示可见数量。冰山订单的储备数量和完全隐藏的订单都不会出现在价格梯级中,直到它们以成交形式出现。

Level 3 市场数据有什么用途?

Level 3,也称为按订单显示的市场数据,会提供每一笔挂单及其独立标识符、价格、数量和队列位置。它主要面向运行执行模型和订单路由模型的机构,因为队列位置会影响成交的经济结果。

交易需要 Level 2 数据吗?

不需要。Level 1 报价和成交明细足以让您在任何零售平台上提交和管理订单。当交易决策取决于执行时点的流动性,而不是收盘价水平时,深度数据才更有帮助。


本文每张图表都附有底层 SQL。您可以打开图表,查看每个数字的具体计算方式。同样的问题可以在 Strasmore 终端上针对任何 ticker 和任何交易时段运行。

#market data#level 2#order book#depth of book#nbbo