重要的优化
计算公式的优化:
1,Put 债券的产生。现在我们的后台有2,3笔高收益债券,具有Put的属性。Put与Call相反,Call是发行人在约定的时间,约定的价格可以赎回债券(权利,不是义务)。Put则是投资者在约定的时间可以以约定的价格将债券回售给发行人(权利,不是义务)。比如后台Cogard 5.625 12/15/26债券,到期日是2026年12月15日,Put日期是2021年12月15日。即投资者可以在2021年12月21日以约定的价格(这里是100)将债券卖回给发行人。那么,当这笔债券的价格高于100时,投资者没有动力将债券卖回给发行人,因此,这笔债券计算Yield to Maturity。当这笔债券的价格低于100时,投资者有动力在2021年12月15日将债券卖回给发行人,因此,这笔债券应该计算Yield to Put。
总之,Put与Call的结构正好相反。
2,Yield to Worst的引入。Yield to Worst,顾名思义,即可能出现的最差收益率。假如一个债券只有一个Call price, 因此只有一个YTC,和YTM。那么,Yield to Worst就是两者里面最低的那个。比如YTC是8%,YTM是6%,那么Yield to Worst就是6%, 即等于YTM。如果YTC是7%, YTM是10%,那么Yield to Worst就是7%,即等于YTC。
如果债券有多个Call Date和Call Price,那么Yield to Worst就发挥作用了。即算出所有YTC和YTM,然后用最低的收益率即最保守的收益率来表示yield to worst. 即effective yield.
一般情况下,涉及YTC, Yield to worst的多是高收益债券。我们可以考虑展示下面的这幅图给用户,这样会更清楚。将YTC, YTM, YTW等展示给用户。
3,Call Date的两种区别
之前我们在后台录入Call Date的时候,有一个字段是“可赎回日期附加条款”。在这里我们一般输入是两种:1,在可赎回日,发行人可以赎回债券。2,在可赎回日以及以后任意日期,发行人可赎回债券。第一种很好解决。第二种,怎么算yield。以Everre 8.75 10/30/18为例,这笔债券的可赎回日是2016年10月30日在104.375,2017年10月30日在102.188,如下图,但是在2016年10月30日和2017年10月30日以后的任意时间,发行人都可以赎回债券。比如今天,发行人就可以宣布以104.375赎回债券,因为发行人宣布赎回债券需要提前至少30天至多60天通知。所以彭博的算法是:默认今天发行人宣布赎回(发行人有可能今天宣布赎回),那么就是2017年1月11日施行赎回。那么Yield to Next Call就是算yield to 2017年1月11日。所以为了进一步精确,后台应该区分这两种情况,并分别计算合适的yield。
4, 建议
这次我们对yield的优化可能很大,我的建议是在网页版后台的债券那个我们先优化,优化好了再在app和指数那里应用。如果直接在app和指数那里优化,有可能会造成服务的终端。