引言
集合竞价作为股票市场的重要环节,其定价机制一直是投资者关注的焦点。本文将揭秘集合竞价的八大模型,帮助投资者更好地理解市场定价的奥秘。
一、集合竞价基本概念
集合竞价是指在规定的时间内,所有买卖申报集中撮合,以确定开盘价的交易方式。在我国,集合竞价时间为每个交易日的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'])
# 撮合成交
成交订单 = []
while buy_orders and sell_orders:
if buy_orders[0]['price'] >= sell_orders[0]['price']:
成交订单.append((buy_orders.pop(0), sell_orders.pop(0)))
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'])
# 撮合成交
成交订单 = []
while buy_orders and sell_orders:
if buy_orders[0]['time'] <= sell_orders[0]['time']:
成交订单.append((buy_orders.pop(0), sell_orders.pop(0)))
return 成交订单
3. 成交量优先模型
该模型以成交量优先为原则,即成交量最大的订单优先成交。
def volume_priority(buy_orders, sell_orders):
# 对买卖订单按成交量排序
buy_orders.sort(key=lambda x: x['volume'], reverse=True)
sell_orders.sort(key=lambda x: x['volume'], reverse=True)
# 撮合成交
成交订单 = []
while buy_orders and sell_orders:
if buy_orders[0]['volume'] >= sell_orders[0]['volume']:
成交订单.append((buy_orders.pop(0), sell_orders.pop(0)))
return 成交订单
4. 价格优先+时间优先模型
该模型结合价格优先和时间优先原则,优先成交价格高且时间早的订单。
def price_time_priority(buy_orders, sell_orders):
# 对买卖订单按价格和时间排序
buy_orders.sort(key=lambda x: (x['price'], x['time']), reverse=True)
sell_orders.sort(key=lambda x: (x['price'], x['time']))
# 撮合成交
成交订单 = []
while buy_orders and sell_orders:
if buy_orders[0]['price'] >= sell_orders[0]['price']:
成交订单.append((buy_orders.pop(0), sell_orders.pop(0)))
elif buy_orders[0]['price'] < sell_orders[0]['price']:
成交订单.append((buy_orders.pop(0), sell_orders.pop(0)))
return 成交订单
5. 成交量优先+时间优先模型
该模型结合成交量优先和时间优先原则,优先成交成交量高且时间早的订单。
def volume_time_priority(buy_orders, sell_orders):
# 对买卖订单按成交量和时间排序
buy_orders.sort(key=lambda x: (x['volume'], x['time']), reverse=True)
sell_orders.sort(key=lambda x: (x['volume'], x['time']), reverse=True)
# 撮合成交
成交订单 = []
while buy_orders and sell_orders:
if buy_orders[0]['volume'] >= sell_orders[0]['volume']:
成交订单.append((buy_orders.pop(0), sell_orders.pop(0)))
elif buy_orders[0]['volume'] < sell_orders[0]['volume']:
成交订单.append((buy_orders.pop(0), sell_orders.pop(0)))
return 成交订单
6. 价格优先+成交量优先模型
该模型结合价格优先和成交量优先原则,优先成交价格高且成交量大的订单。
def price_volume_priority(buy_orders, sell_orders):
# 对买卖订单按价格和成交量排序
buy_orders.sort(key=lambda x: (x['price'], x['volume']), reverse=True)
sell_orders.sort(key=lambda x: (x['price'], x['volume']), reverse=True)
# 撮合成交
成交订单 = []
while buy_orders and sell_orders:
if buy_orders[0]['price'] >= sell_orders[0]['price']:
成交订单.append((buy_orders.pop(0), sell_orders.pop(0)))
elif buy_orders[0]['price'] < sell_orders[0]['price']:
成交订单.append((buy_orders.pop(0), sell_orders.pop(0)))
return 成交订单
7. 时间优先+成交量优先模型
该模型结合时间优先和成交量优先原则,优先成交时间早且成交量大的订单。
def time_volume_priority(buy_orders, sell_orders):
# 对买卖订单按时间和成交量排序
buy_orders.sort(key=lambda x: (x['time'], x['volume']), reverse=True)
sell_orders.sort(key=lambda x: (x['time'], x['volume']), reverse=True)
# 撮合成交
成交订单 = []
while buy_orders and sell_orders:
if buy_orders[0]['volume'] >= sell_orders[0]['volume']:
成交订单.append((buy_orders.pop(0), sell_orders.pop(0)))
elif buy_orders[0]['volume'] < sell_orders[0]['volume']:
成交订单.append((buy_orders.pop(0), sell_orders.pop(0)))
return 成交订单
8. 综合模型
该模型结合多种原则,如价格优先、时间优先、成交量优先等,以实现更合理的撮合成交。
def comprehensive_model(buy_orders, sell_orders):
# 根据实际情况选择合适的模型
model = price_time_priority
# 撮合成交
成交订单 = model(buy_orders, sell_orders)
return 成交订单
三、结论
通过以上八大模型,投资者可以更好地理解市场定价的奥秘,从而在实际操作中提高交易成功率。在实际应用中,投资者可以根据自身需求和市场情况选择合适的模型。
