🚀 AI 一键生成 ptrade 策略代码
立即体验

ptrade 平台如何查询可转债历史中签记录?(附 Python 源码)

ptrade | 发布时间: 2026/8/8
以下内容由 EasyQuant 生成。

问题描述

ptrade API 教程:如何获取可转债中签信息
在 ptrade 策略中,如何查询我的可转债历史中签记录?

解决方案

ptrade API 教程:如何获取可转债与新股历史中签信息

在 ptrade 量化交易平台中,用户可以通过调用内置的 get_lucky_info 接口来查询指定时间范围内的可转债及新股中签信息。这对于需要自动管理打新资金、确认中签结果的量化策略非常实用。


一、接口介绍:get_lucky_info

1. 使用场景

  • 仅在交易模块(实盘/模拟盘)可用。在回测模块中不可用。
  • 注意:对接 jz_ufx 柜台的环境不支持该函数。

2. 接口定义

get_lucky_info(start_date, end_date)

3. 参数说明

  • start_date (str):开始日期,格式必须为 "YYYYmmdd",例如 "20220928"
  • end_date (str):结束日期,格式必须为 "YYYYmmdd",例如 "20220929"

4. 返回值说明

返回一个列表套字典的数据结构。如果无中签信息或查询异常,则返回一个空列表 []

每个中签信息字典包含以下字段:

  • stock_code (str):证券代码(如 '371002.SZ'
  • stock_name (str):证券名称(如 'shengshang' / '崧盛发债'
  • occur_amount (float):中签数量
  • business_price (float):成交价格/发行价格
  • init_date (int):交易日期/中签日期

二、完整策略示例代码

以下示例展示了如何在每日盘前准备阶段(before_trading_start)自动获取前一交易日至今日的可转债及新股中签信息:

def initialize(context):
    # 初始化策略,设置操作的股票池
    g.security = "600570.SS"
    set_universe(g.security)

def before_trading_start(context, data):
    # 获取上一个交易日日期,并转换为 YYYYmmdd 格式
    pre_date = str(get_trading_day(-1)).replace("-", "")
    # 获取当前回测/交易日期
    current_date = context.blotter.current_dt.strftime("%Y%m%d")
    
    log.info("开始查询中签信息,查询区间: %s 至 %s" % (pre_date, current_date))
    
    try:
        # 获取上一交易日至今天的中签信息
        lucky_info = get_lucky_info(pre_date, current_date)
        log.info("中签信息查询结果: %s" % lucky_info)
        
        if lucky_info:
            for info in lucky_info:
                log.info("恭喜中签!代码: %s, 名称: %s, 数量: %s, 价格: %s" % 
                         (info['stock_code'], info['stock_name'], info['occur_amount'], info['business_price']))
        else:
            log.info("该区间内无中签记录。")
    except Exception as e:
        log.error("查询中签信息出现异常: %s" % e)

def handle_data(context, data):
    pass

三、注意事项

  1. 调用频率限制:为减小对券商柜台的压力,get_lucky_info 函数在同一分钟内多次调用时,会返回当前分钟首次查询的缓存数据。
  2. 柜台兼容性:请在使用前向您的券商确认当前实盘环境是否支持此接口,部分特定柜台(如 jz_ufx)可能无法获取该数据。