jOpenExchg 更新了集合竞价代码

这一版本中的集合竞价算法完全被重写了,原因是找到了一个非常简洁高效的新算法。

 

1. 从买盘最高价开始,逐个去吃掉最低价开始的卖单,一直到不可成交为止。

 

2. 如果步骤1无法产生任何成交,表明订单簿一开始就不处于交叉状态,不能单靠集合竞价产生价格,算法终止。否则记住最后一笔成交的买盘价格LB,最后一笔成交的卖盘价格LS。【我们有LB >= LS 成立】

 

3.得到这时幸存卖盘的最低价(队首价格) HS。如果不存在卖盘,令HS = +∞ ;得到此时幸存买盘的最高价(队首价格)HB。如果不存在买盘,令HB = -∞

【我们有HS >= HB, LB>=HB, HS >= LS 成立】

 

4. P1 = MIN(LB, HS), P2 = MAX(LS, HB)。

【我们很容易证明 P1 >= P2 成立,方法是画一个2X2的矩阵,上面一行填写 LB, HS, 下面一行填写LS, HB, 上面一行的每一个元素都>=下面一行的任何一个元素】

 

5. 如果 P1 == P2 则此即唯一的集合竞价价格; 

 

如果P1 > P2,那么我们就得到了可供下一步比较P1, P2档位上未成交量的那一对集合竞价价格

 

算法的正确性可以在数学上严格证明,但这里就不写出来了。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值