python计算债券到期收益率「可转债到期税后收益率」 中国债券网官网手机版「关于做好政府债券申报的通知」 可转债一直亏怎么办「可转债当天买卖技巧」 战地1小技巧「战地1技巧」 集合信托投资定向可转债可行性及交易结构设计研究「信托融资结构」 抗疫特别国债是什么「抗疫债券」 负收益率债券「债券市场私募基金」 日元贬值有什么好处「美元升值和贬值的利弊」 债券托管业务「债券品种」 如何拥有加仓的 无限弹药资格「无限补仓」 债券受托管理业务规则「公司债券受托管理人执业行为准则」 债基股基配比「15年数据告诉你 股债搭配 到底能否提升持基体验 」 注会金融工具分类白话讲解「如何复习CPA中的 金融工具分类 」 基金的费用包括哪些「基金要收取多少费用」 债券基金违约会本息全无吗「债券违约会有什么后果」 美债收益率对a股影响「美债危机对a股影响」 债券销售交易好坑啊「那些年带你入坑的22首」 打新债中签概率大约多少「打新债中签一手能挣多少钱」 可转债解读「关于可转债」 理财投资负债率「投资理财需要注意的问题」 2022年初级会计考试知识点总结2册「初级会计师知识点总结」 宏观经济学简答题论述题「宏观经济学简答题」 上交所债券回售「国内债券」 挪用债券资金处罚条例「中央专项债券资金使用管理办法」 短债基金和理财哪个好「鹏华稳利短债a有人买过吗」 美联储中国抛售美债最新消息「中国连抛1350亿美债」 美国如何通过美元薅世界羊毛「美元怎么收割全世界过程」 23年前的凭证式国债 还能兑付吗现在「2019年凭证式国债」 二战之后美国的货币体系「二战时期货币」 资产定价的基本原理是「资产定价理论」 美债为什么涨「美债危机爆发 后果」 可转债问题「可转债太容易中了」 中国发行2万亿国债意味着什么「中国发行2万亿国债意味着什么」 债券市场周报「2021年债市」 福建省第二批专项债「专项债储备项目」 大盘3400点还能买新基金吗「大盘还能上4000点吗」 美国债券市场发展「美元美股美债关系」 没有科创板资格 可以看看这些投资新产品嘛「科创板投资条件」 世界各国抛售美债,那谁在接盘「美债28万亿」 可转债从入门到精通「怎么玩转可转债」 中国40亿欧元主权债券 为何受热捧 「人民币债券」 会稽山股票新浪财经「江苏国泰还会涨吗」 信托公司开展城投债业务的思路设想「课题研究初步设想」 英雄本色国产电影「评分最好的动作片」 镇远农商银行办理首笔债券投资业务需要什么「商业银行债券投资管理办法」 7月我国债券市场发债超4 8万亿元「7月我国债券市场发债超4 8万亿元」 值得关注的是,2020年上半年,招联消费金融共发行「信贷ABS」 新基建吸引多路资金「基础设施投资与一般投资的关系」 如何选择合适的债券基金呢「债券基金选择方法」 郑州银行融资「郑州银行商贸金融」
您的位置:首页 >要闻 >

python计算债券到期收益率「可转债到期税后收益率」

2023-01-31 10:03:52来源:暖冬2000

可转债同时具有债券和期权两种属性。利用这种特点,采用适合的策略可以获得更加稳健的投资回报。可转债作为债券,持有人每年可以得到约定的利息;如果可转债到期赎回,持有人还可以按照到期赎回价赎回可转债。通过计算从当前时间至到期日的利息总和,我们就可以得出可转债的到期价值,并进一步计算出可转债的到期收益率。下面我们来看看如何计算可转债的到期价值和收益率。

首先,我们了解一下计算到期价值及收益率需要用到的几个参数。

发行起始日,到期日期:发行日也就是起息日,每年的付息日跟起息日的日期相同。大部分可转债的存续期限为6年(少量存续期为5年),则对应的发行起始日与到期日期之间的间隔时间为6年。

年利率:可转债每年支付的利息。例如,某只可转债的利率约定为:第一年0.30%、第二年0.50%、第三年0.80%、第四年1.60%、第五年2.50%、第六年3.00%

到期赎回价:在可转债的赎回条款中,会约定债券到期时以面值乘以x%的价格赎回债券(x>100)。例如,在某个可转债的赎回条款中写到:“公司将按债券面值的115%(含最后一期利息)的价格赎回全部未转股的可转债。”,那么该转债的到期赎回价格就是100x115%=115, 注意这个价格包含了当期的利息。

以上参数为不变参数,下面的参数则是随着投资发生变化。

当前价格:当前价格表示以当前价格买入的成本,需要以该成本为基准计算到期收益率。

买入时间:买入时间决定了当时所处的付息周期和未付利息。

好了,接下来我们看一下到期价值的计算。

from datetime import datetime,date#年利率,最后一项rates[-1] 使用(到期赎回价格-100)作为最后一期总的利息。rates = [0.3, 0.5, 0.8, 1.6, 2.5, 3]#到期赎回价格r_price = 115#当前时间today = datetime.now().date()#到期时间expires = date(2028,1,12)#计算剩余年数remained_years = (expires - today).days/365#计算未付息期数unpaid_years = int(0.999 remained_years)#每期的利息税率,按照个人所得税20%计tax = 0.2#最后一期的税率;考虑到部分转债到期赎回时价超过100部分不扣税,所以这里税率设为0tax2= 0#计算到期价值:未付息年利率之和(除最后一年)税后 到期赎回价格(税后)value_til_expire = sum(rates[-unpaid_years:-1])*(1-tax) (100 (r_price-100)*(1-tax2))print("剩余{:2.2f}年,未付期数{},到期价值:{:2.2f}".format(remained_years,unpaid_years,value_til_expire))

通过上述程序得到的到期价值的意义在于:当我们以低于到期价值买入可转债时,如果债券不违约,不发生回售,那么该投资至少是保本的。

接下来,我们计算到期年化收益率。

方法一:采用简单的算术平均来计算收益率,即总收益率除以剩余年数。

#买入的价格price = 109.3#到期收益率(年化)ytm = (value_til_expire - price)/price/remained_yearsprint("到期年化收益率:{:2.2f}%".format(ytm*100))

上述代码是通过算数平均来计算的收益率。对于普通个人投资者来说,这个收益率已经比较直观体现了转债到期年化收益率。

方法二:该方法为更精确也更复杂,通过净现值(NPV)计算到期收益率。这里,我们使用了scipy.optimize中的neoton函数来计算到期年化收益率。

import scipy.optimize as optimizeimport mathvalues = []rates2 = [r*(1-tax) for r in rates]rates2[-1] = (r_price-100)*(1-tax2)n = int(remained_years 1)#初始猜测值guess = 0.05#数组的每项存放每期的利率及以年为单位的剩余时间for i in range(n):values.append((rates2[-1-i],remained_years-i))ytm_func = lambda y: sum([v[0]/math.pow(1 y,v[1]) for v in values]) 100/math.pow(1 y,remained_years) - priceytm2 = optimize.newton(ytm_func, guess)print("到期年化收益率2:{:2.2f}%".format(ytm2*100))

通过实际运行我们可以发现,两种方法计算得出的收益率差别并不是很大, 第一种简单易理解,第二种更精确一些。在实际应用中,可将上述代码改写成函数,以便重复使用。

以上代码在Python 3.7运行通过。

免责声明:本网站所有信息仅供参考,不做交易和服务的根据,如自行使用本网资料发生偏差,本站概不负责,亦不负任何法律责任。涉及到版权或其他问题,请及时联系我们。