1. Kaggle competition: G-Research Crypto Forecasting
2022-02-22
The simultaneous activity of thousands of traders ensures that most signals will be transitory, persistent alpha will be exceptionally difficult to find, and the danger of overfitting will be considerable. In addition, since 2018, interest in the cryptomarket has exploded, so the volatility and correlation structure in our data are likely to be highly non-stationary. The successful contestant will pay careful attention to these considerations, and in the process gain valuable insight into the art and science of financial forecasting.
- ./script/: scripts folder contains the utility script for LSTM, XGBoost, Paper presentation, general statistical inference.
- ./trainedNN: store trained RNN/LSTM models(hidden).
- ./trainedXGB: store trained XGBoost models(hidden).
- statistical-analysis-additional.ipynb: explore the crypto market by:
- frequency manipulation script/morestates.py
-> ts_with_frequency()
- autocorrelation
- time-series decomposition script/morestates.py
> ts_decomp()
- stationarity tests
Augmented Dickey-Fuller test
- frequency manipulation script/morestates.py
- RNN_forecasting.ipynb: Do RNN forecasting on the single crypto
BTC
OHLCV.- Tensorflow
- Keras:
tensorflow.keras
- RNN-LSTM:
tensorflow.keras.layers.LSTM
- my-crypto-lstm.ipynb: Manage the Kaggle competition with LSTM forecasting on the 14 cryptocurrencies returns simulaneously.
- crypto-xgb-paramstune.ipynb: tune xgboost hyperparameters and feature parameters.
xgb.cv
sklearn.model_selection.ParameterSampler
- crypto-xgb-scoring.ipynb: Use the weighted correlation metric to score the models' prediction as the Competition.
- crypto-xgb-api.ipynb: Debug the kaggle competition submission API.
-
MA_cross_strategy.ipynb: Moving Average Crossing example of trading strategy, backtesting and evaluation.
- generate strategy signals:
script/strategy.py -> mac()
- backtest:
script/backtest.py -> bt()
- evaluation:
- Sharpe ratio
- Maximum Drawdown
- Compound Annual Growth Rate (CAGR)
- distribution of returns
- trade-level metrics
- generate strategy signals:
-
cointegration_strategy.ipynb: Cointegration Strategy
statsmodels.tsa.stattools.coint
$y_{t}-\beta x_{t}=u_{t}$