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, 9 insertions, 1 deletions
diff --git a/python/calibrate_swaption.py b/python/calibrate_swaption.py
index ba7c4b80..866d0fb8 100644
--- a/python/calibrate_swaption.py
+++ b/python/calibrate_swaption.py
@@ -1,6 +1,8 @@
import pandas as pd
from analytics import CreditIndex, Swaption
import datetime
+import sys
+
from utils.db import dbengine
from contextlib import contextmanager
from itertools import starmap
@@ -65,6 +67,10 @@ def calib(option, ref, strike, pay_bid, pay_offer, rec_bid, rec_offer):
try:
setattr(option, pv_type, mid)
except ValueError as e:
+ if "Failed" in str(e):
+ logger.error(e)
+ logger.error("probably data error")
+ sys.exit(0)
r.append(None)
logger.error(e)
else:
@@ -90,6 +96,7 @@ def calibrate(index_type=None, series=None, date=None, nproc=4, latest=False):
pstarmap = pool.starmap if pool else starmap
for k, v in data.groupby([data["quotedate"].dt.date, "index", "series"]):
trade_date, index_type, series = k
+ logger.debug(f"{trade_date} {index_type}{series}")
index = CreditIndex(index_type, series, "5yr", trade_date)
for expiry, df in v.groupby(["expiry"]):
try:
@@ -141,7 +148,8 @@ if __name__ == "__main__":
else:
handler = logging.StreamHandler()
handler.setFormatter(SerenitasFileHandler._formatter)
- logger.addHandler(handler)
+ if not logger.handlers:
+ logger.addHandler(handler)
if args.latest:
calibrate(latest=True, nproc=args.nproc)
else: