aboutsummaryrefslogtreecommitdiffstats
path: root/python/exploration
diff options
context:
space:
mode:
Diffstat (limited to 'python/exploration')
-rw-r--r--python/exploration/curve_trades.py7
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']