Я думаю, что вам лучше всего получить ключ API от quandl.com.Это бесплатно и дает вам доступ ко всем видам исторических данных временных рядов.Раньше был доступ к Yahoo Finance и Google Finance, но я думаю, что оба обесценились намного больше чем 1 год назад.
Вот небольшой пример кода, который определенно может вам помочь.
import quandl
quandl.ApiConfig.api_key = 'your_api_key_goes_here'
# get the table for daily stock prices and,
# filter the table for selected tickers, columns within a time range
# set paginate to True because Quandl limits tables API to 10,000 rows per call
data = quandl.get_table('WIKI/PRICES', ticker = ['AAPL', 'MSFT', 'WMT'],
qopts = { 'columns': ['ticker', 'date', 'adj_close'] },
date = { 'gte': '2015-12-31', 'lte': '2016-12-31' },
paginate=True)
print(data)
Чтобы получить информацию о том, как получить необходимые данные, перейдите по ссылке ниже.
https://blog.quandl.com/api-for-stock-data
Также, пожалуйста, ознакомьтесь с этим для получения более подробной информации об использовании Python для количественного финансирования.
https://financetrain.com/best-python-librariespackages-finance-financial-data-scientists/
Наконец, и я прошу прощения, если это немного не по теме, но я думаю, что это может быть полезно на каком-то уровне ... рассмотрим что-то вроде этого ...
import requests
from bs4 import BeautifulSoup
base_url = 'http://finviz.com/screener.ashx?v=152&s=ta_topgainers&o=price&c=0,1,2,3,4,5,6,7,25,63,64,65,66,67'
html = requests.get(base_url)
soup = BeautifulSoup(html.content, "html.parser")
main_div = soup.find('div', attrs = {'id':'screener-content'})
light_rows = main_div.find_all('tr', class_="table-light-row-cp")
dark_rows = main_div.find_all('tr', class_="table-dark-row-cp")
data = []
for rows_set in (light_rows, dark_rows):
for row in rows_set:
row_data = []
for cell in row.find_all('td'):
val = cell.a.get_text()
row_data.append(val)
data.append(row_data)
# sort rows to maintain original order
data.sort(key=lambda x: int(x[0]))
import pandas
pandas.DataFrame(data).to_csv("AAA.csv", header=False)
Это не данные временного ряда, а скорее фундаментальные данные.Я не провел много времени на этом сайте, но, может быть, вы можете покопаться и найти там что-то, что соответствует вашим потребностям.Просто мысль.