diff options
Diffstat (limited to 'python/tests')
| -rw-r--r-- | python/tests/test_swaption.py | 43 |
1 files changed, 42 insertions, 1 deletions
diff --git a/python/tests/test_swaption.py b/python/tests/test_swaption.py index 935a964b..1fd71d27 100644 --- a/python/tests/test_swaption.py +++ b/python/tests/test_swaption.py @@ -43,7 +43,7 @@ class TestPutCallParity(unittest.TestCase): def test_hy(self): index = Index.from_name("hy", 27, "5yr", - trade_date = datetime.date(2016, 11, 8)) + trade_date=datetime.date(2016, 11, 8)) index.price = 103.875 exercise_date = datetime.date(2017, 3, 15) strike = 102.5 @@ -51,5 +51,46 @@ class TestPutCallParity(unittest.TestCase): payer.pv = 1.948 * 1e-2 self.assertAlmostEqual(payer.sigma, 0.4144886488) +class TestBreakeven(unittest.TestCase): + + exercise_date = datetime.date(2017, 3, 15) + hyindex = Index.from_name("hy", 27, "5yr", + trade_date=datetime.date(2016, 11, 16)) + hyindex.price = 103.75 + hystrike = 102.5 + + igindex = Index.from_name("ig", 27, "5yr", + trade_date=datetime.date(2016, 11, 18)) + igindex.spread = 76.5 + igstrike = 80 + + def test_hypayer(self): + payer = Swaption(self.hyindex, self.exercise_date, + self.hystrike, strike_is_price=True) + payer.sigma = .4 + payer.notional = 1e7 + self.assertAlmostEqual(payer.breakeven, 100.66971148766) + + def test_hyreceiver(self): + receiver = Swaption(self.hyindex, self.exercise_date, + self.hystrike, "receiver", strike_is_price=True) + receiver.sigma = .4 + receiver.notional = 1e7 + self.assertAlmostEqual(receiver.breakeven, 103.9609977905) + + def test_igpayer(self): + payer = Swaption(self.igindex, self.exercise_date, + self.igstrike, strike_is_price=False) + payer.sigma = .4 + payer.notional = 1e7 + self.assertAlmostEqual(payer.breakeven, 88.39037813) + + def test_igreceiver(self): + receiver = Swaption(self.igindex, self.exercise_date, + self.igstrike, "receiver", strike_is_price=False) + receiver.sigma = .4 + receiver.notional = 1e7 + self.assertAlmostEqual(receiver.breakeven, 73.698281555) + if __name__=="__main__": unittest.main() |
