集合竞价和连续竞价03

转载于:https://zhuanlan.zhihu.com/p/28460782;来源:知乎;作者:量化汪

量化交易的基石不是鬼斧神工般的交易策略,而是最简单也最容易忽略的交易规则。交易的难度在于万事万物都在变,但交易的依据在于变中有不变的规律,所有相对稳定的规律中,交易规则是最重要的确定性信息,这样构成了量化交易的最基础。本文综述中国股票和期货交易所的价值生成机制、报价和指令。

一、价格生成机理

在国内官方的八大交易所(上海证券交易所、深圳证券交易所、上海期货交易所、大连商品交易所、郑州商品交易所、中国金融期货交易所、上海黄金交易所)中,价格的生成由两机制生成:集合竞价机制、连续竞价机制。

1、集合竞价机制与连续竞价机制

集合竞价是指对在规定时间内接受的买卖申报一次性集中撮合的竞价方式。开盘价和收盘价是非常关键的信息,为防止有人故意操纵开盘价或收盘价,集合竞价一般用于开盘价或收盘价的生成。就证券交易所的集合竞价时间举例,如下图所示:

1) 9:15—-9:20这五分钟开放式集合竞价可以委托买进和卖出的单子,你看到的匹配成交量可能是虚假的,这5分钟是可以撤单。

2) 9:20—9:25这五分钟开放式集合竞价可以委托买进和卖出的单子,但不能撤单,9:25由交易所统一撮合成交生成撮合价即为当天开盘价。这五分钟你看到的委托是真实的,因此要抢涨停板的,一定要看准这五分钟。

3) 9:25---9:30这五分钟不叫集合竞价时间,交易所这五分钟可接收买和卖委托,也可接受撤单,但不进行撮合交易,直到9点30分交易所进行连续竞价交易。

国内七大交易所的交易时间不尽相同,金融期货和证券类没有夜盘,商品期货和贵金属都有夜盘交易,大致交易时间如下图,具体时间请参考交易所网站。

经过集合竞价生成开盘价后,进入连续竞价交易时段,投资者可以自由报单,交易所按价格优先时间优先的方式撮合成交。

2、价格撮合原理

上面简单介绍了集合竞价和连续竞价,接下来就详细介绍交易所怎么来撮合买卖双方从而生成价格。

在介绍价格撮合之前,先简单介绍下,投资者委托的订单的流转过程。首先,投资者通过炒股软件或者期货软件获取行情信息并进行下单,订单经过网络到达证券公司或期货公司就进的服务器,再经证券公司或期货公司的内部网络转往交易所,交易所在各证券公司间进行轮询获取订单信息。所以,交易订单要在交易所靠前,首先在券商营业部的排队就得靠前,另外看交易所轮询的运气了,或通过多个营业部同时报单也是一个尝试的办法。补充网上的一个图就清楚了。

当订单到达交易所后,交易所按价格优先和时间优先的规则生成“委买订单薄”和“委卖订单薄”。

1、集合竞价撮合

集合竞价撮合原则—最大成交量原则,在集合竞价时间段,交易所不会立即撮合成交而是等所有订单不断的申报,在最后一个时间点进行统一撮合成交。交易所在进行集合竞价撮合时采用最大成交量的原则,即以此价格作为成交价能够得到最大的成交量。高于集合竞价的买订单和低于集合竞价的卖订单全部成交,等于集合竞价的买入和卖出申报按少的一方申报量继续撮合成交,从而能达到公平公正的最大成交量。

2、连续竞价撮合

连续竞价撮合跟集合竞价撮合就完全不一样了。连续竞价是指对买卖申报逐笔连续撮合的竞价方式,投资者连续报单指令到达交易所时,交易所按价格优先时间优先生成“委买队列”和“委卖队列”,如果满足撮合条件,则会立即成交。

1)交易所将申报订单生成委买和委卖订单队列。当最高买价和最低卖价交叉或相同时,交易所即撮合此笔交易。

2)订单在交易所订单队列中的顺序按“价格优先,时间优先”的原则进行排列。

当达到撮合条件时,交易所撮合成交,对于成交价的设定,国内交易所主要分为证券类品种和期货类品种,它们的相关品种的成交价生成原则有微小的区别。

1)证券类相关品种的成交价格

a、最高买入申报价格与最低卖出申报价格相同,以该价格为成交价格

b、买入申报价格高于即时揭示的最低卖出申报价格的,以即时揭示的最低卖出申报价格为成交价格

c、卖出申报价格低于即时揭示的最高买入申报价格的,以即时揭示的最高买入申报价格为成交价格

简单的说,如果买价和卖价相等的情况下撮合成交,就以这个价为成交价;如果是买价大于卖价造成的撮合成交,就以被动成交的订单价作为成交价。

2)期货类相关品种的成交价格

当买入价大于、等于卖出价则自动撮合成交,撮合成交价等于买入价(bp)、卖出价(sp)和前一成交价(cp)三者中居中的一个价格。即:

当bp>=sp>=cp,最新成交价=sp

当bp>=cp>=sp,最新成交价=cp

当cp>=bp>=sp,最新成交价=bp

由于期货品种的价格波动相对于证券类品种波动更大,所以采用了中间值的定价方法,也就是买入价,卖出价,上一笔成交价三者的中间价,也保证了价格更加连续稳定。

二、行情报价机制

上一部分讲了集合竞价,连续竞价和价格生成的原理,这一部分讲讲行情,交易所是怎么发布行情的,投资者是怎么拿到行情的。

国内证券类和期货类品种的行情均统一由交易所按照一定的标准发布,经券商或期货公司柜台再发布到用户端。行情内容由交易所定时扫描最新成交价,累计成交量,累计成交额等统计值再加上委买队列和委买队列的信息。证券类一般为3s一个Tick,期货频率高些500ms一个tick。下图为行情拓扑结构。

下表为各类标准行情的参数信息

注:标准tick包含的字段有“证券代码、证券简称、前收盘价格、最新成交价格、当日最高成交价格、当日最低成交价格、当日累计成交数量、当日累计成交金额、实时最高五个买入申报价格和数量、实时最低五个卖出申报价格和数量”等。

三、交易指令细节

说完价格与撮合以及行情的细节,那最后一部分就是交易指令。交易指令是由交易所给投资者提供的可以进行下单交易的方式,用的最多的交易指令是限价指令,限价指令保证了订单的成交价格。另外一些比较便捷的交易指令能极大的降低投资者的下单逻辑,比如市价指令可以让投资者以较低的成本换取更快速的成交,一些复杂的投资策略则需要更专业的交易指令,比如套利指令可以让投资者一个下单指令同时成交两个合约标的。对交易指令的熟悉和灵活应用是投资者非常重要的基本功。

详细的其他指令请参考下表。

### 关于 MiniQMT 集合竞价 MiniQMT 是一款轻量级量化交易平台,支持多种交易策略开发与回测。对于集合竞价功能而言,在该平台中实现了较为灵活的模拟机制[^1]。 #### 实现方式 为了实现集合竞价逻辑,MiniQMT 主要通过以下几种手段: - **订单簿管理**:创建虚拟订单簿来记录所有参与集合竞价阶段提交买单卖单的信息。这包括价格、数量以及时间戳等字段。 - **撮合算法设计**:采用最大成交量原则进行撮合计算,即寻找能够使买卖双方成交总量最大的匹配方案;当存在多个可能解时,则优先考虑最早下单者完成部分或全部交易。 - **数据同步处理**:确保本地缓存的数据能及时更新至最新状态,并且在正式开盘前将最终确定的价格推送出去供后续正常连续竞价时段使用。 ```python def match_orders(buy_orders, sell_orders): buy_orders.sort(key=lambda x: (-x.price, x.time)) sell_orders.sort(key=lambda x: (x.price, x.time)) matched_trades = [] while buy_orders and sell_orders: best_buy = buy_orders[0] worst_sell = sell_orders[-1] if best_buy.price >= worst_sell.price: trade_price = min(best_buy.price, worst_sell.price) traded_volume = min(best_buy.volume, worst_sell.volume) # Record the trade details. matched_trades.append({ 'price': trade_price, 'volume': traded_volume, 'buyer_id': best_buy.id, 'seller_id': worst_sell.id }) # Update remaining volumes or remove fully filled orders. if best_buy.update_volume(-traded_volume) == 0: del buy_orders[0] if worst_sell.update_volume(-traded_volume) == 0: del sell_orders[-1] elif best_buy.price < worst_sell.price: break return matched_trades ``` 此代码片段展示了简化版的撮合过程,实际应用中的情况会更加复杂并涉及更多细节优化。 #### 使用说明 用户可以在编写自己的交易策略时调用相应接口来进行集合竞价操作。具体来说就是按照官方文档指导定义好所需参数之后传入函数执行即可获得预期效果。通常情况下还会配合其他辅助工具一起工作以便更好地控制风险敞口水平。 #### 文档指引 虽然当前获取到的具体链接指向了一篇博客文章而非官方手册本身,但从其中可以了解到不少关于如何上手 MiniQMT 的实用技巧。建议访问项目主页或者加入社区交流群组以获得更多一手资料支持服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值