2017-09-18 3 views
0

私は手動取引戦略を自動化したいと思います。しかし、当初、私はZiplineのApple株式を購入する簡単な例を再現しようとしました。私はrun_algorithm()でアルゴリズムを実行するのに苦労しました。私が '二重移動平均クロス'を実行しようとしていたとき、まったく同じエラーが発生しました。私もIPythonとターミナルを試しましたが、まだそのエラーが発生します。私はこのフォーラムのいずれかに関連するものを見つけることができませんでした。私はどんなヒントにも非常に感謝しています。ありがとうございました。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

を呼び出すFYI、私はこの問題は、のpython 3.6SSL証明書を使用して行うことがあると思います。残念ながら、エラーメッセージ(特にスタックトレースを無視した場合)はあまり役に立ちません。 Macの場合: sudo /Applications/Python\ 3.6/Install\ Certificatesコマンド 証明書を再インストールする

関連する問題