CoolFace
Apppublic

csguyseo/runtime

sourceHugging Faceupdated 4y agoView on Hugging Face
0likes
app.py216 linesDownload Raw Back to root
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