Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import datetime
- import matplotlib.pylab as pl
- import numpy as np
- from scipy import stats
- def load_data(path_in):
- f = open(path_in)
- lines = f.readlines()
- f.close()
- date_list = []
- open_list = []
- high_list = []
- low_list = []
- close_list = []
- volume_list = []
- for line in lines[1:]:
- date, open_data, high, low, close, volume, dividends, splits = line.split(',')
- date_list.append(date)
- open_list.append(float(open_data))
- high_list.append(float(high))
- low_list.append(float(low))
- close_list.append(float(close))
- volume_list.append(float(volume))
- return [date_list, open_list, high_list, low_list, close_list, volume_list]
- def get_mean_gap_p(high, low):
- gap_p = []
- try:
- count_gap = 0
- count_not_gap = 0
- for i in range(high.shape[0])[:-1]:
- gap_found = False
- if high[i+1] < low[i] and low[i+1] < low[i]:
- count_gap += 1
- gap_found = True
- if high[i+1] > high[i] and low[i+1] > high[i]:
- count_gap += 1
- gap_found = True
- if not gap_found:
- count_not_gap += 1
- if count_gap+count_not_gap > 0:
- gap_p.append(count_gap/(count_gap+count_not_gap)*100)
- except:
- pass
- return np.mean(gap_p)
- f, (ax1) = pl.subplots(1, 1)
- from os import listdir
- from os.path import isfile, join
- onlyfiles = [f for f in listdir('./data') if isfile(join('./data', f))]
- res = []
- for file in onlyfiles:
- name = file.split('_')[0]
- shares_out = float(file.split('_')[1].split('.')[0])
- path = './data/' + file
- try:
- date_list, open_list, high_list, low_list, close_list, volume_list = load_data(path)
- #shares_out = get_ticker_sharesOutstanding(name)
- open_mean = np.nanmean(open_list)
- market_cap = np.array(open_list) * shares_out
- market_cap_mean = np.nanmean(market_cap)
- candle_p = (np.array(close_list) - np.array(open_list))/np.array(open_list)
- candle_p_mean = np.nanmean(candle_p)
- candle_p_std = np.std(candle_p)
- candle_std = np.std(np.array(high_list) - np.array(low_list))
- volume_mean = np.nanmean(volume_list)
- volume_std = np.std(volume_list)
- volume_mean_dollar = np.nanmean(np.array(volume_list) * np.array(open_list))
- volume_std_dollar = np.nanmean(np.array(volume_list) * np.array(open_list))
- gap_p = get_mean_gap_p(np.array(high_list), np.array(low_list))
- print(name, shares_out, market_cap_mean, open_mean, candle_std, candle_p_mean, candle_p_std, volume_mean, volume_std)
- res.append([name, shares_out, market_cap_mean, open_mean, candle_std, candle_p_mean, candle_p_std, volume_mean, volume_std, volume_mean_dollar, volume_std_dollar, gap_p])
- except Exception as err:
- print(err)
- import csv
- with open('./GME_Russel.csv', 'w', encoding='UTF8', newline='') as f:
- writer = csv.writer(f)
- writer.writerow(['name', 'shares_out', 'market_cap_mean', 'open_mean', 'candle_std', 'candle_p_mean', 'candle_p_std', 'volume_mean', 'volume_std', 'volume_mean_dollar', 'volume_std_dollar', 'gap_p'])
- for row in res:
- writer.writerow(row)
Advertisement
Add Comment
Please, Sign In to add comment