summaryrefslogtreecommitdiffstats
path: root/example.py
diff options
context:
space:
mode:
authorGuillaume Horel <guillaume.horel@serenitascapital.com>2016-07-01 16:08:33 -0400
committerGuillaume Horel <guillaume.horel@serenitascapital.com>2016-07-01 16:08:33 -0400
commitf3dd7b7badc1ce32db9ff76800c386f87fe59e23 (patch)
tree794b4a3ee47c3219dd61d5c29c2f0aba4585b52d /example.py
parent104303510b747ffa31b96e44465eb5fdbd016304 (diff)
downloadpyisda-f3dd7b7badc1ce32db9ff76800c386f87fe59e23.tar.gz
update example
Diffstat (limited to 'example.py')
-rw-r--r--example.py29
1 files changed, 21 insertions, 8 deletions
diff --git a/example.py b/example.py
index 99d3bbe..ab648d8 100644
--- a/example.py
+++ b/example.py
@@ -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)