You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Deep Learning and Directional Stock Market Forecast
This project explores various novel deep learning models in the context of directional stock market forecast and evaluates their performances in a simulated market. The models were trained via Google Cloud TPU, and its prediction outputs were used to form custom trade strategies to compare against a base real-life buy and hold strategy.
1. Code Structure
.
├── code # Code files (.ipynb)
│ ├── models # Model training and prediction output
│ ├── market-simulation # Market simulation and model performance evaluation
├── data # NQ Mobile daily stock price dataset
├── doc # Documentation files
└── README.md
2. Prerequisites and Dependencies
Jupyter Notebook
Google Colab (with TPU and GPU)
Numpy: Used for Arrays
Pandas: Used for Dataframes
Seaborn: Used for Advanced Plots
Matplotlib: Used for Plots and Graphical Representations
Technical Analysis Library: Used for Generation of Technical Indicators
Scikit-Learn: Used for Machine Learning Techniques
PyWavelets: Used for Discrete Wavelet Transformation
Keras: Used for Deep Learning Models
SPORCO: Used for Convolutional Sparse Coding
Mcfly: Used for Time-Series Classification
3. Data
The data represents daily stock price indicators of the NQ Mobile Inc. stock from the 2nd of September 1999 through to the 3rd of January 2018 depicting 4628 trading days across almost 10 years. NQ Mobile has since rebranded and is now tradable on the US stock market under the name Link Motion.
Technical Indicators
Description
Open
Stock price at market opening
High
Stock’s highest Price during the day
Low
Stock’s lowest Price during the day
Close
Stock’s price at market closing
Volume
Number of shares traded during the given time period
MACD
Moving Average Convergence Divergence: displays characteristics of momentum and trend of a stock's price
MACDAvg
Moving Average Convergence Divergence Average: displays the exponential average of MACD
MACDDiff
Moving Average Convergence Divergence Difference: displays the difference between the MACD and MACDAvg
RSI
Relative Strength Index: represents a momentum indicator that measures the magnitude of recent price changes to evaluate overbought or oversold conditions in the price of a stock
SlowK
Slow Stochastic Oscillator: A momentum indicator that shows the location of the close relative to the high-low range over a set number of periods
CCI
Commodity Channel Index: helps find start and end of a trend
ATR
Average True Range: measures the volatility of price
BOLL
Bollinger Band: helps in pattern recognition, by providing a relative definition of high and low
EMA20
20 day Exponential Moving Average
SMI
Stochastic Momentum Index: shows where the close price is relative to the midpoint of the same range
WVAD
William’s Variable Accumulation Distribution: measures the buying and selling pressure
ROC
Rate Of Change: shows the speed at which the stock’s price is changing
4. Models
Convolutional Neural Network (CNN)
Convolutional Sparse Coding (CSC)
Temporal Convolutional Network / WaveNet (TCN)
Bi-directional LSTM
Bi-directional LSTM with Autoencoders
5. Directional Prediction Criteria
The directional prediction of the next day’s stock price is determined by computing percentage changes from the predicted stock price (t+1)’ to the previous day stock price (t) of the time series.
Category
Criteria
Up
(t+1)’ ≥ 1.03% * t
No Change
0.97% × t < (t+1)’ < 1.03% * t
Down
(t+1)’ ≤ 0.97% * t
6. Methodology
7. Model Trading Strategies
8. Model Results
Mean directional accuracies for the 5 models' predictions on 3 price directions ("Up", "Down", "No Change") turned out to be higher than random guessing (33%).
Metrics
CNN
CSC
TCN
Bi-LSTM
Bi-LSTM Autoencoders
MSE (Mean Squared Error)
3071.1
1223.7
-
2297.1
3831.2
MAPE (Mean Abs. Percentage Error)
1.43%
0.91%
-
1.39%
1.61%
MDA (Mean Directional Accuracy)
41.15%
46.75%
40.79%
41.32%
40.37%
9. Simulation Results
Stock market for NQ Mobile Inc. was simulated for 2 periods of test time frames:
Period 1: 18-Jan-2007 to 30-Oct-2008
Period 2: 11-Mar-2016 to 29-Dec-2017
The 2 strategies were applied to the model prediction outputs, and the Total Cumulative Daily Returns (%) was measured and compared.