Как выполнить массовую загрузку данных EOD за последние 100 дней для всех акций Quandl с Python - PullRequest
0 голосов
/ 12 февраля 2019

Используя API Quandl и библиотеку Quandl Python, я пытаюсь выполнить массовую загрузку данных EOD за последние 100 дней.

При массовой загрузке этот вызов используется для загрузки всех данных EOD для всехтикеры за последний собранный день.Удаление параметра download_type = частичное приведет к загрузке всех исторических данных EOD: https://www.quandl.com/api/v3/databases/EOD/data?download_type=partial

Этот вызов загрузит значение EOD за последние n дней для одного тикера: https://www.quandl.com/api/v3/datasets/EOD/AAPL?start_date=2019-02-07

Возможно ли этообъединить их и загрузить данные EOD за последние n дней сразу по всем акциям?На данный момент, похоже, единственные варианты:

  1. Выполнение отдельных вызовов API для всех 8 000 тикеров
  2. Загрузка всех исторических данных для каждой акции

1 Ответ

0 голосов
/ 15 февраля 2019

Quandle больше не работает бесплатно.Раньше было в прошлом.Если вы хотите, вы можете использовать IEX.проверьте приведенный ниже пример, который даст вам ежедневный доход:

from datetime import datetime
from iexfinance.stocks import get_historical_data
from pandas_datareader import data
import pandas as pd
start =  '2014-01-01'
end = datetime.today().utcnow()

datasets_original_test = ['AAPL', 'MSFT','NFLX','FB','GS','TSLA','BAC','TWTR','COF','TOL','EA','PFE','MS','C','SKX','GLD','SPY','EEM','XLF','GDX','EWZ','QQQ','FXI','XOP','EFA','VXXB','HYG','XLI','XLU','JNK','USO','IWM','XLP','XLE','EWJ','XLK','KRE','XLV','VNQ','MBB','OIH','FEZ','RSX','EWG','SMH','TLT','IBB','SLV','IYR','XRT','XLB','EMB','AGG','INDA','EWW','DBO','SPLV','KBE','VGK','XLY','EWH','EWT','DIA','IVV','XLRE','EPI','IJR','IEF']
dataset_names_test = ['AAPL', 'MSFT','NFLX','FB','GS','TSLA','BAC','TWTR','COF','TOL','EA','PFE','MS','C','SKX','GLD','SPY','EEM','XLF','GDX','EWZ','QQQ','FXI','XOP','EFA','VXXB','HYG','XLI','XLU','JNK','USO','IWM','XLP','XLE','EWJ','XLK','KRE','XLV','VNQ','MBB','OIH','FEZ','RSX','EWG','SMH','TLT','IBB','SLV','IYR','XRT','XLB','EMB','AGG','INDA','EWW','DBO','SPLV','KBE','VGK','XLY','EWH','EWT','DIA','IVV','XLRE','EPI','IJR','IEF']

datasets_test = []
for d in datasets_original_test:
    data_original = data.DataReader(d, 'iex', start, end)
    data_original.index = pd.to_datetime(data_original.index, format='%Y/%m/%d')
    data_ch = data_original['close'].pct_change()
    datasets_test.append(data_ch)
df_returns = pd.concat(datasets_test, axis=1, join_axes=[datasets_test[0].index])
df_returns.columns = dataset_names_test
...