diff options
Diffstat (limited to 'python/intex_scenarios.py')
| -rw-r--r-- | python/intex_scenarios.py | 41 |
1 files changed, 25 insertions, 16 deletions
diff --git a/python/intex_scenarios.py b/python/intex_scenarios.py index b059fe0c..067413e3 100644 --- a/python/intex_scenarios.py +++ b/python/intex_scenarios.py @@ -8,6 +8,7 @@ import json import codecs
import re
import psycopg2
+from datetime import datetime
if os.name =='nt':
root = "//WDsentinel/share/CorpCDOs"
@@ -40,23 +41,31 @@ conn = psycopg2.connect(database="ET", cursor = conn.cursor()
# workdate = date.today().strftime('%Y-%m-%d')
-collatdate = '2013-01-04'
+workdate = '2013-01-15'
-def get_reinv_assets(dealname, date):
+def get_reinv_assets(dealname):
+ # collatdates = sorted([datetime.strptime(d.split("_")[1], "%Y-%m-%d").date()
+ # for d in os.listdir(os.path.join(root, "data"))
+ # if "Collaterals" in d], reverse=True)
+ collatfolders = sorted([d for d in os.listdir(os.path.join(root, "data")) if "Collaterals" in d],
+ reverse = True)
d = {'REINV_TBA1': None, 'REINV_TBA2': None}
filename = dealname.upper() + ",AD.txt"
- with open(os.path.join(root, "data", "Collaterals_" + date, filename )) as fh:
- dr = csv.DictReader(fh, dialect = 'excel-tab')
- headers = dr.fieldnames
- for line in dr:
- if line['ID Number'] == 'REINV_TBA1':
- d['REINV_TBA1'] = line['Fixed or Float']
- if line['ID Number'] == 'REINV_TBA2':
- d['REINV_TBA2'] = line['Fixed or Float']
- return d
+ for folder in collatfolders:
+ if filename not in os.listdir(os.path.join(root, "data", folder)):
+ continue
+ else:
+ with open(os.path.join(root, "data", folder, filename )) as fh:
+ dr = csv.DictReader(fh, dialect = 'excel-tab')
+ headers = dr.fieldnames
+ for line in dr:
+ if line['ID Number'] == 'REINV_TBA1':
+ d['REINV_TBA1'] = line['Fixed or Float']
+ if line['ID Number'] == 'REINV_TBA2':
+ d['REINV_TBA2'] = line['Fixed or Float']
+ return d
-# for dealname in ["abcl071", "ammcclo5", "atr4cdo", "atr5cdo", "blumt3", "callid6", "goldl5", "limes", "oceant2", "symph4"]:
-for dealname in ["abcl071"]:
+for dealname in ["ares12", "callid7", "symph5", "lafasq", "marath1", "drydn8"]:
cursor.execute('SELECT \"Reinv End Date\" from latest_clo_universe where dealname=%s', (dealname,))
reinvenddate = cursor.fetchone()[0]
if reinvenddate:
@@ -64,7 +73,7 @@ for dealname in ["abcl071"]: else:
print "missing reinvestment end date"
pdb.set_trace()
- reinv_assets = get_reinv_assets(dealname, collatdate)
+ reinv_assets = get_reinv_assets(dealname)
basedir = os.path.join(root, "Scenarios", "Intex curves_" + workdate)
with open(os.path.join(basedir, "csv", dealname + "-reinvprices.csv"), "r") as fhreinv:
floatreinvprices = fhreinv.readline().rstrip("\n").split(",")
@@ -95,7 +104,7 @@ for dealname in ["abcl071"]: if pattern11.match(line):
line = re.sub(pattern11, r"\1{0}\2", line).format(dealname.upper()).rstrip()
if reinv_assets["REINV_TBA1"] == "Float":
- line = line + "COUP_SPR=3.45|AMORT=Bullet|USE_REINVEST_PIP=1|MAT_DATE=84|\n"
+ line = line + "COUP_SPR=2.5|AMORT=Bullet|USE_REINVEST_PIP=1|MAT_DATE=84|\n"
elif reinv_assets["REINV_TBA1"] == "Fixed":
line = line + "COUP_SPR=7|AMORT=Bullet|USE_REINVEST_PIP=1|MAT_DATE=84|\n"
fh2.write(line)
@@ -103,7 +112,7 @@ for dealname in ["abcl071"]: if pattern12.match(line):
line = re.sub(pattern12, r"\1{0}\2", line).format(dealname.upper()).rstrip()
if reinv_assets["REINV_TBA2"] == "Float":
- line = line + "COUP_SPR=3.45|AMORT=Bullet|USE_REINVEST_PIP=1|MAT_DATE=84|\n"
+ line = line + "COUP_SPR=2.5|AMORT=Bullet|USE_REINVEST_PIP=1|MAT_DATE=84|\n"
elif reinv_assets["REINV_TBA2"] == "Fixed":
line = line + "COUP_SPR=7|AMORT=Bullet|USE_REINVEST_PIP=1|MAT_DATE=84|\n"
fh2.write(line)
|
