2017-05-26 28 views
3

我想創造一個手動提供的交易系列和基準重複的例子。這將使正在接近的人們的生活變得非常容易。事實上,鑑於最近關閉了Yahoo!Finance API,即使是使用zipline的介紹性示例也不會再起作用,因爲在嘗試從幕後導入雅虎的^ 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必須如示例中被手動設置。

+1

溜索已切換到使用谷歌財經代替,但它不是在最新版本中。現在,您可以從主https://github.com/quantopian/zipline重裝 – user748455

+0

溜索的基準默認爲SPY,在谷歌股票的標準普爾500指數。 – user748455

回答

0

requirements.txt替換溜索這一點:

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

然後運行pip install -r requirements.txt

1

免責聲明:我溜索的維護者。

可以使用csvdir束攝取CSV文件(教程here),然後對set_benchmark()來電您initialize()功能。我還在設計一個分支機構,允許zipline算法在沒有基準的情況下運行,所以即使您無法獲得基準測試數據,您的算法也不會崩潰。