summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuillaume Horel <guillaume.horel@gmail.com>2019-08-23 16:11:13 -0400
committerGuillaume Horel <guillaume.horel@gmail.com>2019-08-23 16:11:13 -0400
commit3b698d9f788a6317136335ae2d82de03d7ed5260 (patch)
tree6bb461d915feb6d3d2b575aa172086a8b344b5da
parentab91fe7674fa7053c0e311a6526cd1cad342e42f (diff)
downloadpyisda-3b698d9f788a6317136335ae2d82de03d7ed5260.tar.gz
export start_date
-rw-r--r--pyisda/credit_index.pxd2
-rw-r--r--pyisda/credit_index.pyx30
2 files changed, 20 insertions, 12 deletions
diff --git a/pyisda/credit_index.pxd b/pyisda/credit_index.pxd
index eadb8f8..12d405f 100644
--- a/pyisda/credit_index.pxd
+++ b/pyisda/credit_index.pxd
@@ -14,7 +14,7 @@ cdef class CurveList:
cdef vector[TDate] defaulted
cdef class CreditIndex(CurveList):
- cdef TDate start_date
+ cdef TDate _start_date
cdef vector[TDate] _maturities
cdef TContingentLeg** contingent_legs
cdef TFeeLeg** fee_legs
diff --git a/pyisda/credit_index.pyx b/pyisda/credit_index.pyx
index 75e1067..da9a177 100644
--- a/pyisda/credit_index.pyx
+++ b/pyisda/credit_index.pyx
@@ -209,7 +209,7 @@ cdef class CurveList:
cdef class CreditIndex(CurveList):
def __init__(self, start_date, maturities, list curves, value_date=None):
super().__init__(curves, value_date)
- self.start_date = pydate_to_TDate(start_date)
+ self._start_date = pydate_to_TDate(start_date)
for d in maturities:
self._maturities.push_back(pydate_to_TDate(d))
@@ -220,10 +220,18 @@ cdef class CreditIndex(CurveList):
cdef size_t i
cdef pair[TContingentLeg_ptr, TFeeLeg_ptr] r
for i in range(self._maturities.size()):
- r = get_legs(self._maturities[i], self.start_date)
+ r = get_legs(self._maturities[i], self._start_date)
self.contingent_legs[i] = r.first
self.fee_legs[i] = r.second
+ @property
+ def start_date(self):
+ return TDate_to_pydate(self._start_date)
+
+ @start_date.setter
+ def start_date(self, val):
+ self._start_date = pydate_to_TDate(val)
+
def __dealloc__(self):
if self.contingent_legs is not NULL:
for i in range(self._maturities.size()):
@@ -263,7 +271,7 @@ cdef class CreditIndex(CurveList):
def __reduce__(self):
return (self.__class__,
- (TDate_to_pydate(self.start_date), self.maturities, self.curves,
+ (self.start_date, self.maturities, self.curves,
TDate_to_pydate(self.base_date)))
def __hash__(self):
@@ -289,7 +297,7 @@ cdef class CreditIndex(CurveList):
h ^= Hash64(<char*>buf, buf_size)
free(buf)
- h = Hash64WithSeed(<char*>&self.start_date, sizeof(TDate), h)
+ h = Hash64WithSeed(<char*>&self._start_date, sizeof(TDate), h)
h = Hash64WithSeed(<char*>&self.base_date, sizeof(TDate), h)
h = Hash64WithSeed(<char*>self._maturities.data(), sizeof(TDate) * self._maturities.size(), h)
h = Hash64WithSeed(<char*>self._weights.data(), sizeof(double) * self._weights.size(), h)
@@ -369,7 +377,7 @@ cdef class CreditIndex(CurveList):
int i = get_maturity_index(maturity_c, self._maturities)
if i == -1:
- legs = get_legs(maturity_c, self.start_date)
+ legs = get_legs(maturity_c, self._start_date)
else:
legs.first = self.contingent_legs[i]
legs.second = self.fee_legs[i]
@@ -415,7 +423,7 @@ cdef class CreditIndex(CurveList):
i = get_maturity_index(maturity_c, self._maturities)
if i == -1:
legs = get_legs(maturity_c,
- self.start_date)
+ self._start_date)
else:
legs.first = self.contingent_legs[i]
legs.second = self.fee_legs[i]
@@ -430,7 +438,7 @@ cdef class CreditIndex(CurveList):
i = get_maturity_index(maturity_c, self._maturities)
if i == -1:
legs = get_legs(maturity_c,
- self.start_date)
+ self._start_date)
else:
legs.first = self.contingent_legs[i]
legs.second = self.fee_legs[i]
@@ -456,7 +464,7 @@ cdef class CreditIndex(CurveList):
double* recovery_rate
with nogil:
- cl = JpmcdsCdsContingentLegMake(self.start_date,
+ cl = JpmcdsCdsContingentLegMake(self._start_date,
maturity_c,
1.,
True)
@@ -493,7 +501,7 @@ cdef class CreditIndex(CurveList):
found = get_maturity_index(maturity_c, self._maturities)
if found == -1:
JpmcdsStringToStubMethod(b"f/s", &stub_type)
- fl = JpmcdsCdsFeeLegMake(self.start_date,
+ fl = JpmcdsCdsFeeLegMake(self._start_date,
maturity_c,
True,
NULL,
@@ -547,7 +555,7 @@ cdef class CreditIndex(CurveList):
self._maturities[i] = pydate_to_TDate(val[i])
free(self.contingent_legs[i])
JpmcdsFeeLegFree(self.fee_legs[i])
- r = get_legs(self._maturities[i], self.start_date)
+ r = get_legs(self._maturities[i], self._start_date)
self.contingent_legs[i] = r.first
self.fee_legs[i] = r.second
@@ -629,7 +637,7 @@ cdef class CreditIndex(CurveList):
JpmcdsCdsParSpreads(
self.base_date,
self.base_date + 1,
- self.start_date,
+ self._start_date,
n[1],
schedule_ptr,
True,