Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
1041 views
1
import utility
2
import numpy as np
3
import matplotlib.pyplot as plt
4
from sklearn import model_selection
5
6
7
def runner(model_fit=None, close_prices_vecs=None, stock_name_time_stamps=None, rsi_vecs=None, mfi_vecs=None,
8
ema_vecs=None, so_vecs=None, macd_vecs=None, sl_vecs=None, scaler=None):
9
10
for i in range(0, len(close_prices_vecs)):
11
# set data for svm
12
close_len = len(close_prices_vecs[i])
13
date_len = len(stock_name_time_stamps[i][1])
14
rsi_len = len(rsi_vecs[i])
15
mfi_len = len(mfi_vecs[i])
16
ema_len = len(ema_vecs[i])
17
so_len = len(so_vecs[i])
18
macd_len = len(macd_vecs[i])
19
sl_len = len(sl_vecs[i])
20
shared_data_len = min(close_len, rsi_len, mfi_len, ema_len, so_len, macd_len, sl_len)
21
# define matrix X for SVM
22
x = np.column_stack((rsi_vecs[i][rsi_len - shared_data_len:], mfi_vecs[i][mfi_len - shared_data_len:],
23
ema_vecs[i][ema_len - shared_data_len:], so_vecs[i][so_len - shared_data_len:],
24
macd_vecs[i][macd_len - shared_data_len:], sl_vecs[i][sl_len - shared_data_len:]))
25
# define y for SVM
26
y = close_prices_vecs[i][close_len - shared_data_len:]
27
print("Analysis for: " + stock_name_time_stamps[i][0])
28
x_len = len(x)
29
y_len = len(y)
30
x_train, x_test, y_train, y_test = x[:int(x_len*0.75)], x[int(x_len*0.75):], y[:int(y_len*0.75)], y[int(y_len*0.75):]
31
x_train = scaler.fit_transform(x_train)
32
x_test = scaler.fit_transform(x_test)
33
y_pred = utility.test_regression(x_train, y_train, x_test, y_test, model_fit)
34
y_test_len, y_pred_len = len(y_test), len(y_pred)
35
shared_data_len = min(date_len, y_test_len, y_pred_len)
36
plt.figure(figsize=(20, 5))
37
plt.title(stock_name_time_stamps[i][0])
38
plt.xlabel("date")
39
plt.ylabel("close_price")
40
plt.plot(stock_name_time_stamps[i][1][date_len - shared_data_len:], y_test, 'ro')
41
plt.plot(stock_name_time_stamps[i][1][date_len - shared_data_len:], y_pred)
42
plt.show()
43
print("Done for: " + stock_name_time_stamps[i][0])
44
print("====================================================================")
45
print("All analysis done")
46
print()
47
48
49
if __name__ == '__main__':
50
runner()
51
52