Stock indicator scanner customization tool using deep reinforcement learning - Cheong, Desmond YongHong (2022)

(untitled)
Nowadays, there have some applications provide predictive model for user to predict the stock trend, however user cannot customize the type of input data used in the predictive models. User cannot use the indicator that they prefer to make the prediction. Other than that, many current stock indicator scanners only allow user to specify some simple conditions to scan the stocks and do not harness the advancement of machine learning. This project will deliver a web application with dynamic stock prediction model based on deep reinforcement learning or more particularly, Deep Q-Network (DQN) algorithm which enable input customization. In this system, user able to create their own indicator by choose a combination of some well-known fundamental indicators and technical indicators that are provided in the application. This indicator can then be used as the input of the predictive model. The stock indicators selected by user will be the input of DQN algorithm and act as state while the actions allowed for the DQN agent will be buy and sell. For simplicity, return of investment (ROI) will be used as the reward of RL agent. Since stock data is sequential data and Recurrent Neural Networks (RNN) works better on sequential data compared to classical feedforward DNN, thus the feedforward DNN used in classical DQN have been replaced by a specialized version of RNN called LSTM. By using LSTM instead of RNN, the short-term memory problem of RNN which caused by vanishing gradient problem can be overcome. To address the problem of overfit, dropout regularization technique will be used. Moreover, ADAM optimization technique will be applied to adjust the parameters of the network in the DQN and ReLU activation function will be used since these techniques have shown promising achievement in some literature reviews. The mean squared error (MSE) loss function used in classical DQN will be replaced by Huber loss to improve the stability of the model training.