Skip to main content
data — объект BarData, который передаётся в handle_data, запланированные функции обратного вызова и before_trading_start. Через него доступны текущие значения и исторические окна из источника рыночных данных, а также из необязательных пользовательских источников. Доступ к данным в Ziplime асинхронный; методы возвращают DataFrame библиотеки Polars.

Текущие значения

await data.current(assets, fields, data_source=None)

Возвращает последние доступные значения на текущий момент симуляции.
Для нескольких инструментов:
Точный состав столбцов-идентификаторов зависит от загруженного источника данных, но поля OHLCV запрашиваются по имени.

Исторические окна

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, перед отправкой заявки лучше проверить именно те данные, которые ему нужны: