Пример #1
0
 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
Пример #2
0
 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
Пример #3
0
    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]
Пример #4
0
    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]
Пример #5
0
    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]