diff options
| -rw-r--r-- | pyisda/credit_index.pyx | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/pyisda/credit_index.pyx b/pyisda/credit_index.pyx index d527749..eb0c32e 100644 --- a/pyisda/credit_index.pyx +++ b/pyisda/credit_index.pyx @@ -49,7 +49,7 @@ cdef TContingentLeg* copyContingentLeg(TContingentLeg* leg) nogil: cdef class CurveList: @cython.initializedcheck(False) - def __init__(self, list curves not None, double[:] weights=None, trade_date=None): + def __init__(self, list curves not None, double[:] weights=None, value_date=None): cdef: SpreadCurve sc size_t i @@ -62,8 +62,8 @@ cdef class CurveList: raise TypeError("curves need to be a list of SpreadCurve") self.T = vector[double](sc._thisptr.get().fNumItems) - if trade_date is not None: - self.base_date = pydate_to_TDate(trade_date) + if value_date is not None: + self.base_date = pydate_to_TDate(value_date) else: self.base_date = sc._thisptr.get().fBaseDate @@ -144,11 +144,11 @@ cdef class CurveList: return out @property - def trade_date(self): + def value_date(self): return TDate_to_pydate(self.base_date) - @trade_date.setter - def trade_date(self, d): + @value_date.setter + def value_date(self, d): self.base_date = pydate_to_TDate(d) @property @@ -205,8 +205,8 @@ cdef class CurveList: @cython.auto_pickle(False) cdef class CreditIndex(CurveList): def __init__(self, start_date, maturities, list curves, double[:] weights=None, - trade_date=None): - CurveList.__init__(self, curves, weights, trade_date) + value_date=None): + CurveList.__init__(self, curves, weights, value_date) self.start_date = pydate_to_TDate(start_date) for d in maturities: self._maturities.push_back(pydate_to_TDate(d)) @@ -295,10 +295,10 @@ cdef class CreditIndex(CurveList): return h #@cython.initializedcheck(False) - def pv_vec(self, step_in_date, value_date, YieldCurve yc, double recovery_rate): + def pv_vec(self, step_in_date, cash_settle_date, YieldCurve yc, double recovery_rate): cdef: TDate step_in_date_c = pydate_to_TDate(step_in_date) - TDate value_date_c = pydate_to_TDate(value_date) + TDate cash_settle_date_c = pydate_to_TDate(cash_settle_date) np.npy_intp[2] n n[0] = self._curves.size() n[1] = self._maturities.size() @@ -323,7 +323,7 @@ cdef class CreditIndex(CurveList): for j in range(self._maturities.size()): JpmcdsContingentLegPV(self.contingent_legs[j], sc.fBaseDate, - value_date_c, + cash_settle_date_c, step_in_date_c, yc._thisptr.get(), sc, @@ -332,7 +332,7 @@ cdef class CreditIndex(CurveList): JpmcdsFeeLegPV(self.fee_legs[j], sc.fBaseDate, step_in_date_c, - value_date_c, + cash_settle_date_c, yc._thisptr.get(), sc, True, @@ -351,12 +351,12 @@ cdef class CreditIndex(CurveList): FeeLegAI(self.fee_legs[0], self.base_date, &accrued) return accrued - def pv(self, step_in_date, value_date, maturity, YieldCurve yc not None, + def pv(self, step_in_date, cash_settle_date, maturity, YieldCurve yc not None, double recovery_rate, double fixed_rate, double epsilon=0.): cdef: TDate step_in_date_c = pydate_to_TDate(step_in_date) - TDate value_date_c = pydate_to_TDate(value_date) + TDate cash_settle_date_c = pydate_to_TDate(cash_settle_date) TDate maturity_c = pydate_to_TDate(maturity) unsigned long mask = 0 vector[double] h @@ -374,7 +374,7 @@ cdef class CreditIndex(CurveList): raise ValueError("maturity is not correct") h = vector[double](self.T.size()) - r = pv(self._curves, self.base_date, step_in_date_c, value_date_c, + r = pv(self._curves, self.base_date, step_in_date_c, cash_settle_date_c, yc._thisptr.get(), legs, recovery_rate, fixed_rate, self._weights, epsilon, h, self.T, mask) if i == -1: @@ -382,11 +382,11 @@ cdef class CreditIndex(CurveList): JpmcdsFeeLegFree(legs.second) return r - def theta(self, step_in_date, value_date, maturity, YieldCurve yc not None, + def theta(self, step_in_date, cash_settle_date, maturity, YieldCurve yc not None, double recovery_rate, double fixed_rate, double old_pv=nan("")): cdef: TDate step_in_date_c = pydate_to_TDate(step_in_date) - TDate value_date_c = pydate_to_TDate(value_date) + TDate cash_settle_date_c = pydate_to_TDate(cash_settle_date) TDate maturity_c = pydate_to_TDate(maturity) TDate temp vector[double] h @@ -407,7 +407,7 @@ cdef class CreditIndex(CurveList): legs.first = self.contingent_legs[i] legs.second = self.fee_legs[i] old_pv = pv(self._curves, self.base_date, step_in_date_c, - value_date_c, yc._thisptr.get(), legs, + cash_settle_date_c, yc._thisptr.get(), legs, recovery_rate, fixed_rate, self._weights, 0., h, self.T, 0) if i == -1: @@ -422,7 +422,7 @@ cdef class CreditIndex(CurveList): legs.first = self.contingent_legs[i] legs.second = self.fee_legs[i] - cdef r = old_pv - pv(self._curves, self.base_date, step_in_date_c, value_date_c, + cdef r = old_pv - pv(self._curves, self.base_date, step_in_date_c, cash_settle_date_c, yc._thisptr.get(), legs, recovery_rate, fixed_rate, self._weights, 0., h, self.T, 0) + fixed_rate if i == -1: @@ -430,11 +430,11 @@ cdef class CreditIndex(CurveList): JpmcdsFeeLegFree(legs.second) return r - def duration(self, step_in_date, value_date, maturity, YieldCurve yc not None): + def duration(self, step_in_date, cash_settle_date, maturity, YieldCurve yc not None): cdef: TDate step_in_date_c = pydate_to_TDate(step_in_date) - TDate value_date_c = pydate_to_TDate(value_date) + TDate cash_settle_date_c = pydate_to_TDate(cash_settle_date) TDate maturity_c = pydate_to_TDate(maturity) TFeeLeg* fl TStubMethod stub_type @@ -467,7 +467,7 @@ cdef class CreditIndex(CurveList): JpmcdsFeeLegPV(fl, self.base_date, step_in_date_c, - value_date_c, + cash_settle_date_c, yc._thisptr.get(), sc.get(), True, @@ -580,7 +580,7 @@ cdef pair[TContingentLeg_ptr,TFeeLeg_ptr] get_legs(TDate maturity, cdef double pv(vector[shared_ptr[TCurve]]& curves, TDate base_date, TDate step_in_date, - TDate value_date, + TDate cash_settle_date, TCurve* yc, pair[TContingentLeg_ptr,TFeeLeg_ptr]& legs, double recovery_rate, @@ -606,7 +606,7 @@ cdef double pv(vector[shared_ptr[TCurve]]& curves, tweaked_curve = c.get() JpmcdsContingentLegPV(legs.first, base_date, - value_date, + cash_settle_date, step_in_date, yc, tweaked_curve, @@ -616,7 +616,7 @@ cdef double pv(vector[shared_ptr[TCurve]]& curves, JpmcdsFeeLegPV(legs.second, base_date, step_in_date, - value_date, + cash_settle_date, yc, tweaked_curve, True, |
