Шлюз SPECTRA Plaza-2


Содержание

A. История изменений
Введение
Назначение документа
Круг пользователей
Сокращения
Дополнительная информация
Краткий обзор системы SPECTRA
Субъекты (участники) торгов
Расчетные фирмы
Брокерские фирмы
Клиенты
Кодировка в системе
Раскрытие информации об участниках в системе
Пользователи. Привязка пользователя к участнику торгов
Инструменты
Базовые активы
Фьючерсы
Идентификация инструментов
Торговые операции
Заявки – общие возможности
Адресные заявки (РПС, режим прямых сделок)
Сделки
Айсберг-заявки
Айсберг-заявки в информационных потоках системы
Операции над айсберг-заявками
Смена идентификаторов заявок при операциях над айсберг-заявкой
Поставка активов и экспирация опционов (**)
Поставка по фьючерсам (**)
Типы сделок, формируемые при исполнении и истечении фьючерсов и опционов (**)
Расписание торгов и клиринга
Расписание торгов. Торговые сессии
Клиринг
Особенности поведения разных сущностей в системе при назначении новой торговой сессии
Справочная и сессионная информация
Деньги и позиции
Заявки и сделки
Инструменты
Потоки репликации
Использование механизма синхрособытий для получения консистентного состояния данных в системе
Управление рисками и лимитирование торговых операций
Гарантийное обеспечение
Торговые лимиты
Ограничения на торговые операции и открытие позиций для клиентов
Перенос позиций (обязательств)
Приостановка торгов для расширения лимита колебаний цен сделок
Информирование участников о прогнозируемых значениях риск-параметров
Блокировка брокерской части клиентского сбора
Поддержка отрицательных цен в SPECTRA (**)
Клиентские SMA-логины (спонсируемый доступ)
Сделки урегулирования
Причины сделок урегулирования
Штрафы и комиссии
Описание торгового шлюза
Состав, установка и настройка ПО шлюз SPECTRA Plaza-2
Состав и архитектура шлюза
Требования к аппаратной и программной инфраструктурам
Аппаратные требования
Программные требования
Установка ПО в среде Windows
Установка ПО в среде Linux
Рекомендации по разработке
Использование тестовых примеров
Распределенные конфигурации
Рекомендации по включению рантаймов KASE в приложение пользователя при распространении пользовательского ПО сторонним компаниям
Состав транслируемой информации
Справочная информация
Торговая информация
Информация для восстановления
Информация о лимитах клиентов
Клиринговая информация
Вспомогательные информационные потоки
Особенности использования шлюза
Служебные поля репликации
Команды
Контроль аномальной активности
Мониторинг latency со стороны клиента
Автоматическое снятие заявок при отключении пользователя от торгов
Потоки, получаемые логинами разных подтипов
Парольная политика
Основные положения
Смена пароля доступа в торговую систему
Партиционирование матчинга
Типы потоков данных
Обработка нештатных ситуаций
Восстановление при потере соединения с Биржей
Диагностика разрыва соединений
Процедура восстановления
Общие рекомендации
Восстановление при проблемах в инфраструктуре Биржи
Очистка данных по потокам
Возможные изменения данных при нештатной работе сервисов публикации
Описание схемы репликации FORTS_PUBLIC
Поток FORTS_TRADE_REPL - Заявки и сделки пользователя (Type=R)
Схема данных
Таблица orders_log: Журнал заявок
Таблица user_deal: Журнал сделок пользователя
Таблица heartbeat: Служебная таблица cерверных часов
Таблица sys_events: Таблица событий
Поток FORTS_ORDLOG_REPL - Поток анонимных заявок (Type=R)
Схема данных
Таблица orders_log: Журнал заявок
Таблица heartbeat: Служебная таблица cерверных часов
Таблица sys_events: Таблица событий
Поток FORTS_DEALS_REPL - Поток анонимных сделок (Type=R)
Схема данных
Таблица deal: Журнал сделок
Таблица heartbeat: Служебная таблица cерверных часов
Таблица sys_events: Таблица событий
Поток FORTS_FEE_REPL - Поток комиссий и штрафов биржи (Type=AR)
Схема данных
Таблица adjusted_fee: комиссии биржи
Таблица penalty: Штрафы биржи
Таблица sys_events: Таблица событий
Поток FORTS_FEERATE_REPL - Поток точных ставок комиссий биржи (Type=AR)
Схема данных
Таблица futures_rate: Точные ставки комиссий по фьючерсам
Таблица sys_events: Таблица событий
Поток FORTS_BROKER_FEE_REPL - Брокерские комиссии (Type=I)
Схема данных
Таблица broker_fee: Брокерская комиссия
Таблица sys_events: Таблица событий
Поток FORTS_BROKER_FEE_PARAMS_REPL - Параметры для расчета брокерской комиссии (Type=I)
Схема данных
Таблица broker_fee_params: Параметры для расчета брокерской комиссии
Таблица sys_events: Таблица событий
Поток FORTS_USERORDERBOOK_REPL - Заявки пользователя: Cрез стакана (Type=R)
Схема данных
Таблица orders: Таблица активных заявок пользователя
Таблица info: Информация о стаканах
Поток FORTS_ORDBOOK_REPL - Cрез стакана. Анонимный (Type=R)
Схема данных
Таблица orders: Таблица активных анонимных заявок
Таблица info: Информация о стаканах
Поток FORTS_COMMON_REPL - Общая информация по сессии (Type=I)
Схема данных
Таблица common: Общая информация по сессии
Потоки агрегированных стаканов (Type=I)
Схема данных
Таблица orders_aggr: Агрегированные стаканы
Поток FORTS_POS_REPL - Информация о позициях (Type=I)
Схема данных
Таблица position: Позиции клиентов
Таблица position_sa: Позиции уровня Расчётного кода
Таблица sys_events: Таблица событий
Поток FORTS_PART_REPL - Информация о средствах и лимитах (Type=I)
Схема данных
Таблица part: Средства и лимиты по клиентам и брокерским фирмам
Таблица part_sa: Средства и лимиты по Расчетному коду
Таблица sys_events: Таблица событий
Поток FORTS_PROHIBITION_REPL - Запреты (Type=R)
Схема данных
Таблица prohibition: Запреты
Поток FORTS_REFDATA_REPL - Справочная и сессионная информация (Type=R)
Схема данных
Таблица fut_sess_contents: Справочник торгуемых инструментов (фьючерсы)
Таблица fut_vcb: Справочник торгуемых активов (фьючерсы)
Таблица fut_instruments: Справочник инструментов
Таблица fut_bond_registry: Справочник параметров спот-активов
Таблица dealer: Справочник фирм
Таблица sys_messages: Сообщения торговой системы
Таблица prohibition: Запреты
Таблица fut_rejected_orders: Отвергнутые в клиринг заявки (фьючерсы)
Таблица fut_bond_nkd: НКД на дату исполнения срочного контракта с облигацией
Таблица fut_bond_nominal: Размеры выплат номинальной стоимости облигации
Таблица fut_bond_isin: Справочник инструментов облигаций
Таблица user: Пользователи системы
Таблица investor: Справочник клиентов
Таблица fut_margin_type: Тип маржирования
Таблица fut_settlement_account: Расчетный Код
Таблица session: Информация о торговой сессии
Таблица sma_master: Привязка SMA-логина к MASTER-логину
Таблица sma_pre_trade_check: Настройки предварительных проверок SMA-логина
Таблица clearing_members: Участники клиринга
Таблица instr2matching_map: Сопоставление инструментов матчингу
Таблица sys_events: Таблица событий
Поток FORTS_MM_REPL - Информация об обязательствах ММ (Type=I)
Схема данных
Таблица fut_MM_info: Обязательства ММ по фьючерсам
Таблица mm_agreement_filter: Таблица с номерами и типами договоров на оказание маркет-мейкерских услуг
Поток FORTS_CLR_REPL - Клиринговая информация (Type=AR)
Схема данных
Таблица limit_clearing: Клиентские лимиты в клиринге
Таблица clr_rate: Курсы валют и индексов
Таблица fut_pos: информация о позиционном состоянии на момент вечернего клиринга по фьючерсам
Таблица fut_sess_settl: Расчетные цены по фьючерсам
Таблица money_clearing_sa: Клиентские деньги в клиринге
Таблица fut_pos_sa: информация о позиционном состоянии на момент вечернего клиринга по фьючерсам
Таблица sys_events: Таблица событий
Поток FORTS_VM_REPL - Вариационная маржа (Type=I)
Схема данных
Таблица fut_vm: Вариационная маржа по фьючерсам
Таблица fut_vm_sa: Вариационная маржа по фьючерсам
Поток FORTS_INFO_REPL - Справочная информация (Type=R)
Схема данных
Таблица base_contracts_params: Параметры базовых контрактов
Таблица futures_params: Параметры фьючерсов
Таблица investor: Справочник клиентов
Таблица dealer: Справочник фирм
Таблица common_params: Параметры расчёта ГО
Таблица sys_events: Таблица событий
Поток FORTS_TNPENALTY_REPL - Информация о сборах за транзакции (Type=I)
Схема данных
Таблица fee_all: Информация о количестве начисленных баллов
Таблица fee_tn: Детализированная информация по количеству некорректных транзакций
Поток FORTS_FORECASTIM_REPL - Прогноз рисков после возможной раздвижки (Type=I)
Схема данных
Таблица part_sa_forecast: Прогноз объема свободных средств для РК
Описание команд
Метод AddOrder - Добавление заявок
Метод DelOrder - Удаление заявок
Метод DelUserOrders - Массовое удаление заявок
Метод MoveOrder - Изменение заявок
Метод IcebergAddOrder - Добавление айсберг-заявок
Метод IcebergDelOrder - Удаление айсберг-заявок
Метод IcebergMoveOrder - Изменение айсберг-заявок
Метод ChangeClientMoney - Изменение клиентских лимитов
Метод FutChangeClientProhibit - Изменение клиентских ограничений для фьючерсов
Метод TransferClientPosition - Перенос позиций между БФ
Метод ChangeBFParametersNextSession - Изменение параметров БФ Участником клиринга
Метод ChangeClientParameters - Изменение параметров на клиентских разделах
Метод ChangeClientParametersNextSession - Изменение параметров на клиентских разделах в клиринг
Метод ChangeBFClientDefaultParametersNextSession - Изменение на клиентских разделах параметров по умолчанию в клиринг
Метод ChangeBFLimit - Изменение торговых лимитов БФ
Метод CODHeartbeat - Сообщение-хартбит для сервиса Cancel on Disconnect
Метод SetSmaPreTradeCheck - Установка предварительной проверки для заявок SMA-логина
Метод DelSmaPreTradeCheck - Удаление предварительной проверки для заявок SMA-логина
Метод UserKillSwitch - Запрет торговых операций для логина
Метод SetBrokerFeeParamNextSession - Установка параметров для расчета брокерской комиссии
Метод ChangePassword - Изменение пароля пользователя в торговой системе
B. Типы данных платформы Plaza-2
C. Справочник кодов возврата

A. История изменений

ДатаИзменения
11.05.2022Внесённые изменения:
  • Добавлен раздел "2.8. Сделки урегулирования".

  • В раздел "2.4.2. Типы сделок, формируемые при исполнении и истечении фьючерсов и опционов (**)" добавлено описание новых флагов:

    • eDontFineRF (0x80000000000000) - Признак невзимания штрафа за сделки урегулирования.

  • Доработка утилиты для смены пароля (change_password.exe):

    • В строку запуска добавлен параметр app_name (имя приложения).

    • В строку запуска добавлен параметр local_pass (пароль для локального соединения с роутером).

    • Из возможных ключей строки запуска удален ключ key.

  • Удален поток FORTS_FUTTRADE_REPL. Вместо него следует использовать поток FORTS_TRADE_REPL.

  • Удален поток FORTS_FUTORDERBOOK_REPL. Вместо него следует использовать поток FORTS_USERORDERBOOK_REPL.

  • Удален поток FORTS_FUTCOMMON_REPL. Вместо него следует использовать поток FORTS_COMMON_REPL.

  • Удален поток FORTS_FUTINFO_REPL. Вместо него следует использовать поток FORTS_REFDATA_REPL.

  • Удалены потоки FORTS_FUTAGGR5_REPL, FORTS_FUTAGGR20_REPL и FORTS_FUTAGGR50_REPL. Вместо них следует использовать потоки FORTS_AGGR5_REPL, FORTS_AGGR20_REPL и FORTS_AGGR50_REPL.

  • Поток FORTS_TRADE_REPL:

    • Из таблицы orders_log удавлено поле local_stamp.

    • В таблицу orders_log добавлено поле reason.

    • В таблицу user_deal добавлены поля reason_buy и reason_sell.

  • Поток FORTS_FEE_REPL:

    • Добавлена таблица penalty.

  • Поток FORTS_FEERATE_REPL:

    • В таблицу futures_rate добавлено поле exp_clearing_fee. В версии 6.15 поле всегда будет содержать "0.0".

  • Поток FORTS_USERORDERBOOK_REPL:

    • В таблицу orders добавлено поле reason.

  • Поток FORTS_PART_REPL:

    • В таблицу part добавлено поле penalty.

    • В таблицу part_sa добавлено поле blocked_tax.

  • Добавлен новый поток FORTS_PROHIBITION_REPL - Запреты. Таблица prohibition вынесена в отдельный поток.

  • Поток FORTS_REFDATA_REPL:

    • Добавлены таблицы fut_bond_registry, fut_bond_nkd, fut_bond_nominal и fut_bond_isin.

    • В таблицу prohibition добавлено поле xprohibition_id.

    • В таблицы fut_sess_contents и fut_instruments добавлено поле enforce_ims_half_netting.

    • Начиная с версии 6.15 таблица prohibition объявляется устаревшей и будет удалена в версии 7.3. Вместо этой таблицы надо использовать таблицу prohibition потока FORTS_PROHIBITION_REPL.

  • Поток FORTS_CLR_REPL:

    • В таблицу money_clearing_sa добавлено поле blocked_tax.

  • Поток FORTS_INFO_REPL:

    • В таблицу futures_params добавлено поле enforce_ims_half_netting.

  • Изменения в репозитории схем подачи команд:

    • Из команд AddOrder, MoveOrder, DelOrder, DelUserOrders, IcebergAddOrder, IcebergMoveOrder и IcebergDelOrder удалено поле local_stamp. Добавлены новые типы команд: AddOrder (msgid=465), MoveOrder (msgid=460), DelOrder (msgid=461), DelUserOrders (msgid=466), IcebergAddOrder (msgid=462), IcebergMoveOrder (msgid=463) и IcebergDelOrder (msgid=464).

  • Добавлены новые коды ошибок: 80, 81, 3001,4280-4282.

  • Изменены тексты кодов ошибок: 4017, 4160.

  • Удалены коды ошибок: 4120, 4121, 4168.

07.06.2021Внесённые изменения:
  • Поток FORTS_REFDATA_REPL:

    • В таблицу dealer добавлено поле order_allowed_in_morning_session.

  • Поток FORTS_INFO_REPL:

    • В таблицу dealer добавлено поле order_allowed_in_morning_session.

  • Добавлены новые коды ошибок: 4226.

  • Изменены тексты кодов ошибок: 31, 4142.

Введение

Назначение документа

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

  • Общий обзор системы SPECTRA — торговые инструменты, участники торгов, торговые операции, управление рисками и лимитирование операций и т.п.

  • Состав, установка и настройка ПО шлюз SPECTRA Plaza-2. Приводится описание действий пользователя по установке и настройке ПО, требований к аппаратной и программной инфраструктурам, а также даются общие рекомендации по использованию программного обеспечения.

  • Состав транслируемой информации. Приводится описание потоков репликации и транслируемых таблиц.

  • Перечень управляющих команд.

  • Справочные данные.

Круг пользователей

Данный документ предназначен для бизнес-аналитиков, системных архитекторов и программистов, участвующих в проектировании и разработке программного обеспечения для доступа на срочный рынок с использованием шлюза SPECTRA Plaza-2.

Сокращения

В рамках настоящего документа используются следующие сокращения:

ТерминОпределение
CODСервис "Cancel On Disconnect"
SMAСервис "Sponsored Market Access"
БАБазовый актив
БФБрокерская фирма
ВМВариационная маржа
ГОГарантийное обеспечение
МММаркет-мейкер
КЦКлиринговый Центр
ОБФОбособленная Брокерская фирма
ПОПрограммное Обеспечение
РФРасчетная фирма
СУРСистема управления рисками
ТСТорговая система
ЦБЦенная бумага
ЦКЦентральный контрагент

Дополнительная информация

Текущая версия системы SPECTRA не включает в себя следующий функционал:

  • поставка по фьючерсам;

  • торговля опционами и составными инструментами;

  • проведение промежуточного клиринга;

  • синтетический матчинг;

  • дополнительные торговые сессии.

Информация, касающаяся данных тем, приведенная в данном документе, помечена специальным признаком - (**).

Краткий обзор системы SPECTRA

Субъекты (участники) торгов

Субъекты (участники) торгов это:

  • Расчетные фирмы

  • Брокерские фирмы

  • Клиенты

Расчетные фирмы

Расчетные фирмы — это организации, непосредственно несущие ответственность и покрывающие риски своих клиентов и субброкеров.

Расчетные фирмы имеют возможности:

  • Совершать сделки от своего имени и за свой счет.

  • Совершать сделки от своего имени и за счет обслуживаемых клиентов.

  • Вести расчеты с ЦК напрямую.

  • Обслуживать клиентов, в том числе и брокерские фирмы.

  • Контролировать работу клиентов и брокерских фирм в ходе торгов.

Расчетные фирмы несут обязательства:

  • Членство в Секции срочного рынка.

  • Гарантийное обеспечение собственных сделок и сделок своих клиентов.

Брокерские фирмы

В отличие от расчетных фирм, брокерские фирмы не рассчитываются по операциям напрямую с биржей, а рассчитываются со своей расчетной фирмой, для брокеров нет требований по наличию лицензии.

Брокерские фирмы имеют возможности:

  • Совершать сделки за свой счет.

  • Совершать сделки за счет обслуживаемых клиентов.

  • Выставлять заявки в Торговой системе с клиентского терминала.

  • Контролировать работу своих клиентов в ходе торгов.

Брокерские фирмы несут обязательства:

  • Гарантийное обеспечение собственных сделок и сделок своих клиентов.

Клиенты

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

Кодировка в системе

Участники торгов в системе кодируются с помощью семисимвольной строки вида:XXYYZZZ, где

  • XX — код расчетной фирмы

  • YY — код брокерской фирмы

  • ZZZ — код клиента

Код брокерской фирмы 00 предназначен для отражения состояния самой расчетной фирмы.

Пример 1.

Q100 – код для представления расчетной фирмы Q1

Q1DU – субброкер DU расчетной фирмы Q1


Код Клиента 000 предназначен для отражения состояния брокерской фирмы.

Пример 2.

Q1DU000 – код для представления состояния денежных средств субброкера DU расчетной фирмы Q1


Раскрытие информации об участниках в системе

Список расчетных и брокерских фирм доступен в таблице dealer потока FORTS_REFDATA_REPL. Список клиентов доступен в таблице investor потока FORTS_REFDATA_REPL. Раскрытие информации о клиентах и брокерах ограничено правами пользователя, запрашивающего информацию.

Кроме того, в различных потоках и таблицах есть ссылки на семисимвольные коды участников или на четырехсимвольные коды брокеров.

Пользователи. Привязка пользователя к участнику торгов

Пользователь или логин в системе может быть привязан к разным уровням иерархии участников:

  • Логин расчетной фирмы. Имеет возможность просматривать информацию и (при наличии транзакционных прав) совершать торговые операции от имени любого брокера или клиента данной расчетной фирмы, а также вызывать операции для установки различных лимитов, как для клиентов, так и для субброкеров.

  • Логин брокерской фирмы. Имеет возможность просматривать информацию и совершать торговые операции от имени всех клиентов брокера внутри расчетной фирмы, а также устанавливать лимиты клиентам этого брокера.

  • Логин клиента. Имеет возможность совершать торговые операции от имени конкретного клиента внутри брокерской фирмы и просматривать информацию по этому клиенту.

В схеме сообщений-команд (см. раздел Описание команд) есть поле 'broker_code'. Приложение, использующее логин уровня расчетной фирмы, обязано при отправке сообщения заполнять это поле четырехсимвольным кодом брокера SPECTRA. Приложения, использующие логины уровня брокера или клиента, заполнять это поле не обязаны.

Инструменты

Инструменты в системе SPECTRA имеют иерархическую структуру. Далее приведено описание инструментов, начиная с корневого уровня иерархии.

Базовые активы

Базовый актив представляет собой сущность, к которой привязывается конкретный контракт — акцию, которую необходимо будет передать или получить для инструментов фондовой секции, товар — для инструментов товарной секции или индекс/курс валюты/индикатор для расчетных фьючерсов. Базовый актив содержит атрибуты, общие для всех инструментов, привязанных к нему, а именно:

  • Наименование торговой секции.

  • Разнообразные ставки комиссий и признаки использования скальпирования при расчете комиссий. Если для актива установлен признак скальпирования, то комиссия берется только по сделкам в открытие позиций.

  • Тип поставки по контрактам (подробнее – см. раздел, Поставка активов и экспирация опционов):

    • поставка собственно актива;

    • расчетный тип — по итогам обращения перечисляются только денежные средства в размере разницы между стоимостью открытия позиции и расчетной ценой актива.

Базовый актив НЕ ЯВЛЯЕТСЯ ТОРГОВЫМ инструментом.

Информация о базовых активах содержится в таблице fut_vcb потока FORTS_REFDATA_REPL.

Фьючерсы

Фьючерсные контракты — основной тип торговых инструментов в системе SPECTRA.

Фьючерсы привязаны к конкретному базовому активу. Каждый фьючерс имеет уникальные атрибуты срочности (даты поставки), лота, шага цены и стоимости шага цены.

Для каждого базового актива может быть создано несколько торгуемых фьючерсов с разными датами исполнения.

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

Фьючерсы котируются в пунктах цены. Цена в тенге за контракт вычисляется как:

, где

  • PricePoints — цена в пунктах;

  • step_price — стоимость минимального шага цены;

  • min_step — минимальный шаг цены в пунктах.

Для фьючерсов со стоимостью шага цены в валюте, заполняются еще два дополнительных поля:

  • Стоимость шага цены в исходной валюте;

  • Стоимость шага цены в тенге, зафиксированная для клиринга.

Информация о фьючерсах содержится в трех таблицах торгового интерфейса:

  • Поток FORTS_REFDATA_REPL, таблица fut_sess_contents — основная таблица. Содержит список контрактов, назначенных в торги в данной торговой сессии.

  • Поток FORTS_REFDATA_REPL, таблица fut_instruments — содержит урезанную информацию обо всех фьючерсных контрактах в торговой системе, в том числе неторгуемых.

  • Поток FORTS_INFO_REPL, таблица futures_params — содержит информацию о фьючерсах в формате, необходимом для загрузки ее в клиентский модуль расчета рисков (SpectraIM).

Идентификация инструментов

В системе SPECTRA инструмент имеет четыре идентификатора:

  1. Поле isin_id — уникальный числовой идентификатор инструмента в системе.

  2. Поле isin — символьный идентификатор инструмента.

  3. Поле short_isin — короткий символьный код инструмента для информационных систем.

  4. Поле name — длинное "человекочитаемое" наименование инструмента.

Значение isin_id — первичный уникальный идентификатор инструмента в системе. Во всех структурах данных, содержащих ссылку на инструмент, используется именно это значение.

Поле isin — основной символьный код контракта. Именно этот код указывается в команде на постановку заявки. Гарантируется уникальность и неизменность во времени значения isin.

Поле short_isin — альтернативный символьный код контракта. Было введено для упрощения работы с данными SPECTRA мировым информагентствам.

Торговые операции

Заявки – общие возможности

Заявка — это приказ участника торгов в торговую систему на совершение сделки покупки или продажи инструмента по определенной цене. Заявка может быть адресной или безадресной.

Безадресные заявки — это обычный вид заявок, которые встают в очередь и видны всем пользователям, они обязательно участвуют в аукционе и сводятся со встречными заявками. Если у заявки есть контрпредложение с ценой лучшей или равной цене заявки, то такие заявки сводятся в сделку с ценой равной цене заявки в контрпредложении. Часть заявки, которая не свелась в сделку остается в виде заявки, с меньшим количеством инструмента.

Заявки бывают котировочные, встречные и заявки Fill-or-Kill. Котировочная заявка остается в очереди независимо от того, свелась ли она частично, или не свелась совсем. Встречная заявка, если она не свелась в сделку, удаляется из системы после проведения аукциона. При частичном сведении встречной заявки, несведенная ее часть также удаляется. Заявки Fill-or-Kill — это встречные заявки, которые предполагают только полное исполнение (сведение в сделку).

С точки зрения времени жизни заявки подразделяются на обычные и многодневные. У обычных заявок дата истечения заявки не задана, такие заявки (неисполненные) "живут" до конца текущей торговой сессии. Для многодневных заявок указывается дата истечения (диапазон дат — до года). Такие заявки автоматически перевыставляются в следующую торговую сессию, получая при этом новый номер и ссылку на номер самой первой выставленной заявки. При перевыставлении делаются проверки на наличие инструмента, клиента, достаточности средств. Заявки с истекшей датой автоматически снимаются после завершения торговой сессии.

Для нужд разработчиков в заявках предусмотрены два дополнительных атрибута:

  • поле comment — строка в 20 символов;

  • поле ext_id — четырехбайтовое число, куда предполагается вставлять идентификатор заявки в пользовательской системе.

Примечание: Уникальность значений дополнительных атрибутов заявки торговой системой SPECTRA не анализируется.

Информация о заявках содержится в таблицах orders_log потоков FORTS_TRADE_REPL и FORTS_ORDLOG_REPL.

Таблица orders_log — это история изменений заявок, на каждое изменение заявки добавляется отдельная запись. В таблице orders_log потока FORTS_TRADE_REPL содержится информация только по "своим" заявкам. Под своими заявками здесь понимается:

  • Для логина клиента — это заявки только этого клиента.

  • Для логина БФ или РФ — это все заявки клиентов этой БФ или РФ.

Данные по своим заявкам раскрываются полностью, включая служебные и пользовательские поля.

При желании пользователь может подписаться на получение таблицы orders_log потока FORTS_ORDLOG_REPL, в этом случае он будет получать всю историю изменений по всем заявкам в системе в анонимном виде.

Возможны следующие операции над заявками:

  • Добавление заявки.

  • Удаление заявки (по коду заявки в системе SPECTRA).

  • Передвижка заявки (операция MoveOrder). Передвижка заявки реализована как пара операций — удаление старой заявки и добавление новой заявки (с новым номером). Соответственно пользователю в ответном сообщении на операцию MoveOrder всегда возвращается номер новой заявки. Операции MoveOrder в таблице orders_log всегда соответствует как минимум две записи — удаление и добавление.

    Одной операцией MoveOrder можно одновременно передвинуть две заявки (полезно для маркет-мейкеров), для этого в методе MoveOrder предусмотрен набор параметров (order_id1, order_id2) для двух заявок. При этом сам метод является универсальным — если двигается одна заявка, заполняются параметры только для order_id1.

  • Массовое удаление своих заявок по заданным пользователем условиям. В качестве условий могут быть заданы:

    • Направление операции — покупка, продажа.

    • Тип заявки — адресная, безадресная.

    • Код клиента.

    • Код базового актива.

    • ext_id — идентификатор заявки в пользовательской системе.

    • Код инструмента.

    • Группа инструментов.

Адресные заявки (РПС, режим прямых сделок)

Адресная заявка — это заявка, адресованная конкретному пользователю. По сравнению с безадресными эти заявки имеют некоторые ограничения в возможности управления заявками и в выборе контрагента:

  • Выставление адресной заявки возможно только от логина брокерской фирмы. При выставлении адресной заявки в качестве контрагента можно указать только брокерскую фирму.

  • Для определения контрагента в заявке указывается код РТС компании-контрагента (поле broker_to). Не все брокерские фирмы имеют такой код, соответственно, этим фирмам нельзя выставить адресную заявку.

  • Для адресных заявок невозможна операция MoveOrder. Можно только вручную удалить и выставить новую заявку.

  • Адресные заявки сводятся в сделку при условии точного совпадения в них цены заявки, и значения поля match_ref в заявках. Возможно частичное сведение адресных заявок.

Сделки

Сделки в торговой системе заключаются после постановки заявок в случае, если цена в заявке одного направления по инструменту удовлетворяет цене заявки другого направления по тому же инструменту. Ценой сделки считается цена заявки, выставленной раньше. Сделки бывают адресные и безадресные. Многие атрибуты сделок эквивалентны атрибутам заявок. Сделки не изменяются и не удаляются из системы.

Информация о собственных сделках содержится в таблице user_deal потока FORTS_TRADE_REPL. Данные в таблице представлены в отфильтрованном виде: пользователь видит приватную информацию только по своей части сделки (покупателя или продавца). Если пользователем является БФ или РФ и сделка совершена ее клиентами, то пользователь видит приватную информацию по обеим частям сделки. Информация обо всех сделках в системе раздается всем пользователям в таблице deal потока FORTS_DEALS_REPL. Данные в таблице представлены в анонимном виде.

Помимо чисто торговых сделок в таблицах сделок содержатся дополнительные записи, которые в юридическом смысле сделками не являются, но отражают некоторые операции в системе, меняющие позиции участника. Данные сделки называются техническими. Отличить торговые сделки от технических можно по значению полей xstatus_sell и xstatus_buy таблицы user_deal потока FORTS_TRADE_REPL или по признаку nosystem в таблице deal потока FORTS_DEALS_REPL (подробнее — см. раздел Типы сделок, формируемые при исполнении и истечении фьючерсов и опционов).

Айсберг-заявки

Айсберг-заявка - это разновидность котировочной заявки, у которой определенная часть объема скрыта от рынка (т.е. в стакане), чтобы минимизировать влияние на рыночную цену крупных относительно рынка заявок. Айсберг-заявки появляются в стакане порциями (видимая часть). Когда видимая часть заявки полностью сводится в сделки, тогда "всплывает" очередная порция. Так может повторяться до тех пор, пока вся скрытая часть заявки не будет исчерпана.

Основные особенности айсберг-заявок:

  • Айсберг-заявки могут быть только безадресными. С точки зрения времени жизни айсберг-заявки могут быть обычными и многодневными.

  • При добавлении айсберг-заявки в ней дополнительно указываются параметры для расчета размера всплывающей части. Всплывающая часть состоит из постоянной составляющей (disclose_const_amount) и случайным образом рассчитываемой надбавки. Значение надбавки - это случайная величина с равномерным распределением из диапазона [-Round(disclose_const_amount * variance_amount/100, 0); Round(disclose_const_amount * variance_amount/100, 0)], где variance_amount - амплитуда отклонения от объема постоянной части. Соответственно, при добавлении айсберг-заявки в ней указываются два параметра:

    • disclose_const_amount - объем постоянной всплывающей части. Данный параметр не может быть больше объема всего айсберга, и меньше некого минимального значения, определяемого в зависимости от базового актива и типа инструмента (значения публикуются на сайте биржи).

    • variance_amount - величина случайного отклонения объема всплывающей части айсберг-заявки (опционально). Значение параметра также ограничено снизу нулем, сверху - числом, публикуемым на сайте. По умолчанию параметр не задан.

    Все указываемые параметры могут принимать только целые и положительны значения.

  • Гарантийное обеспечение при добавлении заявки блокируется под весь объем айсберг-заявки.

  • При изменении выставленной айсберг-заявки меняться может только цена, объем не доступен для изменения.

  • При удалении или изменении айсберг-заявки удаляется или меняется вся айсберг-заявка целиком, включая видимую часть.

  • В таблицах своих заявок и сделок айсберг-заявки и сделки по ним в полях xstatus и xstatus_sell / xstatus_buy помечаются специальным признаком "eiceberg" (0x800000000000).

Айсберг-заявки в информационных потоках системы

Айсберг образует два представления заявки: публичное - это видимая часть айсберг-заявки, и приватное - вся айсберг-заявка целиком, включая видимую часть. Соответственно, в таблицах своих заявок и сделок предусмотрены два набора полей (ID заявки, количество в операции, остаток, действие и др.):

  1. Публичные данные транслируются в полях с префиксом "public_":

    • Таблица orders_log:

      • public_order_id - Номер видимой части айсберг-заявки.

      • public_amount - Количество контрактов в операции c видимой частью айсберг-заявки.

      • public_amount_rest - Оставшееся количество контрактов в видимой части айсберг-заявки.

      • public_action - Действие с видимой частью айсберг-заявки.

    • Таблица user_deal:

      • public_order_id_buy - Номер видимой части айсберг-заявки покупателя.

      • public_order_id_sell - Номер видимой части айсберг-заявки продавца.

  2. Приватные данные транслируются в полях с префиксом "private_":

    • Таблица orders_log:

      • private_order_id - Идентификационный номер всей айсберг-заявки.

      • private_amount - Количество контрактов в операции со всей айсберг-заявкой.

      • private_amount_rest - Оставшееся количество контрактов во всей айсберг-заявке.

      • private_action - Действие в отношении всей айсберг-заявки.

    • Таблица user_deal:

      • private_order_id_buy - Идентификатор всей айсберг-заявки покупателя.

      • private_order_id_sell - Идентификатор всей айсберг-заявки продавца.

    Внимание! В существующих полях таблиц своих заявок и сделок: id_ord, xamount, xamount_rest, action, id_ord_buy и id_ord_sell - для айсбергов также транслируются данные по всей айсберг-заявке.

Ниже приведен пример записи в потоке выставления и матчинга айсберг-заявки с amount=1000 и видимой частью, равной 100 (без фильтрации):

public_ order_idpublic_ amountpublic_ amount_ restpublic_ actionpricemomentdirclient_ codeprivate_ order_idprivate_ amountprivate_ amount_ restprivate_ actioncomment
10110010013122019-01-11 11:55:581OD01123101100010001Add Iceberg
1021113122019-01-11 14:56:581PJ99888102111Add standard Order
10325025013102019-01-11 16:58:582FS010201032502501Add standard Order
101100023122019-01-11 16:58:581OD011231011009002Match Iceberg
10310015023102019-01-11 16:58:582FS010201031001502Match standard Order
1021023122019-01-11 16:58:581PJ99888102102Match standard Order
103114923102019-01-11 16:58:582FS0102010311492Match standard Order
10410010013122019-01-11 16:58:581OD011231011009003Pop-up Iceberg
104100023122019-01-11 16:58:581OD011231011008002Match Iceberg
1031004923102019-01-11 16:58:582FS01020103100492Match standard Order
10510010013122019-01-11 16:58:581OD011231011008003Pop-up Iceberg
105495123122019-01-11 16:58:581OD01123101497512Match Iceberg
10349023102019-01-11 16:58:582FS010201034902Match standard Order
10551003122019-01-11 17:00:581OD0112310175100Cancel Iceberg

Пояснения к таблице:

  • Клиент OD01123 выставляет айсберг-заявку объемом 1000 и видимой частью 100. В систему добавляется заявка (private_action=1) с идентификатором private_order_id=101, объемом айсберга private_amount=1000 и видимой частью public_amount=100.

  • Далее клиенты PJ99888 и FS01020 последовательно добавляют в систему свои обычные заявки, причем заявка клиента FS01020 - это заявка встречного направления, удовлетворяющая по цене двум предыдущим заявкам.

  • Происходит сведение видимой части айсберга (private_action=2) с заявкой встречного направления клиента FS01020, размер оставшегося айсберга private_amount_rest=900.

  • Далее сводятся обычные заявки клиентов PJ99888 и FS01020.

  • Всплывает следующая порция айсберг-заявки (private_action=3), которая тут же сводится (private_action=2) с оставшейся частью заявки клиента FS01020, размер оставшегося айсберга private_amount_rest=800.

  • Всплытие очередной порции айсберга (private_action=3) и сведение ее с остатками заявки клиента FS01020, размер оставшегося айсберга private_amount_rest=751.

  • Далее клиент OD01123 снял айсберг.

  • Обратите внимание, что при всплытии очередной порции айсберга, его видимая часть имеет номер (public_order_id), отличный от идентификатора самой айсберг-заявки (private_order_id).

Для обычных заявок приватные и публичные поля заполняются одинаковыми значениями и содержат привычные ID, количество в операции, остаток и код операции по заявке. Иллюстрация заполнения полей для примера, приведенного выше:

public_ order_idpublic_ amountpublic_ amount_ restpublic_ actionid_ordxamountxamount_ restactionprivate_ order_idprivate_ amountprivate_ amount_ restprivate_ actioncomment
1011001001101100010001101100010001Add Iceberg
102111102111102111Add Order
103250250110325025011032502501Add Order
1011000210110090021011009002Match Iceberg
103100150210310015021031001502Match Order
102102102102102102Match Order
103114921031149210311492Match Order
104100100110110090031011009003Pop-up Iceberg
1041000210110080021011008002Match Iceberg
103100492103100492103100492Match Order
105100100110110080031011008003Pop-up Iceberg
10549512101497512101497512Match Iceberg
103490210349021034902Match Order
10551001017510010175100Cancel Iceberg

В анонимных потоках заявок и сделок присутствуют только публичные поля, там всегда только видимая часть айсбергов.

Внимание! Обращаем внимание, что старые поля id_ord, xamount, xamount_rest, action, id_ord_buy и id_ord_sell оставлены в потоках своих заявок и сделок для сохранения обратной совместимости, и через два релиза будут удалены.

Операции над айсберг-заявками

Возможны следующие операции над айсберг-заявками

  • Добавление заявки (команда IcebergAddOrder).

  • Удаление заявки (команда IcebergDelOrder). Команда может отрабатывать как по public_order_id, так и по private_order_id.

  • Изменение заявки (команда IcebergMoveOrder). Команда может отрабатывать как по public_order_id, так и по private_order_id.

Внимание! Команды IcebergMoveOrder и IcebergDelOrder по public_order_id будут работать только, если видимая часть с таким номером еще есть в системе (не была сведена), в противном случае будет возвращена ошибка об отсутствии заявки с таким номером. Потому рекомендуем работать с айсберг-заявками по private_order_id.

Смена идентификаторов заявок при операциях над айсберг-заявкой

При выставлении айсберг-заявки у нее идентификатор видимой части (public_order_id) и всей айсберг-заявки (private_order_id) совпадает. При всплытии новой части ей присваивается новый идентификатор (public_order_id), идентификатор всей айсберг-заявки не меняется. При изменении айсберг-заявки (move) у нее выставляется новый private_order_id.

Для многодневных (GTD) айсберг-заявок при перевыставлении в вечерний клиринг выставляется новая айсберг-заявка с новым private_order_id, у которой в качестве исходной заявки (поле id_ord1) указывается private_order_id самой первой айсберг-заявки.

Пример изменения идентификаторов заявки при операциях над айсберг-заявкой:

Операцияpublic_order_idpublic_actionprivate_order_idprivate_actionid_ord1
Добавление10011001 
Сведение в сделку10021002 
Всплытие новой части10511003 
Перевыставление в ВК1106111061100
Передвижка (move)1106011060100
1200112001 

Пояснения к таблице:

  • Добавление - добавляется айсберг-заявка (private_action=1) с идентификатором private_order_id=100 и номером видимой части public_order_id=100.

  • Сведение в сделку - сведение видимой части айсберга (private_action=2) с заявкой встречного направления.

  • Всплытие новой части - при всплытии новой части (private_action=3) ей присваивается новый идентификатор public_order_id=105, идентификатор всей айсберг-заявки не меняется.

  • Перевыставление в ВК - при перевыставлении в вечерний клиринг выставляется новая айсберг-заявка (private_action=1) с новым private_order_id=1106, у которой в качестве исходной заявки (поле id_ord1=100) указывается private_order_id самой первой айсберг-заявки.

  • Передвижка (move) - при передвижке айсберг-заявки происходит удаление старой заявки (private_action=0) и добавление новой (private_action=1) с новым private_order_id=1200.

Значения "public_action":

  • 0 - Заявка удалена

  • 1 - Заявка добавлена

  • 2 - Заявка сведена в сделку

Значения "private_action":

  • 0 - Заявка удалена

  • 1 - Заявка добавлена

  • 2 - Заявка сведена в сделку

  • 3 - Всплытие новой видимой части

Поставка активов и экспирация опционов (**)

Поставка по фьючерсам (**)

В разрезе поставки фьючерсы бывают трех типов:

  • Расчетные фьючерсы (фьючерсы на индикаторы) — по итогам обращения перечисляются только денежные средства в размере разницы между стоимостью открытия позиции и текущей расчётной ценой актива. Поставка оформляется технической сделкой закрытия позиции, которая в таблице сделок помечается специальным признаком в полях xstatus_sell и xstatus_buy (подробнее — см. раздел Типы сделок, формируемые при исполнении и истечении фьючерсов и опционов).

  • Товарные фьючерсы (фьючерсы на реальные активы) — по итогам обращения перечисляются собственно активы и денежные средства. Поставка оформляется технической сделкой закрытия позиции, которая в таблице сделок помечается специальным признаком в полях xstatus_sell и xstatus_buy.

  • Фьючерсы на акции — при поставке позиция по фьючерсу превращается в позицию на рынке T+ в секторе "Основной рынок". Поставка оформляется технической сделкой закрытия позиции на срочном рынке и сделкой открытия позиции на рынке T+. Сделка закрытия позиции на срочном рынке в таблице сделок помечается специальным признаком в полях xstatus_sell и xstatus_buy. Сделка открытия позиции на рынке T+ создаётся в системе ASTS фондового рынка.

Типы сделок, формируемые при исполнении и истечении фьючерсов и опционов (**)

Признаки, выставляемые у заявок и сделок:

Наименование признакаБитовая маскаОписание
Типы рыночных заявок
eAuctionStatus0x1Котировочная заявка.
eOppositeStatus0x2Встречная заявка (IOC).
eFOKStatus0x80000Заявка Fill-or-Kill.
Типы клиринговых сделок
eNonQuoteStatus0x4Признак выставляется в адресных заявках и сделках, технических сделках, клиринговых сделках и сделках по ногам мультилегов.
eExecStatus0x20Сделка, возникшая в результате исполнения опциона. Флаг ставится для опционных сделок и для фьючерсных сделок, которые появились в результате экспирации опционов.
eExpirationStatus0x80Истечение времени жизни инструмента, фьючерса или опциона.
eDUFlowStatus0x800Сделка переноса ДУ между РФ.
eOptionLapse0x800000Сделка истечения опциона.
eClearingTrade0x2000000Техническая клиринговая сделка, сформированная вне торгов. Выставляется у всех клиринговых сделок.
eFuturesExecution0x40000000Сделка исполнения фьючерса.
Адресные заявки и сделки
eTransferClientPosition0x8Признак переноса позиций между БФ.
eAddressStatus0x4000000Признак адресной заявки или сделки.
eTransferSource0x200000000Признак источника переноса позиций между БФ.
Операции над связками
eREPOBackStatus0x4000Признак операции над второй ногой связки.
eStrategy0x8000000Признак заявки или сделки по связке. Ставится у операций над ногами связки.
Другое
eDontCheckMoney0x10Не проверять обеспечение по клиентскому уровню.
eDontCheckLimits0x200Не проверять лимиты по опционам.
eLastRecStatus0x1000Бит конца транзакции.
eOppositeOrderTailDeleteDueToCrossTrade0x20000000Удаление заявки при кросс-сделке.
eCODBulkDeleteOperationStatus0x100000000Удаление является результатом COD.
eUKSBulkDeleteOperationStatus0x2000000000Признак снятия заявок по команде UserKillSwitch
eLiqNettingRF0x10000000000Признак заявки или сделки, сформированной в процессе ликвидационного неттинга
eActiveSide0x20000000000Активная сторона в сделке. Заявка, приведшая к сделке при добавлении в стакан.
ePassiveSide0x40000000000Пассивная сторона в сделке. Заявка из стакана, участвующая в сделке.
eIceberg0x800000000000Признак айсберг-заявки, сделки по айсберг-заявке.
eOperatorInputSA0x1000000000000Признак заявки или сделки, сформированной при блокировке по Расченому коду
eDontFineRF0x80000000000000Признак невзимания штрафа за сделки урегулирования.

Типы сделок, формируемые при исполнении и истечении фьючерсов и опционов, перечислены в следующей таблице:

Тип операцииСделка закрытия позицииСделка открытия позицииДата и время, когда сделки появятся шлюзе
Исполнение поставочного фьючерса
  • В шлюзах будет ненулевой id, а в отчётах id будет равным 0.

  • Цена сделки округляется с точностью до минимального шага цены.

  • Техническая сделка юридически не является сделкой.

  • В шлюзах и отчётах в битовой маске: признаки eNonQuoteStatus, eExpirationStatus, eFuturesExecution, eClearingTrade.

НетУтром в день исполнения
Исполнение расчетного фьючерса
  • В шлюзах будет ненулевой id, а в отчётах id будет равным 0.

  • Цена сделки округляется с точностью до 5 знака после запятой.

  • Техническая сделка юридически не является сделкой.

  • В шлюзах и отчётах в битовой маске: признаки eNonQuoteStatus, eExpirationStatus, eFuturesExecution, eClearingTrade.

НетВечером в день исполнения фьючерса
Исполнение опциона
  • В шлюзах будет ненулевой id. В отчётах id будет равным 0 (сделка в вечернем клиринге), ненулевой id (сделка в промклиринге).

  • Цена сделки равна 0.

  • Техническая сделка юридически не является сделкой.

  • В шлюзах и отчётах в битовой маске: признаки eNonQuoteStatus, eExecStatus, eClearingTrade.

  • В шлюзах будет ненулевой id, а в отчётах id будет равным 0.

  • Цена сделки округляется с точностью до 5 знака после запятой.

  • Юридически является сделкой.

  • В шлюзах и отчётах в битовой маске: признаки eNonQuoteStatus, eExecStatus, eClearingTrade.

Сделки исполнения опционов генерируются:

  • В промклиринге

  • В вечернем клиринге

В зависимости от времени подачи заявки на исполнение опциона (генерация в ближайшем клиринге)

Истечение опциона
  • В шлюзах будет ненулевой id, а в отчётах id будет равным 0.

  • Цена сделки равна 0.

  • Техническая сделка юридически не является сделкой.

  • В шлюзах и отчётах в битовой маске: признаки eNonQuoteStatus, eExpirationStatus, eClearingTrade, eOptionLapse.

НетВечером в день исполнения фьючерса
Перенос позиции ОБФ
  • В шлюзах будет ненулевой id.

  • Цена сделки равна 0.

  • Техническая сделка юридически не является сделкой.

  • В шлюзах в битовой маске: признаки eNonQuoteStatus, eAddressStatus, eTransferClientPosition, eClearingTrade.

  • В шлюзах будет ненулевой id.

  • Цена сделки равна 0.

  • Техническая сделка юридически не является сделкой.

  • В шлюзах в битовой маске: признаки eNonQuoteStatus, eAddressStatus, eTransferClientPosition, eTransferSource, eClearingTrade.

Вечером

Торговые сделки отражаются следующим образом:

Операции в ходе торговИнформация по операциям
Сделка по фьючерсу на акции на основании адресной заявки
  • В шлюзах будет уникальный ненулевой id.

  • Цена сделки округляется с точностью до минимального шага цены.

  • Юридически является сделкой.

  • В шлюзах в битовой маске: признаки eNonQuoteStatus, eAddressStatus.

Сделка по фьючерсу на акции на основании безадресной заявки
  • В шлюзах будет уникальный ненулевой id.

  • Цена сделки округляется с точностью до минимального шага цены.

  • Юридически является сделкой.

  • В шлюзах в битовой маске: все биты выключены.

Сделка по опциону на фьючерсы на акции на основании адресной заявки
  • В шлюзах будет уникальный ненулевой id.

  • Цена сделки округляется с точностью до минимального шага цены.

  • Юридически является сделкой.

  • В шлюзах в битовой маске: признаки eNonQuoteStatus, eAddressStatus.

Сделка по опциону на фьючерсы на акции на основании безадресной заявки
  • В шлюзах будет уникальный ненулевой id.

  • Цена сделки округляется с точностью до минимального шага цены.

  • Юридически является сделкой.

  • В шлюзах в битовой маске: все биты выключены.

Сделка по переносу позиций
  • В шлюзах будет уникальный ненулевой id.

  • Цена сделки округляется с точностью до 5 знака после запятой.

  • Юридически не является сделкой.

  • В шлюзах в битовой маске: признаки eNonQuoteStatus, eAddressStatus, eTransferClientPosition, eTransferSource.

Техническая сделка на основании 1 части адресной парной заявки
  • В шлюзах будет уникальный ненулевой id.

  • Цена сделки округляется с точностью до 5 знака после запятой.

  • Юридически является сделкой.

  • В шлюзах в битовой маске: признаки eNonQuoteStatus, eAddressStatus, eStrategy.

Техническая сделка на основании 2 части адресной парной заявки
  • В шлюзах будет уникальный ненулевой id.

  • Цена сделки округляется с точностью до 5 знака после запятой.

  • Юридически является сделкой.

  • В шлюзах в битовой маске: признаки eNonQuoteStatus, eAddressStatus, eStrategy, eREPOBackStatus.

Техническая сделка на основании 1 части безадресной парной заявки
  • В шлюзах будет уникальный ненулевой id.

  • Цена сделки округляется с точностью до 5 знака после запятой.

  • Юридически является сделкой.

  • В шлюзах в битовой маске: признаки eNonQuoteStatus, eStrategy.

Техническая сделка на основании 2 части безадресной парной заявки
  • В шлюзах будет уникальный ненулевой id.

  • Цена сделки округляется с точностью до 5 знака после запятой.

  • Юридически является сделкой.

  • В шлюзах в битовой маске: признаки eNonQuoteStatus, eStrategy, eREPOBackStatus.

Расписание торгов и клиринга

Расписание торгов. Торговые сессии

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

Клиринг

Клиринг проводится по окончании торговой сессии. В процессе клиринга выполняется:

  • Расчет и фиксация расчетных цен инструментов по итогам всей торговой сессии

  • Расчет и перечисление вариационной маржи между участниками.

  • Удаление торговых инструментов, с истекшим сроком обращения, и добавление новых торговых инструментов.

  • Обновление информации о клиентах, брокерских и расчетных фирмах путем удаления старой информации и закачки новых данных из клиринга.

Особенности поведения разных сущностей в системе при назначении новой торговой сессии

Справочная и сессионная информация

При назначении новой торговой сессии данные из справочных таблиц, в которых существует привязка к номеру сессии закачиваются вновь из клиринга с указанием нового номера торговой сессии. В справочные таблицы, в которых нет привязки к номеру сессии, присылается набор изменений, то есть добавляются новые записи, появившиеся для новой торговой сессии, и удаляются записи для объектов, которых не должно быть в новой торговой сессии. Справочные таблицы — это таблицы, приходящие в потоке FORTS_REFDATA_REPL. Итогом всех этих изменений является добавление в таблицу session записи с новым номером сессии.

Деньги и позиции

При смене торговой сессии информация о средствах, лимитах и позициях клиентов обновляется в режиме применения обновлений, то есть меняются только те записи, в которых во время клиринга реально произошли изменения (потоки FORTS_PART_REPL и FORTS_POS_REPL).

Заявки и сделки

Основная торговая информация (потоки FORTS_TRADE_REPL, FORTS_ORDLOG_REPL и FORTS_DEALS_REPL) сохраняется, т.е. до ночи текущего дня в репликации доступны заявки и сделки, сделанные в текущую торговую сессию.

При смене торговой сессии происходит автоматическое перевыставление многодневных заявок, дата истечения которых еще не наступила, путем удаления старой заявки и добавления новой (с новым номером). Учитывая, что в реплику в таблицу orders_log информация об этом не предается, клиентская система должна быть устроена следующим образом. При обнаружении нового номера торговой сессии в таблице session, клиентская система должна "забыть" обо всех заявках, которые у нее сохранились в памяти до этого, и "слушать" реплику на предмет появления новых заявок, с указанием нового номера торговой сессии.

Инструменты

При смене торговой сессии происходит удаление торговых инструментов, с истекшим сроком обращения, и добавление новых торговых инструментов.

Потоки репликации

На границе торговых сессий потоки репликации могут быть штатным образом закрыты и переоткрыты заново серверами торговой системы, при этом по некоторым потокам может прийти уведомление о смене номера жизни схемы.

В настоящий момент, без смены номера жизни могут переоткрываться следующие потоки:

  • Поток с общими рыночными данными FORTS_COMMON_REPL.

  • Поток с текущими значениями вариационной маржи FORTS_VM_REPL.

Потоки, которые не переоткрываются:

Использование механизма синхрособытий для получения консистентного состояния данных в системе

Если для разрабатываемой системы критично иметь возможность отмечать совокупное консистентное состояние всех данных в торговой системе на некоторые «важные» моменты времени, то такая система должна использовать механизм синхрособытий. Для синхронизации доступны следующие состояния торговой системы:

  • Данные для новой торговой сессии закачены и рассчитаны

  • Начало основного клиринга

  • Данные после основного клиринга перерассчитаны

  • Раздвижка лимитов закончена

Для уведомления внешних систем о наступлении определенного состояния торговой системы, в потоки репликации добавляется новая таблица sys_events следующего формата:

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
event_idi8Уникальный идентификатор события
sess_idi4Идентификатор торговой сессии
event_typei4Тип события
messagec64Текстовое описание

Таблица добавляется в следующие потоки репликации:

Правила синхронизации данных следующие - при наступлении глобального события в торговой системе, после генерации всех данных по этому событию всеми подсистемами торговой системы, в таблицы sys_events вставляется запись с одним и тем же event_id, с event_type, соответствующим типу события:

  • 1 (session_data_ready) - закончена загрузка данных из клиринговой системы в торговую перед началом новой торговой сессии; события данного типа транслируются во всех потоках, где есть таблица sys_events, кроме потока FORTS_CLR_REPL

  • 3 (clearing_data_ready) - готовы данные после основного клиринга; транслируются только в потоке FORTS_CLR_REPL

  • 5 (clearing_started) - начало основного клиринга; события данного типа транслируются во всех потоках, где есть таблица sys_events, кроме потока FORTS_CLR_REPL

  • 6 (extension_of_limits_finished) - раздвижка лимитов закончена; события данного типа транслируются во всех потоках, где есть таблица sys_events, кроме потока FORTS_CLR_REPL

Внешняя система, может подписаться на получение таблицы событий во всех интересных ей потоках репликации и получить уведомление о том, когда данные готовы. Во всех потоках репликации записи в sys_events, относящиеся к одному событию в торговой системе будут иметь одинаковый event_id. В полях sess_id и message выдается расширенная информация – номер новой или текущей торговой сессии и текстовое сообщение. Обращаем особое внимание на тонкости:

  • Не гарантируется идентичность значений служебных полей replID, replRev в разных потоках репликации для одного и того же события. Ориентироваться стоит только на event_id.

  • Уведомление в sys_events приходит ПОСЛЕ всех данных, в частности это означает, что в режиме получения данных on-line внешняя система получит сначала сами новые данные, например, инструменты, назначенные в новую сессию или перенесенные в новую сессию многодневные заявки, а уже потом – уведомление в sys_events.

  • Не гарантируется консистентность данных при их раздаче в режиме snapshot. В следствие того, что протокол репликации не запоминает порядок получения записей между разными таблицами в потоке, данные раздаются в порядке описания таблиц в схеме, именно поэтому записи в режиме snapshot будут приходить не в том порядке, в каком они приходили в режиме on-line. Например, приход события session_data_ready в момент получения снапшота совершенно не означает, что данные готовы, учитывая вышесказанное, событие session_data_ready вполне может относиться к предыдущей торговой сессии. Поэтому использовать уведомления, приходящие в sys_events, для оценки консистентного состояния данных в системе можно только после перехода в режим on-line.

Управление рисками и лимитирование торговых операций

Гарантийное обеспечение

Реализованная в SPECTRA Система Управления Рисками (СУР) позволяет в максимальной степени снизить риск неисполнения обязательств и осуществлять непрерывную оценку уровня рыночного риска позиций каждого участника. Ядром системы является алгоритм расчёта гарантийного обеспечения (initial margin, далее ГО) под открытые позиции и заявки, учитываемые на позиционных счетах участников клиринга и участников торгов.

Одной из ключевых особенностей Системы Управления Рисками SPECTRA является использование онлайн расчёта обеспечения под заявки и позиции, производимого в рамках торговой транзакции. При таком подходе появление в системе необеспеченных заявок и сделок практически исключается, т.к. достаточность обеспечения проверяется до того, как заявка появляется в системе.

Другой важной особенностью Системы Управления Рисками SPECTRA является трехуровневая система позиционных счетов.

Расчетный код – счет верхнего уровня участника клиринга (Расчетной фирмы). Расчетный код является независимой единицей учета средств обеспечения, внесенных участником и(или) его клиентами, а также заявок, поданных в совокупности по всем счетам нижних уровней (суб-счетам), принадлежащих расчетному коду, сделок, заключенных на основании этих заявок, и результирующих позиций. Таким образом, позиция по любому инструменту, учитываемая по расчетному коду, является нетто-суммой всех позиций по этому инструменту, учитываемых на суб-счетах.

Для расчетного кода определяется величина ГО независимо от других расчётных кодов. Все настройки СУР SPECTRA для расчетных кодов контролируются центральным контрагентом (клиринговой организацией).

Во время клиринговой сессии по расчетному коду определяется размер требований и обязательств участника клиринга (вариационная маржа, комиссионные сборы и пр.). Для расчетного кода проверяется достаточность средств обеспечения для покрытия требований ГО.

Расчетный код в зависимости от того, чьи средства учитываются по нему, и за чей счет заключаются сделки, может быть одного из трех типов:

  • собственный – за счет участника клиринга;

  • клиентский – за счет непосредственных клиентов и клиентов 2-го уровня участника клиринга;

  • ДУ – за счет средств, переданных в доверительно управление участнику клиринга.

Для каждого участника клиринга (Расчетной фирмы) открывается как минимум два расчетных кода: собственный и клиентский.

Идентификатор расчетного кода в торговой системе SPECTRA – 5 цифр.

Брокерская фирма – суб-счет расчетного кода. Счет следующего уровня, открываемый по заявлению участника клиринга (Расчетной фирмы). Брокерская фирма принадлежит одному и только одному расчетному коду. Привязка брокерской фирмы к расчетному коду может быть изменена на основании заявления участника клиринга в клиринговую организацию. Для того, чтобы расчетный код поднимался в торговую систему SPECTRA, и по нему был бы возможен учет заявок и позиций, к расчетному коду должна быть привязана хотя бы одна брокерская фирма.

Расчет величины ГО по брокерской фирме производится по умолчанию в режиме полунетто (margin_type =3 для метода ChangeBFParametersNextSession) относительно риска позиций, учитываемых на клиентских разделах этой брокерской фирмы. Для брокерской фирмы возможен расчет величины ГО в режиме нетто (margin_type =4 для метода ChangeBFParametersNextSession). В этом режиме по брокерской фирме для каждого инструмента рассчитывается позиция как нетто-сумма позиций по этому инструменту на всех разделах брокерской фирмы, а также учитываются все заявки в совокупности, поданные по разделам этой брокерской фирмы; по рассчитанным таким образом нетто-позициям и совокупности всех заявок происходит определение величины ГО по брокерской фирме.

Все параметры маржирования брокерской фирмы могут настраиваться участником клиринга (Расчетной фирмой) с помощью метода ChangeBFParametersNextSession.

Специальная Брокерская фирма (СпецБФ) – специальный суб-счет расчетного кода, аналогичный обычным брокерским фирмам, и предназначенный для учета средств обеспечения, внесенных на расчетный код участником и(или) его клиентами, и не учитываемых на разделах обычных брокерских фирм.

Также у каждой СпецБФ существует один раздел, называемый ликвидационным разделом СпецБФ. Позиции на ликвидационном разделе могут создаваться только на основании сделок, заключаемых клиринговым центром для урегулирования неисполненных участником клиринга обязательств (например, Маржинального требования по расчетному коду). Участник клиринга (Расчетная фирма) не может подавать заявки с указанием ликвидационного раздела за исключением заявок, направленных на уменьшение открытой на разделе позиции. Также участник клиринга (Расчетная фирма) может переносить позицию (метод TransferClientPosition) с ликвидационного раздела на разделы других брокерских фирм.

Клиентский раздел – суб-счет брокерской фирмы. Счет нижнего уровня, регистрируемый по заявке участника. Является первичным счетом, на котором учитываются заявки, поданные участником и(или) клиентом, заключенные в результате них сделки, и открытые позиции – именно клиентский раздел (код клиента) указывается в транзакциях объявления заявки. По заявкам и позициям, учитываемым на клиентском разделе, определяется величина ГО. Параметры маржирования клиентского раздела могут настраиваться с помощью методов ChangeClientParameters, ChangeClientParametersNextSession и ChangeBFClientDefaultParametersNextSession.

Торговые лимиты

Торговые лимиты ограничивают возможность участника и(или) его клиентов объявлять заявки и открывать позиции на позиционных счетах.

Торговый лимит по расчетному коду определяется, исходя из суммарной оценочной стоимости средств обеспечения, учитываемых по расчетному коду, т.е. совокупной стоимости средств обеспечения, учитываемых по все суб-счетам расчетного кода. В качестве средств обеспечения используется казахстанский тенге.

Изменить торговый лимит на расчетном коде можно только путем ввода, вывода или перевода средств обеспечения. Данные операции совершаются на основании поручений, подаваемых участником в клиринговую организацию, расчетный депозитарий посредством соответствующих систем электронного документооборота, а также в другие расчетные организации (в случае внесения средств обеспечения)..

Торговые лимиты используются для резервирования отрицательной вариационной маржи, списания сборов, списания/зачисления премии, резервирования ГО.

Торговый лимит по брокерской фирме не зависит от размера средств обеспечения и устанавливается с помощью метода ChangeBFLimit. Также торговый лимит брокерской фирмы меняется на размер прибыли или убытка, определяемого во время вечернего клиринга (вариационная маржа и сборы).

Торговый лимит на клиентском разделе не зависит от размера средств обеспечения, учитываемых на этом разделе. Для управления торговыми лимитами на клиентских разделах используется метод ChangeClientMoney. Он обеспечивает следующие возможности:

  • Установка/изменение/удаление торговых лимитов.

  • Автоматический учет результатов торгов клиента в лимитах в следующей торговой сессии.

В общем случае заявка может быть выставлена только при условии, что у всех трех уровней (клиентского раздела, брокерской фирмы и расчетного кода) торговые лимиты достаточны для покрытия требуемой величины ГО. Для брокерской фирмы и клиентского раздела проверку достаточности торгового лимита можно отключить с помощью методов ChangeBFParametersNextSession и ChangeClientMoney соответственно.

Для расчетного кода отключить проверку достаточности торгового лимита (средств обеспечения) невозможно.

Ограничения на торговые операции и открытие позиций для клиентов

Система SPECTRA предоставляет возможность вводить дополнительные ограничения на проведение торговых операций клиентом, которые в системе формулируются как запреты. Можно по конкретному клиенту (по всем клиентам), инструменту (по всем инструментам) или базовому активу (по всем БА) запретить открывать позиции и выставлять заявки. Для выполнения таких действий в шлюзе предусмотрен метод FutChangeClientProhibit .

Кроме этого в системе предусмотрено автоматическое выставление запретов на открытие позиций или выставление заявок при обнаружении большого отрицательного торгового лимита. Для управления запретами используется следующий набор параметров:

  • Pr_state - флаг автоматического выставления запретов; 0 - не выставлять запреты, 1 - выставлять запреты.

  • Pr_type - тип запрета; 0 - запрет на открытие позиций, 1 - запрет на выставление заявок.

  • Pr_coeff - повышающий коэффициент; положительное дробное число с точностью до двух знаков после запятой.

  • Del_ord - флаг автоматического снятия активных заявок при установке запрета; 0 - не снимать заявки, 1 - снимать заявки.

Параметры устанавливаются участником клиринга на уровне БФ. Предусмотрено два набора параметров: применяемых для клиентов БФ и применяемых для всей БФ в совокупности.

Установка параметров производится на основании поручений участника клиринга, поданных в клиринговую организацию посредством соответствующих систем электронного документооборота. Применение параметров происходит в ближайший клиринг, при условии что поручение подано не позднее 1 часа до начала клиринга.

Установка запретов. После раздвижки планок вечернего и промежуточного клиринга автоматически выставляется запрет по семизначному клиентскому разделу или БФ, если одновременно выполняются условия:

, где

  • Limits_set – флаг проверки клиентского лимита;

  • Trade_limit – торговый лимит, включающий в себя деньги и залоги с учетом коэффициента ликвидности;

  • FreeMoney – свободные средства по клиентскому разделу или БФ.

Тип запрета определяется параметром Pr_type. Если параметр Del_ord=1, то при выставлении запрета автоматически снимаются все активные заявки. Проверки на уровне БФ и клиента осуществляются независимо.

Снятие запретов. Установленные запреты не могут быть напрямую сняты брокером, они снимаются автоматически при устранении причин к ним приведших. Каждую минуту производится проверка, после которой запреты снимаются, если соблюдено одно из условий:

Пример. При запрете на открытие позиций клиент может сам снять заявки/закрыть позицию, вызывающую увеличенное требование к гарантийному обеспечению. Максимум через минуту после этого запрет будет снят автоматически.

Снятие запретов не работает во время ночных операций, даже если в это время ТС доступна для изменения лимитов.

По умолчанию для всех БФ автоматическое выставление запретов отключено (Pr_state=0).

Перенос позиций (обязательств)

В рамках одной Расчетной Фирмы возможен перенос позиций с одной клиента Брокерской Фирмы на другого клиента Брокерской Фирмы.

Перенос позиций с одного кода раздела учета позиций на другой осуществляется путем подачи Участником клиринга в Торговую систему транзакции TransferClientPosition.

Проверки возможности подачи транзакции на перевод позиций — такие же, как при подаче заявки. Дополнительно проверяется, что в момент подачи транзакции объём переносимой позиции не превышает объёма соответствующей позиции, учитываемой на разделе-источнике; также при переводе позиций с одного клиентского раздела регистра учета позиций на другой УИН, закрепленные за такими разделами регистра учета позиций, должны совпадать, в том числе по разделам ОБФ.

Технически перевод позиций оформляется как сделка по покупке (или продаже) с раздела-источника и продаже (покупке) по разделу-приемнику, и юридически сделкой не является (подробнее — см. раздел Типы сделок, формируемые при исполнении и истечении инструментов).

Приостановка торгов для расширения лимита колебаний цен сделок

С технической точки зрения при приостановке торгов в системе SPECTRA производятся следующие действия:

  • При наступлении условий для приостановки торгов по какому-либо базовому активу, торги по этому базовому активу приостанавливаются.

  • Администраторами торгов рассчитываются новые расширенные лимиты колебаний цен.

  • Производится пересчет обеспечения по всем позициям по этому базовому активу (при расширении лимитов обеспечение увеличивается).

  • После завершения расчета обеспечения торги еще некоторое время не возобновляются, чтобы дать возможность участникам удалить заявки.

  • Возобновление торгов в нормальном режиме.

Данные действия сопровождаются рассылкой администраторами торгов соответствующих уведомлений (см. таблицу sys_messages потока FORTS_REFDATA_REPL):

  • Предупреждение о том, что если цены не изменятся, то через определенное время произойдет приостановка торгов по такому-то инструменту.

  • Уведомление о том, что приостановка торгов реально произведена.

  • Уведомление о том, что обеспечение пересчитано, можно удалять заявки.

  • Уведомление о возобновлении торгов.

Информирование участников о прогнозируемых значениях риск-параметров

В системе реализован сервис информирования участников о прогнозируемых значениях риск-параметров (сервис ForecastIM). Сервис с заданной периодичностью производит расчет обеспечения, которое могло бы быть в случае раздвижки лимитов, и транслирует эти данные участникам. Алгоритм работы сервиса:

  • С периодичностью раз в минуту анализируется состояние рынка по инструментам и ищутся те, по которым через некоторое время возможна раздвижка лимитов (нахождение на планке более X минут).

  • Если такие инструменты есть, производится перерасчет обеспечения по клиентским портфелям. Риск-параметры по инструментам на планке устанавливаются в соответствии с предполагаемой раздвижкой.

  • Рассчитанные деньги транслируются в потоке реплики FORTS_FORECASTIM_REPL, таблица part_sa_forecast.

  • Если состояние рынка изменилось, и потенциальная угроза раздвижки исчезла, или раздвижка состоялась, расчет и трансляция прогнозируемых значений риск-параметров прекращаются, а присланные ранее данные считаются невалидными (рассылка CLEARDELETED с максимально возможными ревиженами по таблице с прогнозными значениями).

Если в течение одной торговой сессии по инструменту уже дважды проводилась раздвижка лимитов, то в эту торговую сессию расчет и трансляция прогнозных значений риск-параметров по инструменту больше не выполняется.

Блокировка брокерской части клиентского сбора

Система SPECTRA предоставляет возможность блокировки брокерской комиссии на стороне биржи. Заблокированная комиссия учитывается на клиентском разделе, уменьшая свободные средства клиента (money_free) на величину заблокированной части. Блокировка осуществляется в течение торговой сессии, в вечерний клиринг блокировка сбрасывается.

Брокерская комиссия определяется следующим образом:

, где

  • N – количество контрактов в сделке;

  • lower_fee – минимально возможная сумма брокерской комиссии за один контракт;

  • upper_fee – максимально возможная сумма брокерской комиссии за один контракт;

  • multiplier – мультипликатор к сумме биржевого и клирингового сбора;

  • ex_fee – сбор (клиринговый + биржевой) за сделку с учетом скальперских скидок;

  • additive – постоянная добавка за один контракт.

Параметры lower_fee, upper_fee, multiplier и additive задаются брокером с помощью команды SetBrokerFeeParamNextSession. Параметры могут устанавливать как для отдельного клиента, так и для всех клиентов БФ одновременно. Применение заданных параметров происходит в следующую торговую сессию. Заданные пользователем параметры транслируются в шлюзе в потоке FORTS_BROKER_FEE_PARAMS_REPL.

Например, брокер всегда берет половину биржевой комиссии - тогда multiplier = 0.5, additive = 0, lower_fee = 0.01, upper_fee = inf. Или брокер берет всегда 2 рубля за любой контракт - тогда multiplier = 0, additive = 2, lower_fee = 2, upper_fee = 2.

Брокерская комиссия транслируется в шлюзе в таблице part потока FORTS_PART_REPL (суммарно по клиенту), а также в потоке FORTS_BROKER_FEE_REPL (в разрезе сделок).

Поддержка отрицательных цен в SPECTRA (**)

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

  • Режим, при котором цены фьючерсов и страйки опционов не ограничены - в этом режиме в системе допустимы отрицательные и нулевые цены фьючерсов и страйки опционов, а для ценообразования опционов, расчета волатильности и рисков используется модель Башелье, либо скорректированная модель Блэка-Шоулза, учитывающая только внутреннюю стоимость опциона в отрицательном диапазоне.

  • Режим, в котором цены фьючерсов и страйков ограничены положительными значениями - в этом режиме отрицательные цены в ходе и в результате торгов не могут образоваться, а для ценообразования опционов используется модель Блэка-Шоулза (либо Башелье в качестве альтернативы). Однако, в таком режиме возможно ручное указание отрицательной цены исполнения и/или индикативной текущей рыночной цены (см. ниже), в случае соответствующего решения ЦК (KASE). При этом все равно сохраняется ограничение на положительные значения торговых цен фьючерсов и страйков опционов.

Режим работы и модель ценообразования опционов задаются на уровне БА (базового контракта) и действуют на все инструменты данного БА. Переключение режимов и модели ценообразования опционов возможно во время клиринговой сессии. Для задания режима и риск-модели используются следующие параметры базового контракта:

  • negative_prices - признак ограничения отрицательных цен: 1 – цены фьючерсов и страйки не ограничены; 0 - цены фьючерсов и страйки ограничены положительными значениями.

  • option_model - модель ценообразования опционов: 1 – модель Башелье; 0 - модель Блэка-Шоулза.

Значения параметров транслируются в шлюзе в потоке FORTS_REFDATA_REPL в таблицах fut_vcb/opt_vcb.

В режиме запрета отрицательный цен (negative_prices=0), в случае соответствующего решения ЦК (KASE), допускается устанавливать в ручном режиме индикативную текущую рыночную цену, транслируемую в потоке FORTS_COMMON_REPL. От этой цены зависит индикативная текущая вариационная маржа, транслируемая в потоке FORTS_VM_REPL, и текущая теоретическая цена опциона, транслируемая в потоке FORTS_VOLAT_REPL. Для индикации того, что текущая рыночная цена для фьючерса установлена в ручном режиме, используется параметр:

  • price_assigned_by_admin - признак установки текущей рыночной цены Администратором торгов.

Поля таблиц торгового интерфейса, где в режиме отрицательных цен (negative_prices=1) возможно появление отрицательных значений:

ПотокТаблицаПолеОписание
FORTS_TRADE_REPLorders_logpriceЦена в заявке
FORTS_TRADE_REPLorders_logdeal_priceЦена заключенной сделки
FORTS_TRADE_REPLuser_dealpriceЦена заключенной сделки
FORTS_ORDLOG_REPLorders_logpriceЦена в заявке
FORTS_ORDLOG_REPLorders_logdeal_priceЦена заключенной сделки
FORTS_USERORDERBOOK_REPLorderspriceЦена в заявке
FORTS_ORDBOOK_REPLorderspriceЦена в заявке
FORTS_COMMON_REPLcommonbest_buyЦена лучшей заявки на покупку
FORTS_COMMON_REPLcommonbest_sellЦена лучшей заявки на продажу
FORTS_COMMON_REPLcommonopen_priceЦена открытия
FORTS_COMMON_REPLcommonclose_priceЦена закрытия
FORTS_COMMON_REPLcommonpriceЦена последней сделки
FORTS_COMMON_REPLcommonmin_priceМинимальная цена
FORTS_COMMON_REPLcommonmax_priceМаксимальная цена
FORTS_COMMON_REPLcommonavr_priceСредневзвешенная цена
FORTS_COMMON_REPLcommonsettlement_price_openРасчетная цена предыдущей сессии
FORTS_COMMON_REPLcommonmarket_priceТекущая рыночная цена
Потоки агрегированных стаканов FORTS_AGGRXXorders_aggrpriceЦеновой уровень
FORTS_POS_REPLpositionwapriceУчетная цена позиции
FORTS_POS_REPLposition_sawapriceУчетная цена позиции
FORTS_REFDATA_REPLfut_sess_contentslimit_upВерхний лимит цены
FORTS_REFDATA_REPLfut_sess_contentslimit_downНижний лимит цены
FORTS_REFDATA_REPLfut_sess_contentssettlement_price_openРасчетная цена на начало сессии
FORTS_REFDATA_REPLfut_sess_contentssettlement_priceРасчетная цена после последнего клиринга
FORTS_REFDATA_REPLfut_instrumentssettlement_price_openРасчетная цена на начало сессии
FORTS_REFDATA_REPLfut_instrumentssettlement_priceРасчетная цена после последнего клиринга
FORTS_REFDATA_REPLfut_rejected_orderspriceЦена в заявке
FORTS_REFDATA_REPLopt_sess_contentsstrikeЦена исполнения
FORTS_MM_REPLfut_MM_infoprice_edge_sellЦена худшей заявки на продажу, вошедшей в спред
FORTS_MM_REPLfut_MM_infoprice_edge_buyЦена худшей заявки на покупку, вошедшей в спред
FORTS_CLR_REPLfut_sess_settlsettl_priceРасчетная цена
FORTS_INFO_REPLfutures_paramsrisk_range_centerЦентр расчета риска
FORTS_INFO_REPLfutures_paramssettlement_priceРасчетная цена последнего клиринга
FORTS_INFO_REPLoptions_paramsstrikeЦена исполнения

В режиме положительных цен (negative_prices=0), в случае соответствующего решения ЦК (KASE), возможно:

  • использование отрицательной цены исполнения фьючерса;

  • трансляция отрицательного значения в качестве индикативной текущей рыночной цены, установленной Администратором торгов (price_assigned_by_admin = 1) в поле market_price.

Отрицательные и нулевые значения в торговых кодах инструментов отображаются следующим образом:

Пример кодов со страйком "-10":

  • Короткий код контракта (short_isin): "BR-10BF0".

  • Полный код контракта (isin): "BR-7.20M250620СA-10".

Пример кодов со страйком "0":

  • Короткий код контракта (short_isin): "BR0BF0".

  • Полный код контракта (isin): "BR-7.20M250620СA0".

Клиентские SMA-логины (спонсируемый доступ)

Спонсируемый доступ (Sponsored Market Access - SMA) – это способ предоставления клиентам участников торгов технического доступа к торгово-клиринговой системе срочного рынка, с помощью которого клиент может подавать поручения участнику торгов ("спонсирующей" фирме) для исполнения на рынке путем постановки заявок напрямую в ТС под контролем и ответственностью участника.

Доступ к ТС клиенту участника предоставляется путем выделения ему персонального идентификатора - SMA-логина, с которого напрямую можно выставлять заявки. Доступ возможен через Plaza2, FIX и TWIME шлюзы.

Для контроля операций, совершаемых со SMA-логина, SMA-логин привязывается к логину участника (MASTER-логину). MASTER-логин – идентификатор участника, с помощью которого участник подсоединяется к ТС, выставляет заявки, контролирует исполнение заявок. Участник вправе использовать один и тот же MASTER-логин для более чем одного SMA-логина. SMA-логин также может быть привязан к нескольким MASTER-логинам. Список логинов транслируется в шлюзе в таблице user потока FORTS_REFDATA_REPL. В этой таблице SMA-логин можно отличить по 1 в третьем бите битовой маски sma_flags. Список связок "MASTER-логин" - "SMA-логин" транслируется в шлюзе в таблице sma_master потока FORTS_REFDATA_REPL.

Для получения SMA-логина участник торгов подает в Клиентский центр Биржи заявление, в котором указывает логин, с помощью которого будет производиться контроль операций, совершаемых со SMA-логина (MASTER-логин).

При организации подачи заявок участником торгов по поручениям клиентов, биржа предоставляет участникам соответствующие средства управления риском, чтобы не допустить попадания ошибочных заявок в торговую систему:

  • Pre-Trade контроль - дополнительные настройки помимо существующей системы проверок при постановке заявок.

  • Cancel On Drop-Copy Disconnect - сервис, гарантирующий, что заявки SMA-логина присутствуют в ТС только при подключенном (активном) MASTER-логине. Все выставленные SMA-логином заявки имеют ссылку на этот связанный с ним MASTER-логин (поле aspref таблиц orders_log и multileg_orders_log).

  • UserKillSwitch - принудительная деактивация SMA-логина участником.

Pre-Trade контроль представляет собой набор дополнительных ограничений/проверок, накладываемых/выполняемых при постановке заявок от SMA-логина. Проверки могут назначаться в разрезе SMA-логинов, инструментов или кодов клиентов. Под инструментом здесь понимается комбинация:

  • <Базовый актив>: <Тип дериватива>, где <Тип дериватива> = {Фьючерс, Опцион, Календарный Спред} - Инструмент*

  • <Базовый актив>: <Тип дериватива>, где <Тип дериватива> = {Фьючерс, Опцион} - Инструмент**

Предусмотрены следующие проверки:

Номер проверкиПроверкаПривязкаЕдиница измеренияПрименяются
1Отклонение цены в заявке от текущей ценыSMA-логин или SMA-логин х Инструмент**ПроцентыСразу
2Максимальный объем заявки в контрактахSMA-логин или SMA-логин х Инструмент*Количество контрактовСразу
3Запретить адресный режимSMA-логинДа/НетСразу
4Максимальный объем заявки в тенгеSMA-логин или SMA-логин х Инструмент*KZTСразу
5Максимальная сумма заявок за торговый день (брутто)SMA-логин или SMA-логин х Инструмент*KZTСразу
6Максимальная позиция в контрактах (long)SMA-логин x Инструмент** x Код клиентаКоличество контрактовСразу
7Максимальная позиция в контрактах (short)SMA-логин x Инструмент** x Код клиентаКоличество контрактовСразу

Для назначения/отмены проверок используются шлюзовые команды SetSmaPreTradeCheck и DelSmaPreTradeCheck соответственно. Информация о назначенных проверках доступна в шлюзе в таблице sma_pre_trade_check потока FORTS_REFDATA_REPL.

Cancel On Drop-Copy Disconnect - сервис, гарантирующий, что заявки SMA-логина присутствуют в ТС только при подключенном (активном) MASTER-логине.

При постановке заявки со SMA-логина, производится проверка наличия хотя-бы одного активного MASTER-логина, к которому привязан данный SMA-логин, если таких MASTER-логинов нет, то заявка отвергается с выдачей соответствующей ошибки. Если активный MASTER-логин есть, заявка обрабатывается, а в поле aspref записывается ссылка (id-логина) на этот MASTER-логин.

Сервис в режиме реального времени (по технологии, аналогичной Cancel On Disconnect) отслеживает состояние MASTER-логинов на транзакционном уровне, и при отсутствии транзакционной активности деактивирует логин. Если в результате таких действий у SMA-логина не остается ни одного подключенного MASTER-логина, то все его активные заявки автоматически снимаются.

Активные заявки SMA-логинов, у которых включен режим Cancel On Drop-Copy Disconnect, также автоматически снимаются в конце торгового дня в технологический перерыв.

Сервис Cancel On Drop-Copy Disconnect является настраиваемой опцией, для его подключения следует обратиться в Клиентский центр Биржи.

Команда UserKillSwitch позволяет участнику самому деактивировать (активировать) SMA-логин с опциональной возможностью автоматического снятия всех его активных заявок. Деактивированный SMA-логин не может выполнять торговые операции. Деактивация SMA-логина сохраняется до конца торгового дня и восстанавливается при рестартах ТС в технологический перерыв или при сбоях.

Сделки урегулирования

Сделки урегулирования заключает НКЦ от имени и по расчетному коду (РК) участника клиринга.

Если участник клиринга не выполнил обязательства в установленный срок, то НКЦ считает такого участника Недобросовестным участником клиринга (НУК). НКЦ от имени и по РК НУК заключает сделки, приводящие к сокращению позиции и выполнению обязательств. Цель сделок – устранить недостаточность обеспечения по обязательствам, с наступившей и не наступившей датой исполнения. Более подробно процедура описана в Правилах Клиринга, статья "Порядок возникновения и исполнения Маржинальных требований".

НКЦ заключает сделки урегулирования от имени и по предварительно согласованному РК Добросовестного участника клиринга (ДУК), в случае если сделка урегулирования с НУК не может быть заключена "в стакане". Более подробно процедура описана в Правилах Клиринга, статья "Порядок заключения закрывающих и/или балансирующих сделок". По сделкам с ДУК комиссии (штрафы) не взимаются.

Причины сделок урегулирования

Признак сделок урегулирования транслируется в шлюзе в таблицах своих заявок orders_log и multileg_orders_log (поле reason) и сделок user_deal и user_multileg_deal (поля reason_buy и reason_sell), а также в отчетах f04, f04cl, o04, o04cl.

Значение поля reason/ reason_buy/ reason_sellПричинаУчастник
0Обычная сделка.УК
4Балансирующие Срочные контракты, заключенные с Добросовестным участником клиринга без подачи заявок.ДУК
6Закрывающие Срочные контракты, заключенные в рамках процедуры кросс-дефолта.НУК
7Закрывающие Срочные контракты, заключенные в связи с неисполнением Маржинального требования.НУК
8Закрывающие Срочные контракты, заключенные в связи с неисполнением Обязательства по поставке по поставочным Срочным контрактам на драгоценные металлы.НУК
100ИноеНУК

В отчетах f04, f04cl, o04, o04cl причина сделок урегулирования указана в поле Type.

Отчеты о сделках с фьючерсами f04, f04cl:

  • "3" - для балансирующих Срочных контрактов, заключенных с Добросовестными участниками клиринга без подачи заявок;

  • "21" - для закрывающих Срочных контрактов, заключенных в рамках процедуры кросс-дефолта;

  • "22" - для закрывающих Срочных контрактов, заключенных в связи с неисполнением Маржинального требования;

  • "23" - для закрывающих Срочных контрактов, заключенных в связи с неисполнением Обязательства по поставке по поставочным Срочным контрактам на драгоценные металлы.

Отчеты о заключенных опционных контрактах o04, o04cl:

  • "3" - для балансирующих Срочных контрактов, заключенных с Добросовестными участниками клиринга без подачи заявок;

  • "6" - для закрывающих Срочных контрактов, заключенных в рамках процедуры кросс-дефолта;

  • "7" - для закрывающих Срочных контрактов, заключенных в связи с неисполнением Маржинального требования.

Штрафы и комиссии

За сделки урегулирования с Недобросовестных участников клиринга вместо комиссии взимается штраф. Сумма штрафа за заключение закрывающих Срочных контрактов равна сумме 5 биржевых сборов, установленных ПАО Московская Биржа, и 5 комиссионных вознаграждений за клиринг от суммы закрывающих Срочных контрактов, без применения скальперской скидки. Штраф рассчитывается по каждой сделке урегулирования и учитывается по 7-значному разделу участника клиринга, который указан в сделке урегулирования.

Информация о штрафах транслируется в шлюзе в поле penalty в таблице part потока FORTS_PART_REPL (суммарно по 7-значному разделу), а также в таблице penalty потока FORTS_FEE_REPL (в разрезе сделок).

Штрафы и комиссии за заключение сделок урегулирования от имени Добросовестного участника клиринга (балансирующие Срочные контракты, заключенные с Добросовестным участником клиринга без подачи заявок) с ДУК не взимаются.

Штрафы за заключение закрывающих Срочных контрактов с НУК не взимаются:

  • Если в отношении участника клиринга проводится процедура Ликвидационного неттинга.

  • Если участник клиринга находится в статусе "Приостановка клирингового обслуживания участника клиринга по причине аннулирования лицензии на осуществление профессиональной деятельности на рынке ценных бумаг".

Информация по данным блокировкам транслируется в шлюзе в таблице clearing_members потока FORTS_REFDATA_REPL.

Сделки урегулирования, по которым штрафы не взимались по причине аннулирования лицензии на осуществление профессиональной деятельности на рынке ценных бумаг, помечаются в таблицах сделок в полях xstatus_sell и xstatus_buy специальным признаком:

  • eDontFineRF (0x80000000000000) - Признак невзимания штрафа за сделки урегулирования.

Информация о сумме штрафа включается в виде нового типа платежа в отчеты pay в дату списания. Штрафы учитываются в отчете в состоянии текущей денежной позиции. Отчеты:

  • payXXYY.csv;

  • payclXXYY.csv.

Описание торгового шлюза

Состав, установка и настройка ПО шлюз SPECTRA Plaza-2

Состав и архитектура шлюза

Шлюз SPECTRA Plaza-2 включает в себя следующие программные компоненты:

  • Модуль P2MQRouter. Данный модуль обеспечивает:

    • Установку TCP-соединений с серверами биржи.

      Стандартно шлюз SPECTRA Plaza-2 использует четыре TCP-соединения с серверами биржи: одно исходящее default connection и три исходящих direct connection. Такое построение является основной штатной конфигурацией при подключении к серверной ферме биржи. Конфигурация соединений при подключении через сервер доступа брокера может отличаться, в этом случае требуется запрашивать конкретную конфигурацию у владельца сервера.

    • Прием/отправку P2-сообщений.

    • Шифрацию информации, отправляемую участником, и дешифрацию информации, принимаемую от биржи.

    • Аутентификацию участника в сети биржи.

  • Шлюзовая библиотека cgate.

    Библиотека является официальными программным интерфейсом, предоставляемым участникам торгов, клиентам участников торгов, а также компаниям-разработчикам для создания программного обеспечения. Данный интерфейс обеспечивает возможность создания и отсылки бизнес-сообщений в ТС, а также получения рыночной информации из нее (репликация данных). Библиотека выпускается для 32х разрядных и 64х разрядных систем Windows, а также для ОС Linux.

  • Системные библиотеки Plaza-2.

  • Комплект средств разработки: дополнительные утилиты и командные файлы, документация, тестовые примеры.

Рисунок 1. Шлюз SPECTRA Plaza-2. Архитектура

Шлюз SPECTRA Plaza-2. Архитектура

Требования к аппаратной и программной инфраструктурам

Аппаратные требования

Требования к аппаратному обеспечению варьируются в зависимости от способа использования шлюза Plaza-2.

Минимальные требования к компьютеру для индивидуального логина с обработкой данных в памяти без сохранения на диск:

  • Процессор Core 2 duo с частотой 1 ГГц или выше

  • Оперативная память не меньше 2 Гб, для 64-битных ОС 4Гб

Минимальные требования к компьютеру для брокерского логина с обработкой данных в памяти без сохранения на диск:

  • 2-х процессорный сервер на Intel Xeon как минимум серии 53xx или аналогичных процессорах от AMD (2 физических процессора, количество ядер от 2-х и больше)

  • Оперативная память не меньше 24 Гб

  • Отдельный контроллер SAS. Как минимум 2 диска в RAID1. Два раздела 30 Гб.

Минимальные требования к компьютеру для брокерского логина с обработкой данных с сохранением на диск:

  • 2-х процессорный сервер на Intel Xeon как минимум серии 53xx или аналогичных процессорах от AMD (2 физических процессора, количество ядер от 2-х и больше)

  • Оперативная память не меньше 4 Гб

  • Отдельный контроллер SAS с режимом кеширования записи write-back. Как минимум 4 диска в RAID10. Два раздела 30 Гб

Программные требования

Шлюзовое ПО поддерживает следующие версии операционных систем:

  • Microsoft Windows 10 (допустимы как 32-битные, так и 64-битные версии ОС)

  • Microsoft Windows Server 2016/2019 (допустимы как 32-битные, так и 64-битные версии ОС)

  • Linux RedHat/CentOS 7 и новее (только 64-битные версии), также возможно использование других дистрибутивов

Установка ПО в среде Windows

Заберите новую версию шлюза с сервера разработчиков. Имя инсталляционного файла - setup_SpectraCGate_x64_vx.x.x.x .exe где х.х.х.x - номер версии ПО, например 6.6.0.186

Запустите полученный файл setup_SpectraCGate_x64_vx.x.x.x.exe. Установка производится с помощью мастера установки.

Рисунок 2. Начало установки

Начало установки

Нажмите кнопку "Далее" для продолжения установки.

Рисунок 3. Папка назначения

Папка назначения

По умолчанию для установки программы предлагается папка C:\KASE\SpectraCGate\. Если вас это устраивает, нажмите кнопку "Далее" для продолжения и выбора вида установки.

Если вы хотите выполнить установку в другую папку, нажмите кнопку "Изменить..." и в появившемся окне "Изменение текущей папки назначения" выберите новую папку с помощью окна "Поиск в папке"; для перехода на уровень выше в дереве папок используйте кнопку . Вы также можете создать новую папку назначения при помощи кнопки или ввести путь к уже существующей папке вручную в поле "Имя папки" в нижней части окна. Для сохранения внесённых изменений нажмите кнопку "ОК" — окно изменения папки назначения закроется, и вы вернётесь в предыдущее окно "Папка назначения". Нажмите кнопку "Далее" для продолжения и выбора вида установки.

Обратите внимание, что вы сможете изменить папку назначения только при первой установке программы или при переустановке программы "с нуля". В остальных случаях кнопка "Изменить..." будет неактивна.

Рисунок 4. Вид установки

Вид установки

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

Нажмите кнопку "Далее", чтобы активировать следующий шаг.

Рисунок 5. Выборочная установка

Выборочная установка

Выберите требуемые программные компоненты и каталог для установки. Директория установки должна быть расположена в соответствии с административными рекомендациями.

Нажмите кнопку "Далее", чтобы активировать следующий шаг.

Рисунок 6. Варианты подключения к ТС

Варианты подключения к ТС

Выберите ТС, к которой необходимо подключиться (production, тестовая и т.п.), или введите свои параметры для соединения с серверами биржи. Для каждого варианта подключения параметры соединения хранятся в отдельном конфигурационном файле, который находится в каталоге \links директории установки:

Вариант подключенияФайл с настройками подключенияОписание
Основная системаlinks_public.prod.iniПодключение к Spectra боевой контур
Резервное подключениеlinks_public.rezerv.iniПодключение к Spectra резервный контур
Тестовая системаlinks_public.t0.iniПодключение к Spectra публичный тестовый контур
Свои параметры соединенияlinks_public.custom.iniПодключение, заданное пользователем

После установки ссылка на соответствующий файл с параметрами соединения прописывается в ini-файле модуля P2MQRouter в параметре connections_ini. Такой подход позволяет упростить процесс переключения модуля P2MQRouter между полигонами и системами Spectra - для смены подключения достаточно просто перезапустить инсталлятор и выбрать нужный вариант. Обратите внимание, что в случае переустановки или деинсталляции системы каталог \links и файл с пользовательскими настройками подключения (links_public.custom.ini) не удаляются.

В полях секции пользовательских настроек отображаются:

  • При первоначальной установке ПО - значения по умолчанию (параметры из links_public.t0.ini в качестве примера).

  • При переустановке ПО - пользовательские параметры подключения из links_public.custom.ini или client_router.ini. Если файлы отсутствуют, то отображаются значения по умолчанию.

Рисунок 7. Секция пользовательских настроек подключения

Секция пользовательских настроек подключения

Напоминаем, что для выбора правильных адресов подключения необходимо проконсультироваться с вашим брокером и/или службой технической поддержки биржи.

Нажмите кнопку "Далее", чтобы активировать следующий шаг.

Рисунок 8. Ввод логина и пароля

Ввод логина и пароля

Введите логин и пароль для выбранного на предыдущем шаге подключения.

После установки логин и пароль прописываются в отдельном конфигурационном файле auth_client.ini, который находится в каталоге \auth директории установки, а в ini-файле модуля P2MQRouter в параметре auth_ini указывается ссылка на этот файл.

При переустановке ПО в полях формы отображаются значения логина и пароля, заданные в auth_client.ini или client_router.ini. Обратите внимание, что в случае переустановки или деинсталляции системы каталог \auth и файл с аутентификационными данными (auth_client.ini) не удаляются.

Нажмите кнопку "Далее", чтобы активировать следующий шаг.

Рисунок 9. Регистрация роутера как сервис ОС

Регистрация роутера как сервис ОС

При необходимости установить роутер как сервис ОС Windows выставите чекбокс и нажмите кнопку "Далее", чтобы активировать следующий шаг.

Если при инсталляции P2MQRouter не был зарегистрирован как сервис ОС, в дальнейшем это можно исправить вручную, воспользовавшись командным файлом install_router.cmd (uninstall_router.cmd) из дистрибутива.

Рисунок 10. Запуск установки

Запуск установки

Нажмите кнопку "Установить", чтобы начать установку.

Рисунок 11. Завершение установки

Завершение установки

Нажмите кнопку "Готово" для завершения процесса установки.

Установка ПО в среде Linux

Дистрибутив Cgate для среды Linux состоит из инсталляционого скрипта и архива, в котором находятся загружаемые модули проекта cgate и проекта cgate_java, файлы include, файлы документации и файлы примеров.

Порядок установки:

  1. Выполните команду:

    chmod 755 ./install.sh
  2. Выполните команду:

    ./install.sh ./cgate_linux_amd64-5.3.6.11.zip

    Внимание! Имя архива привязано к версии ПО и может отличаться от имени, которое указано в примере выше.

  3. В ответ на запрос: "Please, enter cgate install path:" укажите полный путь к каталогу, в который вы хотите распаковать шлюз.

  4. В ответ на запрос: "Please, enter P2 login:" укажите логин пользователя.

  5. В ответ на запрос: "Please, enter P2 password:" укажите пароль пользователя.

  6. Дальнейшие шаги установки различаются в зависимости от версии ОС Linux, установленной на компьютере:

    • Debian 6:

      • Установить пакет ant

      • Установить пакет openjdk-6-jdk (компиляция примеров java)

      • Установить пакет g++ (компиляция примеров C++).

    • CentOS 6:

      • Установить пакет gcc

      • Установить пакет gcc-c++ (компиляция примеров C++)

      • Установить пакет ant (компиляция примеров java).

Рекомендации по разработке

Использование тестовых примеров

Для проверки корректности установки ПО и готовности к разработке можно выполнить тестовую сборку примеров и их исполнение.

Примеры располагаются в каталоге KASE\SpectraCGate\SDK\samples для платформы Windows или в каталоге /usr/share/doc/cgate-examples для Linux. Сборка примеров выполняется запуском сборочных скриптов, которые различаются в зависимости от используемой платформы и языка программирования. Для ОС Linux рекомендуется сделать копию примеров в своём домашнем каталоге и собирать их оттуда.

Описание примеров:

  1. Пример aggrspy

    aggrspy - пример построения агрегированного стакана на покупку и продажу по фиксированному инструменту по потоку FORTS_FUTAGGR50_REPL. При нажатии Enter в outfile выводится срез стакана.

    Команда для запуска:

    aggrspy ISIN_ID depth outfile [r]

    Входные аргументы:

    • isin_id - id инструмента;

    • depth - глубина выводимого стакана в файл (не больше 50);

    • outfile - файл для печати стакана;

    • r - включить обратное направление сортировки (параметр используется для инструментов с обратной сортировкой).

  2. Пример repl

    repl - получение реплики данных по потоку. Пример печатает все получаемые сообщения в log. При разрыве соединения реплика начинается сначала. Входных аргументов нет.

  3. Пример repl_resume

    repl_resume - пример аналогичен repl. Отличие заключается в том, что после разрыва соединения repl_resume продолжает реплику с последнего сообщения TN_COMMIT. Входных аргументов нет.

  4. Пример send

    send - выставляет заявку на SPECTRA. Выводит в лог ответ торговой системы. Входных аргументов нет.

  5. Пример orderbook

    orderbook - пример построения агрегированного стакана на покупку и продажу по фиксированному инструменту по online потоку FORTS_ORDLOG_REPL и снэпшот потоку FORTS_USERORDERBOOK_REPL. Рекомендуется для разработки late join и минимизации времени простоя при закачке архивных данных. При нажатии Enter в outfile выводится срез стакана.

    Команда для запуска:

    orderbook ISIN_ID depth outfile [r]

    Входные аргументы:

    • isin_id - id инструмента;

    • depth - глубина выводимого стакана в файл (не больше 50);

    • outfile - файл для печати стакана;

    • r - включить обратное направление сортировки (параметр используется для инструментов с обратной сортировкой).

  6. Пример p2sys

    p2sys - пример авторизации роутера из cgate. Повторяет в цикле следующие действия:

    • Посылает ошибочный набор (login, pwd), в ответ получает сообщение logon failed;

    • После этого посылает правильный набор (login, pwd);

    • На сообщение об успешной авторизации посылается запрос на logout;

    • Возврат к началу.

  7. Пример send_mt

    send_mt - пример многопоточной посылки заявки. (Примечание: компилируется только под компиляторами, поддерживающими C++11.). В треде 1 посылаются заявки. В треде 2 обрабатываются reply на посылаемые заявки.

Для исполнения примеров необходимо убедиться, что P2MQRouter запущен и соединен с сетью Plaza-2 (анализом сообщений роутера), в доступности библиотек Plaza-2 для запускаемого файла примера (возможно потребуется добавление каталога KASE\SpectraCGate\bin в переменную окружения PATH или указание каталога KASE\SpectraCGate\bin в вашей среде разработки), а также в доступности конфигурационных файлов.

Примечание: Указанные примеры не предназначены для копирования и использования в работе с данными, отличными от тестовых. Использование этих примеров для работы с реальными логинами категорически запрещено.

Распределенные конфигурации

Приложение пользователя с cgate и модуль P2MQRouter могут функционировать на разных компьютерах. Для разнесения роутера и клиентских приложений на разные компьютеры в сети брокера следует установить роутер из дистрибутива на компьютер, с которого будет осуществляться доступ в сеть биржи, установить cgate из дистрибутива на компьютер, где будет работать приложение пользователя, и сделать следующие настройки:

  • Со стороны клиента:

    • Установить свойства Host, Port в значения, соответствующие установке роутера в вашей корпоративной сети.

    • Правильно установить свойство Password — локальный пароль приложения AppName на роутере. При соединении приложения и роутера вне пределов одного компьютера, требуется задавать пароль локального соединения. Пароль локального соединения и пароль для аутентификации приложения в сети Plaza-2 – это разные вещи! Нельзя их путать.

  • Со стороны роутера:

    • В ini-файле роутера в секции [AS:Local] прописать строку <AppName>=<local password>, где AppName и local Password – имя приложения и его локальный пароль – должны соответствовать параметрам, передаваемым клиентским приложением.

Рекомендации по включению рантаймов KASE в приложение пользователя при распространении пользовательского ПО сторонним компаниям

Набор файлов, который копируется в каталог установки шлюза KASE\SpectraCGate\bin, а также схемы данных и сообщений, находящиеся в каталоге KASE\SpectraCGate\SDK\scheme, должны копироваться пользователем из каталога установки в каталог со своим приложением и распространяться вместе с ним.

Не допускается использование различных версий модуля P2MQRouter и компонент cgate, так как они не являются совместимыми. При установке приложения пользователя следует контролировать, что используется та же самая версия P2MQRouter, что и при разработке.

Состав транслируемой информации

В данном разделе описывается состав информации, транслируемой в шлюзе Plaza-2.

Все транслируемые данные разделены на следующие логические группы:

  • Справочная информация

  • Торговая информация

  • Информация для восстановления

  • Информация о средствах и лимитах

  • Клиринговая информация

  • Вспомогательные информационные потоки

Справочная информация

Справочная информация содержит следующие данные:

  • Расписание и статус торговых сессий

    Информация о времени проведения торговой сессии доступна в таблице session потока FORTS_REFDATA_REPL. В этой же таблице указывается статус сессии, что позволяет отслеживать изменения режима сессии.

  • Справочники инструментов и базовых активов, их свойства

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

    Указанные справочники могут обновляться в ходе торговой сессии, например, в результате приостановки торгов по какому либо инструменту или во время операции расширения лимитов цен.

  • Справочники фирм и клиентов

    Транслируются в таблицах dealer и investor потока FORTS_REFDATA_REPL. В данных справочниках доступны исключительно сведения о клиентах своей фирмы.

  • Коэффициенты параметрической кривой волатильности для опционов

    Транслируются в таблице volat_coeff потока FORTS_MISCINFO_REPL.

Для осуществления операций на рынках торговой системы SPECTRA система пользователя должна получать в режиме он-лайн по крайней мере следующие справочные данные:

  • Расписание сессий (session)

  • Справочник инструментов (fut_sess_contents)

Торговая информация

Торговая информация включает в себя:

  • Агрегированные стаканы

    Формируются на основе системных заявок пользователей путем суммирования объёма для каждого инструмента, ценового уровня и направления заявки. Обновляются в режиме он-лайн и являются основным способом получения информации о текущих ценах и объёмах. Пользователь может выбрать желаемую глубину стакана из вариантов 5, 20 или 50 ценовых уровней в каждом из направлений; данный выбор осуществляется при конфигурировании логина и не может быть изменен в ходе торговой сессии.

    Стаканы транслируются несколькими потоками репликации Plaza-2: FORTS_AGGR5_REPL, FORTS_AGGR20_REPL и FORTS_AGGR50_REPL.

  • Общерыночные показатели

    В составе общерыночных показателей транслируется такая информация как лучшие заявки на покупку и продажу, цены открытия, закрытия, текущие расчетные цены и т.п. Данная информация транслируется в потоке FORTS_COMMON_REPL.

  • Журнал заявок пользователя (а также - полный журнал заявок торговой системы)

    В журнале заявок пользователя транслируется вся история операций по заявкам пользователя. Журнал заявок пользователя доступен в таблице orders_log потока FORTS_TRADE_REPL.

    В случае, если пользователь при конфигурации логина указал опцию "Полный журнал заявок", помимо своих заявок, пользователь будет получать полный журнал всех операций с заявками на рынке в анонимизированном виде, доступный в таблице orders_log потока FORTS_ORDLOG_REPL.

  • Журнал сделок пользователя

    Содержит список всех совершенных пользователем за текущую сессию сделок. Журнал сделок пользователя доступен в таблице user_deal потока FORTS_TRADE_REPL.

  • Журнал сделок торговой системы

    Содержит список всех сделок, совершенных всеми пользователями за текущую сессию. Данные сделок чужих пользователей представлены в анонимизированном виде. Журнал сделок торговой системы доступен в таблице deal потока FORTS_DEALS_REPL.

Информация для восстановления

Для обеспечения возможности быстрого восстановления получения торговой информации после потери соединения со SPECTRA, равно как и для реализации сценария позднего подключения к бирже, в составе шлюза Plaza-2 осуществляется трансляция периодических срезов текущих стаканов в неагрегированном виде. Это позволяет получить актуальное состояние своих заявок (а в случае подключенной опции "Полный журнал заявок" - всех заявок в системе) на текущий момент времени.

Срезы активных заявок транслируются с периодичностью 2 минуты в потоке FORTS_USERORDERBOOK_REPL.

Информация о лимитах клиентов

Включает следующие данные:

  • Информация о позициях

    Транслируется в виде временных срезов в потоке FORTS_POS_REPL. Для каждого значения позиции доступен идентификатор последней сделки, вошедшей в расчет записи по позиции.

  • Информация о лимитах клиентов

    Транслируется в виде временных срезов в потоке FORTS_PART_REPL. Для каждого значения клиентского счета указаны размеры лимитов на начало торговой сессии, текущие и резервы лимитов.

Клиринговая информация

Клиринговая информация, транслируемая в составе шлюза Plaza-2 включает следующие данные:

  • Расчетные цены клиринга

    Формируются в момент проведения вечернего клиринга. Доступны в таблице fut_sess_settl потока FORTS_CLR_REPL. Таблица с расчетными ценами включает также инструменты, срок действия которых закончился, что позволяет использовать данную таблицу для получения правильных цен по которым будет произведена поставка.

  • Реестры отвергнутых в клиринг заявок

    Перечисляют заявки, перевыставление которых в клиринг не было произведено по причине нехватки средства. Реестр для фьючерсов транслируется в таблице fut_rejected_orders потока FORTS_REFDATA_REPL

  • Средства клиентов по результатам клиринга

    Включают в себя информацию о сумме средств на счетах, движении по счетам, сборах, суммарном ГО и ВМ на момент клиринга. Транслируются в потоке FORTS_CLR_REPL.

Вспомогательные информационные потоки

В данную группу отнесены информационные потоки, предоставляющие дополнительные функции:

  • Текущие значения вариационной маржи

    Транслируются в потоке FORTS_VM_REPL в разрезе позиций клиентов.

Особенности использования шлюза

Служебные поля репликации

Каждая реплицируемая таблица имеет в своей структуре три первых поля фиксированного типа i8, предназначенных для обеспечения механизма репликации:

  • replID — уникальный идентификатор записи в таблице. При вставке каждой новой записи, этой записи присваивается уникальный идентификатор. Несмотря на то, что таблица может иметь некий первичный ключ, определяемый бизнес-логикой, для целей репликации все равно первичным и уникальным идентификатором является поле replID.

  • replRev — уникальный номер изменения в таблице. При любом изменении в таблице (вставке, редактировании, удалении записи) затронутая запись получает значение replRev, равное максимальному replRev в таблице до изменения +1.

  • replAct — replAct — признак того, что запись удалена. Если replAct не нулевой — запись удалена. Если replAct = 0 — запись активна..

Команды

Для отправки команд необходимо создать публикатор с параметрами NAME = FORTS_SRV, catеgory = FORTS_MSG. Для получения ответов на отправленные сообщения необходимо в функции отправки сообщения задать флаг CG_PUB_NEEDREPLY, а также создать подписчик с типом p2mqreply.

В случае ошибки в доставке и обработке сообщения на системном уровне, код клиента может получить либо ошибку при выполнении функции отправки сообщения, либо ответное сообщение специального типа "системная ошибка" (msgid=100):

ПолеТипОписание
codei4Код возврата
messagec255Текст сообщения.

Обратите внимание, что сообщение "системная ошибка" может быть отправлено в ответ на любое сообщение бизнес-логики.

Контроль аномальной активности

В ТС SPECTRA действует система ограничения аномальной активности клиентских приложений. Она не позволяет приложению пользователя (одному логину в системе SPECTRA) присылать более оговорённого в заявке на подключение количества сообщений в единицу времени. В настоящий момент можно получить логин в систему SPECTRA с ограничением 30, 60, 90 и т.д. (но не более 3000) торговых операций в секунду. К торговым операциям относятся все команды управления заявками. Количество неторговых (всех остальных) операций для любого типа логина ограничено 1000 в секунду.

При превышении лимита сообщений, система контроля не транслирует сообщение в ядро ТС, а посылает пользователю сообщение-ответ с уведомлением об отказе в обслуживании, msgid=99 следующей структуры:

ПолеТипОписание
queue_sizei4Количество сообщений пользователя
penalty_remaini4Время в миллисекундах, по прошествии которого будет успешно принято следующее сообщение от этого пользователя
messagec128Текст сообщения об ошибке

Обращаем внимание на два нюанса:

  1. Количество сообщений за истекшую секунду оценивается при приёме КАЖДОГО сообщения. Это значит, что если пользователь постоянно присылает запросы с частотой, больше, чем ему разрешено, то его сообщения перестают обрабатываться вообще.

  2. Сообщение-отказ с типом 99 может быть послано в ответ на любое сообщение пользователя.

Мониторинг latency со стороны клиента

Для централизованного мониторинга времен выставления заявок и задержек в распространении данных, в TS SPECTRA существует функциональность автоматической простановки метки времени в исходящих сообщениях и последующего анализа разницы во времени между текущим моментом при приходе ответа на команду или приходе записи по реплики и исходной меткой времени, проставленной при отправке. Система накапливает срезы статистической информации по задержкам, которые доступны для считывания и анализа централизованной системой мониторинга SPECTRA. Важное замечание. Для работоспособности этого функционала требуется установить ПО Plaza2 и использовать версии схем сообщений, соответствующие системе SPECTRA 3.8.2 и новее. Отличительным признаком новых схем сообщений с поддержкой централизованного мониторинга являются строки

LocalTimeField=<имя поля>

в описаниях сообщений.

Использование новых схем сообщений со старыми бинарными модулями Plaza2 приведет к проблемам.

Автоматическое снятие заявок при отключении пользователя от торгов

В ТС SPECTRA предусмотрен механизм контроля за состоянием подключения клиента (сервис "Cancel On Disconnect"), который позволяет при отключении клиента от ТС автоматически снимать все активные заявки клиента. Снимаются только обычные (без срока истечения), безадресные заявки.

Для включения сервиса (а также отключения) фирме-Участнику торгов необходимо подать соответствующее распоряжение через Клиентский Центр. Сервис включается для идентификатора (p2login), принадлежащего фирме-Участнику.

При подключении идентификатора с включенной услугой "Cancel On Disconnect" к ТС для него активируется режим контроля за состоянием подключения (COD-режим).

Логика работы механизма контроля подключений следующая:

  • Если для клиента активирован COD-режим, то система отслеживает активность подключения на транзакционном уровне. Каждая команда (сообщение) клиента, зарегистрированная в системе, вне зависимости от её успешности, трактуется как проявление активности.

  • Если за установленный в качестве порога неактивности временной интервал (в текущей реализации = 20 сек.) клиент не отправил ни одного сообщения или, потеряв подключение к системе, не подключился заново, все его активные заявки автоматически снимаются.

Возможные ситуации, при которых происходит запуск процедуры снятия активных заявок:

  • Клиент не отправил ни одного сообщения за установленный период времени.

  • Клиентское приложение потеряло соединение с роутером. Активные заявки будут сняты по истечении установленного периода времени.

  • Роутер потерял соединение с сервером доступа. Активные заявки будут сняты по истечении установленного периода времени.

  • Сервер доступа потерял соединение с ТС или утратил работоспособность вследствие возникшей ошибки. Активные заявки клиентов, не установивших соединение с другим сервером доступа, будут сняты по прошествии времени, установленного в качестве порога неактивности.

  • Возможна ситуация, когда сервер доступа, частично утрачивая работоспособность, оповещает ТС об активности от имени своих клиентов, но фактически теряет с ними соединение. Такая ситуация не может быть идентифицирована ТС Биржи и должна быть урегулирована на стороне Участника.

Для всех клиентов с COD-режимом заявки также автоматически снимаются после окончания вечерней торговой сессии и при восстановлении системы после сбоя.

Заявки, снятые механизмом "Cancel On Disconnect", в таблицах помечаются специальным статусом (поле xstatus).

При отсутствии торговой активности, чтобы предотвратить снятие заявок, клиентское приложение должно информировать ТС об активности подключения путем отправки не реже одного раза в 10 секунд, но не чаще чем раз в секунду, специальной команды CODHeartbeat (msgid=10000) следующей структуры:

ПолеТипОписание
seq_numberi4Номер сообщения-хартбита (в текущей версии не используется).

Команда не учитывается при расчете сбора за транзакции.

Сервис контроля подключений не отправляет ответных сообщений на хартбиты, поэтому при вызове функции отправки сообщения следует указывать ноль (не ожидать ответа): cg_pub_post(pub, msgptr, 0). Вызов функции cg_pub_post с флагом CG_PUB_NEEDREPLY при отправке хартбита приведет к получению ошибки CG_MSG_P2MQ_TIMEOUT.

Потоки, получаемые логинами разных подтипов

В зависимости от подтипа логина пользователя (основной, просмотровый или транзакционный) различен получаемый им набор потоков репликации.

Основной логин получает следующие потоки репликации:

Если способ получения рыночных данных – "агрегированные стаканы", основной логин также получает:

Если способ получения рыночных данных – "полный журнал заявок", основной логин получает:

Просмотровый логин получает следующие потоки репликации:

Если способ получения рыночных данных – "агрегированные стаканы", просмотровый логин также получает:

Если способ получения рыночных данных – "полный журнал заявок", просмотровый логин получает:

Транзакционный логин получает следующие потоки репликации:

Парольная политика

Основные положения

Основные положения поддерживаемой парольной политики:

  1. Требования к сложности и оригинальности пароля:

    • Пароль должен содержать не менее 8 символов и соответствовать трем из четырех требований:

      • Содержать латинские строчные буквы (от a до z).

      • Содержать латинские заглавные буквы (от A до Z).

      • Содержать цифры (от 0 до 9).

      • Содержать специальные или не буквенно-цифровые символы (@,+,_ и т.д.).

    • Пароль не должен содержать 3 и более повторяющихся символов.

    • Пароль не должен совпадать с одним из ранее использованных паролей.

  2. Поддерживается срок действия пароля. После истечения срока действия пароля, доступ пользователя в систему невозможен. Срок действия пароля отображается в терминале Срочного рынка и транслируется в шлюзе в таблице user потока FORTS_REFDATA_REPL.

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

  4. Парольная политика распространяется на все логины системы.

Внимание! В шлюзе попытка соединения с неверным паролем предполагает следующее поведение системы. Шлюз (роутер) предпримет однократную попытку подключиться к каждому из четырех соединений, указанных в ini-файле роутера, получит ошибки "BAD_CRYPTO", напишет их в лог и больше попыток соединения делать не будет. Администратор пользовательской системы должен отследить эти ошибки, исправить пароль и перезапустить роутер.

Смена пароля доступа в торговую систему

У пользователя имеется возможность самостоятельно сменить свой пароль доступа в торговую систему. Для этого можно воспользоваться одним из следующих методов:

  • воспользоваться специальной утилитой change_password (её описание дано ниже);

  • Создать своё приложение для смены пароля (описание соответствующих объектов API можно найти в документе по CGate в разделе "Объекты протокола изменения пароля") и послать в торговую систему сообщение ChangePassword с необходимыми параметрами (см. раздел "Метод ChangePassword").

Утилита change_password

Утилита change_password предназначена для изменения пароля пользователя в торговой системе. Утилита получает на вход старый и новый пароль пользователя, отправляет их в ТС Спектра, и получает ответ об успешной (или нет) смене пароля пользователя в торговой системе. Используемый утилитой протокол обеспечивает защищенную передачу данных, пароль и логин пользователя в открытом виде по сети не передаются.

Утилита представляет собой консольное приложение с запуском из командной строки, исполняемый файл change_password.exe. При запуске утилите могут быть переданы следующие параметры:

--app_name

имя приложения. Необязательный параметр;

--local_pass

пароль для локального соединения с роутером. Необязательный параметр;

--host

ip-адрес роутера. Необязательный параметр, значение по умолчанию 127.0.0.1;

--port

порт роутера. Необязательный параметр. Значение по умолчанию 4001;

--ini

ini-файл с настройками логирования. Необязательный параметр. Если ini-файл не задан, результат операции выводится на консоль.

Пример строки запуска:

C:\Moscow Exchange\SpectraCGate\bin\change_password.exe --port=4001

Для смены пароля необходимо выполнить следующие действия:

  • Запустить утилиту.

  • В консоли ввести старый и новый пароль.

  • Нажать Enter.

Утилита возвращает "0" в случае успешного выполнения команды смены пароля и "1" в случае неуспеха.

Обратите внимание, что получение ответа об успешном выполнении означает изменение пароля пользователя в торговой системе, при этом авторизация текущего соединения роутера не меняется. Для авторизации роутера с новым паролем необходимо изменить пароль в ini-файле роутера и перезапустить роутер.

Партиционирование матчинга

В ТС SPECTRA поддерживается разделение (партиционирование) торговых инструментов на группы, и торговля ими раздельно на нескольких независимых модулях сведения заявок (модулях матчинга), при этом каждый модуль матчинга обрабатывает свою группу инструментов. Принадлежность инструмента к группе (матчингу) определяется кодом базового актива (base_contract_code) инструмента.

Трансляция торговых данных производится также раздельно и независимо, для каждого из модулей матчинга назначаются собственные потоки репликации. Принадлежность потоков репликации матчингу определяется по постфиксу _MATCH${id} в названии потока, где ${id} - ID модуля матчинга. Например, поток FORTS_TRADE_REPL_MATCH1 - заявки и сделки пользователя по фьючерсным инструментам, которые обрабатываются на MATCH1.

Потоки, транслируемые раздельно для каждого матчинга (имеют постфикс _MATCH${id):

Для сопоставления инструментов матчингу, на котором они обрабатываются, в потоке FORTS_REFDATA_REPL транслируется таблица instr2matching_map с полями:

  • base_contract_id - числовой идентификатор базового контракта;

  • matching_id - идентификатор матчинга.

Привязка инструментов к матчингам может меняться при смене торговой сессии.

Новый алгоритм получения торговых данных:

  • По таблицам fut_sess_contents / opt_sess_contents для isin_id определяем код базового актива (base_contract_code).

  • По таблицам fut_vcb / opt_vcb для base_contract_code определяем идентификатор базового контракта (base_contract_id).

  • В таблице instr2matching_map по base_contract_id определяем идентификатор матчинга.

  • Для получения торговых данных по инструменту открываем потоки с соответствующим _MATCH${id).

В ТС SPECTRA версии 6.3 модуль сведения заявок будет один, и для обратной совместимости оставлены старые потоки репликации (без разделения по матчингам), но в последующих версиях системы старые потоки будут удалены, поэтому пользователям рекомендуется перестраивать свои системы на работу с новыми потоками данных. Также в систему добавлены две новые команды MoveOrder (msgid=438) и DelOrder (msgid=436), которые следует использовать для перемещения и удаления заявок по фьючерсам и опционам в ТС с несколькими матчингами.

Типы потоков данных

Различают следующие типы потоков данных:

  • "Достоверный" ('Reliable') - Данные, опубликованные в таких потоках, актуальны, достоверны и не подлежат изменению. Любое изменение - это форс-мажор, связанный с нештатной ситуацией на Бирже. На данные из таких потоков участник может полностью опираться при принятии решений.

  • "Условно достоверный" ('Almost Reliable') - Требуется сверка с отчетами. Данные в таких потоках обычно не подлежат изменению, но могут быть редкие ситуации, когда окончательные значения, публикуемые в отчетах, отличаются от онлайн данных. Например, расчетная цена может быть скорректирована решением ЦК (такая ситуация предусмотрена регуляторными документами). На данные из таких потоков участник может опираться, с учетом, что возможно потребуется скорректировать полученные данные на основании автоматической сверки с отчетами.

  • "Информационный" ('Informational') - Данные, на которые участник не может полагаться, как на единственный источник при принятии тех или иных решений. Данные из таких потоков нужно использовать с осторожностью, по возможности, проводя взвешенное сравнение с аналогичными данными, полученными другим способом. Примером таких данных могут служить данные о волатильности, которые носят оценочный характер, зависящий от используемой модели и методики расчета.

Ниже в таблице приведена градация потоков по типам:

Имя потокаОписаниеТип
FORTS_TRADE_REPLЗаявки и сделки пользователяR
FORTS_ORDLOG_REPLПоток анонимных заявокR
FORTS_DEALS_REPLПоток анонимных сделокR
FORTS_USERORDERBOOK_REPLЗаявки пользователя: срез стаканаR
FORTS_ORDBOOK_REPLСрез стакана. АнонимныйR
FORTS_REFDATA_REPLФьючерсы и опционы: справочная и сессионная информацияR
FORTS_INFO_REPLСправочная информацияR
FORTS_FEE_REPLПоток комиссий биржиAR
FORTS_FEERATE_REPLПоток точных ставок комиссий биржиAR
FORTS_CLR_REPLКлиринговая информацияAR
FORTS_BROKER_FEE_REPLБрокерские комиссииI
FORTS_BROKER_FEE_PARAMS_REPLПараметры для расчета брокерской комиссииI
FORTS_COMMON_REPLОбщая информация по сессииI
FORTS_AGGR##_REPLАгрегированные стаканыI
FORTS_POS_REPLИнформация о позицияхI
FORTS_PART_REPLИнформация о средствах и лимитахI
FORTS_MM_REPLИнформация об обязательствах ММI
FORTS_VM_REPLВариационная маржаI
FORTS_TNPENALTY_REPLИнформация о сборах за транзакцииI
FORTS_FORECASTIM_REPLПрогноз рисков после возможной раздвижкиI

Обработка нештатных ситуаций

Восстановление при потере соединения с Биржей

Шлюз Plaza2 в стандартной конфигурации использует четыре TCP соединения с серверами биржи:

  • Соединение для подачи приказов/команд.

  • Соединение для получения основных рыночных данных. К таким данным относятся потоки агрегатов, потоки FORTS_ORDLOG_REPL, FORTS_DEALS_REPL, FORTS_TRADE_REPL, FORTS_COMMON_REPL.

  • Соединение для получения вспомогательных и справочных потоков.

  • Соединение для получения данных для восстановления при восстановлении связи или первоначальном присоединении (Snapshot).

Рисунок 12. Схема соединений

Схема соединений

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

Диагностика разрыва соединений

За установку TCP соединений отвечает ПО P2MQRouter, все настройки для данных соединений прописаны в конфигурационном файле роутера, при этом соединение для "Other Data" указывается как исходящее default connection, а остальные как исходящие direct connection. Такое построение является основной штатной конфигурацией при подключении к серверной ферме биржи. Конфигурация соединений при подключении через сервер доступа брокера может отличаться, в этом случае требуется запрашивать конкретную конфигурацию у владельца сервера.

За восстановление соединения в случае разрыва также отвечает P2MQRouter, при обрыве он автоматически, с заданной периодичностью пытается восстановить соединение, при этом пользовательское приложение повлиять на эти процессы никак не может. И в этом случае, отследить разрыв соединения приложение пользователя может по изменению статуса P2MQRouter с ROUTER_CONNECTED на ROUTER_RECONNECTING, получая уведомления об изменении статуса от объекта "connection".

Библиотека CGate ведет себя следующим образом:

  • Разрыв соединения с гейтом обработки входных приказов диагностируется непосредственно в момент получения ошибки TCP-соединения. При этом, затронутые разрывом объекты publisher переходят в ошибочное состояние.

  • Диагностика разрыва соединения, используемого для получения основных рыночных данных, происходит в течение 30 секунд. Затронутые объекты listener при этом переходят в ошибочное состояние.

Объекты в состоянии ERROR необходимо освободить, и с какой-то периодичностью (например, раз в несколько секунд) пытаться переоткрыть заново.

Процедура восстановления

В общем случае, алгоритм восстановления подключения следующий:

  • После старта предпринимать периодические попытки открыть соединение с P2MQRouter.

  • При восстановлении соединения рутера с сетью Plaza2 объект соединение перейдет в состояние ACTIVE.

  • Произвести открытие нужных потоков. Для ускорения процедуры восстановления рекомендуется выполнять получение данных с момента последнего обновления. При открытии потока следует указывать replstate, полученный в момент закрытия потока, или явно задавать номера ревизий для таблиц и номер жизни схемы, используя последние номера фактически полученных данных.

  • Произвести восстановление списка активных заявок (см. далее).

  • Зарегистрировать publisher для приказов/команд.

Ниже в таблице приведены рекомендуемые способы восстановления данных в зависимости от получаемого потока:

Имя потока (таблицы)Информация в потокеСпособ восстановления
FORTS_TRADE_REPL
  • orders_log

Журналы операций со своими заявками по фьючерсам и опционамСписок активных заявок:
  • использование потока FORTS_USERORDERBOOK_REPL для получения snapshot, а затем открытие потока FORTS_TRADE_REPL с указанным в snapshot номером ревизии

Журнал действий с заявками:

  • открытие FORTS_TRADE_REPL с последнего полученного номера ревизии

FORTS_TRADE_REPL
  • multileg_orders_log

Журналы операций со своими заявками по связкамЖурнал действий с заявками:
  • открытие FORTS_TRADE_REPL с последнего полученного номера ревизии

FORTS_ORDLOG_REPL
  • orders_log

Полный анонимный журнал операций с заявками по фьючерсам и опционамСписок активных заявок:
  • использование потока FORTS_ORDRBOOK_REPL для получения snapshot, а затем открытие потока FORTS_ORDLOG_REPL с указанным в snapshot номером ревизии

Журнал действий с заявками:

  • открытие FORTS_ORDLOG_REPL с последнего полученного номера ревизии

FORTS_ ORDLOG _REPL
  • multileg_orders_log

Полный анонимный журнал операций с заявками по связкамЖурнал действий с заявками:
  • открытие FORTS_ORDLOG_REPL с последнего полученного номера ревизии

FORTS_DEALS_REPL
  • deal

  • multileg_deal

FORTS_TRADE_REPL

  • user_deal

  • multileg_deal

Журнал сделок по фьючерсам, составным инструментам и опционамПереоткрытие соответствующего потока с указанием последнего полученного номера ревизии или repl state, полученного в момент закрытия потока
FORTS_COMMON_REPLОбщая рыночная информация по фьючерсам и опционамПереоткрытие потока с нуля
FORTS_AGGR##_REPLСтаканы по фьючерсам и опционам (## - глубина стакана)Переоткрытие соответствующего потока с нуля
FORTS_REFDATA_REPLСправочная и сессионная информацияБыстрый способ:
  • Переоткрытие потока с указанием последнего полученного номера ревизии или repl state, полученного в момент закрытия потока

Допустимый способ:

  • Переоткрытие потока с нуля

FORTS_PART_REPLИнформация о лимитахПереоткрытие потока с нуля
FORTS_POS_REPLИнформация о позицияхПереоткрытие потока с нуля
FORTS_VM_REPLИнформация о ВМПереоткрытие потока с нуля

При восстановлении соединения важной задачей является получение текущих активных заявок пользователя:

  1. Получение набора активных в момент восстановления заявок.

  2. Получение журнал действий с заявками в период отсутствия соединения.

Задача 1 решается путём получения среза заявок (FORTS_USERORDERBOOK_REPL) — заявки, отсутствующие в срезе, были сведены или отвергнуты в период отсутствия соединения.

Задача 2 решается получением журнала действий со своими заявками (таблица orders_log потока FORTS_TRADE_REPL, а также таблица multileg_orders_log потока FORTS_TRADE_REPL) за период отсутствия соединения. Для этого надо открыть соответствующий поток с указанием номера ревизии последней фактически полученной до сбоя записи. Все действия с заявками, происходившие до момента восстановления, будут отражены в виде записей этих таблиц. Индикатором получения всей пропущенной истории действий с заявками является переход потока в состояние ONLINE.

Примечание: Приведенная выше процедура восстановления подходит и для позднего входа.

Общие рекомендации

В общем же случае, для минимизации вероятности возникновения сетевых сбоев в пользовательских приложениях Биржа рекомендует устанавливать дублирующие каналы связи, иметь два логина для шлюза, с одинаковым набором прав, и, соответственно, запускать одновременно два пользовательских приложения, которые будут получать одинаковые данные, с возможностью переключения между ними при сбоях. Как альтернатива, в коде самого приложения должен быть предусмотрен механизм переключения на дублирующий канал связи, то есть установка соединения с P2MQRouter, работающим через резервный канал к бирже.

Рисунок 13. Дублирование каналов связи

Дублирование каналов связи

Восстановление при проблемах в инфраструктуре Биржи

Под такими проблемами понимаются аварии на стороне биржи, связанные с нарушениями в работе ядра ТС или сервисов, формирующих какие-либо рыночные данные. Как правило, это приводит к останову и перезапуску этих сервисов.

Очистка данных по потокам

При регламентных работах, штатных или нештатных перезапусках сервисов на стороне биржи и после восстановления связи с клиентом, сервисы публикации данных присылают уведомления об очистке старых данных, перед тем как присылать текущее состояние данных.

Уведомления об очистке есть двух типов:

  • CG_MSG_P2REPL_CLEARDELETED – по каждой таблице, с указанием ревижена. Уведомление инструктирует клиента о необходимости удалить все записи со значением replRev меньшим, чем указано в уведомлении. Для оптимизации передачи данных, в уведомлении может быть указан ревижен, равный MAX(int64). Это означает, что клиент должен произвести полную очистку данных по таблице, таблица будет передана целиком.

  • CG_MSG_P2REPL_LIFENUM - для всего потока репликации целиком, с указанием нового "номера жизни" потока. Означает существенно изменение данных потока со времени последнего соединения. Клиент должен очистить все данные по всем таблицам, данные будут переданы "с нуля".

Возможные изменения данных при нештатной работе сервисов публикации

В штатном режиме работы, включая регламентные работы во внеторговое время, при открытии или переоткрытии любого потока репликации, кроме потоков, связанных с историей заявок и сделок (FORTS_TRADE_REPL, FORTS_ORDLOG_REPL и FORTS_DEALS_REPL), клиент может получить как нотификации CG_MSG_P2REPL_CLEARDELETED, так и нотификации CG_MSG_P2REPL_LIFENUM, которые требуется корректно обработать.

В штатном режиме для потоков, связанных с историей заявок и сделок (см. выше), уведомление CG_MSG_P2REPL_LIFENUM рассылается только при смене версии системы, после тестовых торгов, чтобы пользователи очистили тестовые данные. В уведомлении CG_MSG_P2REPL_CLEARDELETED указывается значение replRev для первой по времени, доступной в системе в настоящий момент заявки или сделки.

Приход уведомления CG_MSG_P2REPL_LIFENUM с новым "номером жизни" потока непосредственно в торгах означает, что в ТС произошел серьезный сбой, и требуется перепослать данные по заявкам и сделкам, которые могли быть уже разосланы пользователям.

Описание схемы репликации FORTS_PUBLIC

Поток FORTS_TRADE_REPL - Заявки и сделки пользователя (Type=R)

Схема данных

Таблицы:

  • orders_log - Журнал заявок
  • user_deal - Журнал сделок пользователя
  • heartbeat - Служебная таблица cерверных часов
  • sys_events - Таблица событий
Таблица orders_log: Журнал заявок

Таблица 1. Поля таблицы orders_log

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
public_order_id i8 Идентификационный номер заявки (для айсбергов - номер видимой части айсберга)
sess_id i4 Идентификатор торговой сессии
isin_id i4 Уникальный числовой идентификатор инструмента
public_amount i8 Количество контрактов в операции (для айсбергов - количество контрактов в операции по видимой части айсберга)
public_amount_rest i8 Оставшееся количество контрактов в заявке (для айсбергов - оставшееся количество контрактов в видимой части айсберга)
id_deal i8 Идентификатор сделки по данной записи журнала заявок
xstatus i8 Расширенный статус заявки
price d16.5 Цена
moment t Время изменения состояния заявки
moment_ns u8 Время изменения состояния заявки (UNIX-время в наносекундах по стандарту UTC)
dir i1 Направление
public_action i1 Действие с заявкой (для айсбергов - действие с видимой частью айсберга)
deal_price d16.5 Цена заключенной сделки
client_code c7 Код клиента
login_from c20 Логин пользователя, поставившего заявку
comment c20 Комментарий трейдера
ext_id i4 Внешний номер
broker_to c7 Код SPECTRA фирмы-адресата внесистемной заявки
broker_to_rts c7 Код РТС фирмы-адресата внесистемной заявки
broker_from_rts c7 Код РТС фирмы - владельца заявки
date_exp t Дата истечения заявки
id_ord1 i8 Номер первой заявки
aspref i4 Идентификатор пользователя. Для заявок, поданных от SMA-логина - идентификатор MASTER-логина.
id_ord i8 Идентификационный номер заявки (для айсбергов – идентификационный номер всей айсберг-заявки). Поле будет удалено в версии 6.7, значение см. private_order_id.
xamount i8 Количество контрактов в операции (для айсбергов – количество контрактов в операции со всей айсберг-заявкой). Поле будет удалено в версии 6.7, значение см. private_amount.
xamount_rest i8 Оставшееся количество контрактов в заявке (для айсбергов - оставшееся количество контрактов во всей айсберг-заявке). Поле будет удалено в версии 6.7, значение см. private_amount_rest.
variance_amount i8 Амплитуда отклонения (в контрактах) случайной надбавки к всплывающей части айсберг-заявки
disclose_const_amount i8 Количество единиц инструмента в постоянной составляющей всплывающей части айсберг-заявки
action i1 Действие с заявкой (для айсбергов – действие в отношении всей айсберг-заявки). Поле будет удалено в версии 6.7, значение см. private_action.
private_order_id i8 Идентификационный номер заявки (для айсбергов – идентификационный номер всей айсберг-заявки)
private_amount i8 Количество контрактов в операции (для айсбергов – количество контрактов в операции со всей айсберг-заявкой)
private_amount_rest i8 Оставшееся количество контрактов в заявке (для айсбергов - оставшееся количество контрактов во всей айсберг-заявке)
private_action i1 Действие с заявкой (для айсбергов – действие в отношении всей айсберг-заявки)
reason i4 Признак (причина) заявки, выставленной для заключения сделки урегулирования обязательств.


Примечания:

  • Поле xstatus представляет собой битовую маску, перечень возможных значений поля приведен в разделе Типы сделок, формируемые при исполнении и истечении фьючерсов и опционов.

  • Поле dir может принимать следующие значения:

    1

    Buy

    2

    Sell

  • Поле public_action может принимать следующие значения

    0

    Заявка удалена

    1

    Заявка добавлена

    2

    Заявка сведена в сделку

  • Поле id_ord1 содержит номер первой заявки в последовательности перевыставлений заявки со сроком истечения

  • Поле private_action (action) может принимать следующие значения:

    0

    Заявка удалена

    1

    Заявка добавлена

    2

    Заявка сведена в сделку

    3

    Заявка добавлена в результате появления новой видимой части айсберга

  • Поле reason может принимать следующие значения:

    0

    Обычная заявка

    4

    Балансирующие Срочные контракты, заключенные с Добросовестным участником клиринга без подачи заявок

    6

    Закрывающие Срочные контракты, заключенные в рамках процедуры кросс-дефолта

    7

    Закрывающие Срочные контракты, заключенные в связи с неисполнением Маржинального требования

    8

    Закрывающие Срочные контракты, заключенные в связи с неисполнением Обязательства по поставке по поставочным Срочным контрактам на драгоценные металлы

    100

    Иное

Таблица user_deal: Журнал сделок пользователя

Таблица 2. Поля таблицы user_deal

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
sess_id i4 Идентификатор торговой сессии
isin_id i4 Уникальный числовой идентификатор инструмента
id_deal i8 Номер сделки
id_deal_multileg i8 Номер сделки по связке
id_repo i8 Номер сделки по другой ноге
xpos i8 Количество позиций по инструменту на рынке после сделки
xamount i8 Объем, количество единиц инструмента
public_order_id_buy i8 Идентификатор заявки покупателя (для айсбергов - номер видимой части айсберг-заявки покупателя)
public_order_id_sell i8 Идентификатор заявки продавца (для айсбергов - номер видимой части айсберг-заявки продавца)
price d16.5 Цена
moment t Время заключения сделки
moment_ns u8 Время заключения сделки (UNIX-время в наносекундах по стандарту UTC)
nosystem i1 Признак внесистемной сделки
xstatus_buy i8 Статус сделки со стороны покупателя
xstatus_sell i8 Статус сделки со стороны продавца
ext_id_buy i4 Внешний номер из заявки покупателя
ext_id_sell i4 Внешний номер из заявки продавца
code_buy c7 Код покупателя
code_sell c7 Код продавца
comment_buy c20 Комментарий из заявки покупателя
comment_sell c20 Комментарий из заявки продавца
fee_buy d26.2 Сбор по сделке покупателя
fee_sell d26.2 Сбор по сделке продавца
login_buy c20 Логин пользователя покупателя
login_sell c20 Логин пользователя продавца
code_rts_buy c7 Код РТС фирмы покупателя
code_rts_sell c7 Код РТС фирмы продавца
id_ord_buy i8 Идентификатор заявки покупателя (для айсбергов - идентификатор всей айсберг-заявки покупателя). Поле будет удалено в версии 6.7, значение см. private_order_id_buy.
id_ord_sell i8 Идентификатор заявки продавца (для айсбергов - идентификатор всей айсберг-заявки продавца). Поле будет удалено в версии 6.7, значение см. private_order_id_sell.
private_order_id_buy i8 Идентификатор заявки покупателя (для айсбергов - идентификатор всей айсберг-заявки покупателя)
private_order_id_sell i8 Идентификатор заявки продавца (для айсбергов - идентификатор всей айсберг-заявки продавца)
reason_buy i4 Признак (причина) сделки урегулирования покупателя.
reason_sell i4 Признак (причина) сделки урегулирования продавца.


Примечания:

  • Поля code_sell, comment_sell, ext_id_sell, login_sell, code_rts_sell, fee_sell, code_buy, comment_buy, ext_id_buy, login_buy, code_rts_buy, fee_buy, заполняются только для своих сделок

  • Поля xstatus_sell и xstatus_buy являются битовыми масками (подробнее см. раздел Типы сделок, формируемые при исполнении и истечении фьючерсов и опционов)

  • Для "чужих" сделок в полях xstatus_buy и xstatus_sell могут выставляться признаки eNonQuoteStatus, eClearingTrade, eAddressStatus и eStrategy.

  • Поля fee_buy и fee_sell содержат оценочный размер лимита, блокируемого под комиссию по сделке. Размер комиссии необходимо смотреть в потоке FORTS_FEE_REPL.

  • Поля reason_buy и reason_sell могут принимать следующие значения:

    0

    Обычная сделка

    4

    Балансирующие Срочные контракты, заключенные с Добросовестным участником клиринга без подачи заявок

    6

    Закрывающие Срочные контракты, заключенные в рамках процедуры кросс-дефолта

    7

    Закрывающие Срочные контракты, заключенные в связи с неисполнением Маржинального требования

    8

    Закрывающие Срочные контракты, заключенные в связи с неисполнением Обязательства по поставке по поставочным Срочным контрактам на драгоценные металлы

    100

    Иное

Таблица heartbeat: Служебная таблица cерверных часов

Данная таблица наполняется ядром торговой системы с определенной периодичностью и может быть использована для задач синхронизации (например, для проверки прихода всех сделок за определенный момент времени). Таблица используется в режиме добавления записей; очистка таблицы происходит в ночное время.

Таблица 3. Поля таблицы heartbeat

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
server_time t Дата и время сервера


Таблица sys_events: Таблица событий

Таблица 4. Поля таблицы sys_events

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
event_id i8 Уникальный идентификатор события
sess_id i4 Номер сессии
event_type i4 Тип события
message c64 Описание события


Примечания:

  • Возможные типы событий

    event_type = 1

    message = "session_data_ready"

    Закончена загрузка данных из клиринговой системы в торговую перед началом новой торговой сессии

    event_type = 5

    message = "clearing_started"

    Начало основного клиринга

    event_type = 6

    message = "extension_of_limits_finished"

    Раздвижка лимитов закончена

Поток FORTS_ORDLOG_REPL - Поток анонимных заявок (Type=R)

Схема данных

Таблицы:

  • orders_log - Журнал заявок
  • heartbeat - Служебная таблица cерверных часов
  • sys_events - Таблица событий
Таблица orders_log: Журнал заявок

Таблица 5. Поля таблицы orders_log

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
public_order_id i8 Идентификационный номер заявки (для айсбергов - номер видимой части айсберга)
sess_id i4 Идентификатор торговой сессии
isin_id i4 Уникальный числовой идентификатор инструмента
public_amount i8 Количество контрактов в операции (для айсбергов - количество контрактов в операции по видимой части айсберга)
public_amount_rest i8 Оставшееся количество контрактов в заявке (для айсбергов - оставшееся количество контрактов в видимой части айсберга)
id_deal i8 Идентификатор сделки по данной записи журнала заявок
xstatus i8 Расширенный статус заявки
price d16.5 Цена
moment t Время изменения состояния заявки
moment_ns u8 Время изменения состояния заявки (UNIX-время в наносекундах по стандарту UTC)
dir i1 Направление
public_action i1 Действие с заявкой (для айсбергов - действие с видимой частью айсберга)
deal_price d16.5 Цена заключенной сделки


Примечания:

Таблица heartbeat: Служебная таблица cерверных часов

Данная таблица наполняется ядром торговой системы с определенной периодичностью и может быть использована для задач синхронизации (например, для проверки прихода всех сделок за определенный момент времени). Таблица используется в режиме добавления записей; очистка таблицы происходит в ночное время.

Таблица 6. Поля таблицы heartbeat

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
server_time t Дата и время сервера


Таблица sys_events: Таблица событий

Таблица 7. Поля таблицы sys_events

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
event_id i8 Уникальный идентификатор события
sess_id i4 Номер сессии
event_type i4 Тип события
message c64 Описание события


Примечания:

  • Возможные типы событий

    event_type = 1

    message = "session_data_ready"

    Закончена загрузка данных из клиринговой системы в торговую перед началом новой торговой сессии

    event_type = 5

    message = "clearing_started"

    Начало основного клиринга

    event_type = 6

    message = "extension_of_limits_finished"

    Раздвижка лимитов закончена

Поток FORTS_DEALS_REPL - Поток анонимных сделок (Type=R)

Схема данных

Таблицы:

  • deal - Журнал сделок
  • heartbeat - Служебная таблица cерверных часов
  • sys_events - Таблица событий
Таблица deal: Журнал сделок

Таблица 8. Поля таблицы deal

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
sess_id i4 Идентификатор торговой сессии
isin_id i4 Уникальный числовой идентификатор инструмента
id_deal i8 Номер сделки
xpos i8 Количество позиций по инструменту на рынке после сделки
xamount i8 Объем, количество единиц инструмента
public_order_id_buy i8 Идентификатор заявки покупателя (для айсбергов - номер видимой части айсберг-заявки покупателя)
public_order_id_sell i8 Идентификатор заявки продавца (для айсбергов - номер видимой части айсберг-заявки продавца)
price d16.5 Цена
moment t Время заключения сделки
moment_ns u8 Время заключения сделки (UNIX-время в наносекундах по стандарту UTC)
nosystem i1 Признак внесистемной сделки
xstatus_buy i8 Статус сделки со стороны покупателя
xstatus_sell i8 Статус сделки со стороны продавца


Примечания:

Таблица heartbeat: Служебная таблица cерверных часов

Данная таблица наполняется ядром торговой системы с определенной периодичностью и может быть использована для задач синхронизации (например, для проверки прихода всех сделок за определенный момент времени). Таблица используется в режиме добавления записей; очистка таблицы происходит в ночное время.

Таблица 9. Поля таблицы heartbeat

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
server_time t Дата и время сервера


Таблица sys_events: Таблица событий

Таблица 10. Поля таблицы sys_events

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
event_id i8 Уникальный идентификатор события
sess_id i4 Номер сессии
event_type i4 Тип события
message c64 Описание события


Примечания:

  • Возможные типы событий

    event_type = 1

    message = "session_data_ready"

    Закончена загрузка данных из клиринговой системы в торговую перед началом новой торговой сессии

    event_type = 5

    message = "clearing_started"

    Начало основного клиринга

    event_type = 6

    message = "extension_of_limits_finished"

    Раздвижка лимитов закончена

Поток FORTS_FEE_REPL - Поток комиссий и штрафов биржи (Type=AR)

Схема данных

Таблицы:

Таблица adjusted_fee: комиссии биржи

Таблица 11. Поля таблицы adjusted_fee

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
id_deal i8 Номер сделки
moment t Время заключения сделки
moment_ns u8 Время заключения сделки (UNIX-время в наносекундах по стандарту UTC)
code_buy c7 Код покупателя
code_sell c7 Код продавца
initial_fee_buy d26.2 Сбор по сделке покупателя, грубо
initial_fee_sell d26.2 Сбор по сделке продавца, грубо
adjusted_fee_buy d26.2 Сбор по сделке покупателя, точно
adjusted_fee_sell d26.2 Сбор по сделке продавца, точно
id_deal_multileg i8 Номер сделки по связке


Таблица penalty: Штрафы биржи

Таблица 12. Поля таблицы penalty

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
sess_id i4 Номер сессии
id_deal i8 Номер сделки
id_deal_multileg i8 Номер сделки по связке
moment t Время заключения сделки
moment_ns u8 Время заключения сделки (UNIX-время в наносекундах по стандарту UTC)
code_buy c7 Код покупателя
code_sell c7 Код продавца
penalty_buy d26.2 Штраф по сделке покупателя
penalty_sell d26.2 Штраф по сделке продавца


Таблица sys_events: Таблица событий

Таблица 13. Поля таблицы sys_events

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
event_id i8 Уникальный идентификатор события
sess_id i4 Номер сессии
event_type i4 Тип события
message c64 Описание события


Примечания:

  • Возможные типы событий

    event_type = 1

    message = "session_data_ready"

    Закончена загрузка данных из клиринговой системы в торговую перед началом новой торговой сессии

    event_type = 5

    message = "clearing_started"

    Начало основного клиринга

    event_type = 6

    message = "extension_of_limits_finished"

    Раздвижка лимитов закончена

Поток FORTS_FEERATE_REPL - Поток точных ставок комиссий биржи (Type=AR)

Схема данных

Таблицы:

  • futures_rate - Точные ставки комиссий по фьючерсам
  • sys_events - Таблица событий
Таблица futures_rate: Точные ставки комиссий по фьючерсам

Таблица 14. Поля таблицы futures_rate

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
isin_id i4 Уникальный числовой идентификатор инструмента
sess_id i4 Идентификатор торговой сессии
exchange_fee_negdeal d26.2 Точная ставка биржевой комиссии для адресных сделок
exchange_fee d26.2 Точная ставка биржевой комиссии для анонимных сделок
clearing_fee_negdeal d26.2 Точная ставка клиринговой комиссии для адресных сделок
clearing_fee d26.2 Точная ставка клиринговой комиссии для анонимных сделок
exp_clearing_fee d26.2

Точная ставка клиринговой комиссии за исполнение контракта.


Таблица sys_events: Таблица событий

Таблица 15. Поля таблицы sys_events

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
event_id i8 Уникальный идентификатор события
sess_id i4 Номер сессии
event_type i4 Тип события
message c64 Описание события


Примечания:

  • Возможные типы событий

    event_type = 1

    message = "session_data_ready"

    Закончена загрузка данных из клиринговой системы в торговую перед началом новой торговой сессии

    event_type = 5

    message = "clearing_started"

    Начало основного клиринга

    event_type = 6

    message = "extension_of_limits_finished"

    Раздвижка лимитов закончена

Поток FORTS_BROKER_FEE_REPL - Брокерские комиссии (Type=I)

Схема данных

Таблицы:

Таблица broker_fee: Брокерская комиссия

Таблица 16. Поля таблицы broker_fee

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
sess_id i4 Номер сессии
id_deal i8 Номер сделки
id_deal_multileg i8 Номер сделки по связке (**)
moment t Время заключения сделки
moment_ns u8 Время заключения сделки (UNIX-время в наносекундах по стандарту UTC)
code_buy c7 Код покупателя
code_sell c7 Код продавца
broker_fee_buy d26.2 Брокерская комиссия по сделке покупателя
broker_fee_sell d26.2 Брокерская комиссия по сделке продавца


Таблица sys_events: Таблица событий

Таблица 17. Поля таблицы sys_events

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
event_id i8 Уникальный идентификатор события
sess_id i4 Номер сессии
event_type i4 Тип события
message c64 Описание события


Примечания:

  • Возможные типы событий

    event_type = 1

    message = "session_data_ready"

    Закончена загрузка данных из клиринговой системы в торговую перед началом новой торговой сессии

    event_type = 5

    message = "clearing_started"

    Начало основного клиринга

    event_type = 6

    message = "extension_of_limits_finished"

    Раздвижка лимитов закончена

Поток FORTS_BROKER_FEE_PARAMS_REPL - Параметры для расчета брокерской комиссии (Type=I)

Схема данных

Таблицы:

  • broker_fee_params - Параметры для расчета брокерской комиссии
  • sys_events - Таблица событий
Таблица broker_fee_params: Параметры для расчета брокерской комиссии

Таблица 18. Поля таблицы broker_fee_params

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
sess_id i4 Номер сессии
client_code c7 Код клиента (код брокера)
lower_fee d26.2 Минимально возможная сумма брокерской комиссии за один контракт
upper_fee d26.2 Максимально возможная сумма брокерской комиссии за один контракт
multiplier d26.2 Мультипликатор к сумме биржевого и клирингового сбора
additive d26.2 Постоянная добавка за один контракт


Примечания:

  • Поле client_code может содержать либо код клиентского раздела, либо код брокерской фирмы. Если указан код клиента, то заданные параметры используются для расчета брокерской комиссии по сделкам данного клиента. Если указан код брокера, то параметры используются для расчета брокерской комиссии по всем клиентам БФ.

  • Поле sess_id может принимать следующие значения:

    sess_id

    Текущие (действующие сейчас) параметры расчета.

    -1

    Добавление новых параметров расчета. Параметры применяются в следующей торговой сессии.

    -2

    Удаление текущих параметров расчета. Параметры удаляются в следующей торговой сессии.

Таблица sys_events: Таблица событий

Таблица 19. Поля таблицы sys_events

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
event_id i8 Уникальный идентификатор события
sess_id i4 Номер сессии
event_type i4 Тип события
message c64 Описание события


Примечания:

  • Возможные типы событий

    event_type = 1

    message = "session_data_ready"

    Закончена загрузка данных из клиринговой системы в торговую перед началом новой торговой сессии

    event_type = 5

    message = "clearing_started"

    Начало основного клиринга

    event_type = 6

    message = "extension_of_limits_finished"

    Раздвижка лимитов закончена

Поток FORTS_USERORDERBOOK_REPL - Заявки пользователя: Cрез стакана (Type=R)

В потоке с периодичностью раз в 2 минуты в таблице orders публикуется срез активных заявок, и запись в таблице info с ревизией последней обработанной транзакции из orders_log, номером жизни потока и состоянием публикации среза (поле publication_state). В момент публикации среза поле publication_state принимает значение 0. После того как срез опубликован publication_state принимает значение 1. До момента publication_state=1 данные в таблице orders могут быть неконсистентны.

Схема данных

Таблицы:

  • orders - Таблица активных заявок пользователя
  • info - Информация о стаканах
Таблица orders: Таблица активных заявок пользователя

Таблица 20. Поля таблицы orders

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
public_order_id i8 Идентификационный номер заявки (для айсбергов - номер видимой части айсберга)
sess_id i4 Идентификатор торговой сессии
client_code c7 Код клиента
moment t Время изменения состояния заявки
moment_ns u8 Время изменения состояния заявки (UNIX-время в наносекундах по стандарту UTC)
xstatus i8 Расширенный статус заявки
public_action i1 Действие с заявкой (для айсбергов - действие с видимой частью айсберга)
isin_id i4 Уникальный числовой идентификатор инструмента
dir i1 Направление
price d16.5 Цена
public_amount i8 Количество контрактов в операции (для айсбергов - количество контрактов в операции по видимой части айсберга)
public_amount_rest i8 Оставшееся количество контрактов в заявке (для айсбергов - оставшееся количество контрактов в видимой части айсберга)
comment c20 Комментарий трейдера
ext_id i4 Внешний номер
login_from c20 Логин пользователя, поставившего заявку
broker_to c7 Код SPECTRA фирмы-адресата внесистемной заявки
broker_to_rts c7 Код РТС фирмы-адресата внесистемной заявки
date_exp t Дата истечения заявки
id_ord1 i8 Номер первой заявки
broker_from_rts c7 Код РТС фирмы - владельца заявки
aspref i4 Идентификатор пользователя. Для заявок, поданных от SMA-логина - идентификатор MASTER-логина.
id_ord i8 Идентификационный номер заявки (для айсбергов – идентификационный номер всей айсберг-заявки). Поле будет удалено в версии 6.7, значение см. private_order_id.
xamount i8 Количество контрактов в операции (для айсбергов – количество контрактов в операции со всей айсберг-заявкой). Поле будет удалено в версии 6.7, значение см. private_amount.
xamount_rest i8 Оставшееся количество контрактов в заявке (для айсбергов - оставшееся количество контрактов во всей айсберг-заявке). Поле будет удалено в версии 6.7, значение см. private_amount_rest.
variance_amount i8 Амплитуда отклонения (в контрактах) случайной надбавки к всплывающей части айсберг-заявки
disclose_const_amount i8 Количество единиц инструмента в постоянной составляющей всплывающей части айсберг-заявки
action i1 Действие с заявкой (для айсбергов – действие в отношении всей айсберг-заявки). Поле будет удалено в версии 6.7, значение см. private_action.
public_init_moment t Время появления заявки (для айсбергов - время появления видимой части айсберга)
public_init_amount i8 Начальное количество контрактов в заявке (для айсбергов - начальное количество контрактов в видимой части айсберга)
init_moment t Время появления заявки (для айсбергов - время появления всей айсберг-заявки). Поле будет удалено в версии 6.7, значение см. private_init_moment.
xinit_amount i8 Начальное количество контрактов в заявке (для айсбергов - начальное количество контрактов во всей айсберг-заявке). Поле будет удалено в версии 6.7, значение см. private_init_amount.
private_order_id i8 Идентификационный номер заявки (для айсбергов – идентификационный номер всей айсберг-заявки)
private_amount i8 Количество контрактов в операции (для айсбергов – количество контрактов в операции со всей айсберг-заявкой)
private_amount_rest i8 Оставшееся количество контрактов в заявке (для айсбергов - оставшееся количество контрактов во всей айсберг-заявке)
private_action i1 Действие с заявкой (для айсбергов – действие в отношении всей айсберг-заявки)
private_init_moment t Время появления заявки (для айсбергов - время появления всей айсберг-заявки)
private_init_amount i8 Начальное количество контрактов в заявке (для айсбергов - начальное количество контрактов во всей айсберг-заявке)
reason i4 Признак (причина) заявки, выставленной для заключения сделки урегулирования обязательств.


Примечания:

  • Поле xstatus представляет собой битовую маску, перечень возможных значений поля приведен в разделе Типы сделок, формируемые при исполнении и истечении фьючерсов и опционов.

  • Поле dir может принимать следующие значения:

    1

    Buy

    2

    Sell

  • Поле public_action может принимать следующие значения:

    0

    Заявка удалена

    1

    Заявка добавлена

    2

    Заявка сведена в сделку

  • Поле private_action (action) может принимать следующие значения:

    0

    Заявка удалена

    1

    Заявка добавлена

    2

    Заявка сведена в сделку

    3

    Заявка добавлена в результате появления новой видимой части айсберга

  • Поле reason может принимать следующие значения:

    0

    Обычная заявка

    4

    Балансирующие Срочные контракты, заключенные с Добросовестным участником клиринга без подачи заявок

    6

    Закрывающие Срочные контракты, заключенные в рамках процедуры кросс-дефолта

    7

    Закрывающие Срочные контракты, заключенные в связи с неисполнением Маржинального требования

    8

    Закрывающие Срочные контракты, заключенные в связи с неисполнением Обязательства по поставке по поставочным Срочным контрактам на драгоценные металлы

    100

    Иное

Таблица info: Информация о стаканах

Таблица 21. Поля таблицы info

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
infoIDi8Уникальный ключ
logRevi8Последняя обработанная ревизия на момент формирования среза
lifeNumi4Номер жизни потока
momenttВремя формирования среза
publication_statei1Состояние публикации среза


Примечания:

  • Поле publication_state может принимать следующие значения:

    0

    in progress (данные не готовы)

    1

    done

Поток FORTS_ORDBOOK_REPL - Cрез стакана. Анонимный (Type=R)

В потоке с периодичностью раз в 2 минуты в таблице orders публикуется срез активных заявок, и запись в таблице info с ревизией последней обработанной транзакции из orders_log, номером жизни потока и состоянием публикации среза (поле publication_state). В момент публикации среза поле publication_state принимает значение 0. После того как срез опубликован publication_state принимает значение 1. До момента publication_state=1 данные в таблице orders могут быть неконсистентны.

Схема данных

Таблицы:

  • orders - Таблица активных анонимных заявок
  • info - Информация о стаканах
Таблица orders: Таблица активных анонимных заявок

Таблица 22. Поля таблицы orders

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
public_order_id i8 Идентификационный номер заявки (для айсбергов - номер видимой части айсберга)
sess_id i4 Идентификатор торговой сессии
moment t Время изменения состояния заявки
moment_ns u8 Время изменения состояния заявки (UNIX-время в наносекундах по стандарту UTC)
xstatus i8 Расширенный статус заявки
public_action i1 Действие с заявкой (для айсбергов - действие с видимой частью айсберга)
isin_id i4 Уникальный числовой идентификатор инструмента
dir i1 Направление
price d16.5 Цена
public_amount i8 Количество контрактов в операции (для айсбергов - количество контрактов в операции по видимой части айсберга)
public_amount_rest i8 Оставшееся количество контрактов в заявке (для айсбергов - оставшееся количество контрактов в видимой части айсберга)
public_init_moment t Время появления заявки (для айсбергов - время появления видимой части айсберга)
public_init_amount i8 Начальное количество контрактов в заявке (для айсбергов - начальное количество контрактов в видимой части айсберга)


Примечания:

Таблица info: Информация о стаканах

Таблица 23. Поля таблицы info

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
infoIDi8Уникальный ключ
logRevi8Последняя обработанная ревизия на момент формирования среза
lifeNumi4Номер жизни потока
momenttВремя формирования среза
publication_statei1Состояние публикации среза


Примечания:

  • Поле publication_state может принимать следующие значения:

    0

    in progress (данные не готовы)

    1

    done

Поток FORTS_COMMON_REPL - Общая информация по сессии (Type=I)

Схема данных

Таблицы:

  • common - Общая информация по сессии
Таблица common: Общая информация по сессии

Таблица содержит общерыночные показатели такие как лучшие заявки на покупку и продажу, цены открытия, закрытия и т.п.

Таблица 24. Поля таблицы common

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
sess_id i4 Идентификатор торговой сессии
isin_id i4 Уникальный числовой идентификатор инструмента
best_buy d16.5 Цена лучшей заявки на покупку
xamount_buy i8 Количество в заявках на покупку с лучшей ценой
orders_buy_qty i4 Количество заявок на покупку
xorders_buy_amount i8 Объём в контрактах в заявках на покупку
best_sell d16.5 Цена лучшей заявки на продажу
xamount_sell i8 Количество в заявках на продажу с лучшей ценой
orders_sell_qty i4 Количество заявок на продажу
xorders_sell_amount i8 Объём в контрактах в заявках на продажу
open_price d16.5 Цена открытия
close_price d16.5 Цена закрытия
price d16.5 Цена последней сделки
trend d16.5 Тренд изменения цены (разница между ценами двух последних сделок)
xamount i8 Количество в последней сделке
deal_time t Дата и время последней сделки
deal_time_ns u8 Дата и время последней сделки (UNIX-время в наносекундах по стандарту UTC)
min_price d16.5 Минимальная цена
max_price d16.5 Максимальная цена
avr_price d16.5 Средневзвешенная цена
xcontr_count i8 Общее количество контрактов в сделках
capital d26.2 Суммарный объём сделок в рублях
total_premium_volume d26.2 Суммарный оборот по премии
deal_count i4 Количество сделок
settlement_price_open d16.5 Расчетная цена предыдущей сессии.
xpos i8 Текущее количество открытых позиций
mod_time t Дата и время изменения записи
mod_time_ns u8 Дата и время изменения записи (UNIX-время в наносекундах по стандарту UTC)
market_price d16.5 Текущая рыночная цена.
best_buy_native d16.5 Цена лучшей заявки на покупку
xamount_buy_native i8 Количество в заявках на покупку с лучшей ценой
xorders_buy_amount_native i8 Объём в контрактах в заявках на покупку
best_sell_native d16.5 Цена лучшей заявки на продажу
xamount_sell_native i8 Количество в заявках на продажу с лучшей ценой
xorders_sell_amount_native i8 Объём в контрактах в заявках на продажу
local_time t Поле для мониторинга репликации common
price_assigned_by_admin i1 Признак установки текущей рыночной цены Администратором торгов.


Примечания:

  • Поле open_price содержит цену первой сделки в текущей сессии, а если её нет, то 0.

  • Поле close_price содержит цену последней сделки в соответствующей сессии. До завершения сессии в поле транслируется 0. После завершения сессии (после вечернего клиринга до утра) транслируется цена последней сделки или 0, если сделок не было.

  • Поле price_assigned_by_admin может принимать следующие значения:

    1

    Значение текущей рыночной цены в поле market_price установлено Администратором торгов.

    0

    Значение текущей рыночной цены в поле market_price рассчитано системой.

Потоки агрегированных стаканов (Type=I)

Существует несколько потоков агрегированных стаканов с различной глубиной.

  • FORTS_AGGR50_REPL - с глубиной 50 ценовых уровней

  • FORTS_AGGR20_REPL - с глубиной 20 ценовых уровней

  • FORTS_AGGR5_REPL - с глубиной 5 ценовых уровней

Возможность получения определённого потока зависит от прав пользователя.

Схема данных

Таблицы:

  • orders_aggr - Агрегированные стаканы
Таблица orders_aggr: Агрегированные стаканы

Агрегированные стаканы формируются путем суммирования по объёму активных заявок с одинаковыми инструментом, ценой и направлением.

Таблица 25. Поля таблицы orders_aggr

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
isin_id i4 Уникальный числовой идентификатор инструмента
price d16.5 Ценовой уровень
volume i8 Объем
moment t Время последнего обновления записи
moment_ns u8 Время последнего обновления записи (UNIX-время в наносекундах по стандарту UTC)
dir i1 Направление
synth_volume i8 Объем синтетической ликвидности (**)


Примечания:

  • В стакане по инструменту могут присутствовать записи с нулевыми значениями. Это означает, что количество заявок по инструменту (ценовых уровней) не набирается на всю фиксированную глубину стакана. Такие записи следует игнорировать. В дальнейшем записи с нулями могут обновляться значениями с новым ценовым уровнем, в следствие появления в системе новых заявок по инструменту.

  • Записи в стакане по инструменту могут обновляться (изменение price/volume/dir). Это означает, что предыдущий ценовой уровень "вышел" из стакана, а новый "вошел" в стакан.

  • Обнуление (volume=0) существующей записи в стакане – означает, что данный ценовой уровень "вышел" из стакана (например, единственная заявка, формировавшая ценовой уровень, была удалена), а других скрытых ценовых уровней (заявок) по инструменту в системе нет.

  • Значение поля moment (moment_ns) в таблице не является монотонно возрастающим. При возрастании replRev в потоке агрегированных стаканов могут появляться записи с более ранним значением поля moment. Такое поведение системы ожидаемо и может возникать в разных ситуациях, когда сформированный ранее ценовой уровень был скрыт в силу некоторых причин, но потом начал отображаться. Поле же moment содержит в себе время события, приведшего к формированию ценового уровня (постановка, снятие, исполнение заявки). Пример подобного поведения системы:

    • Самый простой случай связан с тем, что в потоках агрегированных стаканов показывается ограниченное по цене количество уровней ликвидности. Например, в FORTS_AGGR20_REPL показывается лишь 20 лучших ценовых уровней. Скрытый, но уже сформированный уровень с ценой вне отображаемого диапазона, может появиться, если один из отображаемых ценовых уровней "исчез" (например, была удалена единственная заявка, формировавшая видимый ценовой уровень).

Поток FORTS_POS_REPL - Информация о позициях (Type=I)

Схема данных

Таблицы:

  • position - Позиции клиентов и Брокерских Фирм
  • position_sa - Позиции уровня Расчётного Кода

  • sys_events - Таблица событий
Таблица position: Позиции клиентов

Таблица содержит информацию о позициях клиентов и БФ.

Таблица 26. Поля таблицы position

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
client_code c7 Код клиента
isin_id i4 Уникальный числовой идентификатор инструмента
xpos i8 Текущая позиция
xbuys_qty i8 Количество купленных контрактов в ходе сессии
xsells_qty i8 Количество проданных контрактов в ходе сессии
xopen_qty i8 Количество позиций на начало сессии
waprice d16.5 Учетная цена позиции
net_volume_rur d26.2 Нетто-оборот по сделкам за сессию в рублях. Продажи учитываются с положительным знаком, а покупки с отрицательным.
last_deal_id i8 Номер последней сделки
account_type i1
  • 1 - для БФ

  • 2 - для клиента


Таблица position_sa: Позиции уровня Расчётного кода

Таблица содержит информацию о позициях уровня Расчётного кода.

Таблица 27. Поля таблицы position_sa

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
client_code c12 Расчётный код
isin_id i4 Уникальный числовой идентификатор инструмента
xpos i8 Текущая позиция
xbuys_qty i8 Количество купленных контрактов в ходе сессии
xsells_qty i8 Количество проданных контрактов в ходе сессии
xopen_qty i8 Количество позиций на начало сессии
waprice d16.5 Учетная цена позиции
net_volume_rur d26.2 Нетто-оборот по сделкам за сессию в рублях. Продажи учитываются с положительным знаком, а покупки с отрицательным.
last_deal_id i8 Номер последней сделки


Таблица sys_events: Таблица событий

Таблица 28. Поля таблицы sys_events

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
event_id i8 Уникальный идентификатор события
sess_id i4 Номер сессии
event_type i4 Тип события
message c64 Описание события


Примечания:

  • Возможные типы событий

    event_type = 1

    message = "session_data_ready"

    Закончена загрузка данных из клиринговой системы в торговую перед началом новой торговой сессии

    event_type = 5

    message = "clearing_started"

    Начало основного клиринга

    event_type = 6

    message = "extension_of_limits_finished"

    Раздвижка лимитов закончена

Поток FORTS_PART_REPL - Информация о средствах и лимитах (Type=I)

Схема данных

Таблицы:

  • part - Средства и лимиты по клиентам и брокерским фирмам
  • part_sa - Средства и лимиты по Расчетному коду
  • sys_events - Таблица событий
Таблица part: Средства и лимиты по клиентам и брокерским фирмам

Таблица содержит информацию о средствах, лимитах и настройки автоматического изменения лимитов для клиентов и брокерских фирм.

Таблица 29. Поля таблицы part

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
client_code c7 Код клиента или брокерской фирмы
money_free d26.2 Свободные средства. Сумма денежных средств, доступная для открытия позиций. (money_free=money_amount + vm_intercl – money_blocked – vm_reserve – fee – broker_fee)
money_blocked d26.2 Средства, заблокированные под ГО.
vm_reserve d26.2 Вариационная маржа по закрытым позициям и валютный риск.
fee d26.2 Списанный сбор
limits_set i1 Наличие установленных лимитов: 1 - лимит установлен (проверяется); 0 - лимит не установлен (не проверяется)
money_old d26.2 Всего денег на конец предыдущей сессии
money_amount d26.2 Всего денег
vm_intercl d26.2 Вариационная маржа, списанная или полученная в пром. клиринг (**)
is_auto_update_limit i1 Признак автоматической коррекции лимита на величину дохода при закачке после клиринга: 0-нет, 1-менять.
broker_fee d26.2 Средства, заблокированные под брокерскую комиссию.
penalty d26.2 Штраф за сделки урегулирования, заключенные при проведении процедуры принудительного закрытия позиций Недобросовестного Участника клиринга.


Таблица part_sa: Средства и лимиты по Расчетному коду

Таблица 30. Поля таблицы part_sa

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
settlement_accountc12Расчетный код
money_oldd26.2Всего денег на конец предыдущей сессии
money_amountd26.2Всего денег
money_freed26.2Свободные средства. Сумма денежных средств, доступная для открытия позиций. (money_free=money_amount + vm_intercl – money_blocked – vm_reserve – fee)
money_blockedd26.2Средства, заблокированные под ГО.
vm_reserved26.2Вариационная маржа по закрытым позициям и валютный риск.
vm_intercld26.2Вариационная маржа, списанная или полученная в пром. клиринг (**)
feed26.2Списанный сбор
blocked_taxd26.2Средства, заблокированные под выплату налогов.


Таблица sys_events: Таблица событий

Таблица 31. Поля таблицы sys_events

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
event_type i4 Тип события
event_id i8 Уникальный идентификатор события
sess_id i4 Номер сессии
message c64 Описание события


Примечания:

  • Возможные типы событий

    event_type = 1

    message = "session_data_ready"

    Закончена загрузка данных из клиринговой системы в торговую перед началом новой торговой сессии

    event_type = 5

    message = "clearing_started"

    Начало основного клиринга

    event_type = 6

    message = "extension_of_limits_finished"

    Раздвижка лимитов закончена

Поток FORTS_PROHIBITION_REPL - Запреты (Type=R)

Схема данных

Таблицы:

Таблица prohibition: Запреты

Таблица 32. Поля таблицы prohibition

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
xprohibition_id i8 Номер запрета
client_code c7 Код клиента
initiator i4 Инициатор запрета
section c50 Секция
base_contract_code c25 Код базового актива.
isin_id i4 Уникальный числовой идентификатор инструмента
priority i4 Приоритет запрета
group_mask i8 Битовая маска групп, по которым действует запрет
type i4 Тип запрета
is_legacy i4 Тип инициатора запрета


Примечания:

  • Поле initiator - Инициатор запрета:

    0

    БФ;

    1

    Главный трейдер РФ;

    2

    Администратор КЦ;

    3

    Администратор ТС.

  • Поле type - Тип запрета

    0

    всё разрешено (при отмене действующего запрета с меньшим приоритетом, иначе - просто удалить строку);

    1

    запрет открытия позиций;

    2

    запрет всех торговых операций;

    3

    запрет открытия позиций в продажу;

    8

    запрет брокера на подачу заявок на экспирацию.

    16

    запрет главного трейдера РФ на подачу заявок на экспирацию. Но ему самому - можно;

  • Поле group_mask - Битовая маска типов инструментов:

    0x40000000

    фьючерсы

    0x80000000

    опционы

  • Поле priority - От максимального приоритета к минимальному:

    Клиентский код, инструмент

    9

    Клиентский код, БА

    8

    Клиентский код, все БА

    7

    Код БФ, инструмент

    6

    Код БФ, БА

    5

    Код БФ, все БА

    4

    Код РФ, инструмент

    3

    Код РФ, БА

    2

    Код РФ, все БА

    1

  • Поле section - Название секции:

    1

    Фондовая

    2

    Товарная

    3

    Денежная

  • Поле is_legacy - Тип инициатора запрета:

    0

    запрет был выставлен Администратором торгов или клиринга и не может быть изменён участником торгов.

    1

    запрет был выставлен участником торгов и может быть изменён.

Поток FORTS_REFDATA_REPL - Справочная и сессионная информация (Type=R)

Схема данных

Таблицы:

  • fut_sess_contents - Справочник торгуемых инструментов (фьючерсы)
  • fut_vcb - Справочник торгуемых активов (фьючерсы)
  • fut_instruments - Справочник инструментов
  • fut_bond_registry - Справочник параметров спот-активов
  • dealer - Справочник фирм
  • sys_messages - Сообщения торговой системы
  • prohibition - Запреты
  • fut_rejected_orders - Отвергнутые в клиринг заявки (фьючерсы)
  • fut_bond_nkd - НКД на дату исполнения срочного контракта с облигацией
  • fut_bond_nominal - Размеры выплат номинальной стоимости облигации
  • fut_bond_isin - Справочник инструментов облигаций
  • user - Пользователи системы
  • investor - Справочник клиентов
  • fut_margin_type - Тип маржирования
  • fut_settlement_account - Расчетный Код
  • session - Информация о торговой сессии
  • sma_master - Привязка SMA-логина к MASTER-логину
  • sma_pre_trade_check - Настройки предварительных проверок SMA-логина
  • clearing_members - Участники клиринга
  • instr2matching_map - Сопоставление инструментов матчингу
  • sys_events - Таблица событий
Таблица fut_sess_contents: Справочник торгуемых инструментов (фьючерсы)

Таблица содержит справочник инструментов, назначенных к торгам в сессию.

Таблица 33. Поля таблицы fut_sess_contents

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
sess_id i4 Идентификатор торговой сессии
isin_id i4 Уникальный числовой идентификатор инструмента
short_isin c25 Короткий символьный код инструмента для информационных систем
isin c25 Символьный код инструмента
name c75 Наименование инструмента
inst_term i4 Смещение от спота
base_contract_code c25 Код базового актива.
limit_up d16.5 Верхний лимит цены
limit_down d16.5 Нижний лимит цены
settlement_price_open d16.5 Расчетная цена на начало сессии.
buy_deposit d16.2 ГО покупателя
sell_deposit d16.2 ГО продавца
roundto i4 Количество знаков после запятой в цене
min_step d16.5 Минимальный шаг цены
lot_volume i4 Количество единиц базового актива в инструменте
step_price d16.5 Стоимость шага цены
last_trade_date t Дата окончания обращения инструмента.
is_spread i1 Признак вхождения фьючерса в межмесячный спред. 1 – входит; 0 – не входит (**)
d_exp_start t Дата начала исполнения инструмента
is_percent i1 Признак контракта. 0 – обычный фьючерс, 1 – процентный фьючерс, 2 – фьючерс на погоду и электричество, 3 – фьючерс на евробонды, 4 - RUONIA (**)
percent_rate d6.2 Процентная ставка для расчета вариационной маржи по процентным фьючерсам (**)
settlement_price d16.5 Расчетная цена после последнего клиринга.
signs i4 Поле признаков
is_trade_evening i1 Признак торговли в дополнительную торговую сессию (вечернюю/утреннюю) (**)
ticker i4 Уникальный числовой код Главного Спота
state i4 Состояние торговли по инструменту
multileg_type i4 Тип связки (**)
legs_qty i4 Количество инструментов в связке (**)
step_price_clr d16.5 Стоимость шага цены вечернего клиринга
step_price_interclr d16.5 Стоимость шага цены промежуточного клиринга (**)
step_price_curr d16.5 Стоимость минимального шага цены, выраженная в валюте
pctyield_coeff d16.5 Коэффициент для вычисления доходности по фьючерсам на процентные ставки (**)
pctyield_total d16.5 Сумма ставок для вычисления доходности по фьючерсам на процентные ставки (**)
d_exp_end t Дата окончания исполнения инструмента
enforce_ims_half_netting i1 Признак учитывать риски межмесячного спреда по правилу "полунетто". 1 – да; 0 – нет.


Примечания:

  • Состояние сессии имеет приоритет над состоянием инструмента. То есть, если сессия находится в состоянии «приостановлена» или «завершена», то по всем инструментам нельзя торговать, независимо от значения state в инструменте.

  • Поле state может принимать следующие значения:

    0

    Сессия по этому инструменту назначена. Нельзя ставить заявки, но можно удалять по этому инструменту.

    1

    Сессия по этому инструменту идет. Можно ставить и удалять заявки по этому инструменту.

    2

    Приостановка торгов по всем инструментам. Нельзя ставить заявки, но можно удалять.

    3

    Сессия по этому инструменту принудительно завершена. Нельзя ставить и удалять заявки по этому инструменту.

    4

    Сессия по этому инструменту завершена по времени. Нельзя ставить и удалять заявки по этому инструменту.

    5

    Приостановка торгов по этому инструменту. Нельзя ставить заявки, но можно удалять по этому инструменту.

  • Поле signs является битовой маской и может принимать следующие значения:

    0x10

    Признак анонимной торговли

    0x20

    Признак неанонимной торговли

  • Поле multileg_type может принимать следующие значения:

    0

    Обычный инструмент - не связка

    3

    Календарный спред

Таблица fut_vcb: Справочник торгуемых активов (фьючерсы)

Таблица содержит справочник базовых контрактов для инструментов.

Таблица 34. Поля таблицы fut_vcb

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
base_contract_code c25 Код базового актива.
name c75 Наименование
exec_type c1 Тип исполнения
curr c3 Валюта платежа
trade_scheme c1 Форма торгов
section c50 Наименование Секции
rate_id i4 Идентификатор курса (**)
base_contract_id i4 Числовой идентификатор базового контракта
signs i4 Поле признаков
negative_prices i1 Признак ограничения отрицательных цен.
option_model i1 Модель ценообразования опционов. (**)


Примечания:

  • Поле exec_type может принимать следующие значения:

    D

    Поставка

    I

    Индекс

  • Поле trade_scheme может принимать следующие значения:

    F

    С полным обеспечением

  • Поле signs является битовой маской и может принимать следующие значения:

    0x2

    Признак отнесения инструмента к иностранным: 0 - не иностранный; 1 - иностранный

  • Поле negative_prices может принимать следующие значения:

    0

    Цены фьючерсов, ценовые границы и страйки опционов ограничены положительными значениями

    1

    Цены фьючерсов, ценовые границы и страйки опционов не ограничены

Таблица fut_instruments: Справочник инструментов

Таблица 35. Поля таблицы fut_instruments

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
isin_idi4Уникальный числовой идентификатор инструмента
short_isinc25Короткий символьный код инструмента для информационных систем
isinc25Символьный код инструмента
namec75Наименование инструмента
inst_termi4Смещение от спота
base_contract_codec25Код базового актива.
settlement_price_opend16.5Расчетная цена на начало сессии.
roundtoi4Количество знаков после запятой в цене
min_stepd16.5Минимальный шаг цены
lot_volumei4Количество единиц базового актива в инструменте
step_priced16.5Стоимость шага цены
last_trade_datetДата окончания обращения инструмента.
is_spreadi1Признак вхождения фьючерса в межмесячный спред. 1 – входит; 0 – не входит (**)
d_exp_starttДата начала исполнения инструмента.
is_percenti1Признак контракта. 0 – обычный фьючерс, 1 – процентный фьючерс, 2 – фьючерс на погоду и электричество, 3 – фьючерс на евробонды, 4 - RUONIA (**)
percent_rated6.2Процентная ставка для расчета вариационной маржи по процентным фьючерсам (**)
settlement_priced16.5Расчетная цена после последнего клиринга.
signsi4Поле признаков
multileg_typei4Тип связки (**)
legs_qtyi4Количество инструментов в связке (**)
step_price_clrd16.5Стоимость шага цены вечернего клиринга
step_price_interclrd16.5Стоимость шага цены промежуточного клиринга (**)
step_price_currd16.5Стоимость минимального шага цены, выраженная в валюте
pctyield_coeffd16.5Коэффициент для вычисления доходности по фьючерсам на процентные ставки (**)
pctyield_totald16.5Сумма ставок для вычисления доходности по фьючерсам на процентные ставки (**)
series_typec1Признак срочности опциона. D-daily, W-weekly, M-monthly. (**)
enforce_ims_half_nettingi1Признак учитывать риски межмесячного спреда по правилу "полунетто". 1 – да; 0 – нет.


Примечания:

  • Значение поля roundto в технических сделках исполнения может содержать разное количество знаков после запятой. Это зависит от спецификации контракта.

Таблица fut_bond_registry: Справочник параметров спот-активов

Таблица 36. Поля таблицы fut_bond_registry

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
bond_id i4 Цифровой код облигации
small_name c25 Торговый код облигации
short_isin c25 Выпуск облигации
name c75 Наименование облигации
date_redempt t Дата погашения облигации
nominal d16.5 Номинал облигации
bond_type i4 Тип: акция/облигация/валюта
year_base i2 База года


Примечания:

  • Поле bond_type является битовой маской и может принимать следующие значения:

    0

    не задан

    0x1

    Акция

    0x2

    Облигация (без амортизации/формула актуальная)

    0x4

    Облигация с амортизацией

    0x8

    Облигация, формула виртуальная-американская

    0x10

    Облигация, формула виртуальная-европейская

    0x800000

    Валюта

Таблица dealer: Справочник фирм

Таблица 37. Поля таблицы dealer

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
client_code c7 Код клиента
name c200 Наименование фирмы
rts_code c50 Код РТС фирмы
signs i4 Поле признаков. 4 - режим блокировки Администратора Торговой Системы, 8 - режим блокировки Главного Трейдера Расчетной Фирмы
status i4 Признак обособленности раздела
transfer_code c7 Код счета для переноса позиции
exp_weight d3.2 Вес сценариев экспирации для БФ в итоговом ГО. Будет применен в вечерний клиринг
num_clr_2delivery i4 Количество клирингов до экспирации для начала расчета сценариев экспирации по БФ. Будет применен в вечерний клиринг
margin_type i1 Режим маржирования по разделам БФ. 3 - Полунетто, 4 - Нетто. Будет применен в вечерний клиринг
calendar_spread_margin_type i1 Тип маржирования календарных спредов для портфеля БФ. 3 - Полунетто, 4 - Нетто. Будет применен в вечерний клиринг (**)
num_clr_2delivery_client_default i4 Количество клирингов до экспирации для начала расчета сценариев экспирации по клиентам - значение по умолчанию. Будет применен в вечерний клиринг
exp_weight_client_default d3.2 Вес сценариев экспирации в итоговом ГО для клиентских разделов - значение по умолчанию. Будет применен в вечерний клиринг
coeff_im d16.5 Коэффициент итогового ГО для БФ. Будет применен в вечерний клиринг.
limits_set i1 Проверка достаточности лимита по БФ при постановке заявок. 1 - Да, 0 - Нет
no_fut_discount i1 Флаг запрещения использования скидки по фьючерсам для портфеля БФ. 1 - Запрет, 0 - Нет. Будет применен в вечерний клиринг
no_fut_discount_client_default i1 Флаг запрещения использования скидки по фьючерсам для клиентов - значение по умолчанию. 1 - Запрет, 0 - Нет. Будет применен в вечерний клиринг
firm_id c12 Код Участника торгов на срочном рынке (**)
tm_name c200 Наименование Участника торгов
short_option_minimum_charge_ratio d5.3 Индивидуальный коэффициент веса сценария SOMC. (**)
ics_margin_type i1 Тип маржирования межконтрактных спредов. 3 - Полунетто, 4 - Нетто МКС. (**)
order_allowed_in_morning_session i1 Доступ к торгам в утреннюю торговую сессию. (**)


Примечания:

  • Поле status является битовой маской:

    • 0x01 - Брокерская фирма ДУ

    • 0x02 - Обособленная Брокерская фирма (ОБФ)

    • 0x100 - БФ для клиента - юридического лица

    • 0x200 - БФ для клиента - нерезидента

    • 0x20000 – Собственная Брокерская фирма

    • 0x40000 – Клиентская Брокерская фирма

    • 0x80000 - СпецБФ

    Другие биты содержат техническую информацию

  • Поле order_allowed_in_morning_session может принимать следующие значения:

    0

    Доступ к торгам в утреннюю торговую сессию ограничен. Запрещены торговые операции, кроме операций снятия заявок.

    1

    Доступ к торгам в утреннюю торговую сессию разрешен.

Таблица sys_messages: Сообщения торговой системы

Таблица 38. Поля таблицы sys_messages

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
msg_idi4Уникальный идентификатор сообщения
momenttДата и время регистрации сообщения
lang_codec8Язык сообщения
urgencyi1Признак срочности сообщения
statusi1Статус сообщения
textc255Краткий текст сообщения
message_bodyc4000Полный текст сообщения


Таблица prohibition: Запреты

Таблица 39. Поля таблицы prohibition

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
prohib_id i4 Номер запрета
xprohibition_id i8 Номер запрета
client_code c7 Код клиента
initiator i4 Инициатор запрета
section c50 Секция
base_contract_code c25 Код базового актива.
isin_id i4 Уникальный числовой идентификатор инструмента
priority i4 Приоритет запрета
group_mask i8 Битовая маска групп, по которым действует запрет
type i4 Тип запрета
is_legacy i4 Тип инициатора запрета


Примечания:

  • Поле initiator - Инициатор запрета:

    0

    БФ;

    1

    Главный трейдер РФ;

    2

    Администратор КЦ;

    3

    Администратор ТС.

  • Поле type - Тип запрета

    0

    всё разрешено (при отмене действующего запрета с меньшим приоритетом, иначе - просто удалить строку);

    1

    запрет открытия позиций;

    2

    запрет всех торговых операций;

    3

    запрет открытия позиций в продажу;

    8

    запрет брокера на подачу заявок на экспирацию.

    16

    запрет главного трейдера РФ на подачу заявок на экспирацию. Но ему самому - можно;

  • Поле group_mask - Битовая маска типов инструментов:

    0x40000000

    фьючерсы

    0x80000000

    опционы

  • Поле priority - От максимального приоритета к минимальному:

    Клиентский код, инструмент

    9

    Клиентский код, БА

    8

    Клиентский код, все БА

    7

    Код БФ, инструмент

    6

    Код БФ, БА

    5

    Код БФ, все БА

    4

    Код РФ, инструмент

    3

    Код РФ, БА

    2

    Код РФ, все БА

    1

  • Поле section - Название секции:

    1

    Фондовая

    2

    Товарная

    3

    Денежная

  • Поле is_legacy - Тип инициатора запрета:

    0

    запрет был выставлен Администратором торгов или клиринга и не может быть изменён участником торгов.

    1

    запрет был выставлен участником торгов и может быть изменён.

Таблица fut_rejected_orders: Отвергнутые в клиринг заявки (фьючерсы)

Таблица 40. Поля таблицы fut_rejected_orders

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
order_idi8Номер заявки
sess_idi4Идентификатор торговой сессии
momenttВремя изменения состояния заявки
isin_idi4Уникальный числовой идентификатор инструмента
client_codec7Код клиента
diri1Направление
xamounti8Объём, количество единиц инструмента
priced16.5Цена
date_exptДата истечения заявки
id_ord1i8Номер первой заявки
moment_rejecttВремя, когда заявка была отвергнута
ret_codei4Код возврата процедуры перепостановки
ret_messagec255Текст сообщения о причине отвержения заявки при перепостановке
commentc20Комментарий трейдера
login_fromc20Логин пользователя, поставившего заявку
ext_idi4Внешний номер


Таблица fut_bond_nkd: НКД на дату исполнения срочного контракта с облигацией

Таблица 41. Поля таблицы fut_bond_nkd

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
bond_idi4Цифровой код облигации
datetДата выплаты купона
nkdd16.7НКД на дату выплаты купона
is_cuponi1Признак: 0 - НКД на дату исполнения срочного контракта с облигацией, 2 - НКД на дату поставки облигации


Таблица fut_bond_nominal: Размеры выплат номинальной стоимости облигации

Таблица 42. Поля таблицы fut_bond_nominal

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
bond_idi4Цифровой код облигации
datetДата выплаты купона
nominald16.5Размер выплат номинальной стоимости
face_valued16.5Размер остаточной номинальной стоимости облигации
coupon_nominald8.5Стоимость купона в % от номинала
is_nominali1Признак записи в таблицах номиналов: 0 - Размер остаточной номинальной стоимости на дату исполнения срочного контракта с облигацией, 2 - Размер остаточной номинальной стоимости на дату поставки облигации.


Таблица fut_bond_isin: Справочник инструментов облигаций

Таблица 43. Поля таблицы fut_bond_isin

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
isin_idi4Уникальный числовой идентификатор инструмента
bond_idi4Цифровой код облигации
coeff_conversiond5.4Конверсионный коэффициент


Таблица user: Пользователи системы

Таблица 44. Поля таблицы user

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
loginc20Логин участника торгов
start_datetВремя начала действия логина
end_datetВремя окончания действия логина
client_codei4Семизначный код клиента
operation_maski4Битовая маска. Задает разрешения на выполнение операций:
  • 2 - Лимитирование открытых позиций по БФ.

  • 8 - Лимитирование БФ (перевод денег). Может быть установлено только Оператором-РФ или Администратором Торгов.

  • 16 - Возврат денег.

  • 32 - Лимитирование клиентов.

  • 128 - Установка ограничений по клиентам.

  • 1024 - Установка ограничений по заявкам для SMA логинов.

langi2Код языка для сообщений
sma_flagsi4Битовая маска (см. Примечания):
  • 1-й бит - Cancel on Disconnect

  • 2-й бит - Cancel on DropCopy Disconnect

  • 3-й бит - SMA-логин.

sma_statusi4Битовая маска (см. Примечания):
  • 1-й бит - разрешить/запретить торговые операции для логина

  • 2-й бит - снимать/не снимать заявки при запрете торговых операций с логина.

asprefi4Идентификатор пользователя. Для заявок, поданных от SMA-логина - идентификатор MASTER-логина.
password_expiration_datetДата истечения срока действия пароля.


Примечания:

  • Поле sma_flags является битовой маской:

    • 1-й бит: 0 - Режим Cancel on Disconnect выключен для логина, 1 - Режим Cancel on Disconnect включен для логина

    • 2-й бит: 0 - Режим Cancel on Drop-Copy Disconnect выключен для логина, 1 - Режим Cancel on Drop-Copy Disconnect включен для логина

    • 3-й бит: 0 - Режим SMA выключен для логина, 1 - Режим SMA включен для логина.

  • Поле sma_status является битовой маской:

    • 1-й бит: 0 - разрешает торговые операции для логина, 1 - запрещает торговые операции для логина

    • 2-й бит: 0 - не снимать заявки логина при запрете торговых операции с логина, 1 - снимать заявки логина при запрете торговых операции с логина.

Таблица investor: Справочник клиентов

Таблица 45. Поля таблицы investor

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
client_code c7 Код клиента
name c200 Наименование клиента
status i4 Признаки раздела
calendar_spread_margin_type i1 Тип маржирования календарных спредов для клиента. 3 - Полунетто, 4 - Нетто. Будет применен в вечерний клиринг (**)
short_option_minimum_charge_ratio d5.3 Индивидуальный коэффициент веса сценария SOMC. (**)
ics_margin_type i1 Тип маржирования межконтрактных спредов. 3 - Полунетто, 4 - Нетто МКС. (**)
coeff_im d16.5 Коэффициент итогового ГО.
no_fut_discount i1 Флаг запрещения использования скидки по фьючерсам. 1 - Запрет, 0 - Нет.
num_clr_2delivery i4 Количество клирингов до экспирации для начала расчета сценариев экспирации.
exp_weight d3.2 Вес сценариев экспирации в итоговом ГО.


Примечания:

  • Поле status является битовой маской:

    • 0x1 - ДУ

    • 0x2 - Обособленный

    • 0x4 - Брокерская фирма типа ДУ

    • 0x80 - Физическое лицо

    • 0x100 - Юридическое лицо

    • 0x200 - Не резидент

    • 0x4000 - Признак разрешения кросс-сделок. 1 - кросс-сделки разрешены; 0 - кросс-сделки запрещены

    • 0x8000 - Лицо без гражданства

    • 0x20000 - Собственный

    • 0x40000 - Клиентский

    • 0x80000 - Спец.БФ

    • 0x10000000 - Дополнительный собственный раздел

Таблица fut_margin_type: Тип маржирования

Таблица 46. Поля таблицы fut_margin_type

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
codec12Расчетный Код или Код Брокерской Фирмы
typei1Признак РК/БФ (0 - РК, 1 - БФ)
margin_typei1Тип маржирования. 2 - Брутто, 3 - Полунетто, 4 - Нетто.
prohibit_coeffd16.2Коэффициент задолженности по РК/БФ/разделу. Задает максимальное соотношение размера отрицательного свободного лимита к торговому лимиту, по превышении которого система ставит запреты на выполнение операций. Режим запрета определяется полем prohibit_type.
prohibit_typei4Тип автоматического запрета для РК:
  • 1 - запрет открытия позиций

  • 2 - запрет выставления заявок.

settlement_account_typei1Тип Расчетного Кода. 0 - собственный РК, 1 - клиентский РК, 2 - РК типа ДУ.
operator_inputi1Блокировка по Расчетному Коду, выставленная Администратором ТС. 0 - отключена, 1 - включена.


Примечания:

  • Поле operator_input может принимать значение: 0 - блокировка отключена, 1 - блокировка включена. При включении режима блокировки автоматически снимаются заявки, выставленные со всех клиринговых разделов БФ, привязанных к блокированному РК. Снятые заявки в поле xstatus помечаются специальным признаком - eOperatorInputSA (0x1000000000000). В режиме блокировки устанавливается запрет на подачу любых торговых команд в ТС с указанием клиринговых разделов брокерских фирм, привязанных к данному РК, а также запрещен перенос позиций между БФ. В заявках и сделках, сформированных по РК Администратором торгов в режиме блокировки, в полях xstatus (в заявках) и xstatus_sell или xstatus_buy (в сделках) проставляется специальный признак - eOperatorInputSA (0x1000000000000).

Таблица fut_settlement_account: Расчетный Код

Таблица 47. Поля таблицы fut_settlement_account

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
codec7Код Брокерской Фирмы или Клиентский Код
typei1Признак БФ - 1, Клиент - 2
settlement_accountc12Расчетный Код


Таблица session: Информация о торговой сессии

Таблица содержит информацию о расписании сессий.

Таблица 48. Поля таблицы session

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
sess_id i4 Идентификатор торговой сессии
begin t Время начала
end t Время окончания
state i4 Состояние сессии
opt_sess_id i4 Номер соответствующей опционной сессии (**)
inter_cl_begin t Время начала промежуточного клиринга (**)
inter_cl_end t Время окончания промежуточного клиринга (**)
inter_cl_state i4 Состояние промежуточного клиринга (**)
eve_on i1 Признак того, что дополнительная вечерняя сессия будет проводиться (**)
eve_begin t Время начала дополнительной вечерней сессии (**)
eve_end t Время окончания дополнительной вечерней сессии (**)
mon_on i1 Признак того, что дополнительная утренняя сессия будет проводиться (**)
mon_begin t Время начала дополнительной утренней сессии (**)
mon_end t Время окончания дополнительной утренней сессии (**)
pos_transfer_begin t Начало интервала переноса позиций
pos_transfer_end t Конец интервала переноса позиций


Примечания:

  • Поля pos_transfer_begin и pos_transfer_end обозначают период во время торговой сессии, в течение которого действует особый режим заключения сделок по инструменту с поставкой в текущий торговый день. Во время действия данного режима запрещены все заявки по указанному инструменту, за исключением адресных заявок внутри одной РФ.

  • Поле state может принимать следующие значения:

    0

    Сессия назначена. Нельзя ставить заявки, но можно удалять.

    1

    Сессия идет. Можно ставить и удалять заявки.

    2

    Приостановка торгов по всем инструментам. Нельзя ставить заявки, но можно удалять.

    3

    Сессия принудительно завершена. Нельзя ставить и удалять заявки.

    4

    Сессия завершена по времени. Нельзя ставить и удалять заявки.

  • Поле inter_cl_state выдается (по битово):

    0x0

    Неопределен. Можно ставить и удалять заявки.

    0x01

    Будущий на сегодня. Можно ставить и удалять заявки.

    0x02

    Отменен. Можно ставить и удалять заявки.

    0x04

    Текущий, т.е. идет, ничего нельзя. Нельзя ставить и удалять заявки.

    0x08

    Текущий, т.е. идет (по времени), но фактически завершен и уже можно выкачиваться, снимать заявки. Нельзя ставить заявки, но можно удалять.

    0x10

    Успешно завершен (в т.ч. и по времени). Можно ставить и удалять заявки.

Таблица sma_master: Привязка SMA-логина к MASTER-логину

Таблица содержит информацию о привязке SMA-логина к MASTER-логину.

Таблица 49. Поля таблицы sma_master

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
sma_asp c20 SMA-логин.
sma_aspref i4 Идентификатор SMA-логина.
master_asp c20 MASTER-логин.
master_aspref i4 Идентификатор MASTER-логина.


Таблица sma_pre_trade_check: Настройки предварительных проверок SMA-логина

Таблица содержит информацию о настройках предварительных проверок SMA-логина.

Таблица 50. Поля таблицы sma_pre_trade_check

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
check_id i8 Уникальный идентификатор записи.
sma_asp c20 SMA-логин.
sma_aspref i4 Идентификатор SMA-логина.
check_number i1 Номер проверки (1 - 7).
base_contract_code c25 Код базового актива.
instrument_type i1 Тип дериватива:
  • 0 - Фьючерс

  • 1 - Опцион

  • 3 - Календарный спред

client_code_check c7 Код клиента, участвующий в проверке.
value d26.2 Проверочное значение.


Таблица clearing_members: Участники клиринга

Таблица содержит информацию о блокировках участников.

Таблица 51. Поля таблицы clearing_members

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
code c2 Код участника
lock_type i1 Тип блокировки
lock_date t Дата блокировки
name c200 Название участника


Примечания:

  • Поле lock_type может принимать следующие значения:

    0

    Нет блокировки.

    2

    Ликвидационный неттинг в отношении Участника клиринга.

Таблица instr2matching_map: Сопоставление инструментов матчингу

Таблица служит для сопоставления инструментов матчингу, на котором они обрабатываются.

Таблица 52. Поля таблицы instr2matching_map

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
base_contract_id i4 Числовой идентификатор базового контракта
matching_id i1 Идентификатор матчинга


Таблица sys_events: Таблица событий

Таблица 53. Поля таблицы sys_events

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
event_id i8 Уникальный идентификатор события
sess_id i4 Номер сессии
event_type i4 Тип события
message c64 Описание события


Примечания:

  • Возможные типы событий

    event_type = 1

    message = "session_data_ready"

    Закончена загрузка данных из клиринговой системы в торговую перед началом новой торговой сессии

    event_type = 5

    message = "clearing_started"

    Начало основного клиринга

    event_type = 6

    message = "extension_of_limits_finished"

    Раздвижка лимитов закончена

Поток FORTS_MM_REPL - Информация об обязательствах ММ (Type=I)

Схема данных

Таблицы:

  • fut_MM_info - Обязательства ММ по фьючерсам
  • mm_agreement_filter - Таблица с номерами и типами договоров на оказание маркет-мейкерских услуг
Таблица fut_MM_info: Обязательства ММ по фьючерсам

Таблица 54. Поля таблицы fut_MM_info

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
isin_id i4 Уникальный числовой идентификатор инструмента
sess_id i4 Идентификатор торговой сессии
spread d16.5 Спред в пунктах
price_edge_sell d16.5 Цена худшей заявки на продажу, вошедшей в спред
xamount_sells i8 Количество контрактов в заявках на продажу, входящих в спред
price_edge_buy d16.5 Цена худшей заявки на покупку, вошедшей в спред
xamount_buys i8 Количество контрактов в заявках на покупку, входящих в спред
mm_spread d16.5 Спред по договору
xmm_amount i8 Количество по договору
spread_sign i1 Признак: 1 – спред не держится, 0 – держится
amount_sign i1 Признак: 1 – количество не держится, 0 – держится
percent_time d6.2 Процент выполнения Обязательств
period_start t Начало периода действия правил ММ
period_end t Окончание периода действия правил ММ
client_code c7 Код клиента
active_sign i4 Признак: 1 – запись удалена (стала не активна), 0 – активна
fulfil_min d6.2 Процент минимального исполнения обязательств за торговую сессию
fulfil_partial d6.2 Процент частичного исполнения обязательств за торговую сессию
fulfil_total d6.2 Процент полного исполнения обязательств за торговую сессию
is_fulfil_min i1 Признак минимального исполнения обязательств в текущий момент
is_fulfil_partial i1 Признак частичного исполнения обязательств в текущий момент
is_fulfil_total i1 Признак полного исполнения обязательств в текущий момент
agmt_id i4 Идентификатор обязательства ММ
is_rf i1 Признак обязательства расчетной фирмы
id_group i4 Идентификатор маркет-мейкерской связки


Примечания: В таблице fut_MM_info потока FORTS_MM_REPL транслируются обязательства маркет-мейкеров с детализацией до семизначного клиентского кода.

Таблица mm_agreement_filter: Таблица с номерами и типами договоров на оказание маркет-мейкерских услуг

Таблица 55. Поля таблицы mm_agreement_filter

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
agmt_idi4Идентификатор договора
is_futi1Тип обязательства
agreementc50Номер договора
client_codec7Код клиента


Поток FORTS_CLR_REPL - Клиринговая информация (Type=AR)

Схема данных

Таблицы:

  • limit_clearing - Клиентские лимиты в клиринге
  • clr_rate - Курсы валют и индексов
  • fut_pos - информация о позиционном состоянии на момент вечернего клиринга по фьючерсам
  • fut_sess_settl - Расчетные цены по фьючерсам
  • money_clearing_sa - Клиентские деньги в клиринге
  • fut_pos_sa - информация о позиционном состоянии на момент вечернего клиринга по фьючерсам
  • sys_events - Таблица событий
Таблица limit_clearing: Клиентские лимиты в клиринге

Таблица 56. Поля таблицы limit_clearing

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
client_codec7Код клиента
account_typei1Тип счета. 1 - БФ, 2 - Клиент.
amount_begd16.2Лимиты на начало дня
vmd16.2Вариационная маржа, включая вариационную маржу по маржируемым опционам
fee_futd16.2Фьючерсный биржевой сбор
fee_optd16.2Опционный биржевой сбор
god16.2Суммарное ГО по фьючерсам и опционам
amount_endd16.2Лимиты на конец дня
freed16.2Свободно средств


Таблица clr_rate: Курсы валют и индексов

Таблица 57. Поля таблицы clr_rate

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
rated16.5Значение индекса
momenttМомент фиксирования значения
signsi1Признаки, соответствующие данному значению
sess_idi4Идентификатор торговой сессии
rate_idi4Идентификатор курса


Таблица fut_pos: информация о позиционном состоянии на момент вечернего клиринга по фьючерсам

Таблица 58. Поля таблицы fut_pos

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
isin_idi4Уникальный числовой идентификатор инструмента
sess_idi4Идентификатор торговой сессии
isinc25Символьный код инструмента
client_codec7Код клиента
account_typei1Тип счета (0 - РФ; 1 - БФ; 2 - клиент).
xpos_begi8Позиция на начало дня
xpos_endi8Позиция на конец дня
vmd16.2Суммарная ВМ по итогам основного клиринга для клиента/фирмы и инструмента
feed16.2Суммарный сбор для клиента/фирмы и инструмента
accum_god16.2Накопленный ГП
fee_exd16.2Биржевой сбор
vat_exd16.2НДС в составе биржевого сбора
fee_ccd16.2Клиринговый сбор
vat_ccd16.2НДС в составе клирингового сбора


Таблица fut_sess_settl: Расчетные цены по фьючерсам

Таблица 59. Поля таблицы fut_sess_settl

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
sess_idi4Идентификатор торговой сессии
date_clrtДата клиринга
isinc25Символьный код инструмента
isin_idi4Уникальный числовой идентификатор инструмента
settl_priced16.5Расчетная цена


Таблица money_clearing_sa: Клиентские деньги в клиринге

Таблица 60. Поля таблицы money_clearing_sa

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
settlement_accountc12Расчетный Код
asset_typei1Тип счета. 0 - рубли, 1 - залоги.
amount_begd26.2Денег на начало дня
vmd26.2Вариационная маржа
premiumd26.2Опционная премия
payd26.2Движение по счету
fee_futd26.2Фьючерсный биржевой сбор
fee_optd26.2Опционный биржевой сбор
god26.2Суммарное ГО по фьючерсам и опционам
amount_endd26.2Денег на конец дня
freed26.2Свободно средств
blocked_taxd26.2Средства, заблокированные под выплату налогов.


Таблица fut_pos_sa: информация о позиционном состоянии на момент вечернего клиринга по фьючерсам

Таблица 61. Поля таблицы fut_pos_sa

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
isin_idi4Уникальный числовой идентификатор инструмента
sess_idi4Идентификатор торговой сессии
isinc25Символьный код инструмента
settlement_accountc12Расчетный Код
xpos_begi8Позиция на начало дня
xpos_endi8Позиция на конец дня
vmd26.2Суммарная ВМ по итогам основного клиринга для клиента/фирмы и инструмента
feed26.2Суммарный сбор для клиента/фирмы и инструмента
fee_exd26.2Биржевой сбор
vat_exd26.2НДС в составе биржевого сбора
fee_ccd26.2Клиринговый сбор
vat_ccd26.2НДС в составе клирингового сбора


Таблица sys_events: Таблица событий

Таблица 62. Поля таблицы sys_events

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
event_id i8 Уникальный идентификатор события
sess_id i4 Номер сессии
event_type i4 Тип события
message c64 Описание события


Примечания:

  • Возможные типы событий:

    event_type = 3

    message = "clearing_data_ready"

    Готовы данные после основного клиринга

Поток FORTS_VM_REPL - Вариационная маржа (Type=I)

Схема данных

Таблицы:

  • fut_vm - Вариационная маржа по фьючерсам
  • fut_vm_sa - Вариационная маржа по фьючерсам
Таблица fut_vm: Вариационная маржа по фьючерсам

Таблица 63. Поля таблицы fut_vm

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
isin_idi4Уникальный числовой идентификатор инструмента
client_codec7Код клиента
sess_idi4Идентификатор торговой сессии
vmd16.5Накопленная по сделкам вариационная маржа, рассчитанная по текущей рыночной цене


Таблица fut_vm_sa: Вариационная маржа по фьючерсам

Таблица 64. Поля таблицы fut_vm_sa

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
isin_idi4Уникальный числовой идентификатор инструмента
settlement_accountc12Расчетный Код
sess_idi4Идентификатор торговой сессии
vmd26.2Накопленная по сделкам вариационная маржа, рассчитанная по текущей рыночной цене


Поток FORTS_INFO_REPL - Справочная информация (Type=R)

Схема данных

Таблицы:

Таблица base_contracts_params: Параметры базовых контрактов

Таблица 65. Поля таблицы base_contracts_params

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
base_contract_code c25 Код базового контракта.
code_mcs c25 Код межконтрактного спреда (**)
volat_num i1 Количество кривых волатильности (**)
subrisk_step f Шаг подточек риска (**)
is_percent i1 Признак контракта (**)
has_options i1 Признак наличия опционов на фьючерс на данный БА. 0 – нет опционов, 1 – есть опционы. (**)
percent_rate d16.5 Процентная ставка (для контрактов на ставки) (**)
somc f Ставка ГО по непокрытым продажам (в рублях) (**)
msp_type i1 Тип стоимости шага цены. 0 – фиксированная, 1 – определяется значением индикатора валюты.
currency_id i4 Идентификатор валюты из справочника rates потока FORTS_REFDATA_REPL (**)
spot_price f Выраженная в рублях расчетная цена базового актива, определенная по итогам клиринговой сессии.
mr1 f Значение ставки рыночного риска
mr2 f Значение ставки рыночного риска первого лимита концентрации
mr3 f Значение ставки рыночного риска второго лимита концентрации
lk1 i8 Количество единиц базового актива, характеризующее достижение первого лимита концентрации
lk2 i8 Количество единиц базового актива, характеризующее достижение второго лимита концентрации
risk_points_n i4 Количество сценариев движения цены контракта слева и справа от центра расчета риска
window_size f Коэффициент для определения размера окна сглаживания при маржировании межконтрактного спрэда (**)
option_model i1 Модель ценообразования опционов. (**)


Примечания:

  • Поле is_percent может принимать следующие значения:

    0

    обычный фьючерс

    1

    процентный фьючерс

    2

    фьючерс на погоду и электричество

    3

    фьючерс на евробонды

    4

    RUONIA

  • Поле option_model может принимать следующие значения:

    0

    Модель Блэка-Шоулза

    1

    Модель Башелье

Таблица futures_params: Параметры фьючерсов

Таблица 66. Поля таблицы futures_params

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
isin c25 Символьный код инструмента
isin_id i4 Уникальный числовой идентификатор инструмента
base_contract_code c25 Код базового контракта.
risk_range_center d16.5 Центр расчета риска
spread_aspect i1 Признак вхождения в спред (**)
subrisk i1 Признак учета рисков по подточкам риска
step_price f Цена минимального шага
exp_date t Дата экспирации
settlement_price d16.5 Расчетная цена последнего клиринга
min_step f Минимальный шаг изменения цены
lot i4 Количество единиц базового актива в инструменте
attribute i4 Битовые флаги, определяющие тип фьючерса
interest_rate_risk_up f Ставка рассогласования процентного риска в сценарии движения ставки вверх
interest_rate_risk_down f Ставка рассогласования процентного риска в сценарии движения ставки вниз
time_to_expiration f Время до экспирации инструмента в долях года
normalized_spot f Теоретическая цена базового актива на спотовом рынке в пунктах, приведенная к размерности основного
mr_addon_up f Надбавка Up на NormalizedSpot для управления ГО на уровне фьючерса. Устанавливается в долях от NormalizedSpot
mr_addon_down f Надбавка Down на NormalizedSpot для управления ГО на уровне фьючерса. Устанавливается в долях от NormalizedSpot
enforce_ims_half_netting i1 Признак учитывать риски межмесячного спреда по правилу "полунетто". 1 – да; 0 – нет.


Примечания:

  • Поле spread_aspect может принимать следующие значения:

    0

    Не входит в спред

    2

    Входит в межмесячный спред

  • Поле attribute может принимать следующие значения:

    0

    "Обычный" фьючерс

Таблица investor: Справочник клиентов

Таблица 67. Поля таблицы investor

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
client_codec7Код клиента
calendar_spread_margin_typei1Тип маржирования календарных спредов для клиента. 3 - Полунетто, 4 - Нетто. Используемое сейчас значение (**)
num_clr_2deliveryi4Количество клирингов до экспирации для начала расчета сценариев экспирации.
exp_weightd3.2Вес сценариев экспирации в итоговом ГО.
coeff_imd16.5Коэффициент итогового ГО.
no_fut_discounti1Флаг запрещения использования скидки по фьючерсам. 1 - Запрет, 0 - Нет.
short_option_minimum_charge_ratiod5.3Индивидуальный коэффициент веса сценария SOMC. (**)
ics_margin_typei1Тип маржирования межконтрактных спредов. 3 - Полунетто, 4 - Нетто МКС. (**)


Таблица dealer: Справочник фирм

Таблица 68. Поля таблицы dealer

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
client_codec7Код клиента
margin_typei1Режим маржирования по разделам БФ. 3 - Полунетто, 4 - Нетто. Используемое сейчас значение
calendar_spread_margin_typei1Тип маржирования календарных спредов для портфеля БФ. 3 - Полунетто, 4 - Нетто. Используемое сейчас значение (**)
num_clr_2deliveryi4Количество клирингов до экспирации для начала расчета сценариев экспирации по БФ. Используемое сейчас значение
exp_weightd3.2Вес сценариев экспирации для БФ в итоговом ГО. Используемое сейчас значение
coeff_imd16.5Коэффициент итогового ГО для БФ. Используемое сейчас значение.
no_fut_discounti1Флаг запрещения использования скидки по фьючерсам для портфеля БФ. 1 - Запрет, 0 - Нет. Используемое сейчас значение
num_clr_2delivery_client_defaulti4Количество клирингов до экспирации для начала расчета сценариев экспирации по клиентам - значение по умолчанию. Используемое сейчас значение
exp_weight_client_defaultd3.2Вес сценариев экспирации в итоговом ГО для клиентских разделов - значение по умолчанию. Используемое сейчас значение
no_fut_discount_client_defaulti1Флаг запрещения использования скидки по фьючерсам для клиентов - значение по умолчанию. 1 - Запрет, 0 - Нет. Используемое сейчас значение
short_option_minimum_charge_ratiod5.3Индивидуальный коэффициент веса сценария SOMC. (**)
ics_margin_typei1Тип маржирования межконтрактных спредов. 3 - Полунетто, 4 - Нетто МКС. (**)
order_allowed_in_morning_sessioni1Доступ к торгам в утреннюю торговую сессию. (**)


Примечания:

  • Поле order_allowed_in_morning_session может принимать следующие значения:

    0

    Доступ к торгам в утреннюю торговую сессию ограничен. Запрещены торговые операции, кроме операций снятия заявок.

    1

    Доступ к торгам в утреннюю торговую сессию разрешен.

Таблица common_params: Параметры расчёта ГО

Таблица 69. Поля таблицы` common_params

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
common_revi4Номер ревизии - Суррогатный ключ
edge_coefffКоэффициент учета краевых рисков


Таблица sys_events: Таблица событий

Таблица 70. Поля таблицы sys_events

ПолеТипОписание
replID i8 Служебное поле подсистемы репликации
replRev i8 Служебное поле подсистемы репликации
replAct i8 Служебное поле подсистемы репликации
event_type i4 Тип события
event_id i8 Уникальный идентификатор события
sess_id i4 Номер сессии
message c64 Описание события
server_time t Дата и время сервера


Примечания:

  • Возможные типы событий

    event_type = 1

    message = "session_data_ready"

    Закончена загрузка данных из клиринговой системы в торговую перед началом новой торговой сессии

    event_type = 5

    message = "clearing_started"

    Начало основного клиринга

    event_type = 6

    message = "extension_of_limits_finished"

    Раздвижка лимитов закончена

Поток FORTS_TNPENALTY_REPL - Информация о сборах за транзакции (Type=I)

Схема данных

Таблицы:

  • fee_all - Информация о количестве начисленных баллов
  • fee_tn - Детализированная информация по количеству некорректных транзакций
Таблица fee_all: Информация о количестве начисленных баллов

Таблица 71. Поля таблицы fee_all

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
timei8Время в формате YYYYMMddhhmmssSSS
p2loginc64Логин
sess_idi4Номер сессии
pointsi4Количество начисленных баллов за секунду из time
feed16.2Сбор за некорректные транзакции к моменту time


Таблица fee_tn: Детализированная информация по количеству некорректных транзакций

Таблица 72. Поля таблицы fee_tn

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
timei8Время в формате YYYYMMddhhmmssSSS
p2loginc64Логин
sess_idi4Номер сессии
tn_typei4Тип транзакции
err_codei4Код ошибки
counti4Количество некорректных транзакций


Поток FORTS_FORECASTIM_REPL - Прогноз рисков после возможной раздвижки (Type=I)

Схема данных

Таблицы:

  • part_sa_forecast - Прогноз объема свободных средств для РК.
Таблица part_sa_forecast: Прогноз объема свободных средств для РК

Таблица 73. Поля таблицы part_sa_forecast

ПолеТипОписание
replIDi8Служебное поле подсистемы репликации
replRevi8Служебное поле подсистемы репликации
replActi8Служебное поле подсистемы репликации
settlement_accountc12Расчетный код
money_freed26.2Свободно денег
MarketDataRevi8Номер последнего изменения данных (значение поля replRev) в потоках заявок и сделок, попавшего в расчет прогноза обеспечения. Заявки и сделки со значениями replRev меньше, чем MarketDataRev, учтены в прогнозе. Заявки и сделки со значениями replRev больше, чем MarketDataRev, НЕ учтены в прогнозе. Подробное описание поля replRev приведено в разделе 3.3.1. Служебные поля репликации.


Описание команд

Метод AddOrder - Добавление заявок

Тип сообщения: 465

Тип ответного сообщения: 179

Используется для добавления заявок по фьючерсам.

Таблица 74. Входящие параметры

Имя параметраТипЗначение по умолчаниюОписание
broker_code c4 ""Код брокерской фирмы
isin_id i4  Уникальный числовой идентификатор инструмента
client_code c3  Код клиента
dir i4  Направления заявки
type i4  Вид заявки
amount i4  Количество единиц инструмента
price c17  Цена заявки
comment c20 ""Поле комментария. Добавляется в заявку, сделку. Может использоваться по собственному усмотрению разработчиков шлюза.
broker_to c20 ""Код РТС фирмы, которой адресована внесистемная заявка
ext_id i4 0Внешний номер. Добавляется в заявку, сделку
is_check_limit i4 0Признак проверки лимитов цены
date_exp c8 ""Дата истечения заявки. Добавляется в заявку.
dont_check_money i4 0Признак расчета рисков по клиентскому разделу по данной заявке
match_ref c10 ""Текст-связка для однозначного соответствия двух встречных адресных заявок


Таблица 75. Результат выполнения

Имя параметраТипЗначение по умолчаниюОписание
code i4  Код возврата
message c255  Текст сообщения
order_id i8  Код заявки в системе


Коды возврата команды:

0

успех выполнения операции

Другое значение

ошибка

Примечания:

  • Поле type может принимать следующие значения:

    1

    котировочная заявка (остаётся в очереди после частичного сведения)

    2

    встречная заявка (снимается после проведения аукциона)

    3

    заявка Fill-or-Kill

  • Поле dir может принимать следующие значения:

    1

    заявка на покупку

    2

    заявка на продажу

  • В поле price задаётся цена заявки в строковом виде 'nnnnnnnnnn.mmmmm'.

  • Поле is_check_limit может принимать следующие значения:

    0

    Не выполнять проверку лимитов

    1

    Выполнять проверку лимитов

  • В поле date_exp задаётся дата истечения заявки в виде 'YYYYMMDD'. Если в качестве данного параметра передаётся пустая строка, то заявка считается обычной. При заданной дате заявка будет автоматически перевыставляться в следующую сессию, но - получая при этом новый номер и новое время. Таким образом получаются «многодневные» заявки. Время их жизни – до истечения даты. Заявки с истекшей датой будут автоматически сниматься после завершения вечерней сессии (если она есть в этот день), уже ночью. При перевыставлении делаются проверки на наличие инструмента, клиента, достаточности средств. Допустимый диапазон даты: >= сегодняшнего дня, <= одного года вперед.

  • Параметр заявки dont_check_money принимает следующие значения:

    • 0 - проверять обеспечение на уровне клиентского раздела

    • 1 - не проверять обеспечение на уровне клиентского раздела

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

Метод DelOrder - Удаление заявок

Тип сообщения: 461

Тип ответного сообщения: 177

Используется для удаления заявок по фьючерсам.

Таблица 76. Входящие параметры

Имя параметраТипЗначение по умолчаниюОписание
broker_code c4  Код брокерской фирмы
order_id i8  Код заявки для удаления
client_code c3  Код клиента
isin_id i4  Уникальный числовой идентификатор инструмента


Таблица 77. Результат выполнения

Имя параметраТипЗначение по умолчаниюОписание
code i4  Код возврата
message c255  Текст сообщения
amount i4  Количество единиц инструмента в удалённой заявке


Коды возврата команды:

0

успех выполнения операции

Другое значение

ошибка

Примечания:

  • Код возврата = 14 (Не найдена заявка для удаления) означает, что такой заявки в очереди (уже) нет. Возможно, номер неправильный или ее сегодня вообще не было. Нет смысла повторно (а тем более многократно) посылать удаление с тем же номером. Особенно это актуально для автоматических систем.

Метод DelUserOrders - Массовое удаление заявок

Тип сообщения: 466

Тип ответного сообщения: 186

Команда на массовое удаление всех заявок, удовлетворяющих критериям.

Таблица 78. Входящие параметры

Имя параметраТипЗначение по умолчаниюОписание
broker_code c4 ""Код брокерской фирмы
buy_sell i4  Выбор типа заявок в зависимости от направления
non_system i4  Выбор типа заявок по признаку обычные/внесистемные
code c3  Код клиентского счета
base_contract_code c25  Код базового актива
ext_id i4 0Внешний номер
isin_id i4  Уникальный числовой идентификатор инструмента
instrument_mask i1  Маска группы инструментов


Таблица 79. Результат выполнения

Имя параметраТипЗначение по умолчаниюОписание
code i4  Код возврата
message c255  Текст сообщения
num_orders i4  Количество удалённых заявок


Коды возврата команды:

0

успех выполнения операции

Другое значение

ошибка

Примечания:

  • Параметр buy_sell может принимать следующие значения:

    1

    Заявки на покупку

    2

    Заявки на продажу

    3

    Все заявки

  • Параметр non_system может принимать следующие значения:

    0

    Обычные заявки

    1

    Внесистемные

    2

    Все

  • Параметр instrument_mask является битовой маской:

    0x1

    Фьючерсы

  • Если параметр code не задан или его значение равно ‘%%%’, то производится удаление заявок для всех клиентских счетов.

  • Если параметр base_contract_code не задан или его значение равно ‘%’, то производится удаление заявок для всех контрактов.

  • В случае задания для параметра ext_id значения, отличного от 0, производится удаления всех заявок с соответствующим ext_id. Значения параметров buy_sell, non_system, base_contract_code и isin_id при этом игнорируются, но их значения должны находится в допустимом диапазоне.

Метод MoveOrder - Изменение заявок

Тип сообщения: 460

Тип ответного сообщения: 176

Используется для изменения заявок по фьючерсам.

Таблица 80. Входящие параметры

Имя параметраТипЗначение по умолчаниюОписание
broker_code c4  Код брокерской фирмы
regime i4  Режим работы команды
order_id1 i8  Номер первой удаляемой заявки
amount1 i4  Новое количество единиц инструмента для первой заявки
price1 c17  Новая цена для первой заявки
ext_id1 i4  Новый внешний номер для первой заявки
order_id2 i8  Номер второй удаляемой заявки
amount2 i4  Новое количество единиц инструмента для второй заявки
price2 c17  Новая цена для второй заявки
ext_id2 i4  Новый внешний номер для второй заявки
is_check_limit i4  Признак проверки лимитов
client_code c3  Код клиента
isin_id i4  Уникальный числовой идентификатор инструмента


Таблица 81. Результат выполнения

Имя параметраТипЗначение по умолчаниюОписание
code i4  Код возврата
message c255  Текст сообщения
order_id1 i8  Новый номер первой заявки
order_id2 i8  Новый номер второй заявки


Коды возврата команды:

0

успех выполнения операции

Другое значение

ошибка

Примечания (в настоящем Примечании термин "объём" означает количество единиц инструмента):

  • Параметр regime определяет режим работы команды и может принимать следующие значения:

    0

    Не менять объёмы заявок. Остается текущий фактический объем заявок в системе. Присланные количества игнорируются.

    1

    Изменить объёмы заявок. Если заявки найдены, вместо них выставляются заявки с присланными ценой и объемом.

    2

    Снять старые заявки. Если объем хотя бы одной из заявок не совпадает с присланным, удаляются обе заявки. Иначе - выполняется сдвиг.

    3

    Установить объемы заявок равными присланным за вычетом сведенной части заявки (не меньше 0). Если присланный объем меньше сведенной части заявки, удаляются обе заявки.

  • Поле is_check_limit может принимать следующие значения:

    0

    Не выполнять проверку лимитов

    1

    Выполнять проверку лимитов

  • Для новых заявок проводится процедура аукциона.

  • Сдвиг заявок возможен только в рамках одного торгового инструмента. Только по одному клиентскому регистру.

  • Нельзя сдвигать адресные заявки.

  • При сдвиге нельзя менять направление заявки.

  • Удаленная (или передвинутая, или полностью сведенная) заявка не перевыставляется; выдается сообщение об ошибке.

  • Если при сдвиге пары заявок одна из них не найдена или не может быть передвинута, действия со второй заявкой также не производятся с выдачей сообщения об ошибке.

  • Если две заявки противоположного направления сдвигаются таким образом, что цены заявок пересекаются, параметры считаются некорректными, сдвиг не выполняется, выдается сообщение об ошибке.

  • Если при сдвиге пары заявок одна из них наткнулась на кросс-сделку (сведение с заявкой от того же УИН, либо клиентского регистра), она откатывается, а другая заявка сдвигается.

  • При передвижке заявок date_exp переносятся в новые заявки.

  • В результатах обработки команды поля order_id1 и order_id2 заполняются номерами новых заявок. В случае, если заявка не была выставлена, соответствующее поле обнуляется.

Метод IcebergAddOrder - Добавление айсберг-заявок

Тип сообщения: 462

Тип ответного сообщения: 180

Используется для добавления айсберг-заявок.

Таблица 82. Входящие параметры

Имя параметраТипЗначение по умолчаниюОписание
broker_code c4 ""Код брокерской фирмы
isin_id i4  Уникальный числовой идентификатор инструмента
client_code c3  Код клиента
dir i4  Направления заявки
disclose_const_amount i4  Количество единиц инструмента в постоянной составляющей "всплывающей" (видимой) части айсберг-заявки
iceberg_amount i4  Общее количество инструментов в айсберг-заявке
variance_amount i4 0Амплитуда отклонения (в контрактах) случайной надбавки к всплывающей части айсберг-заявки
price c17  Цена заявки
comment c20 ""Поле комментария. Добавляется в заявку, сделку. Может использоваться по собственному усмотрению разработчиков шлюза.
ext_id i4 0Внешний номер. Добавляется в заявку, сделку
is_check_limit i4 0Признак проверки лимитов цены
date_exp c8 ""Дата истечения заявки. Добавляется в заявку.
dont_check_money i4 0Признак расчета рисков по клиентскому разделу по данной заявке


Таблица 83. Результат выполнения

Имя параметраТипЗначение по умолчаниюОписание
code i4  Код возврата
message c255  Текст сообщения
iceberg_order_id i8  Идентификатор айсберг-заявки


Коды возврата команды:

0

успех выполнения операции

Другое значение

ошибка

Примечания:

  • Поле dir может принимать следующие значения:

    1

    заявка на покупку

    2

    заявка на продажу

  • В поле price задаётся цена заявки в строковом виде 'nnnnnnnnnn.mmmmm'.

  • Поле is_check_limit может принимать следующие значения:

    0

    Не выполнять проверку лимитов

    1

    Выполнять проверку лимитов

  • В поле date_exp задаётся дата истечения заявки в виде 'YYYYMMDD'. Если в качестве данного параметра передаётся пустая строка, то заявка считается обычной. При заданной дате заявка будет автоматически перевыставляться в следующую сессию, но - получая при этом новый номер и новое время. Таким образом получаются «многодневные» заявки. Время их жизни – до истечения даты. Заявки с истекшей датой будут автоматически сниматься после завершения вечерней сессии (если она есть в этот день), уже ночью. При перевыставлении делаются проверки на наличие инструмента, клиента, достаточности средств. Допустимый диапазон даты: >= сегодняшнего дня, <= одного года вперед.

  • Параметр заявки dont_check_money принимает следующие значения:

    • 0 - проверять обеспечение на уровне клиентского раздела

    • 1 - не проверять обеспечение на уровне клиентского раздела

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

Метод IcebergDelOrder - Удаление айсберг-заявок

Тип сообщения: 464

Тип ответного сообщения: 182

Используется для удаления айсберг-заявок. Команда может отрабатывать как по public_order_id, так и по private_order_id. Команда по public_order_id будут работать только, если видимая часть с таким номером еще есть в системе (не была сведена), в противном случае будет возвращена ошибка об отсутствии заявки с таким номером. Потому рекомендуем работать с айсберг-заявками по private_order_id.

Таблица 84. Входящие параметры

Имя параметраТипЗначение по умолчаниюОписание
broker_code c4 ""Код брокерской фирмы
order_id i8  Код заявки для удаления
isin_id i4  Уникальный числовой идентификатор инструмента


Таблица 85. Результат выполнения

Имя параметраТипЗначение по умолчаниюОписание
code i4  Код возврата
message c255  Текст сообщения
amount i4  Количество единиц инструмента в удалённой заявке


Коды возврата команды:

0

успех выполнения операции

Другое значение

ошибка

Примечания:

  • Код возврата = 14 (Не найдена заявка для удаления) означает, что такой заявки в очереди (уже) нет. Возможно, номер неправильный и ее сегодня вообще не было. Нет смысла повторно (а тем более многократно) посылать удаление с тем же номером. Особенно это актуально для автоматических систем.

Метод IcebergMoveOrder - Изменение айсберг-заявок

Тип сообщения: 463

Тип ответного сообщения: 181

Используется для изменения айсберг-заявок. Команда может отрабатывать как по public_order_id, так и по private_order_id. Команда по public_order_id будут работать только, если видимая часть с таким номером еще есть в системе (не была сведена), в противном случае будет возвращена ошибка об отсутствии заявки с таким номером. Потому рекомендуем работать с айсберг-заявками по private_order_id.

Таблица 86. Входящие параметры

Имя параметраТипЗначение по умолчаниюОписание
broker_code c4 ""Код брокерской фирмы
order_id i8  Идентификатор изменяемой заявки
isin_id i4  Уникальный числовой идентификатор инструмента
price c17 "0"Новая цена заявки
ext_id i4  Новый внешний номер заявки
is_check_limit i4 0Признак проверки лимитов


Таблица 87. Результат выполнения

Имя параметраТипЗначение по умолчаниюОписание
code i4  Код возврата
message c255  Текст сообщения
order_id i8  Новый идентификатор заявки


Коды возврата команды:

0

успех выполнения операции

Другое значение

ошибка

Примечания:

  • Поле is_check_limit может принимать следующие значения:

    0

    Не выполнять проверку лимитов

    1

    Выполнять проверку лимитов

Метод ChangeClientMoney - Изменение клиентских лимитов

Тип сообщения: 458

Тип ответного сообщения: 187

Процедура позволяет менять денежные лимиты по клиентскому счету.

Таблица 88. Входящие параметры

Имя параметраТипЗначение по умолчаниюОписание
broker_code c4 ""Код брокерской фирмы
mode u1 0Режим работы команды
code c3  Код клиентского счета
coeff_im c17 ""Коэффициент клиентского ГО
is_auto_update_limit i4 -1Признак автоматической коррекции лимита на величину дохода при закачке после клиринга
check_limit i4 1Флаг проверки на достаточность средств
limit_money c17 ""Лимит денежных средств


Таблица 89. Результат выполнения

Имя параметраТипЗначение по умолчаниюОписание
code i4  Код возврата
message c255  Текст сообщения


Коды возврата команды:

0

успех выполнения операции

Другое значение

ошибка

Примечания:

  • Режим работы команды (поле mode):

    11

    Удалить лимит, отключить проверку на достаточность средств

    12

    Установить лимит денежных средств в размере limit_money

    13

    Изменить лимит денежных средств на величину limit_money

  • Признак is_auto_update_limit установленный в значение "1" позволяет автоматизировать процесс изменения лимитов по результатам предыдущего дня. Значение "-1" для параметра is_auto_update_limit означает, что значение не задано пользователем.

  • Для изменения параметра is_auto_update_limit используйте режим 13 с параметром limit_money=0.

  • В параметре check_limit можно указать следующие значения:

    0

    Не выполнять проверку, произвести безусловное изменение лимита

    1

    Выполнять проверку. Изменения производятся только при достаточности средств

  • Пустая строка, заданная в поле типа c17, дает возможность при посылке команды не изменять значение параметра, которое пользователь ранее уже отправил в торговую систему.

Метод FutChangeClientProhibit - Изменение клиентских ограничений для фьючерсов

Тип сообщения: 15

Тип ответного сообщения: 115

Таблица 90. Входящие параметры

Имя параметраТипЗначение по умолчаниюОписание
broker_code c4 ""Код брокерской фирмы
mode i4  Режим работы команды
code c3  Код клиентского счета или '%%%' - по всем
base_contract_code c25  Код базового актива или '%' - по всем
isin c25  Фьючерсный инструмент или '%' - по всем
state i4 0Ограничение
state_mask i4 3Маска для параметра state


Таблица 91. Результат выполнения

Имя параметраТипЗначение по умолчаниюОписание
code i4  Код возврата
message c255  Текст сообщения


Коды возврата команды:

0

успех выполнения операции

Другое значение

ошибка

Примечания:

  • Поле mode определяет режим работы команды:

    11

    удалить

    12

    установить

  • Поле state может принимать следующие значения:

    0

    всё разрешено (при отмене действующего запрета с меньшим приоритетом, иначе - просто удалить строку);

    1

    запрет открытия позиций;

    2

    запрет всех торговых операций;

    3

    запрет открытия позиций в продажу;

  • Значения параметра state_mask определяются битовой маской. На настоящий момент данный параметр должен устанавливаться = 3.

  • При задании конкретного инструмента в поле isin следует указывать код соответствующего БА в поле base_contract_code.

Метод TransferClientPosition - Перенос позиций между БФ

Тип сообщения: 430

Тип ответного сообщения: 173

Процедура позволяет переносить позиции между счетами своих БФ.

Таблица 92. Входящие параметры

Имя параметраТипЗначение по умолчаниюОписание
broker_code c4 ""Код брокерской фирмы
code_from c7  Код донора
code_to c7  Код реципиента
isin c25  Код инструмента
amount i8  Размер переносимой позиции


Таблица 93. Результат выполнения

Имя параметраТипЗначение по умолчаниюОписание
code i4  Код возврата
message c255  Текст сообщения


Коды возврата команды:

0

успех выполнения операции

Другое значение

ошибка

Примечание:

Процедура доступна только тому логину шлюза от РФ, которому Администратор торгов предоставил необходимые права.

Метод ChangeBFParametersNextSession - Изменение параметров БФ Участником клиринга

Тип сообщения: 442

Тип ответного сообщения: 162

Процедура используется для изменения параметров БФ Участником клиринга. Процедура доступна исключительно для логина уровня РФ. Применение заданных параметров происходит в вечерний клиринг.

Таблица 94. Входящие параметры

Имя параметраТипЗначение по умолчаниюОписание
broker_code c4 ""Код брокерской фирмы
code_bf c2  Код БФ.
margin_type i4 -1Режим маржирования по разделам БФ. 3 - полунетто, 4 - нетто.
calendar_spread_margin_type i1 -1Тип маржирования календарных спредов для портфеля БФ. 3 - полунетто, 4 - нетто.
num_clr_2delivery i4 -1Количество клирингов до экспирации для начала расчета сценариев экспирации по БФ.
exp_weight c17 ""Вес сценариев экспирации для БФ в итоговом ГО.
go_ratio c17 ""Коэффициент итогового ГО для БФ.
check_limit_for_orders i4 -1Проверка достаточности обеспечения по БФ при постановке заявок . 1 - проверять, 0 - нет.
no_fut_discount i4 -1Запрет использования скидки по фьючерсам для портфеля БФ. 1-запрет, 0 - нет.
ics_margin_type i1 -1Тип маржирования межконтрактных спредов. 3 - полунетто, 4 - нетто.


Таблица 95. Результат выполнения

Имя параметраТипЗначение по умолчаниюОписание
code i4  Код возврата
message c255  Текст сообщения


Коды возврата команды:

0

успех выполнения операции

Другое значение

ошибка

Примечания:

  • Пустая строка, заданная в поле типа c17, дает возможность при посылке команды не изменять значение параметра, которое пользователь ранее уже отправил в торговую систему.

  • Значение -1, заданное в полях типа i4 и i1, дает возможность при посылке команды не изменять значение параметра, которое пользователь ранее уже отправил в торговую систему.

Метод ChangeClientParameters - Изменение параметров на клиентских разделах

Тип сообщения: 443

Тип ответного сообщения: 178

Процедура используется для изменения параметров на клиентских разделах Участником клиринга. Процедура доступна логинам уровня РФ и БФ.

Таблица 96. Входящие параметры

Имя параметраТипЗначение по умолчаниюОписание
broker_code c4 ""Код брокерской фирмы
code c3  Код клиента
coeff_go c17 ""Коэффициент клиентского ГО
no_fut_discount i4 -1Флаг запрета использования скидки по фьючерсам


Таблица 97. Результат выполнения

Имя параметраТипЗначение по умолчаниюОписание
code i4  Код возврата
message c255  Текст сообщения


Коды возврата команды:

0

успех выполнения операции

Другое значение

ошибка

Примечания:

  • Пустая строка, заданная в поле типа c17, дает возможность при посылке команды не изменять значение параметра, которое пользователь ранее уже отправил в торговую систему.

  • Значение -1, заданное в поле типа i4, дает возможность при посылке команды не изменять значение параметра, которое пользователь ранее уже отправил в торговую систему.

Метод ChangeClientParametersNextSession - Изменение параметров на клиентских разделах в клиринг

Тип сообщения: 441

Тип ответного сообщения: 163

Процедура используется для изменения параметров на клиентских разделах Участником клиринга. Процедура доступна логинам уровня РФ и БФ.

Таблица 98. Входящие параметры

Имя параметраТипЗначение по умолчаниюОписание
broker_code c4 ""Код брокерской фирмы
code c3  Код клиента
calendar_spread_margin_type i1 -1Тип маржирования календарных спредов для клиента. 3 - полунетто, 4 - нетто
ics_margin_type i1 -1Тип маржирования межконтрактных спредов. 3 - полунетто, 4 - нетто.


Таблица 99. Результат выполнения

Имя параметраТипЗначение по умолчаниюОписание
code i4  Код возврата
message c255  Текст сообщения


Коды возврата команды:

0

успех выполнения операции

Другое значение

ошибка

Примечания:

  • Значение -1, заданное в поле типа i1, дает возможность при посылке команды не изменять значение параметра, которое пользователь ранее уже отправил в торговую систему.

Метод ChangeBFClientDefaultParametersNextSession - Изменение на клиентских разделах параметров по умолчанию в клиринг

Тип сообщения: 402

Тип ответного сообщения: 602

Процедура используется для изменения параметров по умолчанию для всех клиентских разделов одной БФ. Процедура доступна логинам уровня РФ и БФ. Применение заданных параметров происходит в вечерний клиринг.

Таблица 100. Входящие параметры

Имя параметраТипЗначение по умолчаниюОписание
broker_code c4 ""Код брокерской фирмы
code_bf c2  Код БФ.
num_clr_2delivery_client_default i4 -1Количество клирингов до экспирации для начала расчета сценариев экспирации по клиентам.
exp_weight_client_default c17 ""Вес сценариев экспирации для клиента в итоговом ГО.
no_fut_discount_client_default i4 -1Запрет использования скидки по фьючерсам для портфелей по клиентским разделам. 1-запрет, 0-нет.


Таблица 101. Результат выполнения

Имя параметраТипЗначение по умолчаниюОписание
code i4  Код возврата
message c255  Текст сообщения


Коды возврата команды:

0

успех выполнения операции

Другое значение

ошибка

Примечания:

  • Пустая строка, заданная в поле типа c17, дает возможность при посылке команды не изменять значение параметра, которое пользователь ранее уже отправил в торговую систему.

  • Значение -1, заданное в поле типа i4, дает возможность при посылке команды не изменять значение параметра, которое пользователь ранее уже отправил в торговую систему.

Метод ChangeBFLimit - Изменение торговых лимитов БФ

Тип сообщения: 428

Тип ответного сообщения: 161

Процедура позволяет менять торговые лимиты по БФ.

Таблица 102. Входящие параметры

Имя параметраТипЗначение по умолчаниюОписание
broker_code c4 ""Код брокерской фирмы
mode i4  Режим работы команды
code c2  Код БФ
limit_money c17  Лимит денежных средств
check_limit i4  Флаг проверки на достаточность средств по БФ


Таблица 103. Результат выполнения

Имя параметраТипЗначение по умолчаниюОписание
code i4  Код возврата
message c255  Текст сообщения


Коды возврата команды:

0

успех выполнения операции

Другое значение

ошибка

Примечания:

  • Режим работы команды (поле mode):

    12

    Установить лимиты равные значению limit_money

    13

    Изменить лимиты на значение limit_money

  • В параметре check_limit можно указать следующие значения:

    0

    Не выполнять проверку

    1

    Выполнять проверку

Метод CODHeartbeat - Сообщение-хартбит для сервиса Cancel on Disconnect

Тип сообщения: 10000

Сообщение-хартбит сообщает сервису мониторинга подключения пользователей о том, что данный логин активен.

Таблица 104. Входящие параметры

Имя параметраТипЗначение по умолчаниюОписание
seq_number i4 0Номер сообщения-хартбита (в текущей версии не используется)


Пользователь, использующий сервис снятия заявок при отключении от торговой системы обязан посылать на входной гейт торговой системы сообщения-транзакции или хартбиты не реже одного раза в 10 секунд. В случае неактивности, то есть отсутствия от пользователей сообщений любого типа в течение 20 секунд, заявки этого пользователя будут сняты.

Примечание:

Требование посылать хартбиты распространяется только на пользователей, использующих сервис Cancel on Disconnect

Сервис мониторинга не отправляет ответных сообщений на хартбиты. Поэтому в поле флагов при вызове функции отправки сообщения требуется указать ноль (не ожидать ответа): cg_pub_post(pub, msgptr, 0);

Вызов функции cg_pub_post с флагом CG_PUB_NEEDREPLY при отправке хартбита приведет к получению уведомления-ошибки СG_MSG_P2MQ_TIMEOUT.

Метод SetSmaPreTradeCheck - Установка предварительной проверки для заявок SMA-логина

Тип сообщения: 406

Тип ответного сообщения: 166

Команда устанавливает режим предварительной проверки для заявок SMA-логина.

Таблица 105. Входящие параметры

Имя параметраТипЗначение по умолчаниюОписание
broker_code c4 ""Код брокерской фирмы
sma_asp c20 ""SMA-логин
check_number i1  Номер проверки (1 - 7)
base_contract_code c25 ""Код базового актива
instrument_type i1 0Тип дериватива:
  • 0 - Фьючерс

  • 1 - Опцион

  • 2 - Календарный Спред.

client_code_check c3 ""Код клиента, участвующий в проверке
value c29  Проверочное значение

Таблица 106. Результат выполнения

Имя параметраТипЗначение по умолчаниюОписание
code i4  Код возврата
message c255  Текст сообщения

Коды возврата команды:

0

успех выполнения команды

другое значение

ошибка

Примечание:

Процедура доступна только тому логину шлюза, которому Администратор торгов предоставил необходимые права.

Расшифровка номеров проверки для поля check_number:

Таблица 107. Номера проверки

Номер проверкиПроверкаПоля
1Отклонение цены в заявке от текущей цены.В value задается отклонение цены в заявке от текущей цены в процентах. В поле sma_asp указывается sma-логин, для которого добавляется проверка. Поля instrument_type и/или base_contract_code задаются в случае, если требуется установить проверку на отклонение цены в заявке от текущей цены на определенный инструмент или на все инструменты выбранного базового актива.
2Максимальный объем заявки в контрактах.В value задается максимальный объем заявки в контрактах. В поле sma_asp указывается sma-логин, для которого добавляется проверка. Поля instrument_type и/или base_contract_code задаются в случае, если требуется установить проверку на максимальный объем заявки в контрактах на определенный инструмент или на все инструменты выбранного базового актива.
3Запретить адресный режим.В value задается 0 или 1. 0 - разрешить адресный режим; 1 - запретить адресный режим.
4Максимальный объем заявки в тенге.В value задается максимальный объем заявки в тенге. В поле sma_asp указывается sma-логин, для которого добавляется проверка. Поля instrument_type и/или base_contract_code задаются в случае, если требуется установить проверку на максимальный объем заявки в тенге на определенный инструмент или на все инструменты выбранного базового актива.
5Максимальная сумма заявок за торговый день (брутто).В value задается максимальная сумма заявок за торговый день (брутто). В поле sma_asp указывается sma-логин, для которого добавляется проверка. Поля instrument_type и/или base_contract_code задаются в случае, если требуется установить проверку на максимальную сумму заявок за торговый день (брутто) на определенный инструмент или на все инструменты выбранного базового актива.
6Максимальная позиция в контрактах (long).В value задается максимальное количество контрактов в позиции long для участника торгов с клиентским кодом client_code_check. Поля instrument_type и/или base_contract_code задаются в случае, если требуется установить проверку на максимальное количество контрактов в позиции long для участника торгов с клиентским кодом client_code_check на определенный инструмент или на все инструменты выбранного базового актива.
7Максимальная позиция в контрактах (short).В value задается максимальное количество контрактов в позиции short для участника торгов с клиентским кодом client_code_check. Поля instrument_type и/или base_contract_code задаются в случае, если требуется установить проверку на максимальное количество контрактов в позиции short для участника торгов с клиентским кодом client_code_check на определенный инструмент или на все инструменты выбранного базового актива.


Метод DelSmaPreTradeCheck - Удаление предварительной проверки для заявок SMA-логина

Тип сообщения: 407

Тип ответного сообщения: 167

Команда отменяет режим предварительной проверки для заявок SMA-логина.

Таблица 108. Входящие параметры

Имя параметраТипЗначение по умолчаниюОписание
broker_code c4 ""Код брокерской фирмы
check_id i8  Id предварительной проверки

Таблица 109. Результат выполнения

Имя параметраТипЗначение по умолчаниюОписание
code i4  Код возврата
message c255  Текст сообщения

Коды возврата команды:

0

успех выполнения команды

другое значение

ошибка

Примечание:

Процедура доступна только тому логину шлюза, которому Администратор торгов предоставил необходимые права.

Метод UserKillSwitch - Запрет торговых операций для логина

Тип сообщения: 408

Тип ответного сообщения: 168

Команда включает запрет торговых операций для логина.

Таблица 110. Входящие параметры

Имя параметраТипЗначение по умолчаниюОписание
login c20  Логин участника торгов, для которого устанавливается запрет на торговые операции.
disable i1  Настройки запрета торговых операций для логина:
  • 0 - торговые операции разрешены для логина

  • 1 - торговые операции запрещены для логина.

cancel_orders i1 0Настройки снятия заявок при запрете торговых операции для логина:
  • 0 - ядро ТС не снимает заявки

  • 1 - ядро ТС снимает заявки.


Таблица 111. Результат выполнения

Имя параметраТипЗначение по умолчаниюОписание
code i4  Код возврата
message c255  Текст сообщения
num_orders i4  Количество удаленных заявок

Коды возврата команды:

0

успех выполнения команды

другое значение

ошибка

Примечание:

Процедура доступна только тому логину шлюза, которому Администратор торгов предоставил необходимые права.

Выставление флага "снимать заявки" (cancel_orders = 1 ) возможно только при условии, когда поле disable =1.

Метод SetBrokerFeeParamNextSession - Установка параметров для расчета брокерской комиссии

Тип сообщения: 453

Тип ответного сообщения: 183

Команда предназначена для добавления, изменения и удаления параметров, которые используются при расчете брокерской комиссии по сделкам клиентов. Параметры можно задать как для отдельного клиента, так и для всей брокерской фирмы. Параметры, заданные для БФ, используются при расчете для всех ее клиентов. Команда доступна только логину уровня РФ и БФ, которому Администратор торгов предоставил необходимые права. Заданные командой параметры применяются в следующую торговую сессию.

Таблица 112. Входящие параметры

Имя параметраТипЗначение по умолчаниюОписание
broker_code c4  Код брокерской фирмы
mode i4  Режим работы команды
client_code c3 ""Код клиента
lower_fee c27  Минимально возможная сумма брокерской комиссии за один контракт
upper_fee c27  Максимально возможная сумма брокерской комиссии за один контракт
multiplier c27  Мультипликатор к сумме биржевого и клирингового сбора
additive c27  Постоянная добавка за один контракт


Таблица 113. Результат выполнения

Имя параметраТипЗначение по умолчаниюОписание
code i4  Код возврата
message c255  Текст сообщения


Коды возврата команды:

0

успех выполнения операции

Другое значение

ошибка

Примечания:

  • Режим работы команды (поле mode):

    1

    Добавить \ Изменить

    2

    Удалить

  • При задании параметров для клиента следует в команде указывать его код (поле client_code). При задании параметров для всей БФ поле client_code следует оставлять пустым.

  • Параметр lower_fee можно задавать в диапазоне 0.00 - 100.00.

  • Параметр upper_fee можно задавать в диапазоне 0.00 - 10000.00.

  • Параметр multiplier можно задавать в диапазоне 0.00 - 100.00.

  • Параметр additive можно задавать в диапазоне 0.00 - 1000.00.

  • При добавлении (изменении) параметров (mode=1 в команде) для клиента в таблице broker_fee_params добавляется новая запись с sess_id=-1. Применение параметров происходит в следующую торговую сессию.

  • При удалении параметров (mode=2 в команде):

    • Если у клиента есть только добавленные сегодня параметры (запись в таблице broker_fee_params с sess_id=-1), то они просто удаляются из таблицы.

    • Если у клиента есть только текущие (применяемые сейчас) параметры, то они в таблице broker_fee_params помечаются для удаления, для этого в таблицу добавляется новая запись с текущими параметрами, у которой sess_id=-2. Само удаление происходит при смене торговой сессии.

    • Если у клиента есть и текущие и добавленные сегодня параметры, то вновь добавленные параметры (запись с sess_id=-1) из таблицы broker_fee_params удаляются, а текущие параметры помечаются для удаления (новая запись с sess_id=-2) и будут удалены при смене торговой сессии.

Метод ChangePassword - Изменение пароля пользователя в торговой системе

Тип сообщения: 421

Тип ответного сообщения: 169

Команда предназначена для изменения пароля пользователя в торговой системе. Для посылки команды необходимо использовать специальный протокол p2mqpwd, который предоставляется в API CGate.

Таблица 114. Входящие параметры

Имя параметраТипЗначение по умолчаниюОписание
old_pwd c65  Текущий пароль пользователя
new_pwd c65  Новый пароль пользователя

Таблица 115. Результат выполнения

Имя параметраТипЗначение по умолчаниюОписание
code i4  Код возврата
message c255  Текст сообщения

Коды возврата команды:

0

успех выполнения команды

другое значение

ошибка

Примечание:

При возникновении ошибки пароль пользователя в системе не меняется.

B. Типы данных платформы Plaza-2

Plaza-2С++ODBCКомментарий
u1UINT8SMALLINTЦелое число размером 1 байт.
u2UINT16INTEGERЦелое число размером 2 байта.
u4UINT32NUMERIC,10Целое число размером 4 байта.
u8UINT64NUMERIC,20Целое число размером 8 байт.
i1INT8SMALLINTЦелое число со знаком размером 1 байт.
i2INT16SMALLINTЦелое число со знаком размером 2 байта.
i4INT32INTEGERЦелое число со знаком размером 4 байта.
i8INT64BIGINTЦелое число со знаком размером 8 байт.
aCHARVARCHARСтрока символов размером 1 байт.
cNCHAR[N+1]VARCHAR,NСтрока символов, оканчивающаяся нулевым символом.
dN.M sN.MP2BCDIINUMERIC,N,MДесятичное число в двоичной кодировке с фиксированной точкой, где
  • N — общее количество цифр в числе;

  • M — количество цифр в дробной части.

tP2TIMETIMESTAMPДата и время.
fDOUBLEREALЧисло с плавающей точкой двойной точности размером 8 байт.
bN VARBINARY,NБлок данных.
zN VARBINARY,NБлок данных, где первые четыре байта задают длину буфера.

Примечание:

Для кодировки символьных строк используется Win1251.

C. Справочник кодов возврата

Код возвратаОписание
-1Ошибка при выполнении операции.
0Операция выполнена успешно.
1Нет такого пользователя.
2Нет такого дилера.
3Сейчас эта сессия не идёт.
4Сессия приостановлена.
5Ошибка при выполнении операции.
6Нет прав на выполнение операции.
7Попытка доступа к счёту чужой РФ.
8Нет прав на удаление заявки другого клиента/пользователя своей фирмы.
9Фирме операции с заявками заблокированы Администратором Клирингового Центра.
10Нехватка средств на счету для резервирования.
12Премия по опциону вне лимитов.
13Лимит поз. по всему рынку превышен.
14Не найдена заявка для удаления.
25Запрет Администратора торгов на постановку любых заявок.
26Запрет Администратора торгов на открытие позиций.
27Запрет Администратора торгов на открытие позиций на Продажу.
28Нет прав для выполнения операции.
31Не разрешена встречная заявка на один счёт и/или УИН.
32Цена сделки вне лимита.
33Этой фирме операции с заявками заблокированы Администратором Клирингового Центра.
34Попытка операции на несуществующий код клиента.
35Ошибка в задании входных параметров.
36Попытка операции по несуществующему базовому активу.
37Перестановка заявок по Связкам недопустима.
38Перестановка адресных заявок недопустима.
39Цена не кратна минимальному шагу цены.
40Попытка адресовать внесистемную заявку несуществующему контрагенту.
41Не наступил или истёк срок доверенности пользователя.
42Запрещена работа Главным трейдером Расчётной фирмы.
44Главный трейдер Расчётной фирмы не поставил признак своей работы от этой фирмы.
45Попытка поставить внесистемную заявку от фирмы, у которой не прописан код РТС.
46По этому инструменту разрешены только внесистемные заявки.
47В назначенной сессии по этому инструменту торгов нет.
48По этому инструменту идёт Поставка. Разрешены только внесистемные заявки всем БФ своей РФ.
49Попытка поставить внесистемную заявку от трейдера одного клиентского счета, а не от кода фирмы.
50Не найдена заявка для перестановки.
53Ошибка в задании входного параметра - количество.
54В операции отказано: Превышен лимит операций от указанного клиента.
56Нет прав на выполнение операции от указанного логина и кода. Обратитесь к Администратору торгов.
57Нет прав на соединение с сервером Биржи. Обратитесь к Администратору торгов.
58Нет прав на выставление заявки без проверки достаточности средств на уровне клиента.
60Приостановка аукциона в режиме управления риском по всем инструментам.
61Приостановка торгов в режиме управления риском.
62Приостановка торгов по секции Срочного рынка Московской Биржи.
63Приостановка аукциона в режиме управления риском по всем инструментам данного БА.
64Приостановка торгов в режиме управления риском по данному БА.
65Приостановка торгов во всех режимах и по всем инструментам данного БА.
66Приостановка торгов во всех режимах по данному инструменту.
67Запрет Администратора торгов на открытие позиций в режиме управления риском по данному инструменту.
68Запрет Брокера на выставление любых заявок в режиме управления риском.
69Запрет Главного трейдера на выставление любых заявок в режиме управления риском.
70Торговая операция не поддерживается.
71Количество контрактов в позиции превысило допустимый предел.
72Заявка в процессе перемещения.
73Суммарное количество контрактов в заявках на покупку превысило допустимый предел.
74Суммарное количество контрактов в заявках на продажу превысило допустимый предел.
75Превышен интервал ожидания выполнения неторговой операции. Операция не выполнена.
76Не найдена запись для удаления.
77Для указанного торгового раздела отсутствуют идентификационные данные.
78Нет такой РФ.
79Запрещена работа Администратором Клирингового Центра.
80Неторговая операция не поддерживается.
81Ошибка входной проверки актуальности данных, операция не может быть выполнена.
200Администратор производит изменение параметров расчёта ГО.
201Администратор производит изменение параметров расчёта ГО.
202Администратор производит изменение параметров расчёта ГО.
203Администратор производит изменение параметров расчёта ГО.
204Администратор производит изменение параметров расчёта ГО.
205Администратор производит изменение параметров расчёта ГО.
206Администратор производит изменение параметров расчёта ГО.
207Администратор производит изменение параметров расчёта ГО.
208Администратор производит изменение параметров расчёта ГО.
300Запрет всех торговых операций по причине отзыва/приостановки дилерской лицензии данной РФ.
301Запрет открытия позиций по причине отзыва/приостановки дилерской лицензии данной РФ.
302Запрет всех торговых операций по причине отзыва/приостановки брокерской лицензии данной РФ.
303Запрет открытия позиций по причине отзыва/приостановки брокерской лицензии данной РФ.
304Запрет всех торговых операций по причине отзыва/приостановки лицензии биржевого посредника данной РФ.
305Запрет открытия позиций по причине отзыва/приостановки лицензии биржевого посредника данной РФ.
306Запрет всех торговых операций по причине отзыва/приостановки лицензии ДУ данной РФ.
307Запрет открытия позиций по причине отзыва/приостановки лицензии ДУ данной РФ.
310Запрет Администратора Клирингового Центра на постановку любых заявок.
311Запрет Администратора Клирингового Центра на открытие позиций.
312Запрет Администратора Клирингового Центра на открытие позиций на Продажу.
314Запрет Трейдера на постановку любых заявок по клиентскому счету.
315Запрет Трейдера на открытие позиции по клиентскому счету.
316Запрет Трейдера на открытие позиции на Продажу по клиентскому счету.
317Превышен лимит заявок на покупку/продажу.
318Запрет Администратора Клирингового Центра на выставление любых заявок по клиентскому счету: для клиентского регистра нет Депо счета, разрешённого для Поставки по инструментам Денежного рынка.
320Превышен допустимый предел числа активных заявок с клиентского регистра по инструменту.
331Нехватка средств по Расчётному Коду.
332Нехватка средств по лимитам клиента.
333Нехватка средств по брокерской фирме.
335Превышен лимит клиента на покупку бумаг.
336Превышен лимит брокера на покупку бумаг.
337Превышен лимит клиента на продажу бумаг.
338Превышен лимит брокера на продажу бумаг.
339Идёт пересчёт ГО.
380Идёт пром. клиринг, нельзя совершать торговые операции.
381Идёт пром. клиринг, нельзя удалять заявки.
382Идёт пром. клиринг, нельзя переставлять заявки.
383Идет пром. клиринг, нельзя совершать неторговые операции.
680Нехватка средств по лимитам клиента.
681Нехватка средств по расчётной фирме.
682Нехватка средств для увеличения позиции
3000Изменение и снятие котировки запрещено из-за превышения частоты изменения заявок.
3001Операция запрещена.
4000Ошибка во входных параметрах.
4001У пользователя нет прав на выполнение операции.
4002Невозможно изменить денежный лимит по клиенту. Нет текущих сессий.
4004Невозможно изменить денежный лимит по клиенту. Кода нет в таблице клиентов.
4005Нехватка средств при изменении клиентского лимита.
4006Ошибка во входных параметрах: указанный "Режим работы" не поддерживается.
4007Ошибка во входных параметрах: параметр "Денежный лимит" не число.
4008Ошибка во входных параметрах: параметр "Коэффициент клиентского ГО" не число.
4009Ошибка во входных параметрах: недопустимое значение параметра "Коэффициент клиентского ГО".
4010Ошибка во входных параметрах: недопустимое значение параметра "Флаг проверки на неуход в минус".
4011Ошибка во входных параметрах: недопустимое значение параметра "Признак автоматической коррекции лимита на величину дохода при закачке после клиринга".
4012Невозможно установить денежный лимит по клиенту. Ошибка при выполнении операции.
4013Невозможно установить денежный лимит по клиенту. Ошибка при выполнении операции.
4014Невозможно изменить параметры по клиенту. Нет текущих сессий.
4015Невозможно изменить параметры по клиенту. Кода нет в таблице клиентов.
4016Невозможно изменить параметры по клиенту. Кода БА нет в таблице базовых активов.
4017Ошибка во входных параметрах: недопустимое значение параметра "Денежный лимит".
4018Администратор производит изменение параметров расчёта ГО.
4021Не хватает свободных залоговых средств у Брокерской Фирмы, чтобы установить требуемое количество Расчётной Фирме.
4022Не хватает свободных денежных средств у Брокерской Фирмы, чтобы установить требуемое количество Расчётной Фирме.
4023Невозможно изменить денежный лимит по БФ. Нет текущих сессий.
4024Невозможно изменить денежный лимит по БФ. Данная БФ не зарегистрирована в торгах.
4025Не хватает свободных залоговых средств у Расчётной Фирмы, чтобы установить требуемое количество Брокерской Фирме.
4026Не хватает сальдо денежных средств у Обособленного раздела, чтобы установить требуемое количество Расчётной Фирме.
4027Не хватает сальдо залоговых средств у Обособленного раздела, чтобы установить требуемое количество Расчётной Фирме.
4028Не хватает свободных денежных средств у Расчётной Фирмы, чтобы установить требуемое количество Брокерской Фирме.
4030Невозможно изменить параметры по Брокеру. Нет текущих сессий.
4031Невозможно изменить параметры по Брокеру. Кода нет в таблице клиентов.
4032Невозможно изменить параметры по Брокеру. Кода БА нет в таблице базовых активов.
4033Невозможно изменить параметры по Брокеру. Нет прав на работу с этим базовым активом.
4034Клиринговый перевод Залоговых средств с Обособленного раздела запрещён.
4035Перевод залоговых средств частичного обеспечения запрещён.
4040Невозможно изменить лимит по БФ в режиме управления риском. Нет текущих сессий.
4041Невозможно изменить лимит по БФ в режиме управления риском. Данная БФ не зарегистрирована в торгах.
4042Невозможно изменить лимит по БФ в режиме управления риском. Кода БФ нет в таблице клиентов.
4043Невозможно изменить лимит по БФ в режиме управления риском. Ошибка при выполнении операции.
4044Невозможно изменить лимит по БФ в режиме управления риском. Ошибка при выполнении операции.
4045Невозможно удалить лимит по БФ в режиме управления риском. Ошибка при выполнении операции.
4046Недостаточно прав на удаление запрета Главного трейдера на торги в режиме управления риском.
4050Заявка на экспирацию не обработана. Запрет Главного трейдера на подачу заявок на Экспирацию.
4051Заявка на экспирацию не обработана. Запрет брокера на подачу заявок на Экспирацию.
4052Заявка на экспирацию не обработана. В существующей заявке с присланным номером другие: "код клиента" и/или "инструмент".
4053Заявка на экспирацию не обработана. Идёт пром. клиринг. Удалять заявки нельзя.
4054Заявка на экспирацию не обработана. Идёт пром. клиринг. Изменять заявки нельзя.
4055Заявка на экспирацию не обработана. Не найдена заявка по номеру для удаления/изменения.
4060Заявка на экспирацию не обработана. Нет прав на выполнение операции.
4061Заявка на экспирацию не обработана. Время ввода заявок окончилось.
4062Заявка на экспирацию не обработана. Нет такого клиентского счета.
4063Заявка на экспирацию не обработана. Не найдена заявка для удаления.
4064Заявка на экспирацию не обработана. Нет прав на выполнение операции.
4065Заявка на экспирацию не обработана. Не найден опционный инструмент.
4066Заявка на экспирацию не обработана. Отказ от автоэкспирации возможен только в день истечения опциона.
4067Заявка на экспирацию не обработана. Ошибка при выполнении операции.
4068Заявка на экспирацию не обработана. Ошибка при выполнении операции.
4069Заявка на экспирацию не обработана. Ошибка при выполнении операции.
4070Заявка на экспирацию не обработана. На клиентском счёте нет такого количества позиций.
4090Нет текущих сессий.
4091Кода нет в таблице клиентов.
4092Кода БА нет в таблице базовых активов.
4093Не найден указанный фьючерсный инструмент.
4094Указанный фьючерсный инструмент не соответствует указанному БА.
4095Не м.б. указан конкретный фьючерс, когда БА указан - Для всех.
4096Не найдено ограничения для удаления.
4097Ограничение Главного трейдера нельзя удалить трейдеру Брокерской Фирмы.
4098Инструмент отсутствует в текущей сессии.
4099Оба инструмента должны быть для одного базового актива.
4100Для заявки по Связке должно выполняться требование к инструментам: дата исполнения прямого инструмента меньше даты исполнения обратного инструмента.
4101Запрещены Связки между инструментами с разными лотами.
4102Нет позиций для переноса.
4103Неполное сведение FOK заявки.
4104Заявка по Анонимному РЕПО должна быть только с указанием типа "РЕПО".
4105Запрещена заявка с указанием типа "РЕПО" по данной Связке.
4106Связки разрешены только для Денежного рынка.
4107Этой процедурой нельзя ставить заявки по инструменту-Связке.
4108Нет прав на торговлю по Т0 инструментам в режиме управления риском.
4109Ставка (или Своп-цена) не кратна минимальному шагу.
4110Цена первой части сделки не совпадает с ценой поставки.
4111Превышен предел Ставки (или Своп-цены).
4112Указанный фьючерсный инструмент - Связка, по нему Ограничения не ставятся.
4115Невозможно перевести денежные средства с БФ на БФ. Нет текущих сессий.
4116Невозможно перевести денежные средства с БФ на БФ. БФ-донор не зарегистрирована в торгах.
4117Невозможно перевести денежные средства с БФ на БФ. БФ-получатель не зарегистрирована в торгах.
4118Не хватает свободных денежных средств у Брокерской Фирмы.
4119Не хватает свободных залоговых средств частичного обеспечения у Брокерской Фирмы.
4122Не хватает свободных денежных средств у Расчётной Фирмы.
4123Не хватает в наличии залоговых средств частичного обеспечения у Брокерской Фирмы.
4124Не найден код указанной Брокерской Фирмы.
4125Попытка перевода между разделами различных Расчётных Фирм.
4126Перевод запрещён. Ошибка логики переводов.
4127Не хватает свободных денежных средств на Расчётном Коде.
4128Не хватает свободных денежных средств у Брокерской Фирмы.
4129Не хватает сальдо денежных средств у Обособленного раздела.
4130Не хватает свободных денежных средств у Расчётной Фирмы.
4131Не найден код указанной Брокерской Фирмы.
4132Вывод запрещён. Ошибка логики отзывов средств.
4133Нет поручений для отмены.
4134Не хватает в наличии денежных средств у Брокерской Фирмы.
4135Не хватает в наличии денежных средств у Расчётной Фирмы.
4136Перевод залоговых средств полного обеспечения запрещён.
4137Не хватает в наличии залоговых средств полного обеспечения у Брокерской Фирмы.
4138На Расчётном Коде недостаточно денежных средств, доступных для вывода.
4139Не хватает свободных залоговых средств частичного обеспечения на Расчётном Коде.
4140Нет позиций для переноса по выбранному инструменту.
4141Не хватает открытых позиций для переноса.
4142Попытка переноса позиций с клиентского счёта на чужой счёт (с другим УИН).
4143Нельзя переносить позиции между БФ, принадлежащим разным РФ.
4144Нельзя переносить позиции на нулевой раздел БФ.
4145Запрет Администратора торгов на перенос позиций по указанной БФ.
4146Запрет на перенос позиции по указанному инструменту.
4147Не найден указанный опционный инструмент.
4148Не хватает в наличии залоговых средств полного обеспечения на Расчётном Коде.
4149Не хватает в наличии денежных средств на Расчётном Коде.
4150Указанный фьючерсный инструмент не является инструментом балансировки риска.
4151Не найден соответствующий Код Фирмы на Валютном рынке.
4152Не найден соответствующий Расчетный Код на Валютном рынке.
4153Не найден соответствующий инструмент на Валютном рынке.
4154Необходимые параметры для подачи транзакции на Валютном рынке не зарегистрированы в системе.
4155Необходимый логин Администратора для подачи транзакции балансировки риска не зарегистрирован в системе.
4160Перевод средств между разными РК возможен только путем подачи поручения на перевод средств в КЦ.
4161Вывод запрещен. Расчетный код входит в единый пул.
4162Операция невозможна. Изменение лимитов разрешено между БФ на одном Расчётном коде.
4164Изменение параметров по клиентским разделам запрещено.
4165Операция доступна логинам уровня РФ.
4166Некорректная комбинация значений флагов.
4167Не найден Расчётный Код.
4169Операция доступна логинам уровня РФ или БФ.
4170Попытка доступа к счёту чужой БФ.
4171Попытка доступа к счёту чужого клиента.
4172У участника клиринга нет прав на выполнение команды.
4173У участника торгов нет прав на выполнение команды.
4174Заявка с датой окончания срока действия по Календарному спреду снята системой.
4175У участника клиринга установлена опция учитывать средства только на Расчётном коде.
4200Поручение не подтверждено. Не подключен MASTER логин участника торгов.
4201Поручение не подтверждено. Превышено отклонение цены в поручении от текущей цены.
4202Поручение не подтверждено. Превышен максимальный объем поручения в контрактах.
4203Поручение не подтверждено. Запрещен адресный режим.
4204Поручение не подтверждено. Превышен максимальный объем поручения в рублях.
4205Поручение не подтверждено. Превышена максимальная разрешенная рублевая сумма поручений за торговый день.
4206Поручение не подтверждено. Превышена максимальная разрешенная позиция в контрактах на покупку.
4207Поручение не подтверждено. Превышена максимальная разрешенная позиция в контрактах на продажу.
4208Поручение не подтверждено. Для указанного SMA логина превышено количество одновременно установленных ограничений на размер позиции по различным клиринговым разделам.
4220Для пользователя установлен запрет на совершение торговых операций.
4221Операция запрещена при совпадении участника клиринга и участника торгов в одном лице.
4222У участника клиринга нет прав на выполнение операций с заявками.
4224У активных мастер логинов нет прав на совершение этой операции.
4225В отношении Участника клиринга проводится ликвидационный неттинг, запрещено выполнение любых операций.
4226Для БФ запрещены торговые операции в утреннюю сессию, кроме операций снятия заявок.
4230На брокерской фирме достаточно обеспечения, заявки сняты не будут.
4258Адресные айсберг-заявки запрещены.
4259Перемещение айсберг-заявок парами запрещено.
4260Размер видимой части айсберг-заявки меньше минимально допустимого значения.
4261Размер видимой части айсберг-заявки больше размера айсберг-заявки.
4262Размер случайной надбавки больше максимально допустимого значения.
4264Размер случайной надбавки меньше нуля.
4266На РК установлен режим блокировки Администратора торговой системы.
4268Перемещение айсберг-заявок возможно только по цене.
4269В адресной заявке нельзя указывать дату истечения заявки.
4280Ошибка во входных параметрах: не задан параметр "Код клиента".
4281Ошибка во входных параметрах: недопустимое значение параметра "Тип запрета".
4282Ошибка во входных параметрах: для параметра "Режим работы" = 12 не может задаваться "Маска запретов" = 0.
9999Превышен лимит отправки транзакций для данного логина.
10000Системная ошибка при обработке сообщения.
10001Неизвестный тип сообщения.
10004Недопустимый тип сообщения.
10005Превышен размер MQ-адреса.
10006Ошибка при парсинге сообщения.