Ошибка: отрицательное время (-9,94444), указанное, когда я использую Python QuantLib для определения цены облигации с плPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка: отрицательное время (-9,94444), указанное, когда я использую Python QuantLib для определения цены облигации с пл

Сообщение Anonymous »

Я пытаюсь использовать Python QuantLib для оценки базовой облигации с плавающей ставкой, но получил отрицательное время ошибки (-9,94444).
Моя логика такая: сначала постройте кривую прогноза (которая основана просто на риске) бесплатная ставка 1,5%); затем я строю облигацию FRN с плавающей ставкой на основе эталонного индекса USDLibor. Затем я распечатываю денежные потоки FRN. Кажется, работает.
После этого я указываю кривую дисконтирования (безрисковая ставка 0,015 и кредитный спред 0,005) для ценообразования. Но возникает ошибка, когда я печатаю чистую приведенную стоимость, чистую цену и грязные цены. Можете ли вы помочь?
Мой код Python выглядит следующим образом:
import QuantLib as ql
from datetime import datetime, timedelta
from pandas import DataFrame

start = ql.Date(15,12,2019)
issue_date = ql.Date(15,12,2019)
maturity = ql.Date(15,12,2022)
settle_date = ql.Date(15,12,2019)
settlement_days = 0

calendar = ql.UnitedStates()

coupons = [0.06]
coupon_freq = ql.Period(ql.Semiannual)
face_value = 100
dateGeneration = ql.DateGeneration.Backward
businessConvention = ql.Following
schedule = ql.Schedule(issue_date, maturity, coupon_freq, calendar, businessConvention, businessConvention, dateGeneration,False)
day_count = ql.Thirty360()
#ql.ActualActual(ql.ActualActual.ISMA)

#construction of forecast curves with index specification

forecast_curve = ql.YieldTermStructureHandle(ql.FlatForward(start,0.015, day_count, ql.Compounded)) #let forecast term structure same as yield ts
index = ql.IborIndex('USD Libor', coupon_freq, settlement_days, ql.USDCurrency(), calendar, businessConvention, False, day_count, forecast_curve)
#index = ql.IborIndex('Euribor', coupon_freq, 2, ql.EURCurrency(), calendar, businessConvention, False, day_count, forecast_curve)

#after constructing discount and forecasting term structure with index specification, construct the FRN
margin = [0.01]
fixing_days = 2
FRN = ql.FloatingRateBond(settlement_days, face_value, schedule, index, day_count, spreads=margin)
dates = [c.date() for c in FRN.cashflows()]
cfs = [c.amount() for c in FRN.cashflows()]
print(DataFrame(zip(dates, cfs), columns=('date', 'amount'))) #works

#discount curve with credit spread
crv = ql.FlatForward(start,0.015, day_count, ql.Compounded)
yts = ql.YieldTermStructureHandle(crv)

spread_handle1 = ql.QuoteHandle(ql.SimpleQuote(0.0050))
ts_spreaded1 = ql.ZeroSpreadedTermStructure(yts, spread_handle1)
discount_ts_handle = ql.YieldTermStructureHandle(ts_spreaded1)

#ENGINE
FRN_engine = ql.DiscountingBondEngine(discount_ts_handle)
FRN.setPricingEngine(FRN_engine)
print("FRN NPV is", FRN.NPV()) #error: negative time (-9.94444) given
print("FRN clean price is", FRN.cleanPrice())
print("FRN dirty price is", FRN.dirtyPrice())


Подробнее здесь: https://stackoverflow.com/questions/686 ... ice-a-floa
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Quantlib Python Python Ploing Sceent отрицательное время дано
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Quantlib Python Python Ploing Sceent отрицательное время дано
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Quantlib Python Python Ploing Sceent отрицательное время дано
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Python — доходность к погашению (финансы — облигации)
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Цена свопа QuantLib Vanilla с Python — ошибка
    Anonymous » » в форуме Python
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»