在链上做一笔限价交易,最常见的意外不是失败,而是半成交:你想卖一个数,界面显示成交了一部分,订单还挂在簿上。要看懂这个状态,先得弄清你站在哪种成交结构里。自动做市商池子永远在线,任何数量按公式立刻换给你,几乎不存在部分成交;订单簿式撮合、批量拍卖和询价系统里,你的对手盘是其他用户或做市合约,价格与数量必须同时匹配才有成交,撮合引擎按簿内优先级逐笔吃掉深度,吃多少算多少,剩余继续挂着。
部分成交通常来自三种情形。第一种是簿内深度不够:你的量在最优价位上没人接足,撮合只能吃掉现有挂单,剩下部分等后来的对手单。第二种是批量撮合的出清量限制:一些协议把一段时间内的单攒成一批统一结算,批内买卖不平衡时,超出可匹配部分的量按规则退回或留在簿上等下一批。第三种是系统主动拆单:为了把大额订单拆成多笔小额减少价格影响,每一腿可能只有部分回报成功,剩下腿超时失效。三种情形的共同点是:已成交部分是最终结果,不会因为你撤单而撤销;未成交部分是你的选择权,继续挂或撤走,都各自有成本。
于是剩下的挂单要算三笔账。第一笔是资金占用账:挂单意味着你的资产被合约锁定,期间既不能挪作他用,也不产生收益,若该资产同时是你借贷仓位的抵押物,还要确认锁定不会改变你的可借额度与清算线——不同协议对锁定资产计入抵押的口径不一样,动手前用协议文档和链上状态核对一次。第二笔是时间与过期账:链上订单多数带过期字段,过期后由合约自动作废,无需操作但也不会自动提醒你;有些簿式协议需要任何人触发一次取消动作才真正释放资金,所谓自动过期可能只是逻辑上不再可成交。第三笔是撤单费与重挂账:撤单是一笔链上交易,要付 gas;价格移动后撤单重挂,等于放弃了原优先级排队位置,重新与所有新单竞争,两次执行的价差可能大于你原本想省的滑点。
读成交回报时,把注意力放在三类字段上:已成交数量与均价、被退回数量、仍然挂着的剩余量。区块浏览器里的撮合事件与你的钱包余额变化可以互相对账——事件里写了多少笔、各笔价格,余额变化应当与加权成交净额一致,对不上就先查有没有额外路由费或代币精度问题,再下结论。重复下单之前,务必先确认旧单状态是已成交、已撤还是已过期,三个状态的处理完全不同:对已过期单再发取消是白付一笔 gas,对还活着的挂单重复下新单则可能双倍占用资金。
一份实用的下单前检查单是:先确认撮合类型(池子、订单簿、批量拍卖还是询价),再决定要不要接受部分成交这个选项——接受它通常意味着更高成交概率但更碎的执行结果;把过期时间设到你真正愿意让订单存在的窗口,别用界面默认值随手放过一个远期日期;挂单金额避开正好等于抵押上限或授权上限的边界,留出精度余量;下单后在浏览器留档订单哈希与事件页码,出现异常时这就是你与协议方沟通时唯一的硬证据。订单机制本身是中性的,亏在执行理解错位的人远比亏在价格上的人多。
风险提示:链上撮合的成交规则、过期逻辑与费用结构由协议单方设定且可能调整,部分成交结果可能与你预期不符;本文只解释机制与核算方法,不构成投资建议,不承诺任何成交结果或收益。

发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。