Skip to main content
交易者有时看着一笔已成交的订单,觉得成交价格不对;或者看着盈亏那一行,觉得数字和自己手算的对不上。本页说明这类差异通常从哪里来;如果读完你仍然认为是真的 bug,也说明该把什么发给我们。

撮合大致是怎么进行的

Intention 上的订单在 IntentionKernel 内部撮合,撮合场地是中央限价订单簿,规则是严格的价格-时间优先。排序是确定的:链的每一个副本都会复现出相同的消息顺序,因而得到相同的成交序列。完整说明见订单交易分发器一页,状态机视角见 IntentionKernel 一页。就成交类工单而言,关键性质是:不存在私有订单流优势,也不存在链下撮合引擎;你的订单和与它成交的那笔订单,都被记录在规范的区块流里。

成交价格为什么会和屏幕上的价格不同

你点击“buy”那一刻屏幕上的数字,不是你成交时的数字,这很正常。
  • 滑点:市价单或可立即成交的限价单会沿着订单簿逐档吃进,直到吃满全部数量,或者顶到限价上限。盘口一薄,实际均价可能明显差于你片刻前看到的最优报价。
  • 中途插入的成交:别人的订单可能落在同一个区块里,也可能落在你上一次刷新界面和包含你订单的那个区块之间。这些成交吃掉了流动性,你这笔订单的实际价格也就变了。
  • 快照与提交之间的延迟:屏幕上的价格是一张快照;等你的订单被排序、被撮合,订单簿可能已经动了。这不是撮合器的 bug——你和链之间隔着实实在在的传输时间,本来就会这样。

未实现盈亏与已实现盈亏

  • 未实现盈亏反映的是你未平仓位按当前标记价格的盯市价值。它随标记价格连续变动,是滚动估算,不是已结算的数字。
  • 已实现盈亏是你已经平掉的那些仓位累计下来的结果。它不随标记价格动,只在你减仓或平仓时才变。
“我的盈亏算错了”这类报告,最常见的原因就是把两者混为一谈。如果你盯着看的那个数字当时还在跳,那它几乎肯定是未实现盈亏。

标记价格与最新成交价

标记价格不是最新成交价。它是平滑后的参考价,用于保证金核算、未实现盈亏、资金费和强平,构造上就是为了抵抗针对单笔成交的操纵。标记价格一页说明了它是如何构建的。最新成交价则只是最近一笔成交恰好落在的价格。两者可能背离,在快速行情中尤其如此,而这种背离是设计使然——用最新成交价来算保证金,会让强平变得极易被操纵。 资金费同样是对标记价格计算的;如果你的已实现盈亏里出现了你没预料到的资金费流水,请看资金费率。

读取逐笔成交归因

每一笔成交产生时都带着标识、价格、数量、手续费和排序位置。这些数据可以从 API 或执行流里拉。“我的订单到底经历了什么”,权威答案就是逐笔成交记录;界面上的汇总只是这些记录的便捷呈现。

如果还是不对,该发什么给我们

发邮件到 contact@intention.xyz,附上:
  • 你的订单 id,如果有的话还有成交 id。
  • 预期的价格和数量,以及这个预期是根据什么来的。
  • 应用或 API 中实际显示的价格和数量。
  • 该成交落定时的区块高度或 UTC 时间戳。
  • 一句话描述差异所在。
我们会从那个区块把撮合步骤重放一遍,带你看清引擎到底做了什么。