summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuillaume Horel <guillaume.horel@gmail.com>2018-10-29 16:12:28 -0400
committerGuillaume Horel <guillaume.horel@gmail.com>2018-10-29 16:12:28 -0400
commit05b2236a8dc2c7bccfde840fa406e7ff2ab8cdc1 (patch)
tree1face7dba58761ddbe17bcbf706883170d3fdd6a
parent33f21fbd10c9036063b812839fbc97ca1603dff4 (diff)
downloadpyisda-05b2236a8dc2c7bccfde840fa406e7ff2ab8cdc1.tar.gz
initialize defaulted curve properly
-rw-r--r--pyisda/curve.pyx10
1 files changed, 9 insertions, 1 deletions
diff --git a/pyisda/curve.pyx b/pyisda/curve.pyx
index 074aa8c..aecdc11 100644
--- a/pyisda/curve.pyx
+++ b/pyisda/curve.pyx
@@ -487,7 +487,7 @@ cdef class SpreadCurve(Curve):
cash_settle_date, end_dates,
double[:] coupon_rates, double[:] upfront_rates,
double[:] recovery_rates, bint pay_accrued_on_default=True,
- str ticker=None, bint fill_curve=True):
+ str ticker=None, bint fill_curve=True, defaulted=None):
cdef TDate today_c = pydate_to_TDate(today)
cdef TDate step_in_date_c
@@ -521,6 +521,14 @@ cdef class SpreadCurve(Curve):
if cash_settle_date_c < yc._thisptr.get().fBaseDate:
raise ValueError("cash_settle_date: {0} is anterior to yc's base_date: {1}".
format(cash_settle_date, yc.base_date))
+ if defaulted is None:
+ self.defaulted = -1
+ else:
+ self.defaulted = pydate_to_TDate(defaulted)
+ self.recovery_rates = shared_ptr[double](
+ <double*>malloc(sizeof(double)), double_free)
+ self.recovery_rates.get()[0] = recovery_rates[0]
+ return
if isinstance(end_dates, list):
n_dates = len(end_dates)