Eug*_*sky 68
一般来说,有两组匹配算法,一组针对每个市场状态:
拍卖交易有很多种算法,在市场开盘前,市场收盘时等都会使用.但大多数时候,市场会持续交易.因此,我会在这里进入后一类.
最常用的是价格/时间优先和Pro-Rata.两者都针对各种类型的产品和用例进行了调整和扩展,但为了简洁起见,我将仅在此解释基础知识.
所有相同价格水平的订单均按时间优先顺序填写; 价格水平的第一个订单是第一个匹配的订单.
说订单簿,按价格和时间排序如下:
Id Side Time Qty Price Qty Time Side
---+------+-------+-----+-------+-----+-------+------
#3 20.30 200 09:05 SELL
#1 20.30 100 09:01 SELL
#2 20.25 100 09:03 SELL
#5 BUY 09:08 200 20.20
#4 BUY 09:06 100 20.15
#6 BUY 09:09 200 20.15
Run Code Online (Sandbox Code Playgroud)
注意:按时间排序的顺序是买方订单的升序和卖方订单的降序,因此优先级最高的订单始终位于中心,优先级向外递减(向上或向下,取决于方面) .
现在假设有一个新的限价单" 以20.35买入250股 ",然后按顺序填写:
这使订单簿处于以下状态:
Id Side Time Qty Price Qty Time Side
---+------+-------+-----+-------+-----+-------+------
#3 20.30 150 09:05 SELL
#5 BUY 09:08 200 20.20
#4 BUY 09:06 100 20.15
#6 BUY 09:09 200 20.15
Run Code Online (Sandbox Code Playgroud)
填充将是:
离开以下订单簿是这样的:
Id Side Time Qty Price Qty Time Side
---+------+-------+-----+-------+-----+-------+------
#3 20.30 100 09:05 SELL
#1 20.30 50 09:01 SELL
#5 BUY 09:08 200 20.20
#4 BUY 09:06 100 20.15
#6 BUY 09:09 200 20.15
Run Code Online (Sandbox Code Playgroud)
有关更多信息,您可能还想查看Rajeev页面上的"订单匹配"相关文档.