mirror of
https://github.com/wassname/Volt.git
synced 2026-08-21 11:11:37 +08:00
49 lines
1.5 KiB
Python
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]
|
|
|
|
|
|
|