交易
撮合引擎
撮合引擎决定哪些订单相互成交。本页介绍优先规则、暂停触发条件、重启行为以及引擎执行的公平性不变量。
价格优先、时间优先
新订单到达时,引擎将其与订单簿中最优的对手方订单撮合。最优首先由价格定义,价格相同则按时间排序。
- 价格更优的先成交——更高的买价对卖方更有利。
- 价格相同时按时间排序——更早的订单优先成交。
- 成交价格来自挂单,而非来单。
暂停触发条件
三种情况可导致市场撮合停止。暂停期间,引擎拒绝新订单并冻结挂单。
| 触发条件 | 影响 | 恢复方式 |
|---|---|---|
| 熔断机制——价格波动超过 30% | 暂停新订单,冻结挂单,通知用户。 | 管理员审核后手动恢复。 |
| 裁决暂停——裁决前锁定 | 暂停后推进市场结算。 | 结算后市场关闭。 |
| 平台维护窗口 | 在短暂窗口内拒绝订单并返回明确错误码。 | 窗口期结束后自动恢复。 |
重启期间发生了什么
引擎重启很少见但确实存在。SatoriEx 以确定性方式重放订单簿;用户在写操作上会遇到短暂中断,读操作不受影响。
- API 以临时错误码拒绝新订单。
- 从持久存储加载现有挂单。
- 订单簿状态重放至最后提交的序列号。
- 撮合恢复;被拒绝的客户端应使用相同的幂等键重试。
公平性不变量
引擎绝不允许任何订单在相同价格下超过更早的订单成交。任何订单,包括平台初始流动性,均无优先权——订单不携带快速通道标志。
使用幂等键
每次 POST /orders 调用接受 Idempotency-Key 请求头。在重启和网络波动期间,这使您可以安全重试而不会重复仓位。