Я хотел бы оценить крышку с помощью Quantlib в Python. У меня приведены следующие списки: Dates_3M, начиная с Ql.Date (25,11,2019) и таблицы_3m, dates_ois, начиная с ql.date (25,11,2019) и таблицы, а также tenors_vola (= [ql.period ('1y'), ql.period ('2y'), или я также могу создать. exp_dates_vola) и rate_vola. Мой код пока выглядит так: < /p>
ref_date = ql.Date(25,11,2019)
calendar = ql.TARGET()
curve_ois = ql.ZeroCurve(dates_ois, rates_ois, ql.Actual360(), calendar, ql.Linear(), ql.Compounded, ql.Annual)
curve_ois_handle = ql.YieldTermStructureHandle(curve_ois)
curve_3M = ql.ZeroCurve(dates_3M, rates_3M, ql.Actual360(), calendar, ql.Linear(), ql.Compounded, ql.Annual)
curve_3M_handle = ql.YieldTermStructureHandle(curve_3M)
startDate = ref_date + 2
endDate = calendar.advance(ref_date, ql.Period('72M')
schedule = ql.Schedule(startDate, endDate, ql.Period(ql.Quarterly), calendar, ql.ModifiedFollowing, ql.ModifiedFollowing, ql.DateGeneration.Forward, False)
nom = 1000000
capRate = 0.03
cap = ql.Cap(ql.IborLeg([nominal], schedule, ql.Euribor3M(curve_3M_handle)), [capRate])
< /code>
Теперь, если бы у меня была поверхность Vola, следующий шаг будет выглядеть так: < /p>
vol_surf = ql.CapFloorTermVolSurface(settlementDays, ql.TARGET(), ql.ModifiedFollowing, exp_dates_vola, strikes, rates_vola, ql.Actual360())
tmp1 = ql.OptionletStripper1(vol_surf, ql.Euribor(curve_3M_handle), type=ql.Normal)
tmp2 = ql.StrippedOptionAdapter(tmp1)
vol_handle = ql.OptionletVolatilityStructureHandle(tmp2)
engine = ql.BachelierCapFloorEngine(curve_ois, vol_handle)
< /code>
Однако у меня нет данных, необходимых для поверхности, но также не только постоянное значение, у меня есть кривая волатильности в разные даты истечения. Я предполагаю, что удар - 0 для всех моих данных, но я не совсем уверен. Я попробовал < /p>
vol_curve = ql.CapFloorTermVolCurve(ref_date, ql.TARGET(), ql.ModifiedFollowing, tenors_vola, rates_vola)
vol_handle = ql.OptionletVolatilityStructureHandle(vol_curve)
engine = ql.BachelierCapFloorEngine(curve_ois, vol_handle)
< /code>
, который не работает, потому что ql.optionletvolatilitystructurehandle ожидает ввода типа Optionletrolatility Structure, что, по -видимому, Ql.capfloortermvolcurve (...) нет. Но < /p>
vol_curve = ql.CapFloorTermVolCurve(ref_date, ql.TARGET(), ql.ModifiedFollowing, tenors_vola, rates_vola)
tmp1 = ql.OptionletStripper1(vol_curve, ql.Euribor(curve_3M_handle), type=ql.Normal)
tmp2 = ql.StrippedOptionAdapter(tmp1)
vol_handle = ql.OptionletVolatilityStructureHandle(tmp2)
engine = ql.BachelierCapFloorEngine(curve_ois, vol_handle)
< /code>
также не работает, потому что Ql.optionletStripper1 ожидает ввода типа CapflommvlomvolSurface, а не Capflomtermvolcurve.
Как я могу создать свой Ql.bacheliercapfloorengine? И почему Ql.capfloortermvolcurve даже exsit, когда я не могу использовать его для дальнейших вычислений?
Подробнее здесь: https://stackoverflow.com/questions/794 ... lib-python
Ценовая цена Quantlib Python ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Почему на секунду отображается цена со скидкой, а через секунду — полная цена?
Anonymous » » в форуме Php - 0 Ответы
- 41 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему на секунду отображается цена со скидкой, а через секунду — полная цена?
Anonymous » » в форуме Php - 0 Ответы
- 40 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему на секунду отображается цена со скидкой, а через секунду — полная цена?
Anonymous » » в форуме Php - 0 Ответы
- 28 Просмотры
-
Последнее сообщение Anonymous
-