Algorithm 电子金融交易所最常用的订单匹配算法有哪些?
电子金融交易所最常用的订单匹配算法有哪些?Algorithm 电子金融交易所最常用的订单匹配算法有哪些?,algorithm,finance,Algorithm,Finance,电子金融交易所最常用的订单匹配算法有哪些? 某个地方有订单匹配算法列表吗?通常他们使用先进先出算法,因为它们最大化了有效订单的数量 每个交易所都有自己的一套规则,并在其网站上进行了解释。 这是一个例子。一般来说,有两组匹配算法,一组用于市场的每个状态: 连续交易 拍卖 拍卖交易有很多种算法,在开盘前、收盘时等使用。但大多数时候,市场进行连续交易。因此,我将在这里进入后一类 最常用的是价格/时间优先级和按比例。这两种方法都已针对各种类型的产品和用例进行了调整和扩展,但为了简洁起见,我在这里仅解
某个地方有订单匹配算法列表吗?通常他们使用先进先出算法,因为它们最大化了有效订单的数量 每个交易所都有自己的一套规则,并在其网站上进行了解释。
这是一个例子。一般来说,有两组匹配算法,一组用于市场的每个状态:
- 连续交易
- 拍卖
价格/时间优先级,也称为先进先出,确保 同一价格水平的所有订单均按时间优先级填写;价格水平上的第一个订单是匹配的第一个订单 假设按价格和时间排序的订单簿如下所示:
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
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
注意:对于买方订单,按时间排序的顺序为升序,对于卖方订单,按时间排序的顺序为降序,因此优先级最高的订单始终处于中间位置,优先级向外降低(向上或向下,取决于侧面)
现在想象一个新的限价指令“以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
按比例忽略下订单的时间,并根据订单的相对数量按价格水平向所有订单分配填充数量。再拿上面的初始订单,让我们匹配相同的“购买250@20.35“订单 填充物应为:
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
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小组提供了一个他们所采用的方法,并链接到每个方法的描述
有关更多信息,您可能还想查看上的“订单匹配”相关文档。谢谢。我从你的描述中了解到了发生了什么,但我对表格有点困惑——例如,在第一个表格中,当按价格和时间排序时,为什么要先显示订单#3再显示订单#1?我假设左边的两列是买单,右边的两列是卖单?无论是买还是卖都暗示在表的哪一边数量和时间是开的,但我在表中添加了买/卖指示,使其立即变得明显。我使用ID只是为了让您可以在不同的表之间关联订单。我选择ID来反映订单的提交时间(->时间列)。感谢这一改进,但我不得不说我仍然对行排序感到困惑。据我所知,你是按价格然后按时间排序的,所以所有相同价格的订单都应该按时间递增的顺序出现。因此,根据我的说法,“4”正确地先于“6”,因为它们具有相同的价格,而且“4”首先出现;但我希望1先于3,因为它们的价格相同,而且是先发生的(1的价格是9:01,3的价格是9:05)。为什么#1出现在#3之后?我同意时间顺序有点混乱。我在回答中添加了以下注释:
NB:卖方订单按时间排序的顺序是升序,买方订单按时间排序的顺序是降序,因此优先级最高的订单始终位于中间,优先级向外降低(向上或向下,取决于侧面)。
tx是一个清晰的示例。使用它作为简单Java实现的基础是给出404
。你能帮我更新一下吗?告诉我链接断了