
先固定委托数量,再比较处理条件
阅读区块链高级限价资料时,可以把限价与有效条件分开理解。限价约束可接受的成交价格,有效条件则决定委托怎样继续或终止。本文讨论交易平台订单簿中的GTC、IOC、FOK,不把这些名称当作区块链共识规则,也不据此推荐选择某种委托方式。
以下设定完全虚构:一笔限价委托数量为八份,进入撮合时,在其价格限制内可立即匹配五份。假设资金、产品状态及其他约束均满足,也不存在自成交阻止等额外干扰。三种情况分别从同一状态开始比较,而不是把一笔真实订单连续修改三次。
GTC保留余量,IOC结束未成交部分
Coinbase Exchange说明,GTC是持续有效直至取消的默认条件。按上述教学设定,五份可以先成交,剩余三份继续留在订单簿等待后续匹配。保留的是尚未成交的数量;已经成交的五份不会因为还存在余量,就变成等待状态。后续何时能够全部成交,单靠GTC这个字段无法确定。
IOC允许立即完成能够完成的部分,并把剩余数量取消。在同一设定下,结果是成交五份、取消三份,订单簿中不会因此留下那三份继续等待。它的重点不是要求每次都全量成交,也不是等一段固定时长再发起人工撤单,而是预先规定未立即匹配部分的处理方式。

FOK要求全量条件一次成立
FOK要求整笔数量立即具备成交条件,否则整笔结束。八份委托面前只有五份可匹配时,不能先成交五份,再把三份作为普通余量取消。Coinbase对此使用无法全量匹配则拒绝的表述;Kraken当前文档则写明立即全量执行或整笔取消,两者在这一条件下都不允许只完成部分数量。
将设定改成当下没有任何符合条件的对手数量,也能看出差别:GTC可以留下八份等待,IOC没有成交部分且全部取消,FOK同样不会留下八份继续等待。因此,只看到某次成交量为零,还不能反推出用了哪种有效条件;需要把原始条件与后续是否保留委托一起理解。
对照具体接口,不把立即写成测速结论
两组原始资料的字段拼写不同:Coinbase Exchange使用time_in_force,Kraken现货接口使用timeinforce。本轮读取时,两者都明确列有GTC、IOC和FOK。阅读旧笔记或其他产品说明时,仍应逐项核对当前接口支持的值,不能因为中文都叫高级限价,就直接复制整套参数。
这里的立即描述的是执行条件,不是承诺用户点击后若干毫秒一定完成。是否允许部分成交、是否保留剩余数量,才是本文比较的两个维度。例子没有查询真实订单簿,也没有发送委托;页面里的定时失效、请求截止时间和其他附加选项应按各自定义阅读,不能代替这三类规则。