强平与风控
已读取的关键入口
coinex-contract-match/contract-match-provider/src/main/java/com/exch/contract/match/mq/LastPriceMessageListenerOrderly.javacoinex-contract-match/contract-match-provider/src/main/java/com/exch/contract/match/service/ContractForcedEngineManager.javacoinex-contract-match/contract-match-provider/src/main/java/com/exch/contract/match/provider/ContractForceDetailService.java
价格变化到风险扫描
LastPriceMessageListenerOrderly 中可见 forcedEngineManager.forcedScan(symbol) 调用。监听类存在和方法调用并不证明生产已注册或收到所有价格消息,需要核对注册、价格来源与消费配置。
强平处理的已发现动作
价格或风险上下文变化
→ forcedScan / verifyMargin
→ 按分支处理相关挂单和条件单
→ 强平计算、队列与 matchEngineApi.addOrder
→ 结果跟踪、强平明细与完成处理
ContractForcedEngineManager 中存在 forceCancelAllEntrust、batchCancelEntrust、强平队列、addOrder、强平明细写入及完成状态相关调用。图为职责归纳,多个动作分布在不同方法与条件分支,不认定每次扫描必经全部步骤。
普通撤单与强平撤单
ContractMatchEngineService 的普通 cancelOrder 会检查强平相关 operate 标识;同时有独立 forceCancelOrder 入口。用户主动撤单与风控强制动作不能复用未经核验的权限和状态说明。
尚待核对
风险阈值、强平价格公式、采用的具体价格、全仓逐仓规则、特殊用户分支和失败重试。风险准备金实体及 Mapper 存在不代表所有穿仓处理和损失覆盖已经实现并验证。
验证场景
价格跳变、重复扫描、撤单与成交并发、条件单与强平同时触发、强平订单部分成交、队列恢复及重复完成通知。每次对照仓位、账户、委托和风险记录。