Ошибка Zipline: AttributeError: объект 'NoneType' не имеет атрибута 'index'

Я хочу автоматизировать свои стратегии ручной торговли. Однако для начала я попытался воспроизвести простой пример Zipline о покупке акций Apple. Я с трудом выполнял алгоритм с run_algorithm(). Когда я пытался запустить «пересечение двойных скользящих средних», возникла точно такая же ошибка. Я также пробовал IPython и Terminal, но все равно получаю эту ошибку. Я не нашел ничего, связанного с этим, на этом форуме. Буду очень признателен за любые подсказки. Спасибо.

Я использую Python 3.6 в macOS и Zipline версии 1.1.1.

Это код:

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)

Это трассировка:

Отслеживание (последний вызов последним): файл «/Users/SOL/Desktop/Python/backtest.py», строка 13, в zl.run_algorithm (начало = 2015-1-1, конец = 2017-1-1, инициализация = инициализировать, capital_base = 10000) Файл "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zipline/utils/run_algo.py", строка 360, в run_algorithm environmental = environmental, File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zipline/utils/run_algo.py", строка 132, в _run env = TradingEnvironment (asset_db_path = connstr, environmental = environmental) Файл "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zipline/finance/trading.py", строка 99, в init self.bm_symbol, File "/ Library / Frameworks / Python.framework / Versions / 3.6 / lib / python3.6 / site-packages / zipline / data / loader.py ", строка 173, в среде load_market_data, файл" /Library/Frameworks/Python.framework/Versions/3.6/lib /python3.6/site-packages/zipline/data/loader.py ", строка 287, в sure_treasury_data i f 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", строка 87, в has_data_for_dates dts = series_or_df.index AttributeError: объект 'NoneType' не имеет атрибута 'index'


person Community    schedule 18.09.2017    source источник


Ответы (2)


К вашему сведению, я думаю, что проблема связана с сертификатами SSL в python 3.6. К сожалению, сообщение об ошибке (особенно если вы игнорируете трассировку стека) не очень помогает. Для Mac попробуйте: sudo /Applications/Python\ 3.6/Install\ Certificatesкоманда для переустановки сертификатов

person petros    schedule 29.11.2017

Согласно документам здесь start и end являются datetime объектами, а не строками. Итак, вы должны определить их следующим образом:

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)
person Fejs    schedule 18.09.2017
comment
Спасибо за помощь. Я пробовал, но все равно получаю то же сообщение об ошибке ... - person ; 18.09.2017