风险提示:本内容为量化技术及平台操作的纯知识分享,不构成任何投资建议,不推荐任何具体证券或交易时机。部分内容可能理解包含错误,请自行核实。市场有风险,投资需谨慎
最近在研究怎么样申购新股,新的可转债,本来是利用qmt写的,但是发现接口比较复杂,后面我直接利用ptrade来编写,下面简单的介绍一下原理,主要利用到的接口,是新股查询接口和下单接口,文档参考官方的教程

简单的例子
def initialize(context):
g.security = '0.SS'
set_universe(g.security)
def handle_data(context, data):
# 当日可转债IPO申购标的
ipo_stocks = get_ipo_stocks().get('可转债代码')
log.info('可转债IPO申购标的列表为%s' % ipo_stocks)
需要使用到到的交易接口,注意目前没有北京交易所的编码

市场的编码
submarket_type -- 申购代码所属市场
0 -- 上证普通代码
1 -- 上证科创板代码
2 -- 深证普通代码
3 -- 深证创业板代码
4 -- 可转债代码
官方代码参考
import time
def initialize(context):
g.security = "60.SS"
set_universe(g.security)
g.flag = False
def before_trading_start(context, data):
g.flag = False
def handle_data(context, data):
if not g.flag:
# 上证普通代码
log.info("申购上证普通代码:")
ipo_stocks_order(submarket_type=0)
time.sleep(5)
# 上证科创板代码
log.info("申购上证科创板代码:")
ipo_stocks_order(submarket_type=1)
time.sleep(5)
# 深证普通代码
log.info("申购深证普通代码:")
ipo_stocks_order(submarket_type=2)
time.sleep(5)
# 深证创业板代码
log.info("申购深证创业板代码:")
ipo_stocks_order(submarket_type=3)
time.sleep(5)
# 可转债代码
log.info("申购可转债代码:")
ipo_stocks_order(submarket_type=4)
time.sleep(5)
g.flag = True
下面是我优化的代码,思路的参考,核心的函数

利用定时函数去驱动策略,定时到每天的固定时间申购

查询不同市场的新股,新可转债,分别调用申购函数


最后面就是做统计看看哪些标的,成功,失败

把策略挂交易,启动策略就可以

可以看见策略的统计,和失败的原因,看日志输出,失败的原因一般是没有权限

不懂的问我就可以,加我备注入群可以加入量化交流群

策略的全部框架流程

|