3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 PTrade 量化交易系统中,通过内置的 ipo_stocks_order 接口可以轻松实现每天盘前或盘中的一键新股与可转债申购。同时,系统支持通过 black_stocks 参数设置黑名单,帮您自动过滤掉不希望申购的特定新股或新债。
ipo_stocks_order(market_type=None, black_stocks=None)market_type (int,选填):申购代码所属市场类型。若不传参则默认申购当日全部可申购新股及新债。
0:上证普通代码1:上证科创板代码2:深证普通代码3:深证创业板代码4:可转债代码black_stocks (str/list,选填):黑名单股票/债券代码。可以是单个字符串或列表。支持带后缀(如 '787001.SS')或不带后缀的6位代码(如 '787001')。传入黑名单中的标的将跳过申购。dict 字典,包含委托代码、委托编号、委托状态(1成功/0失败)、委托数量等响应信息。下面的策略示例展示了如何在每天盘中(例如 09:35)自动执行一键申购,并配置黑名单排除特定标的:
import time
def initialize(context):
# 初始化全局标的(可任意设置一个有效标的用于策略运行)
g.security = '600570.SS'
set_universe(g.security)
# 设置定时任务:每个交易日 09:35 执行新股申购
run_daily(context, auto_ipo_job, time='09:35')
def auto_ipo_job(context):
log.info("开始执行一键新股/新债申购流程...")
# 定义不需要申购的黑名单代码列表(支持带后缀或不带后缀)
black_list = ['787001', '300001.SZ']
# 1. 申购全部市场的标的(排除黑名单)
# res = ipo_stocks_order(black_stocks=black_list)
# 2. 分市场指定申购示例(可按需灵活调用):
# 申购科创板(排除黑名单)
res_kc = ipo_stocks_order(market_type=1, black_stocks=black_list)
log.info("科创板申购结果: %s" % res_kc)
time.sleep(2)
# 申购创业板(排除黑名单)
res_cy = ipo_stocks_order(market_type=3, black_stocks=black_list)
log.info("创业板申购结果: %s" % res_cy)
time.sleep(2)
# 申购可转债(排除黑名单)
res_cb = ipo_stocks_order(market_type=4, black_stocks=black_list)
log.info("可转债申购结果: %s" % res_cb)
def handle_data(context, data):
pass
run_daily 将申购时间指定在交易时间段内(如 09:31 至 11:30 或 13:00 至 15:00),避免因盘前柜台未就绪导致委托失败。ipo_stocks_order,建议中间使用 time.sleep() 进行适当停顿,防止触发柜台流控限制。