1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import unittest
import datetime
from quantlib.indexes.swap.usd_libor_swap import UsdLiborSwapIsdaFixAm
from quantlib.time.api import Date, Period, Years
from quantlib.settings import Settings
from serenitas.analytics.yieldcurve import YC
class UsdLiborSwap(unittest.TestCase):
def test_creation(self):
settings = Settings()
settings.evaluation_date = Date.from_datetime(datetime.date(2020, 1, 24))
yc = YC(evaluation_date=datetime.date(2020, 1, 24))
yc.extrapolation = True
USISDA30 = UsdLiborSwapIsdaFixAm(
Period(30, Years), forwarding=yc, discounting=yc
)
USISDA30.add_fixing(Date(25, 1, 2018), 0.02781)
USISDA02 = UsdLiborSwapIsdaFixAm(
Period(2, Years), forwarding=yc, discounting=yc
)
USISDA02.add_fixing(Date(25, 1, 2018), 0.02283)
USFS022 = USISDA02.underlying_swap(Date(27, 1, 2020))
USFS0230 = USISDA30.underlying_swap(Date(27, 1, 2020))
self.assertEqual(USFS022.fair_rate, USISDA02.fixing(Date(27, 1, 2020)))
self.assertEqual(USFS0230.fair_rate, USISDA30.fixing(Date(27, 1, 2020)))
|