diff options
Diffstat (limited to 'legs.pyx')
| -rw-r--r-- | legs.pyx | 20 |
1 files changed, 16 insertions, 4 deletions
@@ -21,6 +21,18 @@ cdef class ContingentLeg: if self._thisptr is not NULL: free(self._thisptr) + def pv(self, today, step_in_date, value_date, ZeroCurve zc, SpreadCurve sc, + double recovery_rate): + cdef TDate today_c = pydate_to_TDate(today) + cdef TDate step_in_date_c = pydate_to_TDate(step_in_date) + cdef TDate value_date_c = pydate_to_TDate(value_date) + cdef double pv + if JpmcdsContingentLegPV(self._thisptr, today_c, value_date_c, step_in_date_c, + zc._thisptr, sc._thisptr, recovery_rate, &pv) == 0: + return pv + else: + raise ValueError + cdef class FeeLeg: def __cinit__(self, start_date, end_date, TBoolean pay_accrued_on_default, @@ -58,11 +70,11 @@ cdef class FeeLeg: def pv(self, today, step_in_date, value_date, ZeroCurve zc, SpreadCurve sc, TBoolean pay_accrued_at_start): - cdef today_c = pydate_to_TDate(today) - cdef step_in_date_c = pydate_to_TDate(step_in_date) - cdef value_date_c = pydate_to_TDate(value_date) + cdef TDate today_c = pydate_to_TDate(today) + cdef TDate step_in_date_c = pydate_to_TDate(step_in_date) + cdef TDate value_date_c = pydate_to_TDate(value_date) cdef double pv - if JpmcdsFeeLegPV(self._thisptr, today, step_in_date, value_date, + if JpmcdsFeeLegPV(self._thisptr, today_c, step_in_date_c, value_date_c, zc._thisptr, sc._thisptr, pay_accrued_at_start, &pv) == 0: return pv else: |
