哪些是电子金融交易最常用的订单匹配算法?

时间:2012-10-28 19:08:01

标签: algorithm finance

哪些是电子金融交易最常用的订单匹配算法? 某处是否有订单匹配算法列表?

2 个答案:

答案 0 :(得分:66)

一般来说,有两组匹配算法,一组针对每个市场状态:

  • 持续交易
  • 拍卖

拍卖交易有很多种算法,可以在市场开盘前,市场收盘时使用。但大部分时间,市场都在进行持续交易。因此,我会在这里进入后一类。

最常用的是价格/时间优先 Pro-Rata 。两者都针对各种类型的产品和用例进行了调整和扩展,但为了简洁起见,我将仅在此解释基础知识。

<小时/> 价格/时间优先,又名 FIFO ,确保

  

根据时间优先级填写相同价格水平的所有订单;价格水平的第一个订单是第一个匹配的订单。

按订单簿排序,按价格和时间排序如下:

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                       

注意:按时间排序的顺序是买方订单的升序和卖方订单的降序,因此优先级最高的订单始终位于中心,优先级向外递减(向上或向下,取决于一边)。

现在假设有一个新的限价单“以20.35 购买250股”,然后它将按此顺序填写:

  1. 100.25股20.25(订单#2)
  2. 在20.30(第1号订单)发行100股
  3. 股票在20.30(第3号订单)
  4. 这使订单簿处于以下状态:

    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                       
    

    <小时/> Pro-Rata 忽略订单下达的时间,并根据相对数量以价格水平向所有订单填充数量。再拍上面的初始订单,让我们匹配相同的“购买250@20.35 ”订单。

    填充将是:

    1. 100@20.25(订单#2,离开150)
    2. 50@20.30(订单#1,150 x 1/3 = 50)
    3. 100@20.30(订单#3,150 x 2/3 = 100)
    4. 离开以下订单:

      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                       
      

      <小时/> CME小组提供他们使用的list of matching algorithms,并链接到每个小组的描述。

      有关更多信息,您可能还需要查看Rajeev's pages上的“订单匹配”相关文档。

答案 1 :(得分:5)

通常他们使用先进先出种算法,因为它们可以最大化有效订单的数量。

每个交易所都有自己的一套规则,这些规则在其网站中有说明。 这一个here就是一个例子。