aboutsummaryrefslogtreecommitdiffstats
path: root/python/beta_trade.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/beta_trade.py')
-rw-r--r--python/beta_trade.py35
1 files changed, 0 insertions, 35 deletions
diff --git a/python/beta_trade.py b/python/beta_trade.py
deleted file mode 100644
index 34058090..00000000
--- a/python/beta_trade.py
+++ /dev/null
@@ -1,35 +0,0 @@
-import pandas as pd
-import feather
-from option_trades import index_price_returns
-from arch import arch_model
-
-returns = pd.concat([index_price_returns(index=i) for i in ['IG', 'HY']], axis=1)
-returns.columns = ['ig', 'hy']
-feather.write_dataframe(returns.reset_index(), "/home/share/CorpCDOs/data/index_returns.fth")
-model = pd.ols(y = returns.hy, x=returns.ig)
-beta = model.beta.x
-
-am = arch_model(returns.ig.dropna())
-res = am.fit()
-
-# three ways of computing the volatility
-# 20 days simple moving average
-vol_sma = returns.hy.rolling(20).std() * math.sqrt(252)
-vol_ewma = returns.hy.ewm(span=20).std() * math.sqrt(252)
-# GARCH(1,1)
-# we scale returns by 10 to help with the fitting
-scale = 10
-am = arch_model(scale * returns.hy.dropna())
-res = am.fit()
-vol_garch = res.conditional_volatility * math.sqrt(252)/scale
-vol = pd.concat([vol_sma, vol_ewma, vol_garch], axis=1)
-
-## let's get the betas
-beta_ewma = (returns.
- ewm(span=20).
- cov().
- apply(lambda df:df.loc['ig', 'hy']/df.loc['ig', 'ig'],
- ('minor', 'major')))
-
-feather.write_dataframe(beta_ewma.reset_index(),
- "/home/share/CorpCDOs/data/beta.fth")