About Stocksneural.net

About the project

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 below). 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.

How does it exactly work?

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 of certain 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 predictions.
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.

Real life application, accuracy and performance

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:

  • % of Profitable Deals: up to 80% and more
  • Annual percentage rate (APR): up to 48%
  • Sortino ratio : up to 20 and more

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.

What means what in the table?

  • Symbol – stock symbol for the certain company and the company name below. For example, Apple has AAPL as a symbol, Microsoft – MSFT, etc.
  • Last close price – daily close price reached on last trading day. Trading day on US stock market starts on 9:30 AM Eastern Time Zone (ET) and ends on 4:00 PM Eastern Time Zone (ET), Monday to Friday, excluding holidays. We perform prediction of future stocks prices changes approximately at 3:00 – 5:00 AM Eastern Time Zone (ET) on the next trading day (long before open).
  • 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.
    Deal entry - Buy recommendation

    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.
    Deal exit - Sell recommendation
    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 price. 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.
    Deal exit only

    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.

    • Example A
      Let's say last close price of the stock A is 90. Smoothed price of stock A on the same day is 100.
      Prediction of the price of stock A for the next 5 days is 105, 107.5, 110, 112.5, 115.
      In this case the following recommendation will be generated:
      BUY at <= 100, SELL TO CLOSE at >= 105.
      So, the goal of the deal to obtain profit from the upward movement from the last close price to the smoothed close price, which goes up too.
    • Example B
      Let's say last close price of the stock B is 110. Smoothed price of stock B on the same day is 100.
      Prediction of the price of stock B for the next 5 days is 105, 102.5, 100, 97.5, 95.
      In this case the following recommendation will be generated:
      SELL SHORT at >= 110, BUY TO COVER at <= 105.
      So, the goal of the deal to obtain profit from the downward movement from the last close price to the smoothed close price, which goes down too.
    You are free to develop your own strategies and trade signals using our prediction data, and not paying attention to our signals.
  • Exp. margin, % – Margin expected from the recommended deal.
    Calculated as a difference between smoothed price predicted for the 1st trading day and the last close price divided by the last close price.
  • Exp. change, % – Predicted change of the smoothed price during prediction period (in percents).
    Calculated as a difference between smoothed price predicted for the last (5th) trading day and the last observed smoothed price divided by the last observed smoothed price.
  • Chart – Clickable minichart showing predicted dynamics of the smoothed price.
    Minichart shows schematically the predicted changes of the smoothed price during the prediction period. If you click on this chart, the larger chart with the instrument's Open, High, Low and Close prices history, smoothed price and its prediction will pop up.
  • Norm. RMSE – Average RMSE is calculated for all predictions for the each financial instrument for the last month. Then the average RMSE is normalized by the division by the average smoothed close price during the last month in order to allow to compare errors of the different instruments
  • Annual Percentage Rate – Annualized return based on the returns on the recommended trades for each instrument during all prediction history
  • Successful deals, % – Percentage of profitable deals performed according to the recommendations during all prediction history
  • Downside risk, % – Downside deviation.
    This measure is a variation of standard deviation in that it measures the deviation of only bad volatility. It measures how large the deviation in losses is.
  • Sortino ratio – The Sortino ratio is a variation of the Sharpe ratio that differentiates harmful volatility from total overall volatility by using the asset's standard deviation of negative asset returns, called downside deviation.
    The Sortino ratio takes the asset's return and subtracts the risk-free rate, and then divides that amount by the asset's downside deviation.

Further developments

We are constantly expanding and improving our stock prices prediction system, and planning following next steps:

  • Expansion of stocks universe that we calculate predictions for. We will need ample of computing power for that and conduct some work in order to parallelize our neural network training calculations.
  • Optimization of de-noising (filtering) or making de-noising end-to-end trainable.
    We are experimenting with causal dilated convolutions, gated convolutions, Phased LSTMs trying to solve this problem.
  • Trial and testing of even more advanced neural network architectures, including variational methods.
  • Take into account fundamental factors and news sentiment.
  • Make our model work on intraday time interval.

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.

References:

  • Kaufman, Perry J. Trading systems and methods, 5th ed., pp. 886-895, John Wiley & Sons, 2013
  • Iebeling Kaastra, Milton Boyd 'Designing a neural network for forecasting financial and economic time series', Neurocomputing 10 (1996) 215-236
  • Ahmed, Nesreen K. , Atiya, Amir F. , Gayar, Neamat El and El-Shishiny, Hisham(2010) 'An Empirical Comparison of Machine Learning Models for Time Series Forecasting', Econometric Reviews, 29: 5, 594-621
  • Dubovikov et al. 'Dimension of the minimal cover and fractal analysis of time series', Physica A: Statistical Mechanics and its Applications, Volume 339, Issues 3–4, 15 August 2004, Pages 591–608
  • Mladen Dalto 'Deep neural networks for time series prediction with applications in ultra-short-term wind forecasting', 2015 IEEE International Conference on Industrial Technology (ICIT)

List of all financial instruments that are being processed by Stocksneural.net deep learning algorithms