diff options
| -rw-r--r-- | python/exploration/test_cms.py | 4 | ||||
| -rw-r--r-- | python/exploration/test_swaption.py | 11 |
2 files changed, 9 insertions, 6 deletions
diff --git a/python/exploration/test_cms.py b/python/exploration/test_cms.py index 1a67c48a..57677b43 100644 --- a/python/exploration/test_cms.py +++ b/python/exploration/test_cms.py @@ -9,6 +9,7 @@ corr = 0.8 r = [] maturity = pd.Timestamp("2020-01-19") today = pd.Timestamp.today() + for d in pd.bdate_range("2018-01-19", today, closed="left", normalize=True): yc.link_to(YC(evaluation_date=d.date())) yc.extrapolation = True @@ -17,8 +18,9 @@ for d in pd.bdate_range("2018-01-19", today, closed="left", normalize=True): cms_spread_coupon_ln = quantlib_model(d, cms30y2y, yc, cap, corr, maturity) rate1 = cms_spread_coupon_ln.rate cms_spread_coupon_n = quantlib_model(d, cms30y2y, yc, cap, corr, maturity, - VolatilityType.Normal) + VolatilityType.Normal) rate2 = cms_spread_coupon_n.rate rate3 = globeop_model(d, cms30y2y, yc, cap, corr - 0.075, maturity) r.append((d, rate1, rate2, rate3)) + df = pd.DataFrame(r, columns=['date', 'QL_ln', 'QL_n', 'Globeop']).set_index('date') diff --git a/python/exploration/test_swaption.py b/python/exploration/test_swaption.py index 45a53e47..6199e987 100644 --- a/python/exploration/test_swaption.py +++ b/python/exploration/test_swaption.py @@ -4,7 +4,7 @@ from quantlib.indexes.swap.usd_libor_swap import UsdLiborSwapIsdaFixAm from quantlib.instruments.make_swaption import MakeSwaption from quantlib.pricingengines.api import BlackSwaptionEngine from quantlib.instruments.swap import Receiver -from quantlib.time.api import Period, Years, Days +from quantlib.time.api import Period, Years, Days, Date from quantlib.settings import Settings from quantlib.experimental.risk.sensitivityanalysis import parallel_analysis @@ -12,12 +12,12 @@ helpers = rate_helpers("USD", evaluation_date=datetime.date.today()) yc = YC(helpers) index1 = UsdLiborSwapIsdaFixAm(Period(2, Years), yc) index2 = UsdLiborSwapIsdaFixAm(Period(10, Years), yc) -swaption1 = (MakeSwaption(index1, Period(2, Years), strike=0.020805). +swaption1 = (MakeSwaption(index1, Date(8, 6, 2020), strike=0.019475). with_underlying_type(Receiver). - with_nominal(10_000_000)()) -swaption2 = (MakeSwaption(index2, Period(10, Years), strike=0.0212). + with_nominal(225_000_000)()) +swaption2 = (MakeSwaption(index2, Date(8, 6, 2020), strike=0.0206). with_underlying_type(Receiver). - with_nominal(10_000_000)()) + with_nominal(50_000_000)()) pe1 = BlackSwaptionEngine(yc, 0.2815) pe2 = BlackSwaptionEngine(yc, 0.2830) swaption1.set_pricing_engine(pe1) @@ -46,6 +46,7 @@ delta, gamma = parallel_analysis([h.quote for h in helpers], [swaption1], []) print("NPV: ", swaption1.npv) +print("NPV2: ", swaption2.npv) print("DV01: ", dv01(swaption1, helpers)) print("theta: ", theta(swaption1)) print("vega: ", swaption1.vega / 100) |
