量化CheatSheet:揭开转债定价的神秘面纱(附代码)
量化CheatSheet:揭开转债定价的神秘面纱(附代码)
可转债定价是可转债投资中的核心环节,准确的定价可以帮助投资者发现市场中的错误定价机会,从而获取超额收益。本文将从可转债定价的基本原理出发,介绍如何计算可转债的理论价值,并分享一个实用的定价偏离因子,帮助投资者更好地把握可转债投资机会。
可转债定价原理
可转债的理论价值由两部分组成:纯债价值和期权价值。每张可转债实际上是一张纯债加上一个特征复杂的看涨期权。
纯债价值:通过将每期现金流除以对应的折现率并加总计算得出。需要注意的是,最后一期现金流可能涉及利率补偿,折现率的计算需要考虑评级、期限等因素的影响。
期权价值:可以通过Black-Scholes(BS)模型、蒙特卡洛模拟或二叉树等方式计算。其中,BS模型适用于标准欧式期权,虽然无法完全处理转债的强赎、下修、分红等复杂特征,但计算速度快且定价偏差可接受;二叉树模型介于BS模型和蒙特卡洛模拟之间,可以处理美式期权的提前行权特性,但在处理非常复杂的衍生品时可能不如蒙特卡洛模拟灵活。
期权价值计算代码
在BS模型下,期权价值计算涉及正股价格、转股价格、剩余期限、无风险利率、正股波动率等指标。以下是具体的Python代码实现:
import numpy as np
from scipy.stats import norm
def bs_call(S, K, T, r, sigma):
"""
S: 正股当前价格
K: 转股价格
T: 到期时间,以年为单位
r: 无风险利率
sigma: 股票收益的波动率
"""
# 计算d1和d2
d1 = (np.log(S / K) + (r + 0.5 * sigma ** 2) * T) / (sigma * np.sqrt(T))
d2 = d1 - sigma * np.sqrt(T)
# 计算看涨期权价值
call_value = (S * norm.cdf(d1) - K * np.exp(-r * T) * norm.cdf(d2))
return 100 / K * call_value
定价偏离因子的应用
在完成可转债理论价值的定价后,可以通过比较转债价格与理论价值的偏离程度来进行高抛低吸操作。具体来说:
- 低估转债:转债价值远大于转债价格,通常是低溢价率转债
- 高估转债:转债价值小于价格,通常是转股溢价率过高的转债
从结果来看,定价偏离因子与转股溢价率因子存在较高的相关性。下图展示了各大转债因子间的相关系数矩阵:
其他因子包括低价因子(low_price)、双低因子(double_low)、低剩余规模因子(remaining_amt)。
实用建议
由于定价偏离因子的计算过程较为繁琐,建议使用tuShare+JoinQuant的组合来完成数据获取和计算任务。需要注意的是,tuShare需要付费使用。
从收益风险比来看,定价偏离因子的表现要优于单纯的溢价率因子。下图展示了常见转债因子的长期走势: