aboutsummaryrefslogtreecommitdiffstats
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/import_quotes.py (renamed from python/import_cds_quotes.py)28
1 files changed, 27 insertions, 1 deletions
diff --git a/python/import_cds_quotes.py b/python/import_quotes.py
index a5328b21..d6c80475 100644
--- a/python/import_cds_quotes.py
+++ b/python/import_quotes.py
@@ -5,7 +5,8 @@ import datetime
from db import serenitasdb
import re, sys
from pandas.tseries.offsets import BDay
-import pdb
+import pandas as pd
+import numpy as np
def convert(x):
try:
@@ -84,6 +85,29 @@ def insert_cds_single(database, workdate, bbgtickers, mkt_tuple):
database.rollback()
database.commit()
+def insert_index(database, workdate):
+ basedir = os.path.join(root, 'Tranche_data', 'Composite_reports')
+ filenames = [os.path.join(basedir, f) for f in os.listdir(basedir) if 'Indices' in f]
+
+ name_mapping = {"CDXNAHY":"HY", "CDXNAIG":"IG",'ITraxx Eur': "EU"}
+ sqlstr = "INSERT INTO index_quotes VALUES(%s, %s, %s, %s, %s, %s, %s)"
+
+ for f in filenames:
+ if datetime.datetime.fromtimestamp(os.path.getctime(f)).date()==workdate+BDay(1):
+ data = pd.read_csv(f, skiprows=2, parse_dates=[0,7])
+ data = data.dropna()
+ data[['Composite Price', 'Composite Spread']] = data[['Composite Price', 'Composite Spread']].applymap(lambda x: float(x[:-1]) if x.endswith('%') else x)
+ data['Term']=data['Term'].apply(lambda x: x.lower()+'r')
+ data['Name'] = data['Name'].apply(lambda x: name_mapping[x] if x in name_mapping else np.NaN)
+ data = data.dropna()
+ data = data.set_index('Name', drop=False)
+ data['Composite Spread'] = data['Composite Spread']*100
+ toinsert = [tuple(r) for r in data[["Date", "Name", "Series", "Version", "Term",
+ "Composite Price", "Composite Spread"]].values]
+ with database.cursor() as c:
+ c.executemany(sqlstr, toinsert)
+ database.commit()
+
if __name__=="__main__":
if len(sys.argv)>=2:
workdate = datetime.datetime.strptime(sys.argv[1], "%Y-%m-%d")
@@ -91,6 +115,8 @@ if __name__=="__main__":
workdate = datetime.datetime.today()-BDay(1)
workdate = workdate.date()
insert_cds(serenitasdb, workdate)
+ insert_index(serenitasdb, workdate)
+ serenitasdb.close()
## backpopulate single ticker
# bbgtickers = ['CT675194bis', 'CT406651bis', 'CT406655bis', 'CX404662bis', 'CX404666bis',
# 'CX404670bis', 'CX404678bis', 'CX404690bis']