diff options
Diffstat (limited to 'python/analytics')
| -rw-r--r-- | python/analytics/basket_index.py | 3 | ||||
| -rw-r--r-- | python/analytics/index_data.py | 13 |
2 files changed, 10 insertions, 6 deletions
diff --git a/python/analytics/basket_index.py b/python/analytics/basket_index.py index a9dedbc6..baaa23a2 100644 --- a/python/analytics/basket_index.py +++ b/python/analytics/basket_index.py @@ -233,7 +233,8 @@ class MarkitBasketIndex(BasketIndex): 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']. + tenors, years=None, + remove_holidays=False)['closeprice']. unstack(). groupby(level='date', as_index=False).nth(0). reset_index(['index', 'series', 'version'], drop=True)) diff --git a/python/analytics/index_data.py b/python/analytics/index_data.py index 687481cd..5cfb490a 100644 --- a/python/analytics/index_data.py +++ b/python/analytics/index_data.py @@ -45,8 +45,10 @@ def insert_quotes(): "VALUES(%s, %s, %s, %s, %s, %s)", (tup.Index, 'HY', tup.series, tup.version+1, tup.tenor, version2_price)) -def get_index_quotes(index=None, series=None, tenor=None, from_date=None, years=3): +def get_index_quotes(index=None, series=None, tenor=None, from_date=None, years=3, + remove_holidays=True): args = locals().copy() + del args['remove_holidays'] if args['years'] is not None: args['date'] = (pd.Timestamp.now() - pd.DateOffset(years=years)).date() del args['years'] @@ -80,10 +82,11 @@ def get_index_quotes(index=None, series=None, tenor=None, from_date=None, years= df = df.set_index('tenor', append=True) df.sort_index(inplace=True) ## get rid of US holidays - dates = df.index.levels[0] - if index in ['IG', 'HY']: - holidays = bond_cal().holidays(start=dates[0], end=dates[-1]) - df = df.loc(axis=0)[dates.difference(holidays),:,:] + if remove_holidays: + dates = df.index.levels[0] + if index in ['IG', 'HY']: + holidays = bond_cal().holidays(start=dates[0], end=dates[-1]) + df = df.loc(axis=0)[dates.difference(holidays),:,:] return df def index_returns(df=None, index=None, series=None, tenor=None, from_date=None, years=3, per=1): |
