A repo for our COMP 598 project exploring applications of deep learning to finance. Our main contributions are
- Making use of ensemble models
- 2 voting methods
- average
- bin-average (explained in report)
- Consider a novel technical indicator
- Explore pre-training models on other financial data
Results data as well as trained models are available at the following Google drive directory: Drive
The 'finrl' folder is a modified version of the FinRL-Library by Liu, Xiao-Yang and Yang, Hongyang and Chen, Qian and Zhang, Runjia and Yang, Liuqing and Xiao, Bowen and Wang, Christina Dan. The work contained therein is (with the exception of slight modifications, bug fixes) not our original work.
Folder for general utility functions for the purpose of cleaning up other code.
- Ensemble model
- Data utility functions
- enviroment (from 'finrl' adapted to our needs)
- preprocessing functions for data
Training and testing scripts
- Designed to be run on a remote GPU
- Includes some basic bash scripts to train each model in one command
- Testing scripts require more manual adjustments
- Due to more variability in parameters
- Can specify
- training dates
- model to train
- data to train on
- number of steps to train for
- where data and models are kept (for logging)
Below one may find extra data and resources that are generally helpful in appling machine learning to finance.
- Dual Attention Model
- 2020 review paper
- Training a Neural Network with a Financial Criterion Rather than a Prediction Criterion (Bengio 1996?)
- Multi Task Learning for Stock Selection (Ghosn, Bengio 1996)
- I think this paper presents results and general ideas related to paper above.
- They implement linear layers (5-3-1 and 5-3-2-1)
- Try to predict financial criteria instead of price. They claim it's better based on results in paper above.
- They explore the effects of sharing parameters of models (None, Some, All) for different stocks (hence the term Multi Task).
- Turns out sharing everything (i.e. having one model for all stocks) is much worse than the rest. You need some sort of specific training for different stocks.
- An adversarial approach
- Advances in Financial Machine Learning (Marco Lopez De Prado)
- Alot of good stuff on how to manipulate data, extract features, backtest correctly, etc
- Nothing on actual ML models or architectures though