Что определяет площадка листинга
data.can_tradeспрашивает площадку листинга. В дневном запуске — торговалась ли площадка в этот день, во внутридневном — открыта ли она в эту минуту.- Заявка по листингу, рынок которого закрыт, вызывает ошибку, в которой названы календарь листинга и календарь симуляции.
context.rebalanceне трогает позицию, пока её рынок закрыт, — ни заявок, ни закрытия.ExchangeAsset.trading_calendar— собственный календарь листинга илиNoneдля площадки, которой нет в таблице; такие листинги оцениваются по календарю симуляции.
Площадки Мосбиржи
Московских площадок нет среди встроенных — их регистрирует zipfinam версии 1.26.10.1 или новее. Достаточно установить пакет:import zipfinam для этого не нужен.
Стандартный календарь
XMOS заканчивается в 18:45, и на нём фьючерсная стратегия теряла бы вечернюю сессию — поэтому zipfinam добавляет отдельный календарь FORTS. Без zipfinam московские листинги оцениваются по календарю симуляции.
Встроенные площадки
Часы для смешанного запуска
Календарь симуляции должен проходить каждую минуту, в которую торгуется хотя бы одна из площадок запуска.clock_calendar_name подбирает такой календарь:
ziplime run -c ... или run_simulation(trading_calendar=...)). Если календарь одной площадки уже проходит все минуты, когда торгуются остальные, используется он; иначе ответ — 24/5 (каждый будний день, круглосуточно) или 24/7, если какая-то площадка не закрывается никогда. Листинг бенчмарка в список не включайте — его только читают, а не торгуют.
calendar_for_mic(mic) возвращает ExchangeCalendar, по которому живёт площадка.
Переопределения
ПеременнаяZIPLIME_VENUE_CALENDARS добавляет или заменяет площадки без нового выпуска:
Расширения
Пакет может добавлять площадки, календари и адреса источников данных без правок Ziplime. Именно так устроен zipfinam. Площадки. Вызовитеregister_venue_calendars({MIC: имя_календаря}) при импорте или объявите соответствие в группе точек входа ziplime.venue_calendars — она загружается при первом обращении:
register_address_scheme(scheme, mount) или объявите функцию подключения в группе точек входа ziplime.address_schemes. Тогда стратегия читает data.history(..., data_source="scheme://...") без регистрации со своей стороны:
mount(address, *, asset_service, start_date, end_date, trading_calendar) и возвращает DataSource (или awaitable, который его вернёт). Неиспользуемые именованные аргументы она должна принимать и игнорировать. Схема hf:// встроена в движок.
Провайдеры данных. Коннекторы для загрузки регистрируются в группе точек входа ziplime.data_providers — так zipfinam добавляет провайдер finam. ziplime providers показывает, что доступно в вашей установке.
