aboutsummaryrefslogtreecommitdiffstats
path: root/python/intex_prices.py
blob: 9b36ffb7fa6ec24fa424bc9fa26a94b093f2c481 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import os
import os.path
import psycopg2
import pdb
import pandas as pd


if os.name =='nt':
    root = "//WDsentinel/share/CorpCDOs"
elif os.name == 'posix':
    root = '/home/share/CorpCDOs'

conn = psycopg2.connect(database="ET",
                        user="et_user",
                        password="Serenitas1",
                        host="192.168.1.108")
cursor = conn.cursor()

def cusips_from_dealname(dealname, curr = cursor):
    curr.execute("SELECT \"Deal Cusip List\" FROM latest_clo_universe "
                 " WHERE dealname = %s", (dealname,))
    return curr.fetchone()[0]

def sanitize_float(string):
    if isinstance(string, float):
        return string
    else:
        string = string.replace(",","")
        if "(" in string:
            return - float(string[1:-1])
        else:
            return float(string)

fields = ["Price", "WAL", "Market Value", "Modified Duration"]
dealdata = {}
workdate = '2013-01-09'
for dealname in ["abcl071", "ammcclo5"]:
    tranches = os.listdir(os.path.join(root, "Scenarios", "Prices_" + workdate, dealname))
    d  = {}
    for tranche in tranches:
        data = pd.read_table(os.path.join(root, "Scenarios", "Prices_" + workdate, dealname, tranche))
        datamod = data[data.columns[2:-1]].T
        datamod.columns = data[data.columns[1]]
        for field in fields:
            datamod[field] = datamod[field].apply(sanitize_float)
        d[tranche[:-7]] = datamod[fields]
    dealdata[dealname] = pd.concat(d)

dealdata = pd.concat(dealdata)

cursor.close()
conn.close()