Vibe-Trading 数据能力详解:Tushare 可转债行情接口 cb_daily 的获取、字段解读与转债量化应用
Vibe-Trading 数据能力详解:Tushare 可转债行情接口 cb_daily 的获取、字段解读与转债量化应用
可转债是兼具"债底保护"与"股票期权"双重属性的混合型投资品种,其行情数据既包含传统 OHLCV 量价字段,又包含纯债价值、转股价值等转债特有估值指标,是构建转债量化策略的数据基石。本文基于 Vibe-Trading 开源仓库中 Tushare 技能库的《可转债行情》参考文档,系统讲解 cb_daily 接口的调用方式、全部输入输出参数、权限与限量规则,并结合仓库内的可转债分析技能源码,给出从数据获取到双低策略应用的完整实战路径。
接口概览:cb_daily 是什么
cb_daily 是 Tushare 提供可转债日线行情的标准化接口,在 Vibe-Trading 仓库中隶属于 Tushare 技能库 的"债券专题"(接口 ID 187)。该接口的定位与同专题下的 cb_basic(可转债基础信息)、cb_issue(可转债发行)、cb_call(可转债赎回信息)等接口互补:前者解决"转债当天怎么走",后者解决"转债的底层属性与条款是什么"。
其核心特点可归纳为三点:
- 行情维度完整:不仅返回开高低收、成交量额等标准量价字段,还返回纯债价值、转股价值、纯债溢价率、转股溢价率四个转债核心估值字段;
- 批量拉取能力:单次请求最大 2000 条,且总量不限制,可通过日期循环或代码切片多次提取全历史数据;
- 权限门槛明确:用户至少需要 2000 积分才能调取,5000 积分以上可获得相对较高的调用频次,积分越多权限越大(具体积分获取办法详见 Tushare 官方积分文档,文档编号 13)。
在 Vibe-Trading 中,该接口文档被设计为 Agent 可直接读取的数据接入参考:当 Agent 需要为可转债分析任务取数时,可通过 Tushare 技能库的接口索引 定位到本文档,再据此构造 Python 调用代码。
输入参数详解
cb_daily 的全部输入参数均为可选参数(必选列均为 N),通过不同参数的组合可以实现"单券全历史"、"全市场单日截面"或"日期区间切片"三种取数模式。
| 名称 | 类型 | 必选 | 描述 |
|---|---|---|---|
| ts_code | str | N | TS代码(转债代码,格式如 110030.SH、123001.SZ) |
| trade_date | str | N | 交易日期(YYYYMMDD 格式) |
| start_date | str | N | 开始日期(YYYYMMDD 格式) |
| end_date | str | N | 结束日期(YYYYMMDD 格式) |
四个参数的组合逻辑可归纳如下:
- 按交易日取全市场截面:只传
trade_date,一次可拿到该交易日全部可转债的行情(单次上限 2000 条,若上市转债超过该数量需分批); - 按代码取单券历史:只传
ts_code,获取某只转债的全部历史日线; - 按日期区间取切片:同时传
start_date与end_date(可再叠加ts_code),获取指定时间窗口内的数据,适合做回测数据准备; - 全量拉取:不传任何参数,按日期或代码循环多次请求,总量不受限制。
与仓库中其他 Tushare 接口一致,日期统一遵循 YYYYMMDD 格式约定(如 20190719),转债代码采用 ts_code 格式(后缀 .SH 为上交所、.SZ 为深交所),这一点在 Tushare 技能库的参数格式说明 中有统一约定。
输出参数详解:从量价到转债三维估值
cb_daily 共返回 14 个字段,分为"标准量价"与"转债特有估值"两大类,其中默认显示(Y)的有 10 个字段。
| 名称 | 类型 | 默认显示 | 描述 |
|---|---|---|---|
| ts_code | str | Y | 转债代码 |
| trade_date | str | Y | 交易日期 |
| pre_close | float | Y | 昨收盘价(元) |
| open | float | Y | 开盘价(元) |
| high | float | Y | 最高价(元) |
| low | float | Y | 最低价(元) |
| close | float | Y | 收盘价(元) |
| change | float | Y | 涨跌(元) |
| pct_chg | float | Y | 涨跌幅(%) |
| vol | float | Y | 成交量(手) |
| amount | float | Y | 成交金额(万元) |
| bond_value | float | N | 纯债价值 |
| bond_over_rate | float | N | 纯债溢价率(%) |
| cb_value | float | N | 转股价值 |
| cb_over_rate | float | N | 转股溢价率(%) |
标准量价字段
pre_close/open/high/low/close/change/pct_chg 为标准的 OHLC 量价体系,与股票日线字段含义一致,但需要注意两个转债特有口径:
- 成交量
vol单位为"手"(1 手 = 10 张,与股票 1 手 = 100 股不同); - 成交金额
amount单位为"万元",而非元。
转债核心估值字段(构建策略的关键)
后四个字段(默认不显示,需在 fields 参数中显式声明才会返回)是转债区别于股票的价值内核,也是 Vibe-Trading 仓库中 可转债分析技能(convertible-bond) 所构建的"转股 / 纯债 / 期权三维估值体系"的直接数据来源:
- 转股价值
cb_value:转债按当前转股价可转换成正股的市场价值,计算方式为面值 / 转股价 × 正股价格。转股价值越高,转债的"股性"越强,跟随正股波动的弹性越大; - 转股溢价率
cb_over_rate:(转债价格 - 转股价值) / 转股价值 × 100%,衡量转债相对转股价值的溢价水平。溢价率越低,转债越接近"平换正股",弹性越高;溢价率极高(如 >50%)时转债呈现纯债特征; - 纯债价值
bond_value:将转债未来各期票息与到期赎回价按同期信用债收益率折现得到的价值,相当于"债底"。纯债价值越高,债底保护越强,价格下跌空间越有限; - 纯债溢价率
bond_over_rate:(转债价格 - 纯债价值) / 纯债价值 × 100%,衡量转债价格相对债底的溢价程度。
这四个字段组合起来可以直接支撑 convertible-bond 技能 中的三维判断矩阵:转股价值 > 120 时为偏股型(跟随正股、关注强赎风险),100–120 为平衡型(进可攻退可守),小于 100 且纯债价值大于 90 时为偏债型(持有吃利息、等待下修或正股反弹)。也就是说,仅凭 cb_daily 一个接口的返回值,即可完成转债的债性 / 股性分类,无需另行计算。
接口调用:最小可运行示例
文档给出的标准调用方式如下,通过 ts.pro_api() 初始化 Pro 接口后直接调用 cb_daily:
pro = ts.pro_api()
# 获取可转债行情
df = pro.cb_daily(trade_date='20190719', fields='ts_code,trade_date,pre_close,open,high,low,close')
其中 fields 参数用于控制返回列,未列出的字段不返回。若希望同时拿到转债估值字段,只需将 fields 扩展为包含 bond_value, bond_over_rate, cb_value, cb_over_rate:
import tushare as ts
# 推荐:从环境变量读取 token 初始化(与仓库 SKILL 文档一致)
token = ts.get_token() # 或 os.getenv('TUSHARE_TOKEN')
pro = ts.pro_api(token)
# 1. 获取指定交易日全市场可转债行情(含估值字段)
df_daily = pro.cb_daily(
trade_date='20190719',
fields='ts_code,trade_date,open,high,low,close,vol,amount,'
'bond_value,bond_over_rate,cb_value,cb_over_rate'
)
# 2. 获取单只转债(如 123001.SZ)的历史行情
df_one = pro.cb_daily(
ts_code='123001.SZ',
start_date='20190701',
end_date='20190731'
)
# 3. 按日期循环全量拉取(突破单次 2000 条限制)
import pandas as pd
frames = []
for day in ['20190718', '20190719']:
frames.append(pro.cb_daily(trade_date=day))
df_all = pd.concat(frames, ignore_index=True)
调用前需确保本机已安装 tushare 依赖包(推荐 Python 3.7+,可通过清华 PyPI 镜像安装),并在 Tushare 官网 注册获取 token 后配置为环境变量 TUSHARE_TOKEN,具体步骤见 Tushare 技能库的快速上手章节。
返回数据样例解读
接口返回的是 pandas DataFrame,文档中的实际样例(2019-07-19 全市场截面,节选)如下:
ts_code trade_date pre_close open high low close change pct_chg vol amount
0 110030.SH 20190719 104.700 104.710 104.960 104.540 104.660 -0.040 -0.0382 3576.0 374.1486
3 123001.SZ 20190719 114.300 115.500 120.780 114.884 118.879 4.579 4.0061 85105.8 10134.7401
11 113011.SH 20190719 109.680 109.780 110.990 109.780 110.530 0.850 0.7750 140352.0 15524.5109
对该样例的解读要点:
- 各转债价格分布于 92–131 元区间,既存在跌破面值(100 元)的偏债型转债(如
128012.SZ收盘 97.029 元),也有高于 130 元的偏股型转债(如113015.SH收盘 131.25 元),与三维判断矩阵的阈值划分天然对应; change与pct_chg由pre_close与close推导而来,如123001.SZ涨跌 4.579 元、涨跌幅 4.0061%,可直接用于排序筛选当日强势转债;- 注意
pct_chg为小数形式的百分比(如0.5329表示 0.5329%,而非 53.29%),使用时无需再除以 100 做换算,但格式化展示时需乘以 100。
实战应用:结合仓库技能搭建转债量化流程
cb_daily 在 Vibe-Trading 仓库中并非孤立存在,它与可转债分析相关的多份技能文档共同构成完整的数据与分析链路:
1. 行情 + 基础信息:补齐转债画像
cb_daily 只提供行情与估值,不包含转股价、条款等静态属性。如需完整画像,可联查 可转债基础信息文档(cb_basic):该接口提供转债简称、正股代码、面值、票面利率、初始/最新转股价、赎回条款、回售条款、下修条款、信用评级等 30 余个字段,以 ts_code 为键与 cb_daily 的行情数据做 join,即可还原"转债价格 + 转股价值 + 条款博弈"的完整分析基础。
2. 基于估值字段实现双低策略
仓库中的 convertible-bond 技能 给出了双低策略的选债逻辑:
双低值 = 转债价格 + 转股溢价率 × 100
而 cb_daily 返回的 close(转债价格)与 cb_over_rate(转股溢价率)正是计算双低值的两个直接输入。典型筛选条件为:双低值 < 130(严格)或 < 150(宽松)、转债价格 < 115、转股溢价率 < 30%、剩余期限 > 1 年、信用评级 ≥ AA-。其中价格与溢价率来自本接口,剩余期限与评级来自 cb_basic,两个接口结合即可完成一轮双低排名:
import pandas as pd
daily = pro.cb_daily(trade_date='20240603',
fields='ts_code,close,cb_over_rate,bond_over_rate,cb_value')
daily['double_low'] = daily['close'] + daily['cb_over_rate'] * 100 # 双低值
daily = daily[(daily['close'] < 115) & (daily['cb_over_rate'] < 30)] # 安全+弹性过滤
top10 = daily.nsmallest(10, 'double_low')
print(top10)
3. 配合条款数据预判强赎 / 回售
转债策略的另一大风险来源是强赎:一旦公司公告强赎,不转股或不卖出将面临巨额损失。cb_daily 的 close、cb_value 可用于每日监测"正股价格相对转股价的强度",而强赎 / 回售触发条件与赎回价的具体确认,可进一步参考 可转债赎回信息文档(cb_call)(该接口同样为单次最大 2000 条、需 5000 积分)。这与 convertible-bond 技能 中"强赎倒计时要盯紧,公告强赎后不转股 / 不卖出会巨亏"的风险提示形成闭环。
注意事项与使用建议
基于文档与仓库源码,使用 cb_daily 时有以下几点需要留意:
- 积分门槛:2000 积分起可调取,5000 积分以上频次相对较高;若调用频次受限,优先按
trade_date批量取数而非逐券逐日高频请求; - 单次 2000 条上限:可通过日期循环或代码分批多次提取,总量不受限制,全历史拉取建议配合日期区间参数分段进行;
- 成交量与金额单位:
vol单位为手、amount单位为万元,换算成张 / 元时需分别乘以 10 与 10000; - 估值字段需显式声明:
bond_value、bond_over_rate、cb_value、cb_over_rate默认不显示,必须写入fields参数才会返回; - 数据版权与使用边界:转债相关数据来源于公开披露渠道,供个人和机构研究使用,不应用于数据商业目的(参见仓库内 可转债赎回信息文档 的同类声明);
- 策略层面的数据局限:正如 convertible-bond 技能 注意事项所述,转债回测比股票回测复杂,除行情外还需要转股价、强赎 / 回售信息等额外数据,
cb_daily提供的是量价与估值底座,条款类数据仍需cb_basic、cb_call、cb_price_chg(转股价变动)等接口配合补齐。
小结
cb_daily 是 Vibe-Trading Tushare 技能库中获取可转债日线行情的标准入口:四个可选输入参数覆盖全市场截面、单券历史与区间切片三种取数模式;14 个输出字段同时包含标准量价与纯债 / 转股双维估值,可直接支撑 convertible-bond 技能 中的三维估值、双低策略与轮动选债框架。结合 cb_basic 与 cb_call 等配套接口,开发者可以在 Vibe-Trading 的数据资产体系内完整搭建从"转债行情获取 → 估值分类 → 双低选债 → 强赎风控"的转债量化工作流。