读懂价格:在售价、求购价与 NBBO
如何理解 API 返回的各个价格字段。
在售价 vs 求购价
ask(在售价)是当前最低的卖出报价——立即买入要付的价格;bid(求购价)是当前最高的求购单——立即卖出能收到的价格。价差 = 在售价 − 求购价。
NBBO
NBBO(全市场最优买卖价)是在所有已接入市场中同时取得的最优在售价与最优求购价,而非单一市场内部的最优价。bestAsk 与 bestBid 各自标明来源市场。spreadBps 以基点表示价差(100 基点 = 1%)。
在默认(全市场)视图中,NBBO 的 bestBid 仅统计可现金变现的市场(真正以现金结算的平台)。Steam 钱包余额与以物易物额度类平台默认被排除,因为它们的求购价以非现金余额计价,会产生经济意义上失真的交叉盘口。显式传入 markets CSV 可覆盖此规则,逐字采信所请求平台的求购价。/v1/pricing、饰品搜索与定价建议的 bestBid 采用同样的默认规则,因此除非传入 markets,它们与 NBBO 一致。
spreadBps 与置空规则
/v1/nbbo 与 /v1/pricing 的 spreadBps 在缺少任一边时为 null;当其超过 10000 基点(±100%)时也会被置为 null——这几乎总意味着过期或异常的求购价。两者在交叉盘口(求购价高于在售价)时不同:/v1/nbbo 保留负价差并设置明确的 crossed 标志,而 /v1/pricing、饰品搜索与定价建议返回 spreadBps: null。注意 /v1/nbbo/depth 的 spreadBps 不做裁剪,可能很大或为负。
执行调整后的 NBBO
原始 bestAsk / bestBid 是标价。/v1/nbbo 上可为 null 的 executionAdjusted 块会按实际支付(在售价 + 买家手续费)与实际净收(求购价 − 佣金 − 提现费)重新对各平台排序,并按新鲜度与深度以 executability 折价系数缩放,同时给出自己的 spreadBps 与 executableConfidence。展示价差用原始 NBBO;真实执行价差用 executionAdjusted。
是美分,不是美元
所有价格字段都是整数美分,1550 表示 $15.50。只在展示时除以 100,避免浮点误差累积。
locked 与 crossed
locked 为 true 表示最优求购价等于最优在售价(零价差)。crossed 为 true 表示最优求购价在扣除卖方平台预估佣金后仍高于最优在售价:一种短暂的跨市场倒挂,通常意味着一边的报价先于另一边过期。仅在扣费前更高的求购价不会触发该标志,因此原始 spreadBps 可能为负而 crossed 仍为 false。两者都是标志位,便于你过滤或折价处理这类读数。