Mission of the project is to provide forecasts of stocks prices using Deep Learning methods, such as recurrent neural networks (RNN) and convolutional neural networks (ConvNets).
Application of artificial neural networks to the prediction of stock prices and their trends is covered in multiple academic papers (you can find list of some of them here). However, prediction of stock prices using deep networks requires a lot of computing power and has numerous complications and thus was not feasible until latest developments in parallel computing and big data areas. StocksNeural.net uses daily data on US stock market, now covering component stocks of Dow Jones Industrial Average (DJIA), S&P 500 and some other stocks.
System obtains daily stock prices history. We use Quandl premium datasets
and Interactive Brokers historical data feed as our sources.
We consider daily prices as a combination of useful signal (that we will try to predict) and random noise. So we have to somehow de-noise the data, thus we apply specific adaptive filter to our data. Further we will call those de-noised data ‘smoothed’.
Given smoothed data, we conduct training of recurrent neural networks (RNN) on historic data
depth (up to 10 years).
We use Long Short Term Memory (LSTM) and Gated Recurrent Unit (GRU) architectures.
We investigated available scientific papers and conducted our own study in order to
choose most efficient neural network architecture and network parameters, and we are constantly working
to build, train and test even more accurate and profitable models.
Some of the published models are autoregressive (so they depend only on the data for the instrument
model was built for), some have also an independent input variables.
Training phase is most compute-intensive in the whole pipeline, we use both CPU and GPU based servers in order to perform computations. We use distributed processing infrastructure in order to parallelize workloads and conduct computation in the timely fashion.
After the neural networks training, we perform so-called ‘backtesting’ of most accurate networks for each stock symbol, using test set of data that was not used for training. Thus, we estimate accuracy of predictions for each neural network on the out-of-sample data and for further real market predictions we use only networks which provide satisfying results.
With trained and tested neural networks, system downloads daily changes of stock prices, performs filtering to de-noise them, and feeds them to the neural network to obtain predictions for the next 5 trading days.
We also perform periodical re-training of our models in order for them to account the latest changes in the market behaviour.
Obtained prediction results are shown on this web site together with accuracy and performance
metrics, calculated on both on the backtesting and on the real market and real
We also provide trading recommendations (BUY and SELL signals) according to the simple rules. You can use those recommendations or follow your own rules based on the raw prediction data.
We apply this stock prices prediction method to our investment decision on the real stock market with success. Using calculated predictions as a base for the trading strategy, we were able to consistently outperform S&P 500 index.
We are constantly tracking the accuracy and performance of our models:
Those figures should be addressed with caution and solid risk management policy should be established and fulfilled. Past performance is not necessarily indicative of future results.
Deal entry and Deal exit – Trade recommendation for the current trading day. 'Deal entry' column contains signal and target price at which system recommends to enter a deal today. 'Deal exit' column contains signal and target price at which system recommends to exit this kind of deal, opened either today or on previous days.
For example, if 'Deal entry' column contains recommendation to 'BUY at <= 134.91' then
it means that the system recommends to open a long position today (BUY) at price equal
or lower to $134.91 per share.
If you have opened a position according to the recommendation in the 'Deal entry',
then pay attention to the signal and target price in the 'Deal exit' column.
So, if it contains 'SELL TO CLOSE at >= 136.43',
then it means that system recommends to close existing long position by selling an
amount of shares bought according to the 'Deal entry' recommendation at price equal or
greater of $136.43.
This exit recommendation affects a long position which you've opened earlier today
according to the system's recommendation as well as existing long position opened using
system's recommendations on the previous days.
For example, if you have bought today 100 ROK shares at $134.91 and you have bought 100 ROK shares yesterday according to yesterday's recommendation at, let's say, $134.00, then you are advised to sell 200 ROK shares then the price will reach $136.43 today.
In some cases, there is no deal entry recommendations for the specific instrument,
but the only deal exit recommendation.
It means that the system doesn't recommend open any new positions for this stock today,
but offers a recommendation to close existing long or short positions on the target
So, in this case system recommends to sell PRGO shares to close existing long positions
and buy ADBE shares to cover and close existing short positions.
If you don't have any opened positions for those stocks on this day,
the system doesn't recommend to open any.
Those recommendations are based on the very simple strategy, paying attention to the deviation of the close prices from the smoothed prices and the direction of smoothed price movement for the prediction period.
We are constantly expanding and improving our stock prices prediction system, and planning following next steps:
Obviously we need to build up our resources to get it done, so we are interested both in experts who want to join our team and investors who are interested in technology development and application.