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)