2017-09-18 67 views
0

我想自動執行手動交易策略。然而,一開始,我試圖重現Zipline購買蘋果股票的簡單例子。我努力運行與run_algorithm()算法。當我嘗試運行「雙移動平均線」時,出現了完全相同的錯誤。我也試過IPython和Terminal,但仍然得到這個錯誤。在這個論壇中我找不到任何與此相關的內容。我非常感謝任何提示。謝謝。Zipline錯誤:AttributeError:'NoneType'對象沒有屬性'index'

我在macOS和Zipline版本1.1.1上使用Python 3.6。

這是代碼:

import zipline as zl from zipline.api import order, record, symbol 


def initialize(context): 
    pass 


def handle_data(context, data): 
    order(symbol('AAPL'), 10) 
    record(AAPL=data.current(symbol('AAPL'), 'price')) 

zl.run_algorithm(start='2015-1-1', end='2017-1-1', initialize=initialize, capital_base=10000) 

這是回溯:

Traceback (most recent call last): File "/Users/SOL/Desktop/Python/backtest.py", line 13, in zl.run_algorithm(start=2015-1-1, end=2017-1-1, initialize=initialize, capital_base=10000) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zipline/utils/run_algo.py", line 360, in run_algorithm environ=environ, File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zipline/utils/run_algo.py", line 132, in _run env = TradingEnvironment(asset_db_path=connstr, environ=environ) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zipline/finance/trading.py", line 99, in init self.bm_symbol, File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zipline/data/loader.py", line 173, in load_market_data environ, File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zipline/data/loader.py", line 287, in ensure_treasury_data if not has_data_for_dates(data, first_date, last_date): File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zipline/data/loader.py", line 87, in has_data_for_dates dts = series_or_df.index AttributeError: 'NoneType' object has no attribute 'index'

回答

0

docs這裏,startenddatetime對象,而不是字符串。所以,你應該定義這些如下:

from datetime import datetime 

start = datetime(year=2015, month=1, day=1) 
end = datetime(year=2017, month=1, day=1) 

,然後調用

zl.run_algorithm(start=start, end=end, initialize=initialize, capital_base=10000) 
+0

感謝您的幫助。我嘗試過,但仍然得到相同的錯誤信息... – Ole

1

僅供參考,我認爲這個問題在蟒蛇3.6SSL做證書。不幸的是,錯誤消息(特別是如果你忽略堆棧跟蹤)不是很有幫助。對於mac嘗試: sudo /Applications/Python\ 3.6/Install\ Certificates命令 重新安裝證書

相關問題