3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 PTrade 量化交易平台中,对持有的可转债进行转股申报主要通过 debt_to_stock_order 接口实现。当可转债存在负溢价(即转股价值高于转债市场价格)时,通过自动化策略进行转股申报是实现可转债套利的重要手段。
debt_to_stock_orderdebt_to_stock_order(security, amount)security (str):可转债代码,例如 '110033.SS'amount (int):委托数量(单位:张),须为正整数或负数(根据柜台要求,通常传入张数,如 1000 或 -1000)order_id (str),失败返回 Noneget_cb_infobond_code(转债代码)、stock_code(正股代码)、premium_rate(溢价率)、convert_price(转股价)、convert_value(转股价值)等。以下策略展示了如何在盘中实时监控持仓可转债的转股溢价率,并在出现负溢价时触发自动转股申报:
def initialize(context):
# 设置可转债标的(例如:国贸转债)
g.security = '110033.SS'
set_universe(g.security)
g.flag = False
def before_trading_start(context, data):
# 每日重置触发标识
g.flag = False
def handle_data(context, data):
if g.flag:
return
# 获取当前持仓
position = get_position(g.security)
# 如果持有该可转债,检查转股溢价率
if position.amount > 0:
# 查询可转债基础信息数据表
cb_df = get_cb_info()
if cb_df is not None and not cb_df.empty:
target_info = cb_df[cb_df['bond_code'] == g.security]
if not target_info.empty:
# 获取当前溢价率 (premium_rate)
premium_rate = target_info['premium_rate'].values[0]
log.info("%s 当前转股溢价率: %s%%" % (g.security, premium_rate))
# 当折价达到设定阈值(例如溢价率 < -0.5%)时触发转股
if premium_rate < -0.5:
log.info("触发转股条件,开始进行转股申报...")
# 进行转股委托
order_id = debt_to_stock_order(g.security, position.amount)
if order_id:
log.info("转股申报成功,订单ID号:%s" % order_id)
g.flag = True
else:
log.error("转股申报失败!")
get_cb_info() 依赖券商的数据权限,若调用返回空 DataFrame,请联系券商确认开通相关基础数据权限。