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
|
from pyisda.zerocurve import ZeroCurve, BadDay
import sys
sys.path.append("/home/share/CorpCDOs/code/python")
from yieldcurve import getMarkitIRData
import datetime
import array
from pyisda.cdsone import upfront_charge, spread_from_upfront
if __name__ == "__main__":
markit_data = getMarkitIRData()
date = datetime.date.today()
periods, rates = zip(*markit_data['deposits'])
periods = list(periods)
rates = list(rates)
periods_swaps, rates_swaps = zip(*markit_data['swaps'])
types = 'M' * len(periods) + 'S' * len(periods_swaps)
rates = array.array('d', rates)
periods.extend(periods_swaps)
rates.extend(rates_swaps)
zc = ZeroCurve(date, types, periods, rates, 'ACT/360', '6M',
'3M', 'ACT/360', 'ACT/360', BadDay.MODIFIED)
upf = upfront_charge(date, date, date, datetime.date(2016, 6, 29),
datetime.date(2016, 3, 21), datetime.date(2021, 6, 20),
0.05, zc, 0.04368871, 0.3)
spread = spread_from_upfront(date, date, date, datetime.date(2016, 6, 29),
datetime.date(2016, 3, 21), datetime.date(2021, 6, 20),
0.05, zc, -0.02675, 0.3)
print(upf)
print(spread)
|