aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/load_cf.py24
1 files changed, 20 insertions, 4 deletions
diff --git a/python/load_cf.py b/python/load_cf.py
index ce70af0f..8ab0c31c 100644
--- a/python/load_cf.py
+++ b/python/load_cf.py
@@ -5,9 +5,12 @@ from intex_scenarios import dealname_from_cusip
from zipfile import ZipFile
import re
import datetime
-import pdb
from db import query_db
import yaml
+from quantlib.time.api import Schedule, Actual360, Period, Months, Calendar
+from quantlib.util.converter import pydate_to_qldate
+from quantlib.settings import Settings
+from yieldcurve import YC
if os.name =='nt':
root = "//WDsentinel/share/CorpCDOs"
@@ -57,22 +60,35 @@ def get_configfile(dealname, workdate):
def getdealcf(dealnames, cusips, zipfiles, workdate = datetime.date.today()):
fiels = ["Cashflow", "Principal", "Interest"]
n_scenarios = 100
+ us_cal = Calendar.from_name('USA')
+ cfdata = {}
+ m = YC()
for dealname, i in dealnames.items():
zip = zipfiles[i]
+ cfdata[dealname]={}
mv = query_db("select marketvalue from latest_deal_model_numbers where dealname = %s",
(dealname,))[0]
sqlstr = "select \"Curr Collat Bal\", \"Reinv End Date\", \"Deal Next Pay Date\"," \
- "maturity, \"Principal Bal\" from historical_clo_universe(%s, %s)"
+ "maturity, \"Principal Bal\", \"Pay Day\" from historical_clo_universe(%s, %s)"
sqldata = query_db(sqlstr, (dealname, str(workdate)))
- pdb.set_trace()
+ cfdata[dealname] = {"mv":mv, "currbal": sqldata["Curr Collat Bal"]}
config = get_configfile(dealname, workdate)
- if (not sqldate or config["reinvflag"]):
+ prevpaydate = pydate_to_qldate(sqldata["Pay Day"])
+ sched = Schedule(prevpaydate, pydate_to_qldate(sqldata["maturity"]), Period('1Mo'), us_cal)
+
+ alldates = [day for day in sched if day > YC.settle_date]
+ if (not sqldata["Reinv End Date"] or config["reinvflag"]):
tranches = ["COLLAT"]
else:
tranches = ["COLLAT_INITIAL", "COLLAT_REINVEST"]
for tranche in tranches:
+ for i in range(1, scenarios+1):
+ filename = "{0}-{1}-CF-Scen{2}.txt".format(dealname.upper(), tranche, "CF", i)
+ data = pd.read_table(filename)
cfdata[dealname][tranche]
+
+
# fields = ["Price", "WAL", "Market Value", "Modified Duration"]
# dealdata = {}
# workdate = '2013-01-09'