【问题标题】:How to manually provide a benchmark in zipline如何在 zipline 中手动提供基准
【发布时间】:2017-10-27 05:39:26
【问题描述】:

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

【问题讨论】:

  • Zipline 已改用 Google 财经,但它不在最新版本中。可以从mastergithub.com/quantopian/zipline重新安装
  • Zipline 的基准现在默认为 SPY,即标准普尔 500 指数的谷歌股票代码。

标签: python-3.x yahoo-api zipline back-testing


【解决方案1】:

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

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

【讨论】:

  • 这有什么更新吗?我面临着类似的问题,我可以在没有基准的情况下取消。谢谢。
  • @freddiev4 如上所述设置后,索引仍然是可交易的组件。我们如何指定索引不应该是可交易的组件?
【解决方案2】:

requirements.txt 中的滑索替换为:

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

然后运行pip install -r requirements.txt

【讨论】:

    猜你喜欢
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    相关资源
    最近更新 更多