交易撮合机制浅析 - 发明者量化
-
1、集合竟价
集合竟价是将数笔委托报价或一时段内的全部委托报价集中在一起,根据不高于申买价和不低于申卖价的原则产生一个成交价格,且在这个价格下成交的股票数量最大,并将这个价格作为全部成交委托的交易价格。集合竟价的基本过程如下: 设股票G在开盘前分别有5笔买入委托和6笔卖出委托,根据价格优先的原则,按买入价格由高至低和卖出价格由低至高的顺序将其分别排列如下:
序号委托买入价数量(手)序号委托卖出价数量(手)
按不高于申买价和不低于申卖价的原则,首先可成交第一笔,即3.80元买入委托和3.52元的卖出委托, 若要同时符合申买者和申卖者的意愿,其成交价格必须是在3.52元与3.80元之间, 但具体价格要视以后的成交情况而定。这对委托成交后其它的委托排序如下:
序号委托买入价数量(手)序号委托卖出价数量(手)
在第一次成交中,由于卖出委托的数量多于买入委托,按交易规则,序号1的买入委托2手全部成交, 序号1的卖出委托还剩余3手。 第二笔成交情况:序号2的买入委托价格为不高于3.76元,数量为6手。 在卖出委托中,序号1—3的委托的数量正好为6手,其价格意愿也符合要求,正好成交, 其成交价格在3.60元—3.76元的范围内,成交数量为6手。应注意的是, 第二笔成交价格的范围是在第一笔成交价格的范围之内,且区间要小一些。 第二笔成交后剩下的委托情况为:
序号委托买入价数量(手)序号委托卖出价数量(手)
第三笔成交情况:序号3的买入委托其价格要求不超过3.65元,而卖出委托序号4的委托价格符合要求,这样序号3的买入委托与序号4的卖出委托就正好配对成交,其价格为3.65元,因卖出委托数量大于买入委托,故序号4的卖出委托仅只成交了4手。第三笔成交后的委托情况如下: 序号委托买入价数量(手)序号委托卖出价数量(手)
完成以上三笔委托后,因最高买入价为3.60元,而最低卖出价为3.65,买入价与卖出价之间再没有相交部分,所以这一次的集合竟价就已完成,最后一笔的成交价就为集合竟价的平均价格。剩下的其他委托将自动进入开盘后的连续竟价。 在以上过程中,通过一次次配对,成交的价格范围逐渐缩小,而成交的数量逐渐增大,直到最后确定一个具体的成交价格,并使成交量达到最大。在最后一笔配对中,如果买入价和卖出价不相等,其成交价就取两者的平均。 在这次的集合竟价中,三笔委托共成交了12手,成交价格为3.65元,按照规定,所有这次成交的委托无论是买入还是卖出,其成交价都定为3.65元,交易所发布的股票G的开盘价就为3.65元,成交量12手。 当股票的申买价低而申卖价高而导致没有股票成交时,上海股市就将其开盘价空缺,将连续竟价后产生的第一笔价格作为开盘价。而深圳股市对此却另有规定: 若最高申买价高于前一交易日的收盘价,就选取该价格为开盘价;若最低申卖价低于前一交易日的收盘价,就选取该价格为开盘价;若最低申买价不高于前一交易日的收盘价、最高申卖价不低于前一交易日的收盘价,则选取前一交易日的收盘价为今日的开盘价。
-
2、连续竟价
连续竟价的成交方式与集合竟价有很大的区别,它是在买入的最高价与卖出的最低价的委托中一对一对地成交, 其成交价为申买与申卖的平均价。现仍以股票G为例,某一时刻委托报价的排序情况如下:
序号委托买入价数量(手)序号委托卖出价数量(手)
委托买入的最高价为序号1的3.80元,卖出最低价为序车1的3.52元,这一对优先成交,其价格为两者的平均(3.80+3.52)/2,故产生的价格为3.66元,成交数量只有2手。交易所发布的即时行情为:成交价3.66元,数量2手。这一笔成交后剩余的委托报价排序情况如下:
序号委托买入价数量(手)序号委托卖出价数量(手)
第二笔,序号1的卖出价为3.52元,序号2的买入价为3.76元,这一对可以成交,成交价格为两者的平均值,价格为3.64元,数量为3手。该次成交后的委托情况为: 序号委托买入价数量(手)序号委托卖出价数量(手)
序号委托买入价数量(手)序号委托卖出价数量(手)
第三笔,序号2的卖出委托与序号2的买入委托可以成交,成交均价为3.67元,成交量1手。成交后剩下的委托情况如下:
序号委托买入价数量(手)序号委托卖出价数量(手)
以后的成交情况为:序号2的买入委托与序
序号委托买入价数量(手)序号委托卖出价数量(手)
第四笔,
序号委托买入价数量(手)序号委托卖出价数量(手)
END: 无法再成交
-
2 期货市场 、 simnow 模拟撮合
期货的撮合交易是如何成交的,市价单及限价单的成交机制?修改 最近在用simnow的模拟账号写CTP来测试策略,对期货交易所的撮合交易原则有点困惑,几个问题请教一下:
-
1.我同时下两个多单,一个单子以这一个tick的成交价加上一定的偏移量,另一个单子按照涨停价下单,最终两个单子都能成交,但是以涨停价下单的单子的成交价永远都比第一个单子要高,这是什么原因,如果实盘跑的话是不是也是这种情况,撮合的逻辑是什么样的?
-
2.由于模拟盘无法下市价单,想请问一下市价单的成交优先级是什么样的。假设这样的情况 同一时刻有三个分别买一手的买单:A.2300 B.涨停价2400 C.市价单 此时的卖单为 a.2380 1手 b.2300 1手 c.2350 1手 d.2380 1手 e. 2400 1手 交易所会如何撮合成交的?
-
3.是不是可以这么理解,市价单对多以买5价成交,以涨停价挂单是牺牲了成交价格来保证成交成功率,所以在同一时刻比起其他单子它的成交价格是最差的 同一时刻的单子: 成交成功率:涨停价挂单>市价单>小幅的限价单 成交的价格好坏:涨停价挂单<市价单<小幅的限价单修改
-
simnow的撮合是这样的
-
回复1: 首先Simnow的撮合是假撮合。不能作为成交规则的判定依据。
一般的模拟系统有两种最基本的成交规则:撮合成交,见价成交。
如果采用撮合成交。那么模拟系统里的行情是由买卖对手的委托单决定的。所以与真实系统里的行情价格是不一样的。
另一种是见价成交。行情从真实系统里取,严格遵循真实行情的走势。委托单只要符合成交价格,不需要对手盘就能成交。
据我了解Simnow应该是选择了变种的撮合成交方案。
先是遵循撮合成交的交易规则,这时行情必然出现偏移。然后在一定的时间周期(几十秒或者一分钟为一周期),强行根据实际行情纠正模拟盘的行情。
Simnow本来就是用来调试CTP-API的,不要拿来做交易规则或者策略的验证。
市价单和张跌停的委托单优先级是一样的。买单以卖一价成交,卖单以买一价成交。
只不过需要特别指出的是,这里的卖一买一价是交易所的撮合系统里最新卖一买一价,而你电脑上看到的卖一买一价是几毫秒甚至几秒前的卖一买一价。
-
回复2: SimNow只能用来验证策略逻辑大体是不是对的,如果用来测PnL,就是大坑特坑了。撮合机制不真实,时有报单超时登陆超时现象,如果你的策略交易频率略高一点的话,结果都会受到严重的影响。
按照“价格优先,时间优先”的原则撮合成交,市价单的买单以即时卖1价(最优价)撮合成交,卖单以即时买1价撮合成交
-
-