csguyseo/runtime
0
1import requests2import numpy as np3import pandas as pd4from datetime import date5from datetime import timedelta6import streamlit as st7 8today = date.today() #date9yesterday = today - timedelta(days = 1)10daten = {}11for i in range(40):12 d = yesterday - timedelta(days=i)13 if d.weekday() < 5:14 s = d.strftime("%d%b%Y").upper()15 m = d.strftime("%b").upper()16 daten[s] = m17 #print(m)18url1 = []19for s,m in daten.items():20 url = "https://www1.nseindia.com/content/historical/EQUITIES/2022/{}/cm{}{}.zip".format(m,s,"bhav.csv")21 try:22 r = requests.get(url)23 r.status_code()24 except Exception:25 if(r.status_code == 200):26 pass27 url1.append(url)28#print(url1)29 30st.header("stock dashboard")31st.subheader("nse 7 days")32 33present_url = url1[0:7]34df = pd.DataFrame()35for k in present_url:36 dff = pd.read_csv(k)37 df = df.append(dff)38mask = df['SERIES'].values == 'EQ'39df = df.loc[mask]40df = df.drop(columns=["OPEN","HIGH","LOW","LAST","PREVCLOSE","TOTTRDVAL","TOTALTRADES","ISIN","SERIES","Unnamed: 13"])41p = df.groupby('SYMBOL')['CLOSE'].mean().rename('Present price MA')42dff = pd.DataFrame(p)43df_pri = dff.dropna()44df_price_present7 = df_pri.groupby('SYMBOL').first()45 46df = df[(df['TOTTRDQTY'] > 100000)]47v = df.groupby('SYMBOL')['TOTTRDQTY'].mean().rename('present Volume MA')48dff0 = pd.DataFrame(v)49df_vol = dff0.dropna()50df_volume_present7 = df_vol.groupby('SYMBOL').first()51 52 53past_url = url1[7:14]54df1 = pd.DataFrame()55for k in past_url:56 dff = pd.read_csv(k)57 df1 = df1.append(dff)58mask = df1['SERIES'].values == 'EQ'59df1 = df1.loc[mask]60df1 = df1.drop(columns=["OPEN","HIGH","LOW","LAST","PREVCLOSE","TOTTRDVAL","TOTALTRADES","ISIN","SERIES","Unnamed: 13"])61t = df1.groupby('SYMBOL')['CLOSE'].mean().rename('past price MA')62dff1 = pd.DataFrame(t)63df_pric = dff1.dropna()64df_price_past7 = df_pric.groupby('SYMBOL').first()65 66df1 = df1[(df1['TOTTRDQTY'] > 100000)]67s = df1.groupby('SYMBOL')['TOTTRDQTY'].mean().rename('past Volume MA')68df = pd.DataFrame(s)69df_volu = df.dropna()70df_volume_past7 = df_volu.groupby('SYMBOL').first()71 72 73df = pd.merge(df_price_past7,df_price_present7,on = 'SYMBOL')74df0 = pd.merge(df_volume_present7, df_volume_past7, on = 'SYMBOL')75 76volume_ma = (df0['present Volume MA'] - df0['past Volume MA']) / df0['past Volume MA'] *10077volume_ma = pd.DataFrame(volume_ma)78volume_ma.columns = ['volume7']79volume_MA = volume_ma[volume_ma.volume7 > 20]80 81close_MA = (df['Present price MA'] - df['past price MA']) / df['past price MA'] *10082close_MA = pd.DataFrame(close_MA)83close_MA.columns = ['close_price7']84close_MA = close_MA[close_MA.close_price7 > 20]85 86df_1 = pd.merge(volume_MA, close_MA, on='SYMBOL', how='inner')87df_188 89 90st.subheader("nse 13 days")91 92present_url = url1[0:13]93df2 = pd.DataFrame()94for k in present_url:95 dff = pd.read_csv(k)96 df2 = df2.append(dff)97mask = df2['SERIES'].values == 'EQ'98df2 = df2.loc[mask]99df2 = df2.drop(columns=["OPEN","HIGH","LOW","LAST","PREVCLOSE","TOTTRDVAL","TOTALTRADES","ISIN","SERIES","Unnamed: 13"])100p = df2.groupby('SYMBOL')['CLOSE'].mean().rename('Present price MA')101dff3 = pd.DataFrame(p)102df_pri13 = dff3.dropna()103df_price_present13 = df_pri13.groupby('SYMBOL').first()104 105df2 = df2[(df2['TOTTRDQTY'] > 100000)]106v = df2.groupby('SYMBOL')['TOTTRDQTY'].mean().rename('present Volume MA')107dff4 = pd.DataFrame(v)108df_vol13 = dff4.dropna()109df_volume_present13 = df_vol13.groupby('SYMBOL').first()110 111 112past_url = url1[13:26]113df3 = pd.DataFrame()114for k in past_url:115 dff = pd.read_csv(k)116 df3 = df3.append(dff)117mask = df3['SERIES'].values == 'EQ'118df3 = df3.loc[mask]119df3 = df3.drop(columns=["OPEN","HIGH","LOW","LAST","PREVCLOSE","TOTTRDVAL","TOTALTRADES","ISIN","SERIES","Unnamed: 13"])120t = df3.groupby('SYMBOL')['CLOSE'].mean().rename('past price MA')121dff5 = pd.DataFrame(t)122df_pric13 = dff5.dropna()123df_price_past13 = df_pric13.groupby('SYMBOL').first()124 125df3 = df3[(df3['TOTTRDQTY'] > 100000)]126s = df3.groupby('SYMBOL')['TOTTRDQTY'].mean().rename('past Volume MA')127dff6 = pd.DataFrame(s)128df_volu13 = dff6.dropna()129df_volume_past13 = df_volu13.groupby('SYMBOL').first()130 131 132df13p = pd.merge(df_price_past13,df_price_present13,on = 'SYMBOL')133df13v = pd.merge(df_volume_present13, df_volume_past13, on = 'SYMBOL')134 135volume_ma = (df13v['present Volume MA'] - df13v['past Volume MA']) / df13v['past Volume MA'] *100136volume_ma = pd.DataFrame(volume_ma)137volume_ma.columns = ['volume13']138volume_MA = volume_ma[volume_ma.volume13 > 20]139 140close_MA = (df13p['Present price MA'] - df13p['past price MA']) / df13p['past price MA'] *100141close_MA = pd.DataFrame(close_MA)142close_MA.columns = ['close_price13']143close_MA = close_MA[close_MA.close_price13 > 20]144 145df_2 = pd.merge(volume_MA, close_MA, on='SYMBOL', how='inner')146df_2147 148st.subheader("BSE 7 days")149 150today = date.today()151yesterday = today - timedelta(days = 1)152daten = []153for i in range(40):154 d = yesterday - timedelta(days=i)155 if d.weekday() < 5:156 s = d.strftime("%d%m%y")157 daten.append(s)158#print(daten)159url2 = []160for i in daten:161 url = "https://www.bseindia.com/download/BhavCopy/Equity/EQ{}{}{}.ZIP".format(i,"_","CSV")162 hdr = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'}163 r = requests.get(url, headers= hdr)164 if(r.status_code == 200):165 pass166 url2.append(url)167#print(url2)168 169 170present_link = url2[0:7]171df = pd.DataFrame()172for k in present_link:173 hdr = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'}174 dff = pd.read_csv(k,storage_options=hdr)175 df = df.append(dff)176df = df.loc[df['SC_GROUP'].isin(['X ','XT'])]177df = df.drop(columns=["SC_CODE","SC_TYPE","OPEN","LAST","PREVCLOSE","HIGH","LOW","NO_TRADES","NET_TURNOV","TDCLOINDI","SC_GROUP"])178a = df.groupby('SC_NAME')['CLOSE'].mean().rename('present close MA')179df_price_present7p = pd.DataFrame(a)180 181df = df[(df['NO_OF_SHRS'] > 75000)]182b = df.groupby('SC_NAME')['NO_OF_SHRS'].mean().rename('Present volume MA')183df_volume_present7v = pd.DataFrame(b)184 185 186 187past_link = url2[7:14]188df01 = pd.DataFrame()189for k in past_link:190 hdr = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'}191 dff = pd.read_csv(k,storage_options=hdr)192 df01 = df01.append(dff)193df1 = df01.loc[df01['SC_GROUP'].isin(['X ','XT'])]194df1 = df1.drop(columns=["SC_CODE","SC_TYPE","OPEN","LAST","PREVCLOSE","HIGH","LOW","NO_TRADES","NET_TURNOV","TDCLOINDI","SC_GROUP"])195c = df1.groupby('SC_NAME')['CLOSE'].mean().rename('past close MA')196df_price_past7p = pd.DataFrame(c)197 198df1 = df1[(df1['NO_OF_SHRS'] > 75000)]199d = df1.groupby('SC_NAME')['NO_OF_SHRS'].mean().rename('past volume MA')200df_volume_past7v = pd.DataFrame(d)201 202df00 = pd.merge(df_price_present7p,df_price_past7p,on = 'SC_NAME')203df01 = pd.merge(df_volume_present7v,df_volume_past7v,on = 'SC_NAME')204 205volume_MA = (df01['Present volume MA'] - df01['past volume MA']) / df01['past volume MA'] *100206volume_MA = pd.DataFrame(volume_MA)207volume_MA.columns = ['volume7']208volume_MA = volume_MA[volume_MA.volume7 > 20]209 210close_MA = (df00['present close MA'] - df00['past close MA']) / df00['past close MA'] *100211close_MA = pd.DataFrame(close_MA)212close_MA.columns = ['close_price7']213close_MA = close_MA[close_MA.close_price7 > 20]214 215df_3 = pd.merge(volume_MA, close_MA, on='SC_NAME', how='inner')216df_3