3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 ptrade 量化交易平台中,进行可转债交易或套利策略时,获取可转债的溢价率、转股价格和转股价值等基础数据是至关重要的。ptrade 提供了专门的接口 get_cb_info 来获取这些信息。
get_cb_infoget_cb_info() 用于获取当前市场上可转债的基础信息。该接口依靠可转债基础数据权限,使用前请与券商确认是否有此权限。如果获取失败,接口将返回空 DataFrame。
调用成功后,将返回一个 pandas.DataFrame 对象,包含以下核心字段:
bond_code: 可转债代码 (str)bond_name: 可转债名称 (str)stock_code: 正股代码 (str)stock_name: 正股名称 (str)list_date: 上市日期 (str)premium_rate: 溢价率 (float)convert_date: 转股起始日 (str)maturity_date: 到期日 (str)convert_rate: 转股比例 (float)convert_price: 转股价格 (float)convert_value: 转股价值 (float)以下是一个在 ptrade 平台中获取可转债基础信息并筛选出低溢价率可转债的完整策略示例:
def initialize(context):
# 设置我们要操作的股票池(这里以恒生电子为例)
g.security = '600570.SS'
set_universe(g.security)
# 每天 9:30 运行一次数据获取函数
run_daily(context, get_convertible_bond_data, time='9:30')
def get_convertible_bond_data(context):
log.info("开始获取可转债基础数据...")
# 调用 get_cb_info 接口获取所有可转债信息
df = get_cb_info()
if df.empty:
log.warning("未能获取到可转债数据,请检查是否开通相关权限。")
return
# 打印前 5 条数据查看结构
log.info("可转债数据样例:")
log.info(df.head())
# 筛选出溢价率 (premium_rate) 小于 5% 且已经进入转股期的可转债
# 注意:部分数据可能为 NaN,需进行异常处理
target_bonds = df[df['premium_rate'] < 0.05]
log.info(f"当前市场溢价率小于 5% 的可转债数量为: {len(target_bonds)}")
if not target_bonds.empty:
# 打印筛选后的可转债代码、名称、溢价率及转股价格
log.info(target_bonds[['bond_code', 'bond_name', 'premium_rate', 'convert_price', 'convert_value']])
def handle_data(context, data):
pass
get_cb_info 接口依赖券商端的数据权限,若调用返回空 DataFrame,请联系券商客服开通“可转债基础数据权限”。DataFrame 进行清洗(如去除 NaN 值),以防在计算或筛选时出现程序报错。