-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathstdev_ema.py
More file actions
39 lines (35 loc) · 1.49 KB
/
Copy pathstdev_ema.py
File metadata and controls
39 lines (35 loc) · 1.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import csv
import pandas as pd
import statistics
import math
def get_ticker_list():
with open(r"C:\Users\Hp\Desktop\New folder\nifty500_list.csv", 'r') as f:
lines = csv.reader(f)
for line in lines:
if "Symbol" not in line:
ticker_list.append(line[2])
print(ticker_list)
ticker_list = []
def main():
stdev_list = []
get_ticker_list()
for ticker in ticker_list:
if '&' in ticker:
ticker = ticker[:ticker.index('&')] + "%26" + ticker[ticker.index('&') + 1:]
print(ticker)
df = pd.read_csv(r"C:/Users/Hp/Desktop/New folder/Top500_stock/Original data/" + ticker + ".csv")
ndays = 9
if len(df.columns) >= 6 and len(df.index) >= ndays:
SMA = pd.Series(round((df['Close']).rolling(window=ndays).mean(), 2), name='SMA')
df = df.join(SMA)
SMA_list = (df['SMA']).tolist()
SD = round(statistics.stdev(SMA_list[ndays-1:]), 2)
stdev_list.append(SD)
EMA = pd.Series(round((df['Close']).ewm(min_periods=ndays, span=15).mean(), 2), name="EMA")
df = df.join(EMA)
df.to_csv(r"C:/Users/Hp/Desktop/New folder/Top500_stock/With SMA and EMA/" + ticker + ".csv")
else:
stdev_list.append(0)
sdf = pd.DataFrame(stdev_list, index=pd.Series(ticker_list, name="Ticker"), columns=["Standard Deviation"])
sdf.to_csv(r"C:/Users/Hp/Desktop/New folder/st_dev.csv")
main()