Very High Level Architecture Diagram
Stock Predicting Deep Learning Stack
Recurrent Neural Network Model Results for predicting NASDAQ-100
Recurrent Neural Network Model for predicting Apple Stock
Demo of viewing the Low, High, Closing Value of Tesla Stock based on detecting the Tesla Logo
Stock Data (LOW, HIGH, CLOSE) for Trip Advisor
Closing Price of Stock Viewer on Website
About Us Page
BETA Deep Learning Stock Prediction Page
Use Cases Page
In today's society, only 54% of Americans own stocks. There are many people who are unaware of how the stock market affects the world around us but we are here to fix that! This goal of our app is to help users gain awareness of how everyday items are related to the stock market, predict behavior of future stocks and provide a tool for anybody who wants to visualize stocks in an Augmented Reality environment!
Accomplishments that we're proud of
We created an augmented reality app that identifies company logos and displays stock data for it. This app will later connect to the web app, which allows you to further dig into stocks, predict future behavior, and trade stocks. There are also items on our Augmented Reality application that allows you to trade stocks via 'Robinhood' and see the latest news relating to your selected stock in our 'Media' section.
The ability to use a complex neural network model set up in such a way to predict the time series behavior of stocks even if the values are off which is more robust and accurate than traditional Linear Regression models, Random Forest models, and even more simpler Recurrent Neural Network problems. At the end of the day, stock dynamics are chaotic and stochastic, thus resulting in many unforeseen and hard to predict factors which can influence the price from the weather to a simple tweet. As a result, predictions from any model should be taken with a grain of salt; however, the increasing complexity of Neural Network models will expose computers to more factors to look out for and more accurate calculations.
How We Built it
We created the front-end using React.js which prides itself in component based development. Everything was created from scratch for every component's JSX and CSS. The graphs generated use Kenshos Orama, the background images are all free stock photos from Pexels and it communicates with the back-end through HTTP API calls. The website was hosted on Heroku and nameservers have been added to the Domain.com domain: http://www.stockfindar.com
We created our entire AR Stack with ViroReact, a relatively new AR/VR development platform that allows you to efficiently build and test your application through real time IPv4 syncing with the ViralMedia testbed. Our first priority was to implement image tracking on company logos. Once detected, we would then generate a button that would display a cube of financial data when clicked upon.
Data Science & Machine Learning/Deep Learning Stack:
We created the entire Data Science & Machine/Learning Stack using a combination of Plotly/Seaborn (for pretty plotting), Pandas (data structure for holding data), Sci-Kit Learn (for data preprocessing & cleanup) and PyTorch (Deep Learning framework for creating a DA-RNN model). The DA-RNN Model (Quin et. al.) consists of a Encoder Decoder structure where in each case the Encoder and Decoder are LSTM (Long Short Term Memory) RNN's (Recurrent Neural Networks) attached to one another along with a mechanism known as an attention layer present in the encoder and decoder structure of the network. The Encoder extracts relevant input features over time and takes information from previous encoder hidden states which feeds into the Decoder which has Temporal Attention Mechanism to select relevant encoder hidden states across all time steps. The data is cut into a 70 : 30 split and is run over anywhere from 10 - 300 epochs. For larger epochs, the model is trained on a VM instance of Google Cloud which has access to more computational power and GPUs. As of now, the data reads data of a 0 to T instance from 0 to T-1 and it predicts T (one can also think of it as 0 to t and predicting t+1, this can be scaled even more to predict more days) The Data Science portion consists of graphical results of stock data which is all parsed through http or api calls from IEX or Yahoo Finance. This same data is also used for constructing the large datasets for the Deep Learning model. Metrics such as Finance Analyst Recommendations and EPS Surprise (Earnings Per share, Surprise part provides the difference in repeated earnings and expected earnings). A custom metric is used based on those two analytics on whether it's good to buy, cell or hold a stock.
What we learned
- We learned how to create an augmented reality app. We learned how to use several APIs such as Algolia, Authorize, Yahoo Finance, and IEX.
- Things don't always go as planned. Due to time constraints, we had to be flexible and adjust our project goals on the go.
- Many APIs and Tools can go out of date or not function properly as they used to so you have to make compromises with certain tools one can use such as constructing per minute recent data for a stock over the course of a year.
- Tuning hyperparameters for an Encoder-Decoder Recurrent Neural Network Model can be tricky especially if you do any training on a local machine that doesn't have a GPU.
- As a group of people who are very knowledgeable in math and computer science/engineer, we need to learn more finance terminology and models as we continue this project.
What's next for Stock FindAR (Stock Finder)
Since creating a deep learning model takes a while, we only had enough time to test the data on Apple stocks. In the future, we hope to implement deep learning for more stocks as well as identify stocks based off of the live 3D item, not just the 2D logo.