diff options
Diffstat (limited to 'python/exploration')
| -rw-r--r-- | python/exploration/beta_trade.py | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/python/exploration/beta_trade.py b/python/exploration/beta_trade.py index fe6e5c5c..6e146405 100644 --- a/python/exploration/beta_trade.py +++ b/python/exploration/beta_trade.py @@ -16,31 +16,28 @@ from statsmodels.tsa.ar_model import AR import matplotlib.pyplot as plt -def calc_returns(index_list=['HY', 'IG'], save_feather=False): - returns = (index_returns(index=index_list, tenor='5yr', years=None). +def calc_returns(index_list=['HY', 'IG'], years=None): + returns = (index_returns(index=index_list, tenor='5yr', years=years). reset_index(['tenor'], drop=True). swaplevel(1, 0)) returns = returns.groupby(level=['date','index']).nth(-1)['price_return'] returns = returns.unstack().dropna() - #if save_feather: - # feather.write_dataframe(returns.reset_index(), - # os.path.join(os.environ["DATA_DIR"], "index_returns.fth")) return returns def calc_betas(returns=None, spans=[5, 20], index_list=['HY', 'IG']): if returns is None: returns = calc_returns(index_list=index_list) - + breakpoint() return pd.concat([(returns. ewm(span=span). cov(). groupby(level='date'). apply(lambda df: df / np.diag(df))) for span in spans], axis=1, keys=spans) -def plot_betas(betas=None): +def plot_betas(betas=None, index_list=["HY", "IG"]): spans = [5, 20] if betas is None: - betas = calc_betas(spans=spans) + betas = calc_betas(spans=spans, index_list=index_list) for beta, span in zip(betas, spans): plt.plot(beta, label='EWMA' + str(span)) plt.xlabel('date') @@ -67,8 +64,6 @@ def calc_realized_vol(returns=None): vol = pd.concat([vol_sma, vol_ewma, vol_garch], axis=1, keys=['sma', 'ewma', 'garch']) return vol - #feather.write_dataframe(beta_ewma.to_frame('beta'), - # os.path.join(os.environ['DATA_DIR'], "beta.fth")) def spreads_ratio(series=list(range(22, 29)), index=['IG', 'HY'], tenor='5yr'): df = get_index_quotes(series=series, index=index, tenor=tenor) |
