考察候选人是否能把订单类型和资金冻结逻辑讲清楚,并能覆盖费用缓冲和价格改善释放。
按限价买、限价卖、市价卖、按金额市价买、按数量市价买分别说明。
限价买单通常冻结 limitPrice * quantity 加预估手续费,因为买方最多按限价成交。限价卖单冻结要卖出的基础币数量。
市价卖单语义相对直接,冻结用户要卖出的基础币数量。按金额市价买则冻结用户输入的计价币预算和费用缓冲。
按数量市价买最复杂,因为没有固定成交价格,不能简单使用最新成交价冻结。常见方案是根据盘口深度计算预计最坏成交额,或使用指数价/标记价加最大滑点生成保护价,再冻结保护价 * 数量 + 手续费缓冲。
成交后按实际成交额扣减 frozen,多冻结的计价币和费用缓冲释放回 available;撤单或剩余取消时释放未使用冻结。
为什么余额变化必须写不可变账本流水,而不能只改余额表?