data — объект BarData, который передаётся в handle_data, запланированные функции обратного вызова и before_trading_start. Через него доступны текущие значения и исторические окна из источника рыночных данных, а также из необязательных пользовательских источников.
Доступ к данным в Ziplime асинхронный; методы возвращают DataFrame библиотеки Polars.
Текущие значения
await data.current(assets, fields, data_source=None)
Возвращает последние доступные значения на текущий момент симуляции.
Исторические окна
await data.history(assets, bar_count, frequency=timedelta(days=1), fields=None, data_source=None)
Возвращает историческое окно, которое заканчивается перед текущим баром.
include_end_date=False, поэтому history лучше использовать для уже завершённых предыдущих баров. Если для сигнала нужен и текущий бар, запросите его отдельно через data.current(...).
Поля
Часто используемые поля рыночных данных:
Пользовательские пакеты данных могут предоставлять дополнительные поля. Чтобы обратиться не к источнику по умолчанию, передайте имя пакета в
data_source:
data_source должно совпадать с именем источника, настроенного в вашем российском контуре.
Работа с Polars
Ziplime возвращаетpolars.DataFrame, поэтому доступны обычные операции Polars.
Время в data
data.current_dt возвращает текущие дату и время симуляции.
data.current_session возвращает метку текущей торговой сессии.
Проверка доступности торговли
Методdata.can_trade(assets) сохранён для совместимости с Zipline и предназначен для проверки активности инструмента, торговых часов биржи, ограничений и наличия ценовых данных.
Чтобы код стратегии был переносимым в текущей среде Ziplime, перед отправкой заявки лучше проверить именно те данные, которые ему нужны: