-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAutomatization.py
More file actions
74 lines (63 loc) · 2.35 KB
/
Automatization.py
File metadata and controls
74 lines (63 loc) · 2.35 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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import pandas as pd
import pickle
from datetime import datetime, timedelta
from pandas_datareader import data
stocks = ['ccl','ko','t','aapl','txn','msft','amzn','azo', 'nvr']
columns_data = ['growth_rate', 'growth_jobs', 'High', 'Low', 'Open', 'Adj Close', 'quarter', 'Year', 'month_y', 'day']
#Open models for each stock.
xgb_model = []
for i in stocks:
xgb_model.append(pickle.load(open(f'./model_pickle/model_{i}.p','rb')))
#Get todays date
def today_date():
date = datetime.today()
if date.weekday() == 6:
date = date.today() - 2*timedelta(days=1)
elif date.weekday() == 0:
date = date.today() - 3 * timedelta(days=1)
else:
date = datetime.today()- timedelta(days=1)
date_list = [1]
date_list.append(date.year)
date_list.append(date.month)
date_list.append(date.day)
return date_list
#Get todays values
def last_values(ticker):
date = datetime.today()
if date.weekday() == 6:
date = date.today().date() - timedelta(days=2)
elif date.weekday() ==0:
date = date.today().date() - timedelta(days=3)
else:
date = datetime.today().date()- timedelta(days=1)
key_values = []
last_value = data.DataReader(ticker, start = date ,data_source='yahoo').values[0]
key_values.append(last_value[0])
key_values.append(last_value[1])
key_values.append(last_value[2])
key_values.append(last_value[-1])
return key_values,last_value[3]
#Get todays dataframe
def stock_model(ticker):
gdp_labor = [1.500426, 2.134474]
stock_values = []
stock_values.extend(gdp_labor)
stock_values.extend(last_values(ticker)[0])
stock_values.extend(today_date())
return stock_values
#Gets prices for tomorrow
yesterday_list = []
variation_list = []
predicted_list = []
for i in range(len(stocks)):
model_values = pd.DataFrame([stock_model(stocks[i])], columns = columns_data)
yesterday_price= round(last_values(stocks[i])[1],2)
predicted_price = round(xgb_model[i].predict(model_values)[0],2)
variation_price = round((predicted_price-yesterday_price)/yesterday_price*100,2)
predicted_list.append(predicted_price)
yesterday_list.append(yesterday_price)
variation_list.append(variation_price)
#print(stocks[i] + ' - ' + str(predicted_price))
#print('Yesterday price closed at '+ str(yesterday_price))
#print(str(variation_price)+'%')