集体竞价是股票交易中的一种重要竞价方式,它通过集合竞价的方式,将投资者的买卖指令进行汇总,以确定股票的开盘价。以下是关于集体竞价的核心模型及其解析:
一、什么是集体竞价
集体竞价是指在规定的时间内,所有投资者可以提交买卖指令,交易所将按照一定的规则对所有指令进行汇总,最终确定一个价格,这个价格即为股票的开盘价。
二、集体竞价的特点
- 时间集中:集体竞价的时间通常为每个交易日的9:15至9:25。
- 价格确定:通过所有有效买卖指令的汇总,确定一个价格。
- 规则严格:遵循一定的规则,如价格优先、时间优先等。
三、九大核心模型图解
1. 价格优先模型
图解:价格优先模型是指在有效买卖指令中,价格较高的买入指令优先成交,价格较低的卖出指令优先成交。
代码示例:
def price_priority(buy_orders, sell_orders):
# 对买入和卖出指令按价格降序排序
buy_orders.sort(key=lambda x: x['price'], reverse=True)
sell_orders.sort(key=lambda x: x['price'])
成交列表 = []
for buy_order in buy_orders:
for sell_order in sell_orders:
if buy_order['price'] >= sell_order['price']:
# 成交
成交列表.append((buy_order, sell_order))
break
return 成交列表
2. 时间优先模型
图解:时间优先模型是指在价格相同的情况下,先提交的指令优先成交。
代码示例:
def time_priority(buy_orders, sell_orders):
# 对买入和卖出指令按时间排序
buy_orders.sort(key=lambda x: x['time'])
sell_orders.sort(key=lambda x: x['time'])
成交列表 = []
for buy_order in buy_orders:
for sell_order in sell_orders:
if buy_order['price'] == sell_order['price']:
# 成交
成交列表.append((buy_order, sell_order))
break
return 成交列表
3. 涨停板模型
图解:涨停板模型是指在股票价格上涨至涨停价时,所有高于涨停价的买入指令无效,低于或等于涨停价的卖出指令有效。
代码示例:
def limit_up(buy_orders, sell_orders, limit_price):
成交列表 = []
for buy_order in buy_orders:
if buy_order['price'] <= limit_price:
for sell_order in sell_orders:
if sell_order['price'] <= limit_price:
# 成交
成交列表.append((buy_order, sell_order))
break
return 成交列表
4. 跌停板模型
图解:跌停板模型是指在股票价格下跌至跌停价时,所有低于跌停价的卖出指令无效,高于或等于跌停价的买入指令有效。
代码示例:
def limit_down(buy_orders, sell_orders, limit_price):
成交列表 = []
for buy_order in buy_orders:
if buy_order['price'] >= limit_price:
for sell_order in sell_orders:
if sell_order['price'] >= limit_price:
# 成交
成交列表.append((buy_order, sell_order))
break
return 成交列表
5. 大单模型
图解:大单模型是指在交易中,单笔交易量较大的订单优先成交。
代码示例:
def large_order(buy_orders, sell_orders):
成交列表 = []
for buy_order in buy_orders:
for sell_order in sell_orders:
if buy_order['volume'] > sell_order['volume']:
# 成交
成交列表.append((buy_order, sell_order))
break
return 成交列表
6. 小单模型
图解:小单模型是指在交易中,单笔交易量较小的订单优先成交。
代码示例:
def small_order(buy_orders, sell_orders):
成交列表 = []
for buy_order in buy_orders:
for sell_order in sell_orders:
if buy_order['volume'] < sell_order['volume']:
# 成交
成交列表.append((buy_order, sell_order))
break
return 成交列表
7. 价格波动模型
图解:价格波动模型是指在交易中,价格波动较大的订单优先成交。
代码示例:
def price_fluctuation(buy_orders, sell_orders):
成交列表 = []
for buy_order in buy_orders:
for sell_order in sell_orders:
if abs(buy_order['price'] - sell_order['price']) > 1:
# 成交
成交列表.append((buy_order, sell_order))
break
return 成交列表
8. 时间波动模型
图解:时间波动模型是指在交易中,时间波动较大的订单优先成交。
代码示例:
def time_fluctuation(buy_orders, sell_orders):
成交列表 = []
for buy_order in buy_orders:
for sell_order in sell_orders:
if abs(buy_order['time'] - sell_order['time']) > 1:
# 成交
成交列表.append((buy_order, sell_order))
break
return 成交列表
9. 综合模型
图解:综合模型是指在交易中,综合考虑价格、时间、大单、小单等因素,优先成交。
代码示例:
def comprehensive_model(buy_orders, sell_orders):
成交列表 = []
for buy_order in buy_orders:
for sell_order in sell_orders:
if buy_order['price'] >= sell_order['price'] and \
buy_order['time'] <= sell_order['time'] and \
buy_order['volume'] > sell_order['volume']:
# 成交
成交列表.append((buy_order, sell_order))
break
return 成交列表
四、总结
本文详细解析了集体竞价中的九大核心模型,通过代码示例展示了每种模型的实现方法。这些模型在实际交易中具有重要作用,有助于投资者更好地理解集体竞价机制,提高交易效率。
