3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 ptrade 量化交易平台中,实现每日可转债自动申购(打新债)非常简单。平台专门提供了 ipo_stocks_order 接口,支持一键申购当日全部新股或新债。
以下是为您编写的完整自动化申购脚本及详细配置说明:
ipo_stocks_order(market_type=None, black_stocks=None)market_type: 申购代码所属市场。对于可转债,该参数固定传入 4。black_stocks: 申购黑名单。如果您有不想申购的转债,可以将其代码(如 '123456' 或 '123456.SZ')以字符串或列表形式传入。0 失败,1 成功)及委托数量等信息。# -*- coding: utf-8 -*-
def initialize(context):
# 设置一个基础股票池(非必须,但为初始化规范)
g.security = '600570.SS'
set_universe(g.security)
# 使用 run_daily 定时任务,在每个交易日的 09:35 自动执行申购函数
# 建议避开 9:30 刚开盘时的行情拥堵,选择 9:35 - 10:30 之间执行
run_daily(context, auto_subscribe_cb, time='09:35')
def before_trading_start(context, data):
# 每日开盘前初始化执行状态标识
g.has_ordered = False
log.info("每日盘前准备:重置可转债申购状态")
def auto_subscribe_cb(context):
"""
自动申购可转债函数
"""
if not g.has_ordered:
log.info("开始执行每日可转债一键申购...")
try:
# 调用一键申购接口,market_type=4 代表可转债
# 如果有黑名单,可以设置如 black_stocks=['123xxx.SZ']
result = ipo_stocks_order(market_type=4)
log.info("柜台返回申购结果: %s" % str(result))
g.has_ordered = True
log.info("每日可转债自动申购流程结束。")
except Exception as e:
log.error("可转债自动申购出现异常: %s" % str(e))
def handle_data(context, data):
# 盘中主回调函数,此处保持为空即可
pass
run_daily(context, auto_subscribe_cb, time='09:35') 设置在 9:35 执行。请确保您的 ptrade 客户端在此时段处于开启并登录交易状态。