3

我想创建一个可重现的示例,其中手动提供交易系列和基准。这将使接近滑索的人们的生活变得异常轻松。事实上,鉴于最近关闭了 Yahoo!Finance API,即使是 zipline 的介绍性示例也不再适用,因为在尝试从 Yahoo 后台导入 ^GSPC 基准时将返回 HTTP 错误。因此,现在官方教程中没有一个代码片段适用于 AFAIK。

import pytz
from pandas_datareader import DataReader
from collections import OrderedDict
from zipline.algorithm import TradingAlgorithm
from zipline.api import order, record, symbol, set_benchmark
# Import data from yahoo
data = OrderedDict()
start_date = '01/01/2014'
end_date = '01/01/2017'
data['AAPL'] = DataReader('AAPL',
                          data_source='google',
                          start=start_date,
                          end=end_date)
data['SPY'] = DataReader('SPY',
                         data_source='google',
                         start=start_date,
                         end=end_date)
# panel.minor_axis is ['Open', 'High', 'Low', 'Close', 'Volume'].
panel = pd.Panel(data)
panel.major_axis = panel.major_axis.tz_localize(pytz.utc)

def initialize(context):
    set_benchmark(data['SPY'])

def handle_data(context, data):
    order(data['AAPL'], 10)
    record(AAPL=data.current(data['AAPL'], 'Close'))

algo_obj = TradingAlgorithm(initialize=initialize,
                            handle_data=handle_data,
                            capital_base=100000)
perf_manual = algo_obj.run(panel)

回报:HTTPError: HTTP Error 404: Not Found

问题:如何使用 AAPL 作为交易资产和 SPY 作为基准来制定策略? 约束:必须手动提供 AAPL 和 SPY,如示例中所示。

4

2 回答 2

3

免责声明:我是 Zipline 的维护者。

您可以使用csvdir捆绑包来摄取 csv 文件(此处set_benchmark()为教程),然后在您的initialize()函数中调用 to 。我还在开发一个允许 zipline 算法在没有基准的情况下运行的分支,因此即使您无法获得基准数据,您的算法也不应该崩溃。

于 2018-01-12T19:38:15.283 回答
-1

将您的 zipline 替换requirements.txt为:

git+https://github.com/quantopian/zipline

然后运行pip install -r requirements.txt

于 2017-06-21T13:49:19.057 回答