債券

如果在 QuantLib 中給出收益率或反之亦然,如何獲得債券的價格

  • June 4, 2020

例如 在此處輸入圖像描述

如果我有(到期日、發行日期、優惠券、頻率、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

引用自:https://quant.stackexchange.com/questions/54664