【发布时间】: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