Problem Definition:
The NIFTY 50 is a benchmark Indian stock market index that represents the weighted average of 50 of the largest Indian companies listed on the National Stock Exchange. So we have the real-time dataset of that 50 companies in NSE ranging from the year when they become a largest companies and till 2021. We have tried to predict the trend of the market after 2019 by using 2021 as the predictable year using ARIMA (Auto Regressive Integrated Moving Average) Model. We have also done a download/print the result as pdf via javascript.
Functional Requirements:
• Data Collection
• Data Processing
• Training and Testing
• Modeling
• Predicting
• Rendering
• Download/Print the prediction
Technical Specification:
• Libraries Used for Building Model and Prediction : Numpy Pandas Matplotlib Sklearn, Statsmodels
• Libraries Used for GUI : Flask Render_template Url_for Request
• Programming Languages Used : Python HTML CSS JS
• Functional Programs:
- App.py
- Home.html
- Result.html
Functional Diagram:
System Components/Modules:
-
Choice From the User: By using flask, the choice of the company to predict is given by the user. This contains several buttons that contained inside cards that represent some name and basic details of the company. Here the dataset path will be sent to the server program app.py.
-
Importing Libraries: Inside app.py , the path is passed as an argument to the function predict() that will call another function stock() that will predict the stock by using libraries such as pandas, numpy, matplotlib, statsmodels etc.,
-
Data Processing: The data undergoes pre-processing like cleaning the dataset and removing null and unwanted values.
-
Test , Train Data: We have separated the test and train data by taking the test data upto the year 2019 and train data from 2021.
-
Built ARIMA Model: An autoregressive integrated moving average model, a statistical analysis model that used time series data to better understand the dataset or predict future values. The model is built and Graph is displayed.
Output & Visualization: We have given various plots for each step by step process and we also have an option to print/download the generated result as pdf.