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

Я хотел бы автоматизировать свои стратегии ручной торговли. Однако для начала я попытался воспроизвести простой пример покупки акций Apple Zipline. Я изо всех сил пытался запустить алгоритм с 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, initialize=initialize, capital_base=10000) Файл "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zipline/utils/run_algo.py", строка 360, в run_algorithm environment =environment, 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, environment =environment)) Файл "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/zipline/finance/trading.py", строка 99, в файле init self.bm_symbol, файл "/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, если не has_data_for_dates(data, first_date, last_date): Файл "/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'

2 ответа

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

Согласно документам здесь, 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)
Другие вопросы по тегам