我想创建一个可重现的示例,其中手动提供交易系列和基准。这将使接近滑索的人们的生活变得异常轻松。事实上,鉴于最近关闭了 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,如示例中所示。