跳到内容

交易

撮合引擎

撮合引擎决定哪些订单相互成交。本页介绍优先规则、暂停触发条件、重启行为以及引擎执行的公平性不变量。

价格优先、时间优先

新订单到达时,引擎将其与订单簿中最优的对手方订单撮合。最优首先由价格定义,价格相同则按时间排序。

  • 价格更优的先成交——更高的买价对卖方更有利。
  • 价格相同时按时间排序——更早的订单优先成交。
  • 成交价格来自挂单,而非来单。

暂停触发条件

三种情况可导致市场撮合停止。暂停期间,引擎拒绝新订单并冻结挂单。

触发条件影响恢复方式
熔断机制——价格波动超过 30% 暂停新订单,冻结挂单,通知用户。 管理员审核后手动恢复。
裁决暂停——裁决前锁定 暂停后推进市场结算。结算后市场关闭。
平台维护窗口 在短暂窗口内拒绝订单并返回明确错误码。 窗口期结束后自动恢复。

重启期间发生了什么

引擎重启很少见但确实存在。SatoriEx 以确定性方式重放订单簿;用户在写操作上会遇到短暂中断,读操作不受影响。

  1. API 以临时错误码拒绝新订单。
  2. 从持久存储加载现有挂单。
  3. 订单簿状态重放至最后提交的序列号。
  4. 撮合恢复;被拒绝的客户端应使用相同的幂等键重试。

公平性不变量

引擎绝不允许任何订单在相同价格下超过更早的订单成交。任何订单,包括平台初始流动性,均无优先权——订单不携带快速通道标志。

使用幂等键

每次 POST /orders 调用接受 Idempotency-Key 请求头。在重启和网络波动期间,这使您可以安全重试而不会重复仓位。