An algorithmic trading strategy incursion to create the first volatility security suitable for long term investors. The VIXM algorithmic strategy demonstrates potential for mitigating the decay of the VIXM instrument by leveraging machine learning techniques.
Table of Contents
In crushes, when all assets plunged altogether, the VIX Index goes up. An investment in the VIX would be ideal to diversify risk on those scary moments. However, the VIX is not investable, and nowadays all instruments available to invest in volatility are done through VIX futures. These instrument are called ETN (ie. VXX, VIXM, UVXY), and are only suitable for high risk professional investors, because they undergo a price decay effect due to the rollover of the future contracts. This means, if you invest in the VIXM ETN and keep the investment for some weeks, it is highly probable that you are going to loose money.
This project generates an algorithmic daily-trading strategy on the VIXM to compensate for price decay. Using an Adaboost machine learning classification model, the algorithm classifies the next day as a "positive return day" (signal 1) or a negative return day (signal 0), allowing an oportunity to filtering out some of the days with negative returns on a consistent basis.
This project aims to generate a model with enough accuracy so to enable a volatility investment vehicle without price decay. We want allow regular long term investors to invest in volatility. The day that this instrument exist, it will be an extraordinary asset to diversify risk in portfolios.
This research started with the prediction of the VIX in VIX Predictor project, and was followed by a second project called "VIXCOIN". The model presented here is the machine learning algorithm part of the latter project. VIXCOIN is a token which performance is associated to the performance of the VIXM algorithmic trading strategy explained here, and it will be sold in the blockchain.
DISCLAIMER: Investment in our product is not an option yet.
The adaboost machine learning algorith was built utilizing at least python 3.7 for the back end data analysis and machine learning
Python Packages
To get a local copy up and running follow these steps below. Alternatively, you can jump straight to the demo section and test out the wesbite portion.
- Clone the repo
git clone https://github.com/paocarvajal1912/VIXM-Algorithmic-Strategy.git
- Install python packages listed in the Built With section.
- To test out the algorithmic trading strategy file, first go to your terminal.
- In your terminal, navigate to the location where the cloned repo resides.
- Locate
vixm_adaboost_model.ipynb
and launch the file in jupyter notebook for data visualizations. - Alternatively, if you would like to rerun the model, you may import the file into Google Colab.
- Website functions are covered in the Demo portion.
The main file vixm_adaboost_model_model_evaluation.ipynb
is a Jupyter Notebook with a pre-run code. You can go through it and see code as well as results.
If you look to reuse the code, and do not have experience on jupyter lab, you can refer this tutorial.
The best features to predict the VIXM next day movement are shown in the figure above. We see a highly diverse group, where the more important features are the VIX index return squared, followed by the VIX index previous return.
Our first attempt was to predict the VIX Index in the VIX Predictor project. In that project, we tried a Neural Network model, and then an Adaboost model. The adaboost brought better results, with a 58% accuracy out of sample. We got 22 out of 217 features that contributed to the model. These were varied from Garch model conditional volatility predictions, squared returns, returns, and volume belonging to all sort of asset classes and global locations, as can be seen in the table below. In addition, weekly seasonality was also important.
However, the VIX Index is not investable. After we were able to see that it is possible to have capacity of prediction, we wanted to try a security that invest in the VIX. We selected ther VIXM because of having the larger history available. The next sub-section explains the model on VIXM in more detail.
This code is a marchine learning model to predict the sign of the return of the VIXM ETN for the next trading day.
A series of tickers are defined in a list, and time series of daily prices and volumes are downloaded using the Yahoo Finance API for each of those tickers. With the prices, we generate additional time series and seasonal analysis. Additionally, to include historical effects of more than one day on the prediction of the VIXM return sign tomorrow, we calculate principal components of the initial features, and add one week of daily lagged values in the features as well.
The final list of features is as follows:
- Close prices
- Returns
- Volumes
- Garch Models - The value of the conditional volatility predicted for the next day
- Return squared
- SPY historical volatility for several periods
- Day-of-the-week seasonality
- Month-of-the-year seasonality
- A custom number of principal components lagged on 1, 2, 3, 4 and 5 days representing historical movements
Several functions have been defined in four modules:
data_load_and_cleanup feature_functions pca_and_training visualizationsx
The model applied is the Adaboost
Model. The investment strategy consist in an algorithmic trading that follows the signals from the model, which are 0 and 1 daily. The strategy buys VIXM when the signal is 1, and sell VIXM when the signal comes back to 0.
The code includes analysis of.
* profitability of the strategy
* performan report
* feature importance
These first results show that the VIXM algorithmic strategy has potential for mitigating the decay of the VIXM instrument. There are several areas for improvement to enhance its effectiveness:
-
Feature Selection and Hyperparameter Tuning: The strategy could benefit from a more rigorous application of feature selection and hyperparameter optimization to improve its predictive performance and robustness.
-
Performance on Training and Adjacent Data: The strategy performs exceptionally well on the training data and shows promising results on data close to the training window. This indicates its ability to capture short-term patterns effectively.
- Limitations with Out-of-Sample Data: As the time horizon extends further from the training window, the strategy's performance begins to degrade. This suggests the need for improvements to generalize the model to new, unseen data. Here is where the feature selection and hyperparameter tuning will provide improvement.
Paola A. Carvajal Almeida - [email protected]
Here is my portfolio in GitHub
Thanks to the other teams members that worked in both projects. Some parts of those README files have been taken in this one:
VIX Predictor:
VIXCOIN
Credit to creator of readme template.