LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资产 > 交易撮合引擎设计

交易撮合引擎设计

2020-07-31 汪涛 来源:区块链网络

交易撮合引擎(Matching/Trading Engine)是所有二级市场电子盘的最核心功能,交易所的存在就是为了撮合。
撮合引擎有两个特点,第一,严格时序,哪怕是到纳秒级别,所以撮合引擎严格单点,第二,对速度的要求高,大部分会选择在内存中进行撮合,也就是内存表。交易引擎可以简化成四张表。bidbook,askbook,tradebook,orderstreambook。
最基础的交易引擎只处理基础撮合功能,即limit order和market order,类stoploss的功能和liquidation的功能,应该在外围对orderbook这张表完成触发,
本质上高级订单,和爆仓清算保证金也就是插入一个新的订单到orderstreambook 待处理。手续费在生成tradebook记录的时候完成,交易所永远收base symbol作为手续费。
订单流,严格时序,我们熟悉的下单过程,"时间,symbol,方向,限价市价,价格,数量",其它高级订单,本质等于外置触发加入订单流。
严格按时序处理订单,先检查是否撮合,不撮合按价格,插入或者删除askbook或bidbook中的一列数据。
askbook+bidbook,就是我们看到的orderbook,撮合就是看价格与数量,正在处理的order+orderbook完成撮合,Book先按价格再按时间排序,因此如果撮合,按最近价格直到数量相对。
tradebook 记录成功match的订单,应该是需要支持,一笔对多笔撮合的这样一种形式。记录处理的订单,match掉的订单数量,分别match的价格,分笔的手续费。手续费记录在tradebook中。
向外始终是一个push的stream,tradebookpush新插入的数据,orderbook 向外push 最近完成的插入/删除数据,对外表现为设置未成交limit单和撤单。
这就是所以KDB+/q如此的贵,这东西就是完全按照做撮合的标准设计的。

—-

编译者/作者:汪涛

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...