什么是买卖价差?真实交易成本与计算方法
了解买卖价差的定义、计算方法和每笔交易成本,查看基于美国股票逐笔报价数据测得的真实价差,掌握即时交易为何会产生隐性成本。
买卖价差是指当前买方愿意为股票支付的最高价格(买价)与卖方愿意接受的最低价格(卖价)之间的差额。它是交易内含的成本:按卖价买入、按买价卖出,差额由提供该报价的一方获得。本页的所有价差数据均根据逐笔行情报价数据计算,每个数字后均附有对应的查询语句。
什么是买卖价差?用通俗语言解释
在交易日的任何时刻,一只股票都有两个价格,而不是一个。买价是市场上最高的买入报价。卖价有时也称为要价,是市场上最低的卖出报价。买卖价差就是两者之间的差额。
举例来说:一只股票的报价为买价20.00美元、卖价20.05美元,价差就是5美分。想立即买入的人须支付20.05美元;想立即卖出的人只能收到20.00美元。这5美分不是券商手续费,而是即时成交的价格。它归报价另一侧的交易者所有,最常见的是专业做市商。做市商会在整个交易时段随时按买价买入、按卖价卖出。
在美国股票市场,所有交易所的最佳买价和最佳卖价会汇总为全国最佳买卖报价,即 NBBO。这是您的券商应用显示的报价,也是本文测量的数据。(金融市场中,“spread”也用于表示其他差额:2s10s利差指的是美国国债收益率之间的差额,而不是股票价格之间的差额。)
买价与卖价:如何读取股票报价
以下是苹果公司(Apple)的真实NBBO记录,也是我们数据窗口中的最后一笔报价,来自综合行情源。
| 股票 | 买入价 | 卖出价 | 价差 | 中间价 | 价差百分比 | 东部时间报价时间 |
|---|---|---|---|---|---|---|
| AAPL | 327.60 | 327.84 | 0.24 | 327.72 | 0.073 | 2026-09-03 19:59 |
每个数字背后的完整 SQL
SELECT stock,
toDecimalString(bid, 2) AS bid_price,
toDecimalString(ask, 2) AS ask_price,
toDecimalString(ask - bid, 2) AS spread,
toDecimalString((ask + bid) / 2, 2) AS midpoint_price,
round((ask - bid) / ((ask + bid) / 2) * 100, 3) AS spread_pct,
quote_time_et
FROM (
SELECT ticker AS stock,
argMax(toFloat64(bid_price), sip_timestamp) AS bid,
argMax(toFloat64(ask_price), sip_timestamp) AS ask,
formatDateTime(toTimeZone(max(sip_timestamp), 'America/New_York'), '%Y-%m-%d %H:%i') AS quote_time_et
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= now() - INTERVAL 7 DAY
AND bid_price > 0
AND ask_price > bid_price
GROUP BY ticker
)从左向右看:最佳买价为 $327.60,最佳卖价为 $327.84,买卖价差(卖价减买价)为 $0.24,时间戳为 2026-09-03 19:59 ET。中间价为 $327.72,位于两者正中,通常用作该时点股票公允价值的参考。
有一点值得注意:这笔报价接近盘后延长交易时段结束时,距离收盘铃响已经过去数小时。时间会影响买卖价差,后面的日内图表将显示这种影响有多大。
如何计算买卖价差:美分、百分比和基点
同一个价差可以用三种方式表示:
- 美元和美分。价差 = 卖价减去买价。计算简单,但难以比较不同股价的股票。
- 百分比。价差 ÷ 中间价 × 100。20美元股票的五美分价差占股价的0.25%;200美元股票的同样五美分价差仅占0.025%。
- 基点(bps)。百分之一个百分点,是专业市场的常用表示方式。将百分比乘以100:0.25%等于25个基点。
应用于上文苹果公司的实际报价:$0.24 ÷ $327.72 得出该价差占股价的0.073%。这是盘后数据,但仍远低于股价的1%。
流动性高低的价差:流动性强弱股票的实际数据
大多数科普文章只会说“流动性高的股票价差窄”。以下数据展示了这一差异的实际幅度,统计范围覆盖近期连续多个交易日窗口内的每次 NBBO 更新。表格将六只成交活跃的股票与两只真正流动性较低的小盘股进行对比:Nathan's Famous(NATH)和 Seneca Foods(SENEA)。“典型”指该窗口内的报价中位数。最后一列将价差换算为买卖100股一轮交易的美元成本;每股美分数与每100股美元数相同。
| ticker | 典型价差(美分) | 典型价差(基点) | 100股价差成本 |
|---|---|---|---|
| SPY | 2 | 0.3 | 2.00 |
| AAPL | 3 | 0.9 | 3.00 |
| NVDA | 2 | 0.9 | 2.00 |
| MSFT | 9 | 1.7 | 9.00 |
| KO | 1 | 1.1 | 1.00 |
| TSLA | 8 | 2.1 | 8.00 |
| NATH | 129 | 132.5 | 129.00 |
| SENEA | 167 | 82.4 | 167.00 |
每个数字背后的完整 SQL
SELECT ticker,
round(median_spread_usd * 100, 1) AS typical_spread_cents,
round(median_spread_bps, 1) AS typical_spread_bps,
toDecimalString(median_spread_usd * 100, 2) AS spread_cost_100_shares
FROM (
SELECT ticker,
quantileDeterministic(0.5)(toFloat64(ask_price - bid_price), toUInt64(sip_timestamp)) AS median_spread_usd,
quantileDeterministic(0.5)(toFloat64(ask_price - bid_price) / (toFloat64(ask_price + bid_price) / 2), toUInt64(sip_timestamp)) * 10000 AS median_spread_bps
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('SPY', 'AAPL', 'NVDA', 'MSFT', 'KO', 'TSLA', 'NATH', 'SENEA')
AND sip_timestamp >= now() - INTERVAL 7 DAY
AND bid_price > 0
AND ask_price > bid_price
GROUP BY ticker
)
ORDER BY indexOf(['SPY', 'AAPL', 'NVDA', 'MSFT', 'KO', 'TSLA', 'NATH', 'SENEA'], ticker)在流动性较高的股票中,SPY的典型报价价差为2美分,占其股价的0.3个基点;Coca-Cola为1美分(1.1个基点),Tesla为8美分(2.1个基点)。随后价差明显扩大:Nathan's Famous为129美分(132.5个基点),Seneca Foods为167美分(82.4个基点)。市场相同,规则相同,差异来自流动性:同一时间在每只股票中展开竞争的买方、卖方和做市商数量不同。
实际交易中的价差成本
感受价差影响的一个实用方法,是计算一次往返交易:以卖价买入,随后立即以买价卖出。这样,每股都会损失全部价差。买入100股时,上表已列出相应换算结果;每股价差的美分数值,换算成美元后就是这笔交易的成本。对于知名股票,这笔成本相当于一杯咖啡的钱:买入100股Apple的成本为$3.00,Coca-Cola为$1.00。低流动性股票的成本则不同:Nathan's Famous为$129.00,Seneca Foods为$167.00。上述金额尚未计入任何佣金,也未考虑订单对价格造成的影响。这些数字假设订单能够按照显示的报价成交;如果订单规模超过显示的可交易数量,实际支付的价格可能更高。
价差何时扩大:开盘、收盘及盘后交易
价差并非全天保持不变。下图按30分钟时间段(美国东部时间)追踪了同一时间窗口内苹果的报价中位价差,并纳入延长交易时段,展示了许多解读文章都声称存在、却从未真正展示的模式。
| 东部时间 | 价差中位数(美分) |
|---|---|
| 04:00 | 27 |
| 04:30 | 28 |
| 05:00 | 19 |
| 05:30 | 16 |
| 06:00 | 15 |
| 06:30 | 20 |
| 07:00 | 19 |
| 07:30 | 14 |
| 08:00 | 12 |
| 08:30 | 11 |
| 09:00 | 12 |
| 09:30 | 7 |
| 10:00 | 4 |
| 10:30 | 3 |
| 11:00 | 3 |
| 11:30 | 3 |
| 12:00 | 3 |
| 12:30 | 3 |
| 13:00 | 3 |
| 13:30 | 3 |
每个数字背后的完整 SQL
SELECT formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(quantileDeterministic(0.5)(toFloat64(ask_price - bid_price), toUInt64(sip_timestamp)) * 100, 1) AS median_spread_cents
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= now() - INTERVAL 7 DAY
AND bid_price > 0
AND ask_price > bid_price
GROUP BY et_time
ORDER BY et_time图形呈U形,两端较高:开盘前较宽,日间中段仅几美分,收盘后再次扩大。根据这一曲线,可按具体时间确定四个观察点:
| 东部时间 | 价差中位数(美分) |
|---|---|
| 04:00 | 27 |
| 09:30 | 7 |
| 13:00 | 3 |
| 16:00 | 12 |
每个数字背后的完整 SQL
SELECT formatDateTime(toStartOfInterval(toTimeZone(sip_timestamp, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
round(quantileDeterministic(0.5)(toFloat64(ask_price - bid_price), toUInt64(sip_timestamp)) * 100, 1) AS median_spread_cents
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'AAPL'
AND sip_timestamp >= now() - INTERVAL 7 DAY
AND bid_price > 0
AND ask_price > bid_price
GROUP BY et_time
HAVING et_time IN ('04:00', '09:30', '13:00', '16:00')
ORDER BY et_time在04:00的盘前交易时间段(当天第一个时间段),苹果的中位价差为27美分。09:30时间段为常规交易时段的前半小时,价差降至7美分;13:00的午后早段为3美分。16:00时间段从收盘铃响起时开始,并与收盘竞价同步,价差升至12美分;此后整个晚间仍处于较高水平,在该时段最后一个时间段为13美分。在常规交易时段(美国东部时间9:30–16:00),数十家做市商会同时为该股票报价;在盘后及盘后和盘前交易时段,参与竞争的报价大幅减少,因此价差更宽。
什么因素决定spread的宽窄
以下四个因素通常与较窄的spread同时出现:
- 竞争。做市商越多,股票中等待成交的订单越多,买卖两侧的报价通常越紧。流动性较低的股票可能只有一个活跃报价方主导整个市场。
- 交易量。上表中的数据普遍显示,交易量大通常伴随较窄的spread;交易活跃股票的价差仅为低流动性股票价差的一小部分。
- 波动率。市场快速波动时,报价会持续重新定价。在交易恢复平稳前,买卖价差通常会维持在较宽水平。
- 股价和最小报价单位。美国股价高于1美元的股票以一美分为报价增量,一美分也是最低报价单位。流动性最高的低价股在一天的大部分时间里都维持在这一最小价差附近。对低价股而言,同样的一美分占每股价格的比例更高。
如何降低spread成本
- 限价单可以确定成交价格。 市价单会接受报价方提供的任何价格;限价单只会以指定价格或更优价格成交。买单挂在买价上,卖方主动来成交时,买方赚取spread,而不是支付spread;代价是订单可能始终无法成交。
- 常规交易时段交易流动性高的标的是低成本组合。 上方的日内走势图显示了这一点:流动性高的股票在午间的spread通常是整个交易时段中最窄的。
- 基点能揭示美分报价掩盖的成本。 对于低流动性或低价股票,看似微不足道的价差可能占股价的较大比例,上方的小盘股数据行就体现了这一点。
- 减少买卖往返次数可以降低交易成本。 每次完整的买入和卖出会支付一次spread;总成本会随持仓换手频率上升。
买卖价差常见问题
什么样的买卖价差算合理?
没有统一的官方标准,但上表可以说明大致范围:在测量窗口内,SPY的典型价差约为股价的0.3个基点,Tesla为2.1个基点;成交清淡的小盘股则达到132.5和82.4个基点。个位数基点通常意味着价差较窄;当价差超过股价的约1%时,限价单的优势就更加明显。
谁获得买卖价差?
提供报价的一方通常是做市商。当其买卖两侧的报价都成交时,做市商就能赚取价差。这是其随时准备交易所获得的补偿,并不是您的经纪商或交易所收取的费用。
买卖价差较大是好事还是坏事?
价差较大会提高您完成一轮买卖的成本,上表中的100股成本栏说明了这一点。较大的价差还反映出市场信息:提供报价的参与者较少,最近成交价对于您的订单实际成交价格而言,是一个更宽泛、准确性更低的估计。
为什么卖价高于买价?
这是买卖报价的定义所决定的。买价是买方愿意支付的最高价格,卖价是卖方愿意接受的最低价格;两者一旦相交,交易所就会立即撮合成交,报价也会随之更新。持续存在的报价中,卖价始终大于或等于买价。
买卖价差对长期投资者重要吗?
其重要性低于对活跃交易者的重要性,数据也显示了差异:SPY完成一轮100股交易时,典型价差成本为$2.00。十年支付一次,这点成本几乎可以忽略;但如果每周都承担成交清淡股票的价差,长期累积下来就会成为一笔实际成本。
以上每个数字都来自可存储、可检查的查询。您可以展开任意面板下方的SQL进行审核。若要测量您持有股票的价差,请在Strasmore终端中用自然语言提出相同问题。