diff options
| author | Guillaume Horel <guillaume.horel@serenitascapital.com> | 2016-07-01 16:08:33 -0400 |
|---|---|---|
| committer | Guillaume Horel <guillaume.horel@serenitascapital.com> | 2016-07-01 16:08:33 -0400 |
| commit | f3dd7b7badc1ce32db9ff76800c386f87fe59e23 (patch) | |
| tree | 794b4a3ee47c3219dd61d5c29c2f0aba4585b52d | |
| parent | 104303510b747ffa31b96e44465eb5fdbd016304 (diff) | |
| download | pyisda-f3dd7b7badc1ce32db9ff76800c386f87fe59e23.tar.gz | |
update example
| -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) |
