aboutsummaryrefslogtreecommitdiffstats
path: root/python/calibrate_swaption.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/calibrate_swaption.py')
-rw-r--r--python/calibrate_swaption.py10
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)