diff options
Diffstat (limited to 'python/exploration/beta_trade.py')
| -rw-r--r-- | python/exploration/beta_trade.py | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/python/exploration/beta_trade.py b/python/exploration/beta_trade.py index 4b895c94..8563f11b 100644 --- a/python/exploration/beta_trade.py +++ b/python/exploration/beta_trade.py @@ -11,23 +11,24 @@ from statsmodels.tsa.ar_model import AR import matplotlib.pyplot as plt -def calc_returns(): - returns = index_returns(index=['IG', 'HY'], tenor='5yr') +def calc_returns(save_feather=False): + returns = (index_returns(index=['IG', 'HY'], tenor='5yr', years=None). + reset_index('tenor', drop=True)) returns_hy = (returns. xs('HY', level=1). dropna(). - reset_index(level='series'). - groupby(level=['date']). + groupby(level=['date'], as_index=False). nth(-1)) - returns_hy = returns_hy.set_index('series', append=True) - returns_ig = returns.xs('IG', level=1).reset_index('tenor', drop=True) + returns_ig = returns.xs('IG', level=1) # hy starts trading later than ig, so we line it up based on hy series df = pd.merge(returns_hy, returns_ig, left_index=True, right_index=True, - suffixes=('_hy','_ig')) + suffixes=('_hy','_ig')) returns = df[['price_return_hy', 'price_return_ig']] returns.columns = ['hy', 'ig'] - #feather.write_dataframe(returns.reset_index(), - # os.path.join(os.environ["DATA_DIR"], "index_returns.fth")) + returns = returns.dropna()['2009-03-20':] + if save_feather: + feather.write_dataframe(returns.reset_index(), + os.path.join(os.environ["DATA_DIR"], "index_returns.fth")) return returns.reset_index('series', drop=True) def calc_betas(returns=None, spans=[5, 20]): @@ -81,7 +82,7 @@ def spreads_ratio(series=list(range(22, 29)), index=['IG', 'HY'], tenor='5yr'): def loglik(beta, returns): x = (returns.hy - beta*returns.ig) model = AR(x, missing='drop') - fit = model.fit(maxlag=1) + fit = model.fit(maxlag=2) return - fit.llf if __name__ == "__main__": |
