使用Node.js CCXT通过WebSocket获价后下单,市价为何不一致?
市价买单成交价格与触发价格不符的原因解析
市价单的撮合机制本质:市价买单(
createMarketBuyOrder)的核心逻辑是直接成交订单簿中当前可用的卖单,而非严格按照你触发时的1500价格执行。当你触发订单时,若交易所卖盘里没有恰好以1500挂出的卖单,或该价位卖单量不足以覆盖你的下单金额,系统会自动依次吃下更高(或更低)价位的卖单,直到凑足你的下单量。最终成交价格会是这些卖单的加权均价,或是某一档的实际成交价,因此会出现1500.13、1499.76这类偏离触发价的结果。价格接收与订单执行的时间差:你通过WebSocket获取的1500价格,只是某一时刻的市场快照。从你看到该价格、触发订单,到订单传输至交易所并完成撮合,中间存在网络延迟、交易所处理延迟等时间差。这段时间内,订单簿的挂单情况可能已经发生变化(比如新卖单挂出、旧卖单被成交),导致实际成交价格偏离触发时的价格。
市场流动性的影响:如果该加密货币交易对的流动性不足(挂单总量少),哪怕小额买单也可能快速吃掉多档卖单,造成明显滑点;即便流动性充足,也可能因瞬间的挂单变化出现细微的价格偏差。
下单金额的影响:若你的下单金额较大,1500价位的卖单量无法承接全部订单,系统会继续吃更高价位的卖单,最终成交均价会高于1500;反之,若下单前刚好有大量低价卖单挂出,也可能成交在低于1500的价格。
内容的提问来源于stack exchange,提问作者aspirinemaga
相关产品推荐
相关产品推荐

