0

我正在尝试通过终端运行此处zipline buyapple.py描述的示例:

zipline run -f ../../zipline/examples/buyapple.py --start 2000-1-1 --end 2014-1-1 -o buyapple_out.pickle

但这会导致以下错误:

request.py", line 1320, in do_open raise URLError(err) 

urllib.error.URLError: <urlopen error [Errno 11001] getaddrinfo failed>

有人知道出了什么问题吗?

4

1 回答 1

0

似乎它与雅虎的财务 API 有关。我使用以下方法来解决此问题:

点安装熊猫数据阅读器

pip install fix-yahoo-finance-0.0.18.tar从这里

然后使用用户edmunch提供的以下代码修补 zipline Benchmarks.py :

import pandas as pd

from six.moves.urllib_parse import urlencode

import pandas_datareader as pdr #NEW
import fix_yahoo_finance as yf #NEW
yf.pdr_override()#NEW

def get_benchmark_returns(symbol, start_date, end_date):
    print('NEW')
    df = pdr.data.get_data_yahoo(symbol, start=start_date, end=end_date)
    df.to_csv('{}_D1.csv'.format(symbol))
    return pd.read_csv('{}_D1.csv'.format(symbol),
        parse_dates=['Date'],
        index_col='Date',
        usecols=["Adj Close", "Date"],
        squeeze=True,  # squeeze tells pandas to make this a Series
                       # instead of a 1-column DataFrame
    ).sort_index().tz_localize('UTC').pct_change(1).iloc[1:]    
于 2017-07-01T10:00:34.960 回答