diff options
| -rw-r--r-- | example.py | 29 |
1 files changed, 21 insertions, 8 deletions
@@ -1,12 +1,14 @@ -from pyisda.zerocurve import ZeroCurve, BadDay +from pyisda.curve import ZeroCurve, BadDay, SpreadCurve 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 +from pyisda.legs import FeeLeg, ContingentLeg if __name__ == "__main__": + # build zero coupon curve markit_data = getMarkitIRData() date = datetime.date.today() periods, rates = zip(*markit_data['deposits']) @@ -19,11 +21,22 @@ if __name__ == "__main__": 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) + + start_date = datetime.date(2016, 3, 21) + end_date = datetime.date(2021, 6, 20) + upfront_quote = -0.03063 + spread = spread_from_upfront(date, date, date, date+datetime.timedelta(days=1), + start_date, end_date, 0.05, zc, + upfront_quote, 0.3) + upf = upfront_charge(date, date, date, date+datetime.timedelta(days=1), + start_date, end_date, 0.05, zc, spread, 0.3) print(spread) + print(upf-upfront_quote) + + coupon_leg = FeeLeg(start_date, end_date, True, 1000000, 0.05) + spread = array.array('d', [0.007725]) + print("pomme") + step_in_date = date + datetime.timedelta(days=1) + sc = SpreadCurve(date, zc, start_date, step_in_date, + datetime.date(2016, 7, 6), + [end_date], spread, 0.4, 1) |
