> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ziplime.ru/llms.txt
> Use this file to discover all available pages before exploring further.

# Площадки и календари

> Часы торгов каждой площадки, запуски на нескольких рынках и расширения для новых площадок и адресов данных

Симуляция идёт по одному календарю. Начиная с 2.11.0 каждый листинг оценивается по часам торгов **своей** площадки, поэтому в одном бэктесте могут быть инструменты рынков с разным расписанием — например, акции Мосбиржи и фьючерсы срочного рынка с вечерней сессией.

## Что определяет площадка листинга

* `data.can_trade` спрашивает площадку листинга. В дневном запуске — торговалась ли площадка в этот день, во внутридневном — открыта ли она в эту минуту.
* Заявка по листингу, рынок которого закрыт, вызывает ошибку, в которой названы календарь листинга и календарь симуляции.
* `context.rebalance` не трогает позицию, пока её рынок закрыт, — ни заявок, ни закрытия.
* `ExchangeAsset.trading_calendar` — собственный календарь листинга или `None` для площадки, которой нет в таблице; такие листинги оцениваются по календарю симуляции.

Запуск, все листинги которого торгуются по календарю самой симуляции, даёт те же результаты, что и до 2.11.0.

## Площадки Мосбиржи

Московских площадок нет среди встроенных — их регистрирует [zipfinam](https://github.com/arbuzovv/zipFinam) версии 1.26.10.1 или новее. Достаточно установить пакет: `import zipfinam` для этого не нужен.

| Площадка (MIC) | Календарь | Часы |
| - | - | - |
| `MISX` — фондовый рынок | `XMOS` | основная сессия до 18:45 |
| `RTSX` — срочный рынок | `FORTS` | 09:00–23:50, клиринг 18:50–19:05 |

Стандартный календарь `XMOS` заканчивается в 18:45, и на нём фьючерсная стратегия теряла бы вечернюю сессию — поэтому zipfinam добавляет отдельный календарь `FORTS`. Без zipfinam московские листинги оцениваются по календарю симуляции.

## Встроенные площадки

| Площадки (MIC) | Календарь |
| - | - |
| Акции США: `XNYS`, `XNGS`, `XNMS`, `XNCM`, `XASE`, `ARCX`, `BATS`, `IEXG`, `PINX` | `XNYS` |
| CME: `XCME`, `XCEC` | `CMES` |
| NYMEX: `XNYM` | `NYMEX` |
| ICE: `IFEU`, `IFLL`, `IFUS` | `IEPA` |
| Криптовалюты: `KRME`, `_BNCC`, `_BNCF` | `24/7` |

## Часы для смешанного запуска

Календарь симуляции должен проходить каждую минуту, в которую торгуется хотя бы одна из площадок запуска. `clock_calendar_name` подбирает такой календарь:

```python theme={null}
from ziplime.utils.venue_calendars import calendar_for_mic, clock_calendar_name

clock_calendar_name(["MISX"])            # "XMOS"
clock_calendar_name(["MISX", "XNYS"])    # "24/5" — расписания не вкладываются одно в другое
clock_calendar_name(["XNYS", "KRME"])    # "24/7" — одна из площадок не закрывается
```

Передайте результат как календарь запуска (`ziplime run -c ...` или `run_simulation(trading_calendar=...)`). Если календарь одной площадки уже проходит все минуты, когда торгуются остальные, используется он; иначе ответ — `24/5` (каждый будний день, круглосуточно) или `24/7`, если какая-то площадка не закрывается никогда. Листинг бенчмарка в список не включайте — его только читают, а не торгуют.

`calendar_for_mic(mic)` возвращает `ExchangeCalendar`, по которому живёт площадка.

## Переопределения

Переменная `ZIPLIME_VENUE_CALENDARS` добавляет или заменяет площадки без нового выпуска:

```bash theme={null}
export ZIPLIME_VENUE_CALENDARS="MEXC=24/7,XHKG=XHKG"
```

Записи здесь важнее и встроенной таблицы, и расширений.

## Расширения

Пакет может добавлять площадки, календари и адреса источников данных без правок Ziplime. Именно так устроен zipfinam.

**Площадки.** Вызовите `register_venue_calendars({MIC: имя_календаря})` при импорте или объявите соответствие в группе точек входа `ziplime.venue_calendars` — она загружается при первом обращении:

```toml theme={null}
[project.entry-points."ziplime.venue_calendars"]
moscow = "zipfinam.venue_calendars:moscow_venues"   # словарь {MIC: календарь} или функция, которая его возвращает
```

**Адреса источников данных.** Вызовите `register_address_scheme(scheme, mount)` или объявите функцию подключения в группе точек входа `ziplime.address_schemes`. Тогда стратегия читает `data.history(..., data_source="scheme://...")` без регистрации со своей стороны:

```toml theme={null}
[project.entry-points."ziplime.address_schemes"]
algopack = "zipfinam.algopack:mount_address"
```

Функция подключения вызывается как `mount(address, *, asset_service, start_date, end_date, trading_calendar)` и возвращает `DataSource` (или awaitable, который его вернёт). Неиспользуемые именованные аргументы она должна принимать и игнорировать. Схема `hf://` встроена в движок.

**Провайдеры данных.** Коннекторы для загрузки регистрируются в группе точек входа `ziplime.data_providers` — так zipfinam добавляет провайдер `finam`. `ziplime providers` показывает, что доступно в вашей установке.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.