-
Notifications
You must be signed in to change notification settings - Fork 0
/
utils
118 lines (104 loc) · 2.63 KB
/
utils
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
"""
@authors: Lorenzo, Christopher
"""
import json
# FOR BACKTESTING IN 2015 HIDE COMPANIES: HLT, FCAU, QSR, BAH
DATA_DIR = "data"
companies = [
"AAPL",
"ADP",
"CMG",
#"HLT",
"LOW",
"DIS",
"NFLX",
"MSFT",
"GE",
#"FCAU",
"LULU",
"GS",
"CVS",
"MSI",
"SBUX",
"QSR",
"PNC",
"WFC",
"T",
"TMUS",
"AXP",
"KO",
"COP",
"PKX",
"PG",
"SNY",
"USB",
"WMT",
"MCO",
"GOOGL",
"CRM",
"COST",
"CSCO",
"ADBE",
"AFL",
"KMX",
"INTU",
#"BAH",
"NS",
"DVN",
"NTP",
"PFG",
"UMPQ",
"MAT",
"TXN",
]
#FUNCTIONS THAT GRAB ALL THE DATA WE NEED FROM THE COMPANY PROFILES, CASH FLOW STATEMENTS, BALANCE SHEET, AND INCOME STATEMENT
def read_company_profile(company):
file = open(f"{DATA_DIR}/company-profile-{company}.txt")
data = json.load(file)
price = float(data["profile"]["price"])
file.close()
return {"price": price}
def read_cash_flow(company, year_start, year_end):
file = open(f"{DATA_DIR}/cash-flow-{company}.txt")
data = json.load(file)
cash_flow = {}
for ent in data["financials"]:
y = int(ent["date"][0:4])
if year_start < y <= year_end:
cash_flow[y] = {
"dna": float(ent["Depreciation & Amortization"]),
"capex": float(ent["Capital Expenditure"]),
}
file.close()
return cash_flow
def read_balance_sheet(company, year_start, year_end):
file = open(f"{DATA_DIR}/balance-sheet-{company}.txt")
data = json.load(file)
balance_sheet = {}
for ent in data["financials"]:
y = int(ent["date"][0:4])
if year_start < y <= year_end:
balance_sheet[y] = {
"cash": float(ent["Cash and cash equivalents"]),
"ar": float(ent["Receivables"]),
"inv": float(ent["Inventories"]),
"ap": float(ent["Payables"]),
"debt": float(ent["Total debt"]),
}
file.close()
return balance_sheet
def read_income_statement(company, year_start, year_end):
file = open(f"{DATA_DIR}/income-statement-{company}.txt")
data = json.load(file)
income_statement = {}
for ent in data["financials"]:
y = int(ent["date"][0:4])
if year_start < y <= year_end:
income_statement[y] = {
"rv": float(ent["Revenue"]),
"rvgr": float(ent["Revenue Growth"]),
"ebit%": float(ent["EBIT Margin"]),
"shares": float(ent["Weighted Average Shs Out"])
}
file.close()
return income_statement