diff options
Diffstat (limited to 'python/cds_curve.py')
| -rw-r--r-- | python/cds_curve.py | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/python/cds_curve.py b/python/cds_curve.py index a09de93e..e11327a5 100644 --- a/python/cds_curve.py +++ b/python/cds_curve.py @@ -35,7 +35,7 @@ def calibrate_portfolio(index_type, series, tenors=['3yr', '5yr', '7yr', '10yr'] index = BasketIndex(index_type, series, tenors) r = {} if start_date: - index.index_quotes = index.index_quotes[startdate:] + index.index_quotes = index.index_quotes[start_date:] for trade_date in index.index_quotes.index.get_level_values(0): print(trade_date) index.trade_date = trade_date @@ -49,10 +49,27 @@ def calibrate_portfolio(index_type, series, tenors=['3yr', '5yr', '7yr', '10yr'] if __name__=="__main__": enable_logging() + import argparse import sys - index, series = sys.argv[1:] - df = calibrate_portfolio(index, series, ['3yr', '5yr', '7yr', '10yr']) - conn = dbconn('serenitasdb') + parser = argparse.ArgumentParser() + parser.add_argument('index', help="index type (IG, HY, EU or XO)") + parser.add_argument('series', help="series", type=int) + parser.add_argument('--latest', required=False, action="store_true") + args = parser.parse_args() + index, series = args.index, args.series + if args.latest: + conn = dbconn('serenitasdb') + with conn.cursor() as c: + c.execute("SELECT min(date) FROM index_quotes WHERE index=%s AND series=%s " + "AND duration2 is NULL", (index, series)) + start_date, = c.fetchone() + if start_date is None: + sys.exit(0) + else: + start_date = None + + df = calibrate_portfolio(index, series, ['3yr', '5yr', '7yr', '10yr'], + start_date) with conn.cursor() as c: for k, s in df.iterrows(): c.execute("UPDATE index_quotes SET duration2=%s, theta2=%s "\ |
