債券
如果在 QuantLib 中給出收益率或反之亦然,如何獲得債券的價格
如果我有(到期日、發行日期、優惠券、頻率、days_countbase、(價格或收益率)),您能否提供一個詳細的範例(給出此資訊的收益率或價格。
例如,如果我有
到期日 = 2030 年 1 月 30 日息票 3% 發行日期 = 2019 年 1 月 30 日(不確定 quantlib 中是否需要) 頻率 = 半年期 days_count base= isma-30/360 和價格 = 假設 quantlib 使用 cleanprice = 104.5
給定債券的到期收益率是多少
或其他選項相同的資訊,但不是價格,我有 2.45% 的收益率 clean_price 是多少?
感謝您的幫助,如果您能給我提供一個程式碼範例,我將非常感謝,我已經看過範例和您的 youtube 影片,我的問題似乎很簡單,但我有一段時間嘗試正確使用 quntlib
謝謝
從價格中獲得債券收益率:
import QuantLib as ql maturity = ql.Date(30, 1, 2030) coupon = 0.03 issueDate = ql.Date(30, 1, 2019) frequency = ql.Semiannual dayCount = ql.Thirty360() price = 104.5 bond = ql.FixedRateBond(2, ql.TARGET(), 100.0, issueDate, maturity, ql.Period(frequency), [coupon], dayCount) yld = bond.bondYield(price, dayCount, ql.Compounded, ql.Annual) print(yld)
0.02487635655403138
然後做相反的事情:
cleanPrice = bond.cleanPrice(yld, dayCount, ql.Compounded, ql.Annual) print(cleanPrice)
104.50000186708574
從您的照片中為債券定價,這是過去的估值:
ql.Settings.instance().evaluationDate = ql.Date(21,2,2012) maturity = ql.Date(29, 4, 2016) coupon = 0.038 issueDate = ql.Date(29, 4, 2006) frequency = ql.Annual dayCount = ql.Thirty360() price = 98.847 bond = ql.FixedRateBond(2, ql.TARGET(), 100.0, issueDate, maturity, ql.Period(frequency), [coupon], dayCount) yld = bond.bondYield(price, dayCount, ql.Compounded, ql.Annual) print(yld)
0.04102500295639039