summaryrefslogtreecommitdiffstats
path: root/example.py
blob: 99d3bbe9f234d1063d1e84b11ad14d32f38b6e85 (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
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)