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

ptrade 平台如何查询历史新股与可转债中签数据?(附 Python 源码)

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

问题描述

ptrade API 教程:如何获取可转债与新股历史中签信息
我想在 ptrade 中查询历史新股和可转债的中签数据,应该怎么调用 get_lucky_info 接口?

解决方案

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

在 ptrade 量化交易平台中,如果您需要查询账户的历史新股或可转债中签数据,可以使用 get_lucky_info 接口。本文将为您详细介绍该接口的调用方法、参数格式、返回数据结构以及完整的策略示例。


1. get_lucky_info 接口介绍

get_lucky_info 用于获取指定时间范围内的中签信息(包括新股与可转债)。

1.1 使用场景

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

1.2 接口定义

get_lucky_info(start_date, end_date)

1.3 参数说明

  • start_date (str):开始日期,输入形式仅支持 "YYYYmmdd",例如 "20220928"
  • end_date (str):结束日期,输入形式仅支持 "YYYYmmdd",例如 "20220929"

1.4 返回值

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

返回数据格式示例:

[
    {
        'stock_code': '371002.SZ',   # 证券代码
        'occur_amount': 10.0,        # 发生数量
        'business_price': 100.0,     # 成交价格
        'stock_name': 's崧盛发债',    # 证券名称
        'init_date': 20220928        # 交易日期
    }
]

2. Python 示例代码

以下是一个完整的策略示例,展示了如何在每日盘前(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))
    
    # 调用接口获取中签信息
    lucky_info = get_lucky_info(pre_date, current_date)
    
    # 打印中签结果
    log.info("中签信息结果: %s" % lucky_info)

def handle_data(context, data):
    pass

3. 注意事项

  1. 柜台压力保护机制:为了减小对券商柜台的压力,该函数在同一分钟内多次调用时,会返回当前分钟首次查询的缓存数据。
  2. 日期格式要求:入参 start_dateend_date 必须是 str 类型且格式严格为 "YYYYmmdd",否则可能导致查询失败。
  3. 环境限制:此函数无法在回测环境或不支持该接口的特定柜台(如 jz_ufx)中使用,编写策略时建议做好异常处理或环境判断。