问题描述
/
解决方案
Ptrade量化支持可转债交易吗?
是的,Ptrade量化平台完全支持可转债交易。 根据Ptrade官方API文档,无论是回测环境还是实盘交易环境,均明确支持“可转债买卖”这一业务类型。
此外,Ptrade还提供了一系列专门针对可转债的API接口,方便量化开发者获取数据和执行交易。
Ptrade可转债核心API介绍
在Ptrade中开发可转债策略,主要会用到以下几个核心函数:
1. 获取可转债市场代码表 (get_cb_list)
该函数用于获取当前可转债市场的所有代码列表(包含停牌代码)。
- 注意:此函数仅在交易模块可用。
2. 获取可转债基础信息 (get_cb_info)
获取可转债的详细基础数据,返回DataFrame格式。包含的重要字段有:
bond_code: 可转债代码stock_code: 正股代码premium_rate: 溢价率convert_price: 转股价格convert_value: 转股价值- 注意:此API依靠可转债基础数据权限,使用前需与券商确认是否开通。
3. 债转股委托 (debt_to_stock_order)
用于执行可转债转股操作。
- 用法:
debt_to_stock_order(security, amount)
4. 常规下单函数 (order / order_target 等)
可转债的买卖与股票类似,直接使用 order() 系列函数即可。
可转债交易注意事项
在编写可转债策略时,必须注意以下几个Ptrade平台的特殊规定:
- 价格精度:可转债的价格精度为小数点三位(股票为两位)。在使用限价单委托时,务必对入参价格的小数点位数进行处理,否则会导致委托失败。
- 数量限制:每次交易可转债时,系统会自动取整10张(回测和交易均受此限制,但卖出所有持仓时不受此限制)。
简单的可转债策略示例
以下是一个简单的示例,展示如何在Ptrade中获取可转债列表并进行买卖操作:
def initialize(context):
# 设定一个可转债代码,例如国贸转债
g.security = '110033.SS'
set_universe(g.security)
def before_trading_start(context, data):
# 获取可转债基础信息(研究/交易模块可用)
cb_df = get_cb_info()
if not cb_df.empty:
log.info("成功获取可转债基础信息")
def handle_data(context, data):
# 获取当前价格
current_price = data[g.security]['close']
# 假设策略逻辑:价格低于110元时买入100张
if current_price < 110 and get_position(g.security).amount == 0:
# 注意:可转债价格精度为3位小数,数量需为10的整数倍
order(g.security, 100, limit_price=round(current_price + 0.001, 3))
log.info(f"买入可转债: {g.security}")
# 假设策略逻辑:价格高于130元时全部卖出
elif current_price > 130 and get_position(g.security).amount > 0:
order_target(g.security, 0)
log.info(f"卖出可转债: {g.security}")
# 债转股示例(需满足转股期等条件)
# debt_to_stock_order(g.security, -100)
总结来说,Ptrade为可转债量化提供了完善的基础设施,开发者可以利用这些API实现双低策略、折价套利、网格交易等多种经典的可转债量化策略。