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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
import os
import os.path
import datetime
from datetime import date
from csv import reader
import json
import codecs
import pdb
if os.name =='nt':
root = "//WDsentinel/share/CorpCDOs/Scenarios"
elif os.name == 'posix':
root = '/home/share/CorpCDOs/Scenarios'
input = os.path.join(root, "prometheus.sss")
for dealname in ["oceant2", "atr4cdo"]:
reinvprices = os.path.join(root, "Intex curves", "csv", dealname + "-reinvprices.csv")
with open(reinvprices, "r") as fhreinv:
reinvprices = [line.rstrip("\n") for line in fhreinv]
output = os.path.join(root, "Intex curves", "sss", dealname + ".sss")
cdrscenarios = os.path.join(root, "Intex curves", "csv", dealname + "-cdr.csv")
recoveryscenarios = os.path.join(root, "Intex curves", "csv", dealname + "-recovery.csv")
fh2 = open(output, "w")
fhcdr = open(cdrscenarios, "r")
fhrecovery = open(recoveryscenarios, "r")
csvcdr = reader(fhcdr)
csvrecovery = reader(fhrecovery)
cdrline = csvcdr.next()
cdrline = "\t".join(["{0:.3f}".format(float(cdr)) for cdr in cdrline]) +"\n"
recoveryline = csvrecovery.next()
recoveryline = "\t".join(["{0:.3f}".format(float(recovery)) for recovery in recoveryline]) + "\n"
i=1
with open(input) as fh:
for line in fh:
if "STANDARD_VAR" in line:
newline = "STANDARD_VAR[REINVEST_PRICE,1]=" + " ".join(reinvprices)
continue
if "LOSS_RATE[DEAL,{0}]".format(i) in line:
newcdrline = "LOSS_RATE[DEAL,{0}]=".format(i) + cdrline
fh2.write(newcdrline)
continue
if "LOSS_SEVERITY[DEAL,{0}]".format(i) in line:
newrecoveryline = "LOSS_SEVERITY[DEAL,{0}]=".format(i) + recoveryline
fh2.write(newrecoveryline)
i=i+1
if i<=100:
cdrline = csvcdr.next()
cdrline = "\t".join(["{0:.3f}".format(float(cdr)) for cdr in cdrline]) + "\n"
recoveryline = csvrecovery.next()
recoveryline = "\t".join(["{0:.3f}".format(float(recovery)) \
for recovery in recoveryline]) + "\n"
continue
if "REINV_GLOBAL" in line:
jsondict = line.split("=")[1]
reinvdict = json.loads(jsondict)
reinvdict['STANDARD_VAR[REINVEST_PRICE]']['value'] = \
' '.join(["{0:.3f}".format(float(price)) for price in reinvprices])
fh2.write("=".join(["REINV_GLOBAL", json.dumps(reinvdict)]) + "\n")
continue
fh2.write(line)
fh2.close()
fhrecovery.close()
fhcdr.close()
# sed -i -e "s/\(LOSS_NONPERF_SEVERITY\\[DEAL,[0-9]*\\]\)=.*$/\1=mkt(70)/g" stonln1_100.sss
|