aboutsummaryrefslogtreecommitdiffstats
path: root/python/intex_prices.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/intex_prices.py')
-rw-r--r--python/intex_prices.py57
1 files changed, 27 insertions, 30 deletions
diff --git a/python/intex_prices.py b/python/intex_prices.py
index 160e9b86..21b065a6 100644
--- a/python/intex_prices.py
+++ b/python/intex_prices.py
@@ -20,39 +20,36 @@ def cusips_from_dealname(dealname, curr = cursor):
" where dealname = %s", (dealname,))
return curr.fetchone()[0]
-for dealname in ["abcl071", "ammcclo5", "atr5cdo", "blumt3", "callid6"]:
- cusips = cusips_from_dealname(dealname)
- price = []
- wal = []
- duration = []
- for cusip in cusips:
- filename = cusip + "-PY.txt"
- i = 1
- with open(os.path.join(root, "Scenarios", "Prices", filename)) as fh:
- csvinput = csv.DictReader(fh, dialect = 'excel-tab')
- for line in csvinput:
- if i==1:
- price.append(line)
- elif i==5:
- wal.append(line)
- elif i==6:
- duration.append(line)
- i = i+1
+prog = re.compile("\((.*)\)")
+
+def convert_float(string):
+ string = string.replace(",","")
+ if prog.match(string):
+ return - float(prog.match(string).group(1))
+ else:
+ return float(string)
- with open(os.path.join(root, "Scenarios", "Prices", dealname + "-price.csv"), "wb") as fh:
- csvoutput = csv.writer(fh)
- for i in range(100):
- csvoutput.writerow([price[j]['Scenario {0}'.format(i+1)] for j in range(len(cusips))])
+fields = ["Price", "WAL", "Market Value", "Modified Duration"]
+data = {}
+n_scenarios = 100
- with open(os.path.join(root, "Scenarios", "Prices", dealname + "-wal.csv"), "wb") as fh:
- csvoutput = csv.writer(fh)
- for i in range(100):
- csvoutput.writerow([wal[j]['Scenario {0}'.format(i+1)] for j in range(len(cusips))])
+for field in fields:
+ data[field] = []
- with open(os.path.join(root, "Scenarios", "Prices", dealname + "-duration.csv"), "wb") as fh:
- csvoutput = csv.writer(fh)
- for i in range(100):
- csvoutput.writerow([duration[j]['Scenario {0}'.format(i+1)] for j in range(len(cusips))])
+for dealname in ["oceant2"]:
+ tranches = os.listdir(os.path.join(root, "Scenarios", "Prices", dealname))
+ for tranche in tranches:
+ with open(os.path.join(root, "Scenarios", "Prices", dealname, tranche)) as fh:
+ csvinput = csv.reader(fh, dialect = 'excel-tab')
+ for line in csvinput:
+ if line[1] in fields:
+ data[line[1]].append(map(convert_float, line[2:-1]))
+ for field in fields:
+ with open(os.path.join(root, "Scenarios", "Prices", "{0}-{1}.csv".format(dealname, field)), "wb") as fh:
+ csvoutput = csv.writer(fh)
+ csvoutput.writerow([tranche.split(",")[0] for tranche in tranches])
+ for i in range(n_scenarios):
+ csvoutput.writerow([data[field][j][i] for j in range(len(tranches))])
cursor.close()
conn.close()