3、核心指标:计算正股与转债的实时偏离度,定义阈值
好,咱们进入正题。
前面聊了正股联动的基本逻辑,说白了就是——转债和正股之间,存在一个「合理价差」。一旦这个价差跑偏了,套利机会就来了。
那问题来了:怎么量化这个「跑偏」?
嗯,这就是本节要讲的核心指标——实时偏离度。
3.1 什么是偏离度?
偏离度,就是转债当前价格,和它理论上应该有的价格之间的差值百分比。
公式很简单:
偏离度 = (转债现价 - 理论价格) / 理论价格 × 100%
其中,理论价格怎么算?
我个人习惯用转股平价作为基准。因为转债最直接的锚,就是正股价格乘以转股比例。
转股平价 = 正股价格 × (100 / 转股价)
举个例子:
某转债转股价是10元,正股现价12元。那转股平价就是 12 × (100 / 10) = 120元。
如果转债现价是125元,那偏离度就是 (125 - 120) / 120 ≈ 4.17%。
这个4.17%,就是溢价。正溢价,说明转债比正股贵。
关键点:偏离度 > 0 叫正溢价,转债偏贵;偏离度 < 0 叫负溢价,转债偏便宜。套利机会通常出现在负溢价的时候。
3.2 实时计算,不能等收盘
做套利,最怕的就是滞后。
你想想看,如果等收盘了才发现偏离度很大,那黄花菜都凉了。盘中可能已经有人抢跑了。
所以,实时偏离度才是我们需要的。
我在项目中遇到过这样的情况:某只转债上午10点出现-3%的负溢价,我手动算了一下,等下单时已经变成-1.5%了。为什么?因为正股在涨,转债也在跟涨,但速度不一样。
这就是实时计算的意义——捕捉那一瞬间的价差。
3.3 代码实现:实时偏离度计算
下面给出一段Python代码,用于实时计算偏离度。我建议你把它封装成一个函数,方便后续调用。
import pandas as pd
import numpy as np
def calc_deviation(convertible_price, stock_price, conversion_price):
"""
计算实时偏离度
:param convertible_price: 转债当前价格
:param stock_price: 正股当前价格
:param conversion_price: 转股价
:return: 偏离度(百分比)
"""
# 计算转股平价
parity = stock_price * (100 / conversion_price)
# 计算偏离度
deviation = (convertible_price - parity) / parity * 100
return round(deviation, 2)
# 示例
print(calc_deviation(125.0, 12.0, 10.0)) # 输出: 4.17
这段代码很简单,但很实用。你把它放到你的实时行情推送循环里,每来一笔行情数据,就调用一次。
小技巧:我建议你把偏离度也作为一个行情字段,和价格、成交量一起存储。这样方便后续做回测分析。
3.4 阈值怎么定?
有了偏离度,下一步就是定义阈值——偏离多少才算「套利机会」?
这个没有标准答案。但我可以分享我的经验:
| 偏离度范围 | 含义 | 操作建议 |
|---|---|---|
| |偏离度| < 1% | 正常波动,无套利空间 | 观望 |
| 1% ≤ |偏离度| < 3% | 轻度偏离,可关注 | 准备策略,不急于入场 |
| 3% ≤ |偏离度| < 5% | 明显偏离,套利机会出现 | 可以考虑入场 |
| |偏离度| ≥ 5% | 严重偏离,机会较大 | 果断执行,但注意风险 |
嗯,这里要注意:阈值不是死的。市场波动大的时候,阈值可以适当放宽;市场平稳的时候,阈值可以收紧。
我曾经在2022年4月那波大跌中,把阈值设到2%就触发了很多假信号。后来调整为3.5%,效果就好多了。
避坑指南:千万不要只看偏离度绝对值。还要结合转债的流动性、剩余期限、是否进入转股期等因素。我曾经因为只看偏离度,忽略了一只转债即将到期,结果套利进去后被强赎了...嗯,亏了一笔手续费。
3.5 动态阈值:让系统自适应
固定阈值虽然简单,但不够聪明。
我建议你使用动态阈值——基于历史偏离度的标准差来设定。
import numpy as np
def dynamic_threshold(deviation_history, multiplier=2):
"""
基于历史偏离度计算动态阈值
:param deviation_history: 历史偏离度列表
:param multiplier: 标准差倍数
:return: 上阈值, 下阈值
"""
mean = np.mean(deviation_history)
std = np.std(deviation_history)
upper = mean + multiplier * std
lower = mean - multiplier * std
return round(upper, 2), round(lower, 2)
# 示例
history = [1.2, 1.5, 0.8, 2.1, 1.8, 0.5, 1.0]
print(dynamic_threshold(history)) # 输出: (2.58, -0.38)
这样,系统就能根据市场环境自动调整阈值。市场波动大时,阈值自动放宽;市场平稳时,阈值自动收紧。
说白了,就是让系统自己学会「什么算异常」。
3.6 核心逻辑流程图
下面我用一张SVG图,把整个偏离度计算和阈值判定的流程串起来。你一看就明白了。
这张图把整个流程串起来了。从行情输入,到计算平价,再到偏离度,最后和阈值比较。逻辑很清晰。
3.7 小结
这一节我们讲了三个核心点:
- 偏离度公式:以转股平价为基准,计算转债的实时溢价或折价
- 实时计算:用Python代码实现,每笔行情都算一遍
- 阈值设定:固定阈值和动态阈值两种方式,我推荐动态阈值
你想想看,有了这个偏离度指标,你就能像雷达一样,实时扫描市场上的套利机会。比那些等收盘才看数据的人,快了一大截。
下一节,我们会把偏离度和交易策略结合起来,讲怎么真正落地执行。不过那是后话了,先把偏离度这个基础打牢。
一句话总结:偏离度是套利的「温度计」,阈值是「报警器」。两者配合,才能捕捉到真正的机会。