3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在可转债量化交易中,获取准确的基础数据(如溢价率、剩余规模、评级、强赎状态等)是构建“双低策略”等经典策略的核心。以下将以 Ptrade 平台为主(结合文档提供的扩展方法),为您详细解答如何获取这些关键数据。
Ptrade 提供了专门的 API get_cb_info() 来获取可转债的基础信息。该接口返回一个 DataFrame,包含以下关键字段:
bond_code: 可转债代码bond_name: 可转债名称stock_code: 正股代码premium_rate: 溢价率convert_price: 转股价格convert_value: 转股价值def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
def handle_data(context, data):
# 获取可转债基础信息
cb_df = get_cb_info()
if not cb_df.empty:
log.info(cb_df.head())
Ptrade 原生 API 可能不包含剩余规模和评级等深度数据。根据 Ptrade 进阶用法,可以通过自定义类结合第三方数据源(或券商提供的扩展接口)来获取。例如,通过 HTTP 请求获取完整的可转债特征数据:
curr_iss_amt(单位:亿)rating_cdyear_left(剩余年限)是否为 null 来判断是否已公布强赎。import requests
import pandas as pd
class Bond:
def modify_code(self, x):
return x + '.SZ' if x.startswith('12') else x + '.SS'
def get_bond_advanced_data(self):
# 假设 API_HOST 为有效的数据接口
# resp = requests.post(url=API_HOST, data={'sign': SIGN})
# bond_data = resp.json()
# df = pd.DataFrame(bond_data['data'])
# df['bond_id'] = df['bond_id'].map(self.modify_code)
# return df
pass
双低指标 = 可转债价格 + 溢价率 * 100。
双低策略是可转债最经典的防守反击策略。在 Ptrade 中,我们可以结合 get_price(或 get_snapshot)获取最新价格,结合 get_cb_info 获取溢价率来计算双低值。
def get_double_low_bonds(context):
# 1. 获取基础信息(包含溢价率)
cb_info = get_cb_info()
if cb_info.empty:
return []
# 2. 获取当前可交易的可转债列表
cb_list = get_cb_list()
# 3. 获取最新价格
snapshots = get_snapshot(cb_list)
double_low_list = []
for index, row in cb_info.iterrows():
code = row['bond_code']
premium = row['premium_rate']
if code in snapshots and snapshots[code].get('trade_status') == 'TRADE':
price = snapshots[code]['last_px']
# 计算双低值:价格 + 溢价率 * 100
double_low_score = price + premium * 100
double_low_list.append({
'code': code,
'price': price,
'premium': premium,
'score': double_low_score
})
# 按双低分数从小到大排序
double_low_list.sort(key=lambda x: x['score'])
return double_low_list[:10] # 返回双低前10名
虽然上述代码基于 Ptrade,但在 QMT(迅投极速交易系统)中,逻辑是相似的:
get_stock_list('CB') 获取转债列表,使用 get_instrument_detail() 获取转债详情。get_full_tick() 获取最新价格。ContextInfo.get_financial_data() 或外接数据源(如 Tushare、聚宽)来补充剩余规模、评级和强赎公告数据。总结:在量化平台中开发可转债策略,Ptrade 提供了便捷的 get_cb_info() 满足基础需求;对于剩余规模、评级和强赎等高阶字段,建议结合 Python 的 requests 模块对接外部专业数据源,以确保“双低策略”和“防强赎机制”的稳定运行。