diff options
Diffstat (limited to 'python/calibrate_swaption.py')
| -rw-r--r-- | python/calibrate_swaption.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/python/calibrate_swaption.py b/python/calibrate_swaption.py index 703b6429..7d67d654 100644 --- a/python/calibrate_swaption.py +++ b/python/calibrate_swaption.py @@ -1,7 +1,6 @@ import pandas as pd -from analytics import CreditIndex, Swaption +from analytics import CreditIndex, Swaption, BlackSwaption import datetime -import sys from utils.db import dbengine from contextlib import contextmanager @@ -52,7 +51,7 @@ def calib(option, ref, strike, pay_bid, pay_offer, rec_bid, rec_offer): option.ref = ref option.strike = strike r = [] - for price_type in ["price", "price_black"]: + for price_type in ["price_black", "price"]: for option_type in ["pay", "rec"]: if option_type == "pay": mid = (pay_bid + pay_offer) / 2 * 1e-2 @@ -65,7 +64,10 @@ def calib(option, ref, strike, pay_bid, pay_offer, rec_bid, rec_offer): r.append(0.0) continue try: - setattr(option, price_type, mid) + if price_type == "price_black": + BlackSwaption.price.fset(option, mid) + else: + setattr(option, price_type, mid) except (ValueError, SystemError) as e: if "Failed" in str(e): logger.error(e) |
