aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/analytics/basket_index.py40
m---------python/pyisda0
2 files changed, 20 insertions, 20 deletions
diff --git a/python/analytics/basket_index.py b/python/analytics/basket_index.py
index 3dfcbb9e..100c55c3 100644
--- a/python/analytics/basket_index.py
+++ b/python/analytics/basket_index.py
@@ -29,7 +29,7 @@ class BasketIndex(CreditIndex):
tweaks: List[float]
def __init__(self, index_type: str, series: int, tenors: List[str], *,
- trade_date: pd.Timestamp=pd.Timestamp.today().normalize() - BDay()):
+ value_date: pd.Timestamp=pd.Timestamp.today().normalize() - BDay()):
self.index_type = index_type
self.series = series
if index_type == 'IG' or index_type == 'EU':
@@ -54,13 +54,13 @@ class BasketIndex(CreditIndex):
maturities = self.index_desc.maturity.sort_values().dt.to_pydatetime()
self.index_desc = self.index_desc.reset_index().set_index('maturity')
self.index_desc.tenor = self.index_desc.tenor.astype(tenor_t)
- curves = get_singlenames_curves(index_type, series, trade_date)
+ curves = get_singlenames_curves(index_type, series, value_date)
self.currency = "EUR" if index_type in ["XO", "EU"] else "USD"
- self.yc = get_curve(trade_date, self.currency)
- self.step_in_date = trade_date + Day()
- self.value_date = trade_date + 3 * BDay()
+ self.yc = get_curve(value_date, self.currency)
+ self.step_in_date = value_date + Day()
+ self.cash_settle_date = value_date + 3 * BDay()
self.tweaks = []
- super().__init__(self.issue_date, maturities, curves, trade_date=trade_date)
+ super().__init__(self.issue_date, maturities, curves, value_date=value_date)
def __reduce__(self):
_, args = CreditIndex.__reduce__(self)
@@ -80,7 +80,7 @@ class BasketIndex(CreditIndex):
def _query_version(self, i):
for lastdate, *data in self._version:
- if lastdate >= self.trade_date:
+ if lastdate >= self.value_date:
return data[i]
@property
@@ -98,15 +98,15 @@ class BasketIndex(CreditIndex):
def _get_quotes(self):
pass
- trade_date = property(CreditIndex.trade_date.__get__)
+ value_date = property(CreditIndex.value_date.__get__)
- @trade_date.setter
- def trade_date(self, d: pd.Timestamp):
+ @value_date.setter
+ def value_date(self, d: pd.Timestamp):
self.curves = get_singlenames_curves(self.index_type, self.series, d)
self.yc = get_curve(d, self.currency)
self.step_in_date = d + Day()
- self.value_date = d + 3 * BDay()
- CreditIndex.trade_date.__set__(self, d)
+ self.cash_settle_date = d + 3 * BDay()
+ CreditIndex.value_date.__set__(self, d)
def pv(self, maturity=None, epsilon=0., coupon=None):
if maturity is None:
@@ -159,7 +159,7 @@ class BasketIndex(CreditIndex):
Otherwise computes the theta for that specific maturity (which needs
not be an existing tenor)"""
if hasattr(self, "index_quotes"):
- index_quotes = self.index_quotes.loc[self.trade_date]
+ index_quotes = self.index_quotes.loc[self.value_date]
else:
index_quotes = None
if maturity is None:
@@ -167,7 +167,7 @@ class BasketIndex(CreditIndex):
for m in self.maturities:
coupon = self.index_desc.coupon[m]
index_quote = np.nan if index_quotes is None else index_quotes[m]
- r.append(super().theta(self.step_in_date, self.value_date, m,
+ r.append(super().theta(self.step_in_date, self.cash_settle_date, m,
self.yc, self.recovery, coupon,
index_quote))
return pd.Series(r, index=self.index_desc.tenor, name='theta')
@@ -177,7 +177,7 @@ class BasketIndex(CreditIndex):
coupon = self.index_desc.coupon[maturity]
except KeyError:
raise ValueError("Non standard maturity: coupon must be provided")
- return super().theta(self.step_in_date, self.value_date, maturity,
+ return super().theta(self.step_in_date, self.cash_settle_date, maturity,
self.yc, self.recovery, coupon,
np.nan)
@@ -208,21 +208,21 @@ class BasketIndex(CreditIndex):
break
else:
print("couldn't calibrate for date: {} and maturity: {}".
- format(self.trade_date.date(), m.date()))
+ format(self.value_date.date(), m.date()))
self.tweaks.append(np.NaN)
continue
self.tweaks.append(eps)
self.tweak_portfolio(eps, m)
def _snacpv(self, spread, coupon, recov):
- return upfront_charge(self.trade_date, self.value_date, self.start_date,
+ return upfront_charge(self.value_date, self.cash_settle_date, self.start_date,
self.step_in_date, self.start_date, self.maturity,
coupon, self.yc, spread, recov)
class MarkitBasketIndex(BasketIndex):
def __init__(self, index_type: str, series: int, tenors: List[str], *,
- trade_date: pd.Timestamp=pd.Timestamp.today().normalize() - BDay()):
- super().__init__(index_type, series, tenors, trade_date=trade_date)
+ value_date: pd.Timestamp=pd.Timestamp.today().normalize() - BDay()):
+ super().__init__(index_type, series, tenors, value_date=value_date)
self.index_quotes = (get_index_quotes(index_type, series,
tenors, years=None)['closeprice'].
unstack().
@@ -234,7 +234,7 @@ class MarkitBasketIndex(BasketIndex):
self.index_quotes = 1 - self.index_quotes / 100
def _get_quotes(self):
- return self.index_quotes.loc[self.trade_date]
+ return self.index_quotes.loc[self.value_date]
if __name__ == "__main__":
ig28 = BasketIndex("IG", 28, ["3yr", "5yr", "7yr", "10yr"])
diff --git a/python/pyisda b/python/pyisda
-Subproject eec079094894475e747dd4bb82231f56119b54e
+Subproject 80226519ecd6661ac9b9da08082205cceb8aa5b