繁体   English   中英

某些ETF报价器在Yahoo Finance DataReader中不起作用

[英]Some ETF Tickers Not Working in Yahoo Finance DataReader

我正在使用Yahoo Finance使用Pandas-Datareader从一堆ETF收集数据,即使数据似乎可用,我也收到了一些股票的奇怪错误。 代码很简单:

start = datetime.datetime(2010, 1, 1)
end = datetime.datetime(2017,1,1)

for ticker in TICKERS:
     f = dr.DataReader(ticker, 'yahoo', start, end)

并适用于我的大部分股票,但并非全部:

EMLP GDVD (Failed to get data for GDVD) AMZA RFDI ARKK ARKW SECT (Failed to get data for SECT)

EMLP正常工作。 即使可以在网站上获得GDVD历史数据,Datareader也会为GDVD生成此类URL 我在使用GDVD网址的Chrome中看到以下错误:

{"finance": {"error": {"code": "Unauthorized","description": "Invalid cookie"}}}

有没有办法获得这些股票的历史价格? 如果任何人都可以看到模式,则失败行情自动收录器的完整列表:

 ['GDVD', 'SECT', 'DWLD', 'CCOR', 'DFNL', 'DUSA', 'AIEQ', 'CACG', 'QSY', 'ACT', 'TAXR', 'TTAI', 'FLIO', 'FMDG', 'VGFO', 'FFSG', 'LRGE', 'YLDE', 'VESH', 'DEMS', 'SQZZ']

使用yahoo_fin程序包,我能够获取您列出的报价器的数据。 检查此链接: http : //theautomatic.net/yahoo_fin-documentation/

我的代码如下所示:

from yahoo_fin.stock_info import get_data

tickers =  ['GDVD', 'SECT', 'DWLD', 'CCOR', 'DFNL', 'DUSA', 'AIEQ', 'CACG',
            'QSY', 'ACT', 'TAXR', 'TTAI', 'FLIO', 'FMDG', 'VGFO', 'FFSG', 
            'LRGE', 'YLDE', 'VESH', 'DEMS', 'SQZZ']

stocks = {}

for ticker in tickers:

    stocks[ticker] = get_data(ticker)

因此,数据被存储到字典中,其中的键是股票行情指示器,值是包含每个股票数据的数据框。

另外,您可以使用字典理解,如下所示:

stocks = {ticker : get_data(ticker) for ticker in tickers}

如果要将所有数据集折叠到单个数据框中,则可以使用functools包,如下所示:

from functools import reduce

combined = reduce(lambda x,y: x.append(y), stocks.values())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM