【问题标题】:How do I bulk download the past 100 days worth of EOD data for all stocks on Quandl with Python如何使用 Python 批量下载 Quandl 上所有股票过去 100 天的 EOD 数据
【发布时间】:2019-02-11 23:22:38
【问题描述】:

使用 Quandl API 和 Quandl Python 库,我尝试批量下载过去 100 天的 EOD 数据。

批量下载使用此调用下载最后收集日期的所有代码的所有 EOD 数据。删除 download_type=partial 参数将下载所有历史 EOD 数据: https://www.quandl.com/api/v3/databases/EOD/data?download_type=partial

此调用将为单个代码下载最后 n 天的 EOD: https://www.quandl.com/api/v3/datasets/EOD/AAPL?start_date=2019-02-07

是否可以将这些组合在一起并一次下载所有股票的最后 n 天的 EOD 数据? 在这一点上,我唯一的选择似乎是:

  1. 为所有 8,000 个代码进行单独的 API 调用
  2. 下载每只股票的所有历史数据

【问题讨论】:

  • 您有 API 文档的链接吗?没有帐户的人似乎无法访问此 API,因此无法为您提供帮助。

标签: python api stock algorithmic-trading quandl


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-25
    • 1970-01-01
    • 2018-11-20
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 2014-09-19
    • 1970-01-01
    相关资源
    最近更新 更多