StockMarket / app.py
AnandSoni2001's picture
Update app.py
a813381
#Import Libraries
import streamlit as st
import plotly.graph_objects as go
import pandas as pd
import plotly.express as px
from yahoo_fin import stock_info
from yahoo_fin.stock_info import *
import math
import numpy as np
from sklearn.preprocessing import MinMaxScaler
import joblib
import yfinance as yf
import time
import requests
from bs4 import BeautifulSoup
#Heading
st.title('Stock Market Analysis and Prediction')
st.write("#")
#TCS Data Taken
tcsdaily = stock_info.get_data("TCS.NS", interval="1d")
tcsmonthly= stock_info.get_data("TCS.NS", interval="1mo")
tcsyearly = pd.read_csv('data/tcs-yearly.csv')
#Reliance Data Taken
reldaily = stock_info.get_data("RELIANCE.NS", interval="1d")
relmonthly= stock_info.get_data("RELIANCE.NS", interval="1mo")
relyearly = pd.read_csv('data/relianceind-yearly.csv')
#Infosys Data Taken
infdaily = stock_info.get_data("INFY.NS", interval="1d")
infmonthly= stock_info.get_data("INFY.NS", interval="1mo")
infyearly = pd.read_csv('data/infosys-yearly.csv')
#Select Box
comp = st.selectbox('Select a Company from the below options :', ('Tata Consultancy Services - TCS', 'Reliance Industries - RELIANCE', 'Infosys - INFY'))
if comp == 'Tata Consultancy Services - TCS':
page = requests.get('https://groww.in/stocks/tata-consultancy-services-ltd')
soup=BeautifulSoup(page.content,'html.parser')
fund=soup.find_all('td',class_="ft785Value")
#Fundamental Values
pb = float(fund[4].text)
pe = float(fund[2].text)
de = float(fund[8].text)
div = float(fund[5].text.replace('%',''))
roe = float(fund[1].text.replace('%',''))
indpe = float(fund[6].text)
col1, col2, col3, col4 = st.columns(4)
x = round(stock_info.get_live_price("TCS.NS"),2)
y = round(tcsdaily['close'].iloc[-2],2)
tcs = get_stats('TCS.NS')['Value']
col1.metric(label="Market Price", value=x, delta = round(x-y,2))
col2.metric(label="52 Week High", value=tcs[3])
col3.metric(label="52 Week Low", value=tcs[4])
col4.metric(label="Return on Equity", value=tcs[34])
col1, col2, col3, col4 = st.columns(4)
col1.metric(label='P/B Ratio', value=pb)
col2.metric(label="P/E Ratio", value=pe)
col3.metric(label='Industry P/E', value=indpe)
col4.metric(label="Debt to Equity", value=de)
col1, col2, col3, col4 = st.columns(4)
col1.metric(label='Previous Close', value=y)
col2.metric(label="Book Value Per Share", value=tcs[48])
col3.metric(label='Earning Per Share', value=tcs[41])
col4.metric(label="Dividend Yield", value=tcs[22])
if comp == 'Reliance Industries - RELIANCE':
page = requests.get('https://groww.in/stocks/reliance-industries-ltd')
soup=BeautifulSoup(page.content,'html.parser')
fund=soup.find_all('td',class_="ft785Value")
#Fundamental Values
pb = float(fund[4].text)
pe = float(fund[2].text)
de = float(fund[8].text)
div = float(fund[5].text.replace('%',''))
roe = float(fund[1].text.replace('%',''))
indpe = float(fund[6].text)
col1, col2, col3, col4 = st.columns(4)
x = round(stock_info.get_live_price("RELIANCE.NS"),2)
y = round(reldaily['close'].iloc[-2],2)
rel = get_stats('RELIANCE.NS')['Value']
col1.metric(label="Market Price", value=x, delta = round(x-y,2))
col2.metric(label="52 Week High", value=rel[3])
col3.metric(label="52 Week Low", value=rel[4])
col4.metric(label="Return on Equity", value='8.21%')
col1, col2, col3, col4 = st.columns(4)
col1.metric(label='P/B Ratio', value=pb)
col2.metric(label="P/E Ratio", value=pe)
col3.metric(label='Industry P/E', value=indpe)
col4.metric(label="Debt to Equity", value=de)
col1, col2, col3, col4 = st.columns(4)
col1.metric(label='Previous Close', value=y)
col2.metric(label="Book Value Per Share", value=float(fund[7].text))
col3.metric(label='Earning Per Share', value=float(fund[3].text))
col4.metric(label="Dividend Yield", value=div)
if comp == 'Infosys - INFY':
page = requests.get('https://groww.in/stocks/infosys-ltd')
soup=BeautifulSoup(page.content,'html.parser')
fund=soup.find_all('td',class_="ft785Value")
#Fundamental Values
pb = float(fund[4].text)
pe = float(fund[2].text)
de = float(fund[8].text)
div = float(fund[5].text.replace('%',''))
roe = float(fund[1].text.replace('%',''))
indpe = float(fund[6].text)
col1, col2, col3, col4 = st.columns(4)
x = round(stock_info.get_live_price("INFY.NS"),2)
y = round(infdaily['close'].iloc[-2],2)
inf = get_stats('INFY.NS')['Value']
col1.metric(label="Market Price", value=x, delta = round(x-y,2))
col2.metric(label="52 Week High", value=inf[3])
col3.metric(label="52 Week Low", value=inf[4])
col4.metric(label="Return on Equity", value=inf[34])
col1, col2, col3, col4 = st.columns(4)
col1.metric(label='P/B Ratio', value=pb)
col2.metric(label="P/E Ratio", value=pe)
col3.metric(label='Industry P/E', value=indpe)
col4.metric(label="Debt to Equity", value=de)
col1, col2, col3, col4 = st.columns(4)
col1.metric(label='Previous Close', value=y)
col2.metric(label="Book Value Per Share", value=inf[48])
col3.metric(label='Earning Per Share', value=inf[41])
col4.metric(label="Dividend Yield", value=inf[22])
#Tab for Hist Data
st.write("#")
st.subheader('Historic data : ')
option1, option2, option3 = st.tabs(["Daily", "Monthly", "Yearly"])
cl1, cl2, cl3, cl4 = st.columns(4)
with cl1:
ag1 = st.checkbox('Close', value='True')
with cl2:
ag2 = st.checkbox('Open', value='True')
with cl3:
ag3 = st.checkbox('High', value='True')
with cl4:
ag4 = st.checkbox('Low', value='True')
with option1:
opt = st.radio("Select timelength :", ('All Time', '1 Week', '1 Month', '1 Year'))
st.write('<style>div.row-widget.stRadio > div{flex-direction:row;}</style>', unsafe_allow_html=True)
if comp == 'Tata Consultancy Services - TCS':
if opt=='All Time' :
fig = px.line(tcsdaily, y='close',markers=False, title='Tata Consultancy Services daily data of all time')
if opt=='1 Week' :
fig = px.line(tcsdaily.tail(5), y='close',markers=False, title='Tata Consultancy Services daily data of 1 week')
if opt=='1 Month' :
fig = px.line(tcsdaily.tail(20), y='close',markers=False, title='Tata Consultancy Services daily data of 1 month')
if opt=='1 Year' :
fig = px.line(tcsdaily.tail(251), y='close',markers=False, title='Tata Consultancy Services daily data of 1 year')
st.plotly_chart(fig, use_container_width=True)
fig = go.Figure()
if(ag1):
fig.add_trace(go.Scatter(x=tcsdaily.index,y=tcsdaily['close'], name='Closing'))
if(ag2):
fig.add_trace(go.Scatter(x=tcsdaily.index,y=tcsdaily['open'], name = 'Opening', line=dict(color='yellow')))
if(ag3):
fig.add_trace(go.Scatter(x=tcsdaily.index,y=tcsdaily['high'], name = 'High', line=dict(color='green')))
if(ag4):
fig.add_trace(go.Scatter(x=tcsdaily.index,y=tcsdaily['low'], name = 'Low', line=dict(color='red')))
fig.update_layout(xaxis_title='Date', yaxis_title='Price', title='Comparing other relevant parameters along close')
st.plotly_chart(fig, use_container_width=True, title='Comparing other relevant parameters')
if comp == 'Infosys - INFY':
if opt=='All Time' :
fig = px.line(infdaily, y='close',markers=False, title='Infosys daily data of all time')
if opt=='1 Week' :
fig = px.line(infdaily.tail(5), y='close',markers=False, title='Infosys daily data of 1 week')
if opt=='1 Month' :
fig = px.line(infdaily.tail(20), y='close',markers=False, title='Infosys daily data of 1 month')
if opt=='1 Year' :
fig = px.line(infdaily.tail(251), y='close',markers=False, title='Infosys daily data of 1 year')
st.plotly_chart(fig, use_container_width=True)
fig = go.Figure()
if(ag1):
fig.add_trace(go.Scatter(x=infdaily.index, y=infdaily['close'], name='Closing', line=dict(color='blue')))
if(ag2):
fig.add_trace(go.Scatter(x=infdaily.index,y=infdaily['open'], name = 'Opening', line=dict(color='yellow')))
if(ag3):
fig.add_trace(go.Scatter(x=infdaily.index,y=infdaily['high'], name = 'High', line=dict(color='green')))
if(ag4):
fig.add_trace(go.Scatter(x=infdaily.index,y=infdaily['low'], name = 'Low', line=dict(color='red')))
fig.update_layout(xaxis_title='Date', yaxis_title='Price', title='Comparing other relevant parameters')
st.plotly_chart(fig, use_container_width=True)
if comp == 'Reliance Industries - RELIANCE':
if opt=='All Time' :
fig = px.line(reldaily, y='close',markers=False, title='Reliance Industries daily data of all time')
if opt=='1 Week' :
fig = px.line(reldaily.tail(5), y='close',markers=False, title='Reliance Industries daily data of 1 week')
if opt=='1 Month' :
fig = px.line(reldaily.tail(20), y='close',markers=False, title='Reliance Industries daily data of 1 month')
if opt=='1 Year' :
fig = px.line(reldaily.tail(251), y='close',markers=False, title='Reliance Industries daily data of 1 year')
st.plotly_chart(fig, use_container_width=True)
fig = go.Figure()
if(ag1):
fig.add_trace(go.Scatter(x=reldaily.index, y=reldaily['close'], name='Closing', line=dict(color='blue')))
if(ag2):
fig.add_trace(go.Scatter(x=reldaily.index,y=reldaily['open'], name = 'Opening', line=dict(color='yellow')))
if(ag3):
fig.add_trace(go.Scatter(x=reldaily.index,y=reldaily['high'], name = 'High', line=dict(color='green')))
if(ag4):
fig.add_trace(go.Scatter(x=reldaily.index,y=reldaily['low'], name = 'Low', line=dict(color='red')))
fig.update_layout(xaxis_title='Date', yaxis_title='Price', title='Comparing other relevant parameters along close')
st.plotly_chart(fig, use_container_width=True)
with option2:
if comp == 'Tata Consultancy Services - TCS':
fig = px.line(tcsmonthly,y='close', markers=False, title='Tata Consultancy Services monthly data')
st.plotly_chart(fig, use_container_width=True)
fig = go.Figure()
if(ag1):
fig.add_trace(go.Scatter(x=tcsmonthly.index,y=tcsmonthly['close'], name='Closing', line=dict(color='blue')))
if(ag2):
fig.add_trace(go.Scatter(x=tcsmonthly.index,y=tcsmonthly['open'], name = 'Opening', line=dict(color='yellow')))
if(ag3):
fig.add_trace(go.Scatter(x=tcsmonthly.index,y=tcsmonthly['high'], name = 'High', line=dict(color='green')))
if(ag4):
fig.add_trace(go.Scatter(x=tcsmonthly.index,y=tcsmonthly['low'], name = 'Low', line=dict(color='red')))
fig.update_layout(xaxis_title='Month', yaxis_title='Price', title='Comparing other relevant parameters')
st.plotly_chart(fig, use_container_width=True)
if comp == 'Infosys - INFY':
fig = px.line(infmonthly, y='close',markers=False, title='Infosys monthly data')
st.plotly_chart(fig, use_container_width=True)
fig = go.Figure()
if(ag1):
fig.add_trace(go.Scatter(x=infmonthly.index, y=infmonthly['close'], name='Closing', line=dict(color='blue')))
if(ag2):
fig.add_trace(go.Scatter(x=infmonthly.index,y=infmonthly['open'], name = 'Opening', line=dict(color='yellow')))
if(ag3):
fig.add_trace(go.Scatter(x=infmonthly.index,y=infmonthly['high'], name = 'High', line=dict(color='green')))
if(ag4):
fig.add_trace(go.Scatter(y=infmonthly['low'], name = 'Low', line=dict(color='red')))
fig.update_layout(xaxis_title='Month', yaxis_title='Price', title='Comparing other relevant parameters')
st.plotly_chart(fig, use_container_width=True)
if comp == 'Reliance Industries - RELIANCE':
fig = px.line(relmonthly, y='close',markers=False, title='Reliance Industries monthly data')
st.plotly_chart(fig, use_container_width=True)
fig = go.Figure()
if(ag1):
fig.add_trace(go.Scatter(x=relmonthly.index,y=relmonthly['close'], name='Closing', line=dict(color='blue')))
if(ag2):
fig.add_trace(go.Scatter(x=relmonthly.index,y=relmonthly['open'], name = 'Opening', line=dict(color='yellow')))
if(ag3):
fig.add_trace(go.Scatter(x=relmonthly.index,y=relmonthly['high'], name = 'High', line=dict(color='green')))
if(ag4):
fig.add_trace(go.Scatter(x=relmonthly.index,y=relmonthly['low'], name = 'Low', line=dict(color='red')))
fig.update_layout(xaxis_title='Month', yaxis_title='Price', title='Comparing other relevant parameters')
st.plotly_chart(fig, use_container_width=True)
with option3:
if comp == 'Tata Consultancy Services - TCS':
fig = px.line(tcsyearly, x='Year', y='Close Price',markers=True, title='Tata Consultancy Services Yearly Data from 2004')
st.plotly_chart(fig, use_container_width=True)
fig = go.Figure()
if(ag1):
fig.add_trace(go.Scatter(x=tcsyearly['Year'], y=tcsyearly['Close Price'], name='Closing', line=dict(color='blue')))
if(ag2):
fig.add_trace(go.Scatter(x=tcsyearly['Year'], y=tcsyearly['Open Price'], name = 'Opening', line=dict(color='yellow')))
if(ag3):
fig.add_trace(go.Scatter(x=tcsyearly['Year'], y=tcsyearly['High Price'], name = 'High', line=dict(color='green')))
if(ag4):
fig.add_trace(go.Scatter(x=tcsyearly['Year'], y=tcsyearly['Low Price'], name = 'Low', line=dict(color='red')))
fig.update_layout(xaxis_title='Year', yaxis_title='Price', title='Comparing other relevant parameters along close price')
st.plotly_chart(fig, use_container_width=True, title='Comparing other relevant parameters')
if comp == 'Infosys - INFY':
fig = px.line(infyearly, x='Year', y='Close Price',markers=True, title='Infosys Yearly Data from 2004')
st.plotly_chart(fig, use_container_width=True)
fig = go.Figure()
if(ag1):
fig.add_trace(go.Scatter(x=infyearly['Year'], y=infyearly['Close Price'], name='Closing', line=dict(color='blue')))
if(ag2):
fig.add_trace(go.Scatter(x=infyearly['Year'], y=infyearly['Open Price'], name = 'Opening', line=dict(color='yellow')))
if(ag3):
fig.add_trace(go.Scatter(x=infyearly['Year'], y=infyearly['High Price'], name = 'High', line=dict(color='green')))
if(ag4):
fig.add_trace(go.Scatter(x=infyearly['Year'], y=infyearly['Low Price'], name = 'Low', line=dict(color='red')))
fig.update_layout(xaxis_title='Year', yaxis_title='Price', title='Comparing other relevant parameters')
st.plotly_chart(fig, use_container_width=True)
if comp == 'Reliance Industries - RELIANCE':
fig = px.line(relyearly, x='Year', y='Close Price',markers=True, title='Reliance Industries Yearly Data from 2004')
st.plotly_chart(fig, use_container_width=True)
fig = go.Figure()
if(ag1):
fig.add_trace(go.Scatter(x=relyearly['Year'], y=relyearly['Close Price'], name='Closing', line=dict(color='blue')))
if(ag2):
fig.add_trace(go.Scatter(x=relyearly['Year'], y=relyearly['Open Price'], name = 'Opening', line=dict(color='yellow')))
if(ag3):
fig.add_trace(go.Scatter(x=relyearly['Year'], y=relyearly['High Price'], name = 'High', line=dict(color='green')))
if(ag4):
fig.add_trace(go.Scatter(x=relyearly['Year'], y=relyearly['Low Price'], name = 'Low', line=dict(color='red')))
fig.update_layout(xaxis_title='Year', yaxis_title='Price', title='Comparing other relevant parameters')
st.plotly_chart(fig, use_container_width=True)
st.write("#")
#Riskometer
# Create object page
def get_info(url, x):
score = 0
page = requests.get(url)
soup=BeautifulSoup(page.content,'html.parser')
fund=soup.find_all('td',class_="ft785Value")
#Fundamental Values
pb = float(fund[4].text)
pe = float(fund[2].text)
de = float(fund[8].text)
div = float(fund[5].text.replace('%',''))
roe = float(fund[1].text.replace('%',''))
indpe = float(fund[6].text)
pat = soup.find_all('div',class_="shp76TextRight")
promo = float(pat[0].text.replace('%',''))
df = get_stats(x)
l_52 = float(df['Value'][4])
h_52 = float(df['Value'][3])
live = round(stock_info.get_live_price(x),2)
#1 - 52Week
if abs(live-h_52) <= abs(live-l_52):
score = score + 1
#2 - Rev
if x == 'TCS.NS':
score = score +1
#3 - PB
if pb<3:
score = score+1
elif pb>3:
score = score - 1
#4 - SHP
if promo>50:
score = score+1
elif promo<50:
score = score-1
#5 - Last 5 Year all 3 stocks made profit
score = score + 1
#6 - PE
if pe < 30:
score = score+1
elif pe > 100:
score = score - 1
#7 - DE
if de < 1:
score = score+1
elif de > 2:
score = score - 1
#8 - DivY
if div > 2:
score = score + 1
elif div == 'NULL' or div == 'NA':
score = score - 1
#9 - ROE
if roe > 25:
score = score + 1
elif roe < 5:
score = score - 1
#10 - Ind
if pe>indpe:
score = score-1
elif abs(pe-indpe)<(indpe*0.1):
score = score+1
return score
#Access URL object
if comp == 'Tata Consultancy Services - TCS':
ans = get_info('https://groww.in/stocks/tata-consultancy-services-ltd', 'TCS.NS')
if comp == 'Infosys - INFY':
ans = get_info('https://groww.in/stocks/infosys-ltd', 'INFY.NS')
if comp == 'Reliance Industries - RELIANCE':
ans = get_info('https://groww.in/stocks/reliance-industries-ltd', 'RELIANCE.NS')
score = 10 - ans
st.subheader('Riskometer')
if score >=9 :
progress_text = "Very High Risk"
my_bar = st.progress(0, text=progress_text)
score = 10 if score>10 else score
for percent_complete in range(score*10):
time.sleep(0.02)
my_bar.progress(percent_complete + 1, text=progress_text)
st.write(score*10,'%')
elif score <=1 :
progress_text = "Very Low Risk"
my_bar = st.progress(0, text=progress_text)
for percent_complete in range(score*10):
time.sleep(0.02)
my_bar.progress(percent_complete + 1, text=progress_text)
st.write(score*10,'%')
elif score <=3 and score>=2:
progress_text = "Low Risk"
my_bar = st.progress(40, text=progress_text)
for percent_complete in range(score*10):
time.sleep(0.02)
my_bar.progress(percent_complete + 1, text=progress_text)
st.write(score*10,'%')
elif score <=6 and score >=4 :
progress_text = "Moderate Risk"
my_bar = st.progress(60, text=progress_text)
for percent_complete in range(score*10):
time.sleep(0.02)
my_bar.progress(percent_complete + 1, text=progress_text)
st.write(score*10,'%')
elif score <=8 and score >=7 :
progress_text = "High Risk"
my_bar = st.progress(80, text=progress_text)
for percent_complete in range(score*10):
time.sleep(0.02)
my_bar.progress(percent_complete + 1, text=progress_text)
st.write(score*10,'%')
st.caption('Based on 10 fundamental aspects of an equity.')
#Predictions
st.write("#")
st.subheader('Predict : ')
if st.button('Click Here'):
if comp == 'Tata Consultancy Services - TCS':
x = round(stock_info.get_live_price("TCS.NS"),2)
tcsweekly = stock_info.get_data("TCS.NS", interval="1d")
tcsweekly=tcsweekly.dropna()
values = tcsweekly['close'].values
data_len = math.ceil(len(values)*0.8)
scaler = MinMaxScaler(feature_range=(0,1))
scaled_data = scaler.fit_transform(values.reshape(-1,1))
test_data = scaled_data[data_len-60: , : ]
x_test = []
for i in range(60, len(test_data)):
x_test.append(test_data[i-60:i, 0])
x_test = np.array(x_test)
x_test = np.reshape(x_test, (x_test.shape[0], x_test.shape[1], 1))
new = joblib.load('New/tcsmodelnew.pkl')
ans = new.predict(x_test)
ans1 = scaler.inverse_transform(ans)
val = np.around(ans1[-1][0], decimals=2)
st.metric(label="Prediction", value=val, delta = round(val-x,2))
if comp == 'Reliance Industries - RELIANCE':
x = round(stock_info.get_live_price("RELIANCE.NS"),2)
relweekly = stock_info.get_data("RELIANCE.NS", interval="1d")
relweekly=relweekly.dropna()
values = relweekly['close'].values
data_len = math.ceil(len(values)*0.8)
scaler = MinMaxScaler(feature_range=(0,1))
scaled_data = scaler.fit_transform(values.reshape(-1,1))
test_data = scaled_data[data_len-60: , : ]
x_test = []
for i in range(60, len(test_data)):
x_test.append(test_data[i-60:i, 0])
x_test = np.array(x_test)
x_test = np.reshape(x_test, (x_test.shape[0], x_test.shape[1], 1))
new = joblib.load('New/relmodelnew.pkl')
ans = new.predict(x_test)
ans1 = scaler.inverse_transform(ans)
val = np.around(ans1[-1][0], decimals=2)
st.metric(label="Prediction", value=val, delta = round(val-x,2))
if comp == 'Infosys - INFY':
x = round(stock_info.get_live_price("INFY.NS"),2)
infweekly = stock_info.get_data("INFY.NS", interval="1d")
infweekly=infweekly.dropna()
values = infweekly['close'].values
data_len = math.ceil(len(values)*0.8)
scaler = MinMaxScaler(feature_range=(0,1))
scaled_data = scaler.fit_transform(values.reshape(-1,1))
test_data = scaled_data[data_len-60: , : ]
x_test = []
for i in range(60, len(test_data)):
x_test.append(test_data[i-60:i, 0])
x_test = np.array(x_test)
x_test = np.reshape(x_test, (x_test.shape[0], x_test.shape[1], 1))
new = joblib.load('New/infymodelnew.pkl')
ans = new.predict(x_test)
ans1 = scaler.inverse_transform(ans)
val = np.around(ans1[-1][0], decimals=2)
st.metric(label="Prediction", value=val, delta = round(val-x,2))
#Support & Resistance
st.write("#")
st.subheader('Support and Resistance Indicators : ')
def supp_resis(x):
tcsdaily = stock_info.get_data(x, interval="1d")
new = tcsdaily.tail(15).head(1)
high = new['high']
low = new['low']
close = new['close']
pp = (high + low + close)/3
r1 = 2*pp - low
s1 = 2*pp - high
r2 = pp + (r1-s1)
s2 = pp - (r1-s1)
r3 = high + 2*(pp-low)
s3 = low - 2*(high - pp)
fig = px.line(tcsdaily.tail(20), y='close',markers=False, title=x+' daily data of 1 month')
fig.add_hline(y=r1[0], line_dash="dash", line_color="orange", annotation_text="1st Resistance")
fig.add_hline(y=s1[0], line_dash="dash", line_color="lime", annotation_text="1st Support")
fig.add_hline(y=r2[0], line_dash="dash", line_color="red", annotation_text="2nd Resistance")
fig.add_hline(y=s2[0], line_dash="dash", line_color="green", annotation_text="2nd Support")
fig.add_hline(y=r3[0], line_dash="dash", line_color="darkred", annotation_text="3rd Resistance")
fig.add_hline(y=s3[0], line_dash="dash", line_color="darkgreen", annotation_text="3rd Support")
st.plotly_chart(fig, use_container_width=True)
data = yf.download(
tickers = x,
period = "5d",
interval = "60m",
group_by = 'ticker',
auto_adjust = True,
prepost = False,
threads = True,
proxy = None)
fig = px.line(data, y='Close',markers=False, title=x+' hourly data of 5 days')
fig.add_hline(y=r1[0], line_dash="dash", line_color="orange", annotation_text="1st Resistance")
fig.add_hline(y=s1[0], line_dash="dash", line_color="lime", annotation_text="1st Support")
fig.add_hline(y=r2[0], line_dash="dash", line_color="red", annotation_text="2nd Resistance")
fig.add_hline(y=s2[0], line_dash="dash", line_color="green", annotation_text="2nd Support")
fig.add_hline(y=r3[0], line_dash="dash", line_color="darkred", annotation_text="3rd Resistance")
fig.add_hline(y=s3[0], line_dash="dash", line_color="darkgreen", annotation_text="3rd Support")
st.plotly_chart(fig, use_container_width=True)
if comp == 'Tata Consultancy Services - TCS':
supp_resis('TCS.NS')
if comp == 'Infosys - INFY':
supp_resis('INFY.NS')
if comp == 'Reliance Industries - RELIANCE':
supp_resis('RELIANCE.NS')
#Tab for Hist Data
st.write("#")
st.subheader('Financial data : ')
a1, a2, a3 = st.tabs(["Revenue & Profit", "Net Worth", "Shareholding Pattern"])
tier=['Promoters', 'Mutual Funds', 'Retail', 'Foreign Institutions','Others']
y=['2018', '2019', '2020', '2021', '2022']
with a1:
st.caption('All values in Crs')
if comp == 'Infosys - INFY':
chart_data = pd.DataFrame([[70522,16029], [82675,15404], [90791,16594], [100472,19351], [121641,22110]],
index=y, columns=["Revenue", "Profit"])
st.bar_chart(chart_data, height=350)
if comp == 'Tata Consultancy Services - TCS':
chart_data = pd.DataFrame([[123104,25826], [146463,31472], [156949,32430], [164177,32430], [191754,38327]],
index=y, columns=["Revenue", "Profit"])
st.bar_chart(chart_data, height=350)
if comp == 'Reliance Industries - RELIANCE':
chart_data = pd.DataFrame([[408265,36075], [583094,39588], [611645,39354], [486326,49128], [721634,60705]],
index=y, columns=["Revenue", "Profit"])
st.bar_chart(chart_data, height=350)
with a2:
st.caption('All values in Crs')
if comp == 'Infosys - INFY':
chart_data = pd.DataFrame([64923, 64948, 65450, 76351, 75350], index=y, columns=['Net Worth'])
st.bar_chart(chart_data, height=350)
if comp == 'Tata Consultancy Services - TCS':
chart_data = pd.DataFrame([85128, 89446, 84126, 86433, 89139], index=y, columns=['Net Worth'])
st.bar_chart(chart_data, height=350)
if comp == 'Reliance Industries - RELIANCE':
chart_data = pd.DataFrame([293506, 387112, 453331, 700172, 779485], index=y, columns=['Net Worth'])
st.bar_chart(chart_data, height=350)
with a3:
st.caption('As of March, 2023')
if comp == 'Infosys - INFY':
x = [15.11, 17.71, 18.22, 36.28, 12.68]
fig = px.pie(values=x, names=tier)
st.plotly_chart(fig, use_container_width=True, height=350)
if comp == 'Tata Consultancy Services - TCS':
x = [72.30, 3.31, 5.96, 12.94, 5.49]
fig = px.pie(values=x, names=tier)
st.plotly_chart(fig, use_container_width=True, height=350)
if comp == 'Reliance Industries - RELIANCE':
x = [50.49, 5.81, 11.64, 23.43, 8.63]
fig = px.pie(values=x, names=tier)
st.plotly_chart(fig, use_container_width=True, height=350)
st.write('Thanks ! We hope our webpage was useful.')
st.caption('The Web Application was made by Anand Soni and Deepak Rathore.')