├── Procfile ├── sm.jpg ├── Reliance.model ├── requirements.txt ├── setup.sh ├── README.md ├── nse real time data .ipynb └── app.py /Procfile: -------------------------------------------------------------------------------- 1 | web: sh setup.sh && streamlit run app.py 2 | -------------------------------------------------------------------------------- /sm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumitjoshi21/NSE-Real-Time-Stocks-Analysis-and-Predictions-Using-Python-LSTM-Model/HEAD/sm.jpg -------------------------------------------------------------------------------- /Reliance.model: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumitjoshi21/NSE-Real-Time-Stocks-Analysis-and-Predictions-Using-Python-LSTM-Model/HEAD/Reliance.model -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | numpy==1.18.1 2 | streamlit==0.60.0 3 | matplotlib==3.1.3 4 | keras==2.2.5 5 | tensorflow==1.15.2 6 | pandas==1.0.1 7 | nsepy==0.8 8 | pandas_datareader==0.8.1 9 | Pillow==7.1.2 10 | scikit_learn==0.23.1 11 | -------------------------------------------------------------------------------- /setup.sh: -------------------------------------------------------------------------------- 1 | mkdir -p ~/.streamlit/ 2 | echo "\ 3 | [general]\n\ 4 | email = \"your-email@domain.com\"\n\ 5 | " > ~/.streamlit/credentials.toml 6 | echo "\ 7 | [server]\n\ 8 | headless = true\n\ 9 | enableCORS=false\n\ 10 | port = $PORT\n\ 11 | " > ~/.streamlit/config.toml 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NSE-Real-Time-Stocks-Analysis-and-Predictions-Using-Python-LSTM-Model 2 | In this project first we fetch data of any stock(NSE) in realtime then we evaluate the stock price using basics visualizations then we Predicting future stock price using machine learning algorithms for more visit 3 | -------------------------------------------------------------------------------- /nse real time data .ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": null, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [] 9 | } 10 | ], 11 | "metadata": { 12 | "kernelspec": { 13 | "display_name": "pytensor", 14 | "language": "python", 15 | "name": "pytensor" 16 | }, 17 | "language_info": { 18 | "codemirror_mode": { 19 | "name": "ipython", 20 | "version": 3 21 | }, 22 | "file_extension": ".py", 23 | "mimetype": "text/x-python", 24 | "name": "python", 25 | "nbconvert_exporter": "python", 26 | "pygments_lexer": "ipython3", 27 | "version": "3.7.7" 28 | } 29 | }, 30 | "nbformat": 4, 31 | "nbformat_minor": 4 32 | } 33 | -------------------------------------------------------------------------------- /app.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Mon Jun 22 14:51:24 2020 4 | 5 | @author: sumit joshi 6 | """ 7 | 8 | 9 | from PIL import Image 10 | from nsepy import get_history 11 | from datetime import date 12 | import datetime 13 | import pandas as pd 14 | from sklearn.preprocessing import MinMaxScaler 15 | import numpy as np 16 | import streamlit as st 17 | from keras.models import load_model 18 | 19 | def main(): 20 | 21 | image = Image.open('sm.jpg') 22 | 23 | st.image(image,use_column_width=True) 24 | 25 | 26 | st.title("NSE Real-Time Stocks Analysis and Predictions") 27 | 28 | 29 | st.header("Select the stock and check its next day predicted value") 30 | 31 | choose_stock = st.sidebar.selectbox("Choose the Stock!",["NONE","Reliance", "PowerMech Solns.", 'RepcoHomes']) 32 | 33 | 34 | if(choose_stock == "Reliance"): 35 | df1 = get_history(symbol='reliance', start=date(2010,1,1), end=date.today()) 36 | df1['Date'] = df1.index 37 | st.header("Reliance India NSE Last 5 Days DataFrame:") 38 | 39 | # Insert Check-Box to show the snippet of the data. 40 | if st.checkbox('Show Raw Data'): 41 | 42 | st.subheader("Showing raw data---->>>") 43 | st.dataframe(df1.tail()) 44 | ## Predictions and adding it to Dashboard 45 | new_close_col = df1.filter(['Close']) 46 | mm_scale = MinMaxScaler(feature_range=(0, 1)) 47 | mm_scale_data = mm_scale.fit_transform(new_close_col) 48 | new_close_col_val = new_close_col[-30:].values 49 | new_close_col_val_scale = mm_scale.transform(new_close_col_val) 50 | X_test = [] 51 | X_test.append(new_close_col_val_scale) 52 | X_test = np.array(X_test) 53 | X_test = np.reshape(X_test, (X_test.shape[0], X_test.shape[1], 1)) 54 | network = load_model("Reliance.model") 55 | new_preds = network.predict(X_test) 56 | new_preds = mm_scale.inverse_transform(new_preds) 57 | #print(new_preds[0]) 58 | # next day 59 | NextDay_Date = datetime.date.today() + datetime.timedelta(days=1) 60 | 61 | st.subheader("Predictions for the next upcoming day Close Price : " + str(NextDay_Date)) 62 | st.markdown(new_preds[0][0]) 63 | 64 | st.subheader("Close Price VS Date Interactive chart for analysis:") 65 | st.area_chart(df1['Close']) 66 | 67 | st.subheader("Line chart of Open and Close for analysis:") 68 | st.area_chart(df1[['Open','Close']]) 69 | st.subheader("Line chart of High and Low for analysis:") 70 | st.line_chart(df1[['High','Low']]) 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | if __name__=='__main__': 81 | main() 82 | 83 | 84 | 85 | --------------------------------------------------------------------------------