Stock Market Projection Prediction Using Supervised Artificial Neural Networks
INTRODUCTION
This is a web development project utilizing supervised artificial neural networks to generate predictions for specified stocks based upon historical stock performance data gathered using freeware APIs. This project hopes to provide stock market investors with a tool that provides guidance when selecting profitable investment opportunities.
Background
The main aim of this project is to implement the artificial neural network to predict future stock indices. The system will predict the future stock value based on the historical data and repeated patterns in the history of the stock data. Two separate sources of stock data are used to train the underlying artificial neural network of the software.
Proposed Functionality
End users can access the software through a web application (possibly an electron app accessible from the desktop). A user must input a stock name or market code.
Using freeware APIs, the software pulls relevant stock market data such as stock names, prices, dates and timestamps of prices, and respective derivatives of stock prices at each timestamp. These data sets are used as input to train the software’s supervised artificial neural network will teach the system to recognize patterns in a stock and allow the system to accurately predict whether a certain stock is a good investment or not.
The output of the supervised artificial neural network will be fed into an expert system to interpret output results. The output of the expert system will be human readable statistics for each respective stock input.
Technologies Used
Electron[1] - This is a technology we will use which allows for web development to be brought to the desktop by compiling a cross-platform compatible application composed of HTML, CSS, and JavaScript. The usage of a web application will allow our team to develop a feature-rich and easily updatable GUI. Human interaction with our application will be intuitive and straightforward. Because the application will be cross-platform, usability will be the focus for this Electron technology.
Angular Framework[2] - This is a technology we will use to develop our GUI for the Electron platform. Angular Framework is a JavaScript and TypeScript based framework that improves writeability of front-end applications. The framework is based upon compartmentalizing front-end code into components and allows for easy organization of those components. This will speed up development for unintelligent parts of our application.
Python[3] - This technology is a feature-rich and easily writeable programming language to be used for our team’s back-end supervised artificial neural network. Python provides
libraries for http and socket functionality (useful for web application approaches), the neural network functionality itself, and many others. If an end user requires a CLI input to use the software, the Django for Python library can be incorporated. Django provides an all-in-one solution for CLI based projects (full-stack development).
CLIPS[4] - This is a technology introduced to our team by Dr. Rahimi during our time taking CSE 4990 - Computational Intelligence at Mississippi State. It is an expert system technology that our team will use to process the trained neural network output into a human-readable format. By defining membership functions and rules, the software can determine whether a stock, fed as input to the front-end, will be a good investment (and just how good of an investment it will be).
Alpha Vantage JSON API[5] - This technology is a freeware API that provides “realtime and historical stock and equity data with over 50 technical indicators [dimensions of data]” [5]. Using this API, our team will pull relevant stock data from the Alpha Vantage network to build known, proven data sets for our supervised artificial neural network training.
World Trading Data API[6] - This technology is a second freeware API that our team will use to pull relevant stock data for the purpose of building data sets used to train our supervised artificial neural network. By employing two APIs, given that they are both freeware, our team will create a verbose data set covering each relevant dimension of the given stock data for training the software.
IMPLEMENTATION
Division of Labor
Team member Joshua Fortune is tasked with front-end Angular development. Specifically, Joshua will assist team member Kiran with organizing HTML, CSS, and JavaScript into Angular Framework components as well as ensuring data paths and back-end connectors are created and accurate using TypeScript and JavaScript with the Angular Framework. Joshua will also be responsible for importing the finished Angular application into Electron for local use of the software on the desktop. Responsibility for neural network design and implementation will be shared with Kiran; Joshua will design and implement the core neural network and ensure proper functionality.
Team member Kiran Thapa is tasked with designing and generating HTML, CSS, and JavaScript files necessary for GUI operation as well as design and implementation of the interface for the back-end Python neural network component for the software. Kiran’s design of the connection between the GUI and neural network will be shared with team member Joshua to ensure the connections necessary to train and query the artificial neural network operate properly.
DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma
Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t
Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th
1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of
1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of