diff options
Diffstat (limited to 'python/exploration')
| -rw-r--r-- | python/exploration/curve_trades.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/python/exploration/curve_trades.py b/python/exploration/curve_trades.py index 7a7d29c2..963aac27 100644 --- a/python/exploration/curve_trades.py +++ b/python/exploration/curve_trades.py @@ -82,10 +82,11 @@ def on_the_run_theta(index='IG', rolling=6): def curve_returns(index='IG', rolling=6): ## look at returns otr = on_the_run(index) - df = index_returns(index= index, series=list(range(otr - rolling, otr + 1)), + df = index_returns(index=index, series=list(range(otr - rolling, otr + 1)), tenor=['3yr', '5yr', '7yr', '10yr']) ## on-the-run returns - returns = df.price_return.unstack(-1).dropna().groupby(level='date').nth(-1) + df = df.reset_index().set_index(['date', 'series', 'tenor']) + returns = df.price_return.dropna().unstack(-1).groupby(level='date').nth(-1) strategies_return = pd.DataFrame( {'5-10': 1.78 * returns['5yr'] - returns['10yr'], @@ -114,6 +115,7 @@ def cross_series_curve(index='IG', rolling=6): df = index_returns(index= index, series=list(range(otr - rolling, otr + 1)), tenor=['3yr', '5yr', '7yr', '10yr']) ## look cross series - 3y to 5y + df = df.reset_index().set_index(['date', 'index', 'tenor', 'series']) returns1 = df.xs(['5yr', index], level = ['tenor','index']).price_return.unstack(-1) price_diff = pd.DataFrame() for ind in list(range(otr - 2, otr + 1)): @@ -166,6 +168,7 @@ def curve_model(tenor_1='5yr', tenor_2='10yr'): return df, ols_model def curve_model_results(df, model): + df = df.dropna() prstd_ols, df['down_2_stdev'], df['up_2_stdev'] = wls_prediction_std(model) #dr/dspread = exp(k) + spread_coeff * duration ^ dur_coeff * spread ^ (spread_coeff-1) cols = ['ratio', 'closespread', 'down_2_stdev', 'up_2_stdev'] |
