from fastbook import *
import yahoofinance as yf
import plotly.express as px
import os
profile_train = yf.HistoricalPrices('SPY', "2000-01-01", "2016-01-01", frequency="1d")
profile_valid = yf.HistoricalPrices('SPY', "2016-01-01", "2020-01-01", frequency="1d")
df_train = profile_train.to_dfs()["Historical Prices"]
df_valid = profile_valid.to_dfs()["Historical Prices"]
df_train.shape
(4025, 6)
df_valid.shape
(1006, 6)
if not os.path.exists("data-v2"):
os.mkdir("data-v2")
if not os.path.exists("data-v2/train"):
os.mkdir("data-v2/train")
if not os.path.exists("data-v2/valid"):
os.mkdir("data-v2/valid")
if not os.path.exists("data-v2/train/buy"):
os.mkdir("data-v2/train/buy")
if not os.path.exists("data-v2/train/sell"):
os.mkdir("data-v2/train/sell")
if not os.path.exists("data-v2/valid/buy"):
os.mkdir("data-v2/valid/buy")
if not os.path.exists("data-v2/valid/sell"):
os.mkdir("data-v2/valid/sell")
# train
past_five = []
for index, row in df_train.iterrows():
if len(past_five) == 5:
to_graph = [val - past_five[0] for val in past_five]
fig = px.line(to_graph)
fig.update_layout(showlegend=False)
ret = row["Adj Close"] > past_five[-1]
if ret:
fig.write_image(f"data-v2/train/buy/{index}.png")
else:
fig.write_image(f"data-v2/train/sell/{index}.png")
del past_five[0]
past_five.append(row["Adj Close"])
# valid
past_five = []
for index, row in df_valid.iterrows():
if len(past_five) == 5:
to_graph = [val - past_five[0] for val in past_five]
fig = px.line(to_graph)
fig.update_layout(showlegend=False)
ret = row["Adj Close"] > past_five[-1]
if ret:
fig.write_image(f"data-v2/valid/buy/{index}.png")
else:
fig.write_image(f"data-v2/valid/sell/{index}.png")
del past_five[0]
past_five.append(row["Adj Close"])