Skip to main content
context — постоянный объект алгоритма, который передаётся в функции жизненного цикла. Храните в нём состояние стратегии и вызывайте его методы, чтобы находить инструменты, торговать, планировать задачи, проверять состояние портфеля и настраивать ограничения.

Прямые вызовы через context

Предпочтительно вызывать методы непосредственно у context:
Ziplime также предоставляет функции в стиле Zipline через ziplime.api, но в асинхронном коде алгоритма прямые вызовы context читаются яснее.

Поиск инструментов

await context.symbol(symbol, mic=None, asset_type=AssetType.EQUITY)

Находит биржевой инструмент по тикеру.
Если строка символа содержит @, часть после @ интерпретируется как MIC-код биржи.

Несколько символов

Рекомендуемый вариант:
Метод context.symbols(*symbols) сохранён для совместимости, но в текущей реализации возвращает список awaitable-объектов. Если вы его используете, соберите результаты через gather или дождитесь каждого объекта отдельно:

await context.symbols_universe(name, dt=None)

Загружает именованный набор символов из сервиса инструментов.
Имя набора должно быть зарегистрировано в сервисе инструментов. Если dt не указан, Ziplime использует текущие дату и время симуляции.

await context.sid(sid)

Находит инструмент по числовому SID.

await context.future_symbol(symbol, exchange_name=None)

Находит фьючерсный контракт.
Значение exchange_name должно совпадать с именем биржи в конфигурации запуска.

Время и конфигурация

context.get_datetime()

Возвращает текущие дату и время симуляции.
context.simulation_dt содержит ту же текущую временную метку симуляции.

context.algorithm.config

Предоставляет доступ к типизированной конфигурации алгоритма, загруженной из JSON.
Шаблон класса конфигурации описан в разделе «Файл алгоритма».

Доступные методы

Имена бирж

Большинство методов работы с заявками принимает необязательный параметр exchange_name. Если он не указан, Ziplime использует биржу по умолчанию из конфигурации запуска симуляции. В примерах для российского контура используется имя "MOEX". Указывайте имя биржи явно, если:
  • В запуске используется несколько бирж.
  • Вы получаете или отменяете заявку через get_order или cancel_order.
  • Вызываете методы портфеля с фильтрацией по бирже.
Строка exchange_name — это имя из конфигурации запуска, а не обязательно MIC-код. Если в вашей конфигурации задано другое имя, используйте его вместо "MOEX".