可转债强赎与双低怎么监控
转债玩家最怕两件事:强赎公告没跑掉(溢价一夜归零)、买在高溢价。这两个风险,`/v1/bond` 一条请求都能提前看到 —— 下面给双低排序与强赎判断的代码。
先搞清两个数:双低值与溢价率
双低值是转债圈最常用的"便宜程度"指标,业内通行算法是:
双低值 = 转债价格 + 转股溢价率 × 100
# 例(sh113052 兴业转债,2026-09-25 实测):
# 现价(/v1/quote) 112.23 元
# 纯债溢价率 26.35%
# 双低值 138.577 ← 接口直接给
# 双低越低 = 越"便宜"(跌得少、跟涨不差)- 溢价率 = (转债价格 ÷ 转股价值 − 1) × 100% —— 衡量"比直接买正股贵多少"
- 转股价值 = 100 ÷ 转股价 × 正股价 —— 转债转成股票值多少钱
- 双低策略:在同一时点把全市场转债按双低值排序,取最低的一批(传统是 20 只,轮动持有)
- ⚠️ 接口的「双低」口径:实测 sh113052 = `138.577`,而现价 112.23 + 纯债溢价率 26.35% ≈ 138.58——接口口径中的「溢价率」项与「纯债溢价率」不同,不能简单相加。要严格自算,建议先拿原始字段核对一次口径
一条请求拿到全部条款
import requests
KEY = "ct-你的Key"
r = requests.get("https://api.ashareapi.com/v1/bond",
headers={"Authorization": "Bearer " + KEY},
params={"code": "sh113052"}, timeout=30)
body = r.json()
print(body["data"][:400]) # ⚠️ 返回是 Markdown 文本,不是 JSON 数组- 这是本接口最特别的地方:`data` 是一段 Markdown 表格文本(含主条款 + 明细),不是结构化数组
- 原样可直接渲染成表格;要程序化用,得先解析(下一节给代码)
- 免费的 `quote` 也能查转债现价(代码同为 `sh113052` 形式)—— 条款用 `/v1/bond`,价格用 `/v1/quote`
把 Markdown 解析成字段
主条款在第一个表格里,是标准的 `| 项目 | 内容 |` 两列结构,几行正则就能取出来。
import re, requests
KEY = "ct-你的Key"
r = requests.get("https://api.ashareapi.com/v1/bond",
headers={"Authorization": "Bearer " + KEY},
params={"code": "sh113052"}, timeout=30)
md = r.json()["data"]
def parse_terms(md: str) -> dict:
"""把第一个 | 项目 | 内容 | 表格解析成 dict"""
out = {}
for line in md.splitlines():
m = re.match(r"\|\s*([^|]+?)\s*\|\s*([^|]*?)\s*\|\s*$", line)
if not m:
continue
k, v = m.group(1), m.group(2)
if k in ("项目", "---") or set(k) <= {"-"}:
continue
out[k] = v
return out
t = parse_terms(md)
print("双低值 ", t.get("双低"))
print("转股溢价率 ", t.get("纯债溢价率"))
print("转股价值 ", t.get("转股价值"))
print("强赎触发价 ", t.get("强赎触发价"))
print("正股代码 ", t.get("正股代码"))
# 实测输出(2026-09-25):
# 双低值 138.577
# 纯债溢价率 26.35%
# 转股价值 88.823
# 强赎触发价 26.169 元
# 正股代码 601166强赎风险怎么提前发现
强赎(强制赎回)是转债玩家最大的坑:公司宣布按 ~100 元赎回,而转债市价可能是 130 元 —— 不跑就按 100 块被收走,溢价瞬间归零。
判断逻辑很简单:拿正股现价和强赎触发价比。
# 强赎触发条件(多数转债):正股连续 15/30 个交易日收盘 ≥ 转股价 × 130%
# 接口给的「强赎触发价」就是这个阈值,直接和正股价比
trig = float(t["强赎触发价"].replace("元", "").strip()) # 26.169
stock = requests.get("https://api.ashareapi.com/v1/quote",
params={"code": "sh601166"}).json()["data"][0]
price = float(stock["last"])
print(f"正股 {price} / 触发价 {trig} = {price / trig:.1%}")
if price >= trig:
print("⚠️ 已超强赎触发价 —— 留意公司是否发强赎公告")
elif price >= trig * 0.95:
print("⚡ 接近触发价(95%+)—— 进入观察区")
else:
print("暂无强赎压力")- 关键提醒:达到触发价 ≠ 一定强赎 —— 公司可以选择不强赎。触发价是"提醒你去看公告",不是"必然发生"
- 真正的信号是公司公告;接口的 `赎回条款详情` 表能看到历史赎回档位与起始日
- 高溢价 + 接近强赎 = 最危险组合:一旦公告,高溢价部分直接归零
双低排序:从一只到一篮子
单只转债看双低没意义 —— 双低是排序指标,要在一批标的里比。做法:先拿转债池(用代码列表或你自选的池子),逐个调接口,再排序。
import time
codes = ["sh113052", "sz123138", "sh110043"] # 你的转债池
rows = []
for c in codes:
try:
b = requests.get("https://api.ashareapi.com/v1/bond",
headers={"Authorization": "Bearer " + KEY},
params={"code": c}, timeout=30).json()
t = parse_terms(b["data"])
rows.append((c, t.get("正股代码", ""), float(t.get("双低", 999)),
t.get("纯债溢价率", "")))
except Exception as e:
print(c, "失败:", e)
time.sleep(0.3) # 温和限流,别打太快
for c, stock, dl, prem in sorted(rows, key=lambda x: x[2]):
print(f"{c} 正股 {stock} 双低 {dl:>7.2f} 溢价 {prem}")- 我们不做全市场转债批量列表 —— 转债池要你自己准备(或用 `/v1/search?q=转债名` 逐个确认代码)
- 双低不是越低调越好:小盘 + 低评级 + 临近到期的"便宜"可能是信用风险,不是机会
- 不要在盘中高频循环:条款数据不需要秒级刷新,收盘后跑一遍就够
常见错误与边界
- 把 `data` 当 JSON 数组 → 它是 Markdown 字符串,要正则解析(见上)
- 以为双低是接口算的 → 接口直接给了「双低」字段(值 = 价格 + 溢价率×100),但转债池排序要你自己做
- 达到强赎触发价就慌着卖 → 触发 ≠ 强赎,以公司公告为准
- 忽略回票价 → 实测中兴业转债「回售触发价」为 `0 元`,意思是该债当前不适用回售条款,不是"回售价是 0"
- 单位 → 现值/触发价值带「元」,百分比带「%」,解析后转 float 记得剥掉
- 限流 → `/v1/bond` 是付费端点(需 Key);匿名只能调 5 个免费端点
常见问题
条款表字段多且层级不同(主条款 + 利率变动 + 赎回条款 + 修正条款 + 现金流),Markdown 表格更贴近"给人看"的形态,也能直接渲染。要程序化用,按教程里的 `parse_terms()` 解析第一个表格即可。
接口直接返回「双低」字段。业内通行口径是「转债价格 + 转股溢价率 × 100」,但本接口的溢价率项与「纯债溢价率」字段不同(实测 sh113052:双低 138.577,而现价 112.23 + 纯债溢价率 26.35% ≈ 138.58,数字接近但不能直接相加得出)。所以:接口给的双低直接用,要严格自算就先用原始字段核对一次口径。
不能 —— 我们不提供全市场转债列表批量导出。做法是自备转债池(代码列表),逐个调 `/v1/bond`,再本地排序。想省事可以先用 `/v1/search?q=转债名` 确认代码。
这是"正股价达到多少会触发强赎条件"的阈值(通常是转股价的 130%)。实际规则是"连续 15/30 个交易日收盘价 ≥ 触发价"才构成强赎条件,且公司可以选择不强赎。所以它是个提醒信号,不是预测。
用 `/v1/quote?code=sh113052`(免费,无需 Key)—— 转债代码与股票同格式。`/v1/bond` 只管条款,价格用 quote。
最后更新: 2026-09-25
字段与取值取自线上真实返回(2026-09-25 实测 sh113052 兴业转债:双低 138.577 · 纯债溢价率 26.35% · 转股价值 88.823 · 强赎触发价 26.169 元 · 回售触发价 0 元 · 正股代码 601166;返回为 Markdown 表格文本,含 4 个明细表)。双低算法为业内通行口径,各平台细节可能不同;强赎规则以可转债募集说明书与公司公告为准。