Files
2022-07-16 16:51:27 +08:00

49 lines
1.5 KiB
Python

import pandas as pd
import yfinance as yf
import datetime
import numpy as np
def make_ticker_list(file_name):
tickers = open(file_name, 'r')
tickers = [i.strip() for i in list(tickers)]
return tickers
def make_price_files(tickers, start, end, fpath, printing):
for i in tickers:
history = yf.download(tickers=i,
start=start,
end=end,
progress=False,
)
history.to_csv(fpath + str(i) + '.csv')
if printing:
print(str(i))
def DataGetter(history = 500, fpath="../data/", printing=False, end_date=None,
ticker_file="test_tickers.txt"):
if end_date is None:
end_date = datetime.date.today()
else:
end_date = datetime.datetime.strptime(end_date, "%Y-%m-%d").date()
start_date = end_date - datetime.timedelta(history)
end_date = str(end_date)
tickers = make_ticker_list(fpath + ticker_file)
make_price_files(tickers, start_date, end_date, fpath, printing)
def GetStockHistory(ticker, end_date=None, history=500):
if end_date is None:
end_date = pd.Timestamp.now().floor('D') - pd.Timedelta('1d')
else:
end_date = pd.Timestamp(end_date)
data = yf.download(tickers=ticker, period='10y', progress=False)
end_idx = np.where(data.index == end_date)[0][0]
return data.iloc[end_idx-history:end_idx]