def get_risk_free_rate(self, start_date, end_date): tenor = risk_free_helper.get_tenor_for(start_date, end_date) yc = self._data_source.get_yield_curve(start_date, start_date, [tenor]) if yc is None or yc.empty: return 0 rate = yc.values[0, 0] return 0 if np.isnan(rate) else rate
def get_risk_free_rate(self, start_date, end_date): tenor = risk_free_helper.get_tenor_for(start_date, end_date) yc = self._data_source.get_yield_curve(start_date, start_date, [tenor]) if yc is None or yc.empty: return 0 rate = yc.values[0, 0] return 0 if np.isnan(rate) else rate
def get_risk_free_rate(self, start_date, end_date): tenor = risk_free_helper.get_tenor_for(start_date, end_date) tenor = tenor[-1] + tenor[:-1] d = start_date.year * 10000 + start_date.month * 100 + start_date.day pos = self._dates.searchsorted(d) if pos > 0 and (pos == len(self._dates) or self._dates[pos] != d): pos -= 1 col = self._table.cols[tenor] while pos >= 0 and np.isnan(col[pos]): # data is missing ... pos -= 1 return self._table.cols[tenor][pos]
def get_risk_free_rate(self, start_date, end_date): tenor = risk_free_helper.get_tenor_for(start_date, end_date) tenor = tenor[-1] + tenor[:-1] d = start_date.year * 10000 + start_date.month * 100 + start_date.day pos = self._dates.searchsorted(d) if pos > 0 and (pos == len(self._dates) or self._dates[pos] != d): pos -= 1 col = self._table.cols[tenor] while pos >= 0 and np.isnan(col[pos]): # data is missing ... pos -= 1 return self._table.cols[tenor][pos]
def get_risk_free_rate(self, start_date, end_date): mongo_dates = self._yield_curve['dates'].find({}, { "_id": 0 }).sort('date', pymongo.ASCENDING) _dates = np.array([np.uint32(d['date']) for d in mongo_dates]) tenor = risk_free_helper.get_tenor_for(start_date, end_date) tenor = tenor[-1] + tenor[:-1] mongo_data = self._yield_curve[tenor].find({}, {"_id": 0}) _table = np.array([d['data'] for d in mongo_data]) d = start_date.year * 10000 + start_date.month * 100 + start_date.day pos = _dates.searchsorted(d) if pos > 0 and (pos == len(_dates) or _dates[pos] != d): pos -= 1 while pos >= 0 and np.isnan(_table[pos]): # data is missing ... pos -= 1 return _table[pos]