diff options
Diffstat (limited to 'python/calibrate_swaption.py')
| -rw-r--r-- | python/calibrate_swaption.py | 10 |
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: |
