diff options
| author | Guillaume Horel <guillaume.horel@serenitascapital.com> | 2016-07-01 16:08:17 -0400 |
|---|---|---|
| committer | Guillaume Horel <guillaume.horel@serenitascapital.com> | 2016-07-01 16:08:17 -0400 |
| commit | 104303510b747ffa31b96e44465eb5fdbd016304 (patch) | |
| tree | 89fc56cb1faca2a3e3e6c4424dd7104f4d24908c /curve.pyx | |
| parent | ed83c435dcb32b5afd7f58a0fde72b41dc0d09e6 (diff) | |
| download | pyisda-104303510b747ffa31b96e44465eb5fdbd016304.tar.gz | |
more progress
Diffstat (limited to 'curve.pyx')
| -rw-r--r-- | curve.pyx | 34 |
1 files changed, 18 insertions, 16 deletions
@@ -1,6 +1,5 @@ -from cpython cimport datetime from libc.stdlib cimport malloc, free -from curve cimport JpmcdsBuildIRZeroCurve, JpmcdsZeroPrice, +from curve cimport JpmcdsBuildIRZeroCurve, JpmcdsZeroPrice from date cimport (JpmcdsStringToDateInterval, pydate_to_TDate, dcc, JpmcdsDateIntervalToFreq, JpmcdsDateFwdThenAdjust, TDate_to_pydate, JpmcdsDateFromBusDaysOffset) @@ -14,9 +13,12 @@ cpdef public enum BadDay: MODIFIED = <long>'M' cdef class Curve: - def __dealloc__(self): - if self._thisptr is not NULL: - JpmcdsFreeTCurve(self._thisptr) + def __dealloc__(self): + if self._thisptr is not NULL: + JpmcdsFreeTCurve(self._thisptr) + + def inspect(self): + return {'base_date': TDate_to_pydate(self._thiptr.fBaseDate)} cdef class ZeroCurve(Curve): @@ -87,20 +89,20 @@ cdef class ZeroCurve(Curve): cdef class SpreadCurve(Curve): - def __init__(self, today, ZeroCurve zc, start_date, step_in_date, cash_settle_date, - list end_dates, double[:] coupon_rates, double recovery_rate, - TBoolean pay_accrued_on_default): + def __init__(self, today, ZeroCurve zc, start_date, step_in_date, + cash_settle_date, list end_dates, double[:] coupon_rates, + double recovery_rate, int pay_accrued_on_default): - cdef today_c = pydate_to_TDate(today) - cdef step_in_date_c = pydate_to_TDate(step_in_date) - cdef cash_settle_date_c = pydate_to_TDate(cash_settle_date) - cdef start_date_c = pydate_to_TDate(start_date) + cdef TDate today_c = pydate_to_TDate(today) + cdef TDate step_in_date_c = pydate_to_TDate(step_in_date) + cdef TDate cash_settle_date_c = pydate_to_TDate(cash_settle_date) + cdef TDate start_date_c = pydate_to_TDate(start_date) cdef TDate* end_dates_c = <TDate*>malloc(len(end_dates) * sizeof(TDate)) - + self._thisptr = NULL cdef size_t i for i, d in enumerate(end_dates): - end_dates_c[i] = pydate_to_TDate(end_dates) + end_dates_c[i] = pydate_to_TDate(d) cdef TStubMethod stub_type if JpmcdsStringToStubMethod(b"f/s", &stub_type) != 0: @@ -110,7 +112,7 @@ cdef class SpreadCurve(Curve): zc._thisptr, start_date_c, step_in_date_c, - cash_settle_date, + cash_settle_date_c, len(end_dates), end_dates_c, &coupon_rates[0], @@ -121,4 +123,4 @@ cdef class SpreadCurve(Curve): dcc('ACT/360'), &stub_type, <long>'M', - NULL) + b'NONE') |
