Guest User

Untitled

a guest
Apr 14th, 2022
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.32 KB | None | 0 0
  1. import datetime
  2. import matplotlib.pylab as pl
  3. import numpy as np
  4. from scipy import stats
  5.  
  6. def load_data(path_in):
  7.  
  8. f = open(path_in)
  9. lines = f.readlines()
  10. f.close()
  11.  
  12. date_list = []
  13. open_list = []
  14. high_list = []
  15. low_list = []
  16. close_list = []
  17. volume_list = []
  18.  
  19. for line in lines[1:]:
  20. date, open_data, high, low, close, volume, dividends, splits = line.split(',')
  21.  
  22. date_list.append(date)
  23. open_list.append(float(open_data))
  24. high_list.append(float(high))
  25. low_list.append(float(low))
  26. close_list.append(float(close))
  27. volume_list.append(float(volume))
  28.  
  29. return [date_list, open_list, high_list, low_list, close_list, volume_list]
  30.  
  31.  
  32. def get_mean_gap_p(high, low):
  33.  
  34. gap_p = []
  35.  
  36. try:
  37.  
  38. count_gap = 0
  39. count_not_gap = 0
  40. for i in range(high.shape[0])[:-1]:
  41.  
  42. gap_found = False
  43. if high[i+1] < low[i] and low[i+1] < low[i]:
  44.  
  45. count_gap += 1
  46. gap_found = True
  47.  
  48. if high[i+1] > high[i] and low[i+1] > high[i]:
  49.  
  50. count_gap += 1
  51. gap_found = True
  52.  
  53. if not gap_found:
  54.  
  55. count_not_gap += 1
  56.  
  57. if count_gap+count_not_gap > 0:
  58. gap_p.append(count_gap/(count_gap+count_not_gap)*100)
  59.  
  60. except:
  61. pass
  62.  
  63. return np.mean(gap_p)
  64.  
  65. f, (ax1) = pl.subplots(1, 1)
  66.  
  67. from os import listdir
  68. from os.path import isfile, join
  69. onlyfiles = [f for f in listdir('./data') if isfile(join('./data', f))]
  70. res = []
  71. for file in onlyfiles:
  72.  
  73. name = file.split('_')[0]
  74. shares_out = float(file.split('_')[1].split('.')[0])
  75. path = './data/' + file
  76. try:
  77.  
  78. date_list, open_list, high_list, low_list, close_list, volume_list = load_data(path)
  79.  
  80. #shares_out = get_ticker_sharesOutstanding(name)
  81.  
  82. open_mean = np.nanmean(open_list)
  83.  
  84. market_cap = np.array(open_list) * shares_out
  85. market_cap_mean = np.nanmean(market_cap)
  86.  
  87. candle_p = (np.array(close_list) - np.array(open_list))/np.array(open_list)
  88. candle_p_mean = np.nanmean(candle_p)
  89. candle_p_std = np.std(candle_p)
  90. candle_std = np.std(np.array(high_list) - np.array(low_list))
  91.  
  92. volume_mean = np.nanmean(volume_list)
  93. volume_std = np.std(volume_list)
  94.  
  95. volume_mean_dollar = np.nanmean(np.array(volume_list) * np.array(open_list))
  96. volume_std_dollar = np.nanmean(np.array(volume_list) * np.array(open_list))
  97.  
  98. gap_p = get_mean_gap_p(np.array(high_list), np.array(low_list))
  99.  
  100. print(name, shares_out, market_cap_mean, open_mean, candle_std, candle_p_mean, candle_p_std, volume_mean, volume_std)
  101. 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])
  102.  
  103.  
  104. except Exception as err:
  105. print(err)
  106.  
  107.  
  108.  
  109. import csv
  110.  
  111. with open('./GME_Russel.csv', 'w', encoding='UTF8', newline='') as f:
  112.  
  113. writer = csv.writer(f)
  114. 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'])
  115.  
  116. for row in res:
  117. writer.writerow(row)
Advertisement
Add Comment
Please, Sign In to add comment