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