## PLAZA II шлюз (версия 8.9)

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

Дата | Изменения
--- | ---
14.07.2025 | Внесённые изменения: В раздел "2.4.5. Признаки, выставляемые у заявок и сделок" добавлено описание новых флагов: "PerpetualFuturesExecutionPartialVoluntary (0x2000000000000000)" - Техническая сделка выхода из вечного фьючерса с принудительным закрытием позиции одной из сторон. Поток FORTS_AGGRXX_REPL: Добавлена таблица событий sys_events. Поток FORTS_REFDATA_REPL: Из таблицы fut_sess_contents удалено устаревшее поле is_trade_evening. Вместо него следует использовать поле trade_period_access. Из таблицы opt_sess_contents удалено устаревшее поле is_trade_evening. Вместо него следует использовать поле trade_period_access. Из таблицы session удалены устаревшие поля pos_transfer_begin и pos_transfer_end. В таблицах fut_sess_contents и opt_sess_contents в поле signs прекращена трансляция значений: 0x1 - Признак торговли в дополнительную торговую сессию 0x40 - Признак торговли в основную сессию Поток FORTS_CLR_REPL: В таблицу fut_pos добавлены поля pos_enforcement_exec и pay_enforcement_exec. В таблицу fut_sess_settl добавлено поле exp_enforcement_pay. В таблицы fut_sess_settl, opt_sess_settl и option_series_settl добавлены поля step_price и step_price_curr.
04.07.2025 | Внесённые изменения: Поток FORTS_USERORDERBOOK_REPL: Добавлена таблица multileg_orders -Таблица активных заявок по связкам. Добавлена таблица multileg_orders_currentday - Срез активных заявок пользователя по связкам на начало текущего дня. В таблицу orders_currentday добавлено поле match_ref. Поток FORTS_ORDBOOK_REPL: Добавлена таблица multileg_orders -Таблица активных анонимных заявок по связкам. Добавлена таблица multileg_orders_currentday - Срез активных заявок по связкам на начало текущего дня.
17.06.2025 | Внесённые изменения: Добавлен раздел "2.2.6. Инструменты с ограничениями по квалификации инвестора". Добавлен раздел "2.5.6. Сервис раздачи статусов инструментов". Добавлен раздел "2.12. Торги в выходные дни". Поток FORTS_USERORDERBOOK_REPL: Добавлена таблица orders_currentday - Срез активных заявок пользователя на начало текущего дня. Добавлена таблица info_currentday - Информация о срезе. В таблицу info добавлены поля trades_rev и trades_lifenum. Начиная с версии 8.3 поля logRev и lifeNum в таблице info объявляются устаревшим и будут удалены в версии 8.9. Вместо этих полей надо использовать поля trades_rev и trades_lifenum, соответственно. Поток FORTS_ORDBOOK_REPL: Добавлена таблица orders_currentday - Срез активных заявок на начало текущего дня. Добавлена таблица info_currentday - Информация о срезе. В таблицу info добавлены поля trades_rev и trades_lifenum. Начиная с версии 8.3 поля logRev и lifeNum в таблице info объявляются устаревшим и будут удалены в версии 8.9. Вместо этих полей надо использовать поля trades_rev и trades_lifenum, соответственно. Поток FORTS_COMMON_REPL: В таблицу common добавлено поле index_div. Поток FORTS_POS_REPL: В таблицы position и position_sa добавлены поля xday_open_qty, xday_open_buys_qty, xday_open_sells_qty. Добавлена таблица info - Информация о срезе. Поток FORTS_REFDATA_REPL: Добавлена таблица trade_periods - Параметры торговых периодов. В таблицы fut_vcb и opt_vcb добавлено поле section_id. В таблицу dealer добавлено поле order_allowed_in_weekend_session. В таблицу discrete_auction добавлены поля trade_period_id и trade_period_type. В таблицу fut_instruments добавлено поле trade_period_access. Поток FORTS_VM_REPL: В таблицы fut_vm и fut_vm_sa добавлены поля swap_rate и index_div. Поток FORTS_INFO_REPL: В таблицу base_contracts_params добавлено поле signs. В таблицу investor добавлено поле xstatus. В таблицу dealer добавлено поле order_allowed_in_weekend_session. В таблицу option_series_params добавлено поле lot_volume. Добавлен новый поток FORTS_SESSIONSTATE_REPL - Статус активной сессии. Таблицы: session_state - Статус активной сессии sys_events - Таблица событий Добавлен новый поток FORTS_INSTRUMENTSTATE_REPL - Статусы инструментов по активной сессии. Таблицы: instrument_state - Статусы инструментов по активной сессии sys_events - Таблица событий Добавлен новый поток FORTS_SECURITYGROUPSTATE_REPL - Статус по группе инструментов активной сессии. Таблицы: security_group_state - Статус по группе инструментов активной сессии sys_events - Таблица событий Добавлены новые коды ошибок: 4285, 4227.
17.03.2025 | Внесённые изменения: Добавлен раздел "2.6.9. Сервисы МБ в рамках Указания 6681-У - регулирование маржинальной торговли брокерских клиентов". Добавлен раздел "3.3.10. Отображение информации о логинах казначеев в сделках\заявках". Поток FORTS_REFDATA_REPL: В таблицу fut_sess_contents добавлены поля trade_period_access, buy_deposit_erc, sell_deposit_erc, buy_deposit_hrc, sell_deposit_hrc, buy_deposit_lrc, sell_deposit_lrc, buy_deposit_mrc, sell_deposit_mrc. Начиная с версии 8.0 поле is_trade_evening в таблице fut_sess_contents объявляется устаревшим и будет удалено в версии 8.6. Вместо него следует использовать поле trade_period_access. В таблицу opt_sess_contents добавлены поля trade_period_access, base_im_covered_sell_erc, base_im_covered_sell_hrc, base_im_covered_sell_lrc, base_im_covered_sell_mrc, base_im_sell_erc, base_im_buy_erc, base_im_sell_hrc, base_im_buy_hrc, base_im_sell_lrc, base_im_buy_lrc, base_im_sell_mrc, base_im_buy_mrc. Начиная с версии 8.0 поле is_trade_evening в таблице opt_sess_contents объявляется устаревшим и будет удалено в версии 8.6. Вместо него следует использовать поле trade_period_access. В таблицу sess_option_series добавлено поле d_sess_assign. Начиная с версии 8.0 поля pos_transfer_begin и pos_transfer_end в таблице session объявляются устаревшим и будут удалены в версии 8.6. Поток FORTS_INFO_REPL: В таблицу investor добавлено поле client_risk_level. В таблицу base_contracts_params добавлены поля mr1_lrc, mr2_lrc, mr3_lrc, mr1_mrc, mr2_mrc, mr3_mrc, mr1_hrc, mr2_hrc, mr3_hrc, mr1_erc, mr2_erc, mr3_erc. Добавлен новый поток FORTS_RMT_REPL - ГО без заявок и текущий оперативный риск. Таблицы: rmt_im - ГО без заявок и текущий оперативный риск в разрезе клиентов sys_events - Таблица событий
11.12.2024 | Внесённые изменения: Поток FORTS_REFDATA_REPL: В таблицу investor добавлено поле client_risk_level.
09.10.2024 | Внесённые изменения: Добавлен раздел "3.3.6.1. Утилита change_password". Добавлен раздел "3.3.6.2. Одноразовые пароли". Поток FORTS_REFDATA_REPL: В таблицы fut_instruments и fut_sess_contents добавлены поля trade_mode_id и group_mask. В таблицу opt_sess_contents добавлены поля trade_mode_id, group_mask, is_trade_evening. В таблице fut_sess_contents для поля signs появился новый бит: 0x200 - Фьючерс. Изменения в репозитории схем подачи команд: В команды AddOrder и IcebergAddOrder для поля comment добавлено ограничение: Поле не должно содержать управляющих символов (0x00-0x1F и 0x7F) и поле должно конвертироваться из cp1251 в utf-8. Добавлены новые коды ошибок: 4180
08.07.2024 | Внесённые изменения: Поток FORTS_TRADE_REPL: В таблицы orders_log и multileg_orders_log добавлено поле match_ref. Удален устаревший поток FORTS_MISCINFO_REPL. Вместо него надо использовать потоки FORTS_RISKINFOBLACK_REPL и FORTS_RISKINFOBACH_REPL.
12.04.2024 | Внесённые изменения: Поток FORTS_REFDATA_REPL: В таблице fut_sess_contents в поле state добавлена трансляция новых значений: 8 - Сессия по этому инструменту идет. Можно ставить заявки в закрытие по этому инструменту. 9 - Аукцион открытия по этому инструменту идет. Можно ставить заявки в закрытие по этому инструменту. В таблице opt_sess_contents в поле state добавлена трансляция новых значений: 6 - Стартовал аукцион открытия по этому инструменту. Можно ставить и удалять заявки по этому инструменту. 7 - Аукцион открытия по этому инструменту завершен. 8 - Сессия по этому инструменту идет. Можно ставить заявки в закрытие по этому инструменту. 9 - Аукцион открытия по этому инструменту идет. Можно ставить заявки в закрытие по этому инструменту. В таблицы fut_sess_contents и fut_instruments добавлено поле tas_base_fut_isin_id. Добавлены новые коды ошибок: 140
18.03.2024 | Внесённые изменения: Добавлен раздел "2.4.4. Расчет сделки по заявке с указанием спреда TAS". В раздел "2.4.5. Признаки, выставляемые у заявок и сделок" добавлено описание новых флагов: "TASSettlement (0x10000)" - Расчет сделки по заявке с указанием спреда TAS. Добавлен раздел "3.4.1.2. Обработка таймаутов при отправке команд/транзакций". Поток FORTS_TRADE_REPL: В таблицы orders_log и multileg_orders_log добавлено поле compliance_id. Поток FORTS_USERORDERBOOK_REPL: В таблицу orders добавлено поле compliance_id. Поток FORTS_REFDATA_REPL: В таблице fut_sess_contents для поля signs появился новый бит: 0x100000 - TAS-фьючерс. В таблице fut_vcb для поля signs появился новый бит: 0x4 - TAS-фьючерс. В таблице dealer для поля status появился новый бит: 0x10000 - НКЦ. В таблицу sys_messages добавлено поле type_id. Удалены устаревшие таблицы fut_rejected_orders и opt_rejected_orders. Вместо этих таблиц надо использовать таблицу rejected_orders потока FORTS_REJECTEDORDERS_REPL. Начиная с версии 7.21 поток FORTS_MISCINFO_REPL объявляется устаревшим и будет удален в версии 7.27. Вместо него надо использовать потоки FORTS_RISKINFOBLACK_REPL и FORTS_RISKINFOBACH_REPL. Поток FORTS_INFO_REPL: В таблицу futures_params добавлено поле tas_base_fut_isin_id. В таблице futures_params для поля attribute появился новый бит: 0x100000 - TAS-фьючерс. Изменения в репозитории схем подачи команд: В команду AddOrder добавлено поле compliance_id (c1). Добавлен новый тип команды AddOrder (msgid=474). В команду IcebergAddOrder добавлено поле compliance_id (c1). Добавлен новый тип команды IcebergAddOrder (msgid=475). В команду MoveOrder добавлено поле compliance_id (c1). Добавлен новый тип команды AddOrder (msgid=476). В команду IcebergMoveOrder добавлено поле compliance_id (c1). Добавлен новый тип команды IcebergAddOrder (msgid=477). Внесены дополнения в раздел "5.25. Метод SetSmaPreTradeCheck - Установка предварительной проверки для заявок SMA-логина".
01.12.2023 | Внесённые изменения: Изменено название документа: вместо "Шлюз SPECTRA Plaza-2" стало "PLAZA II шлюз". Добавлен раздел "2.3.2.1. Адресный режим с мэтчингом по уникальному коду". В раздел "2.4.4. Признаки, выставляемые у заявок и сделок" добавлено описание новых флагов: Устаревший бит "InternalHalfTrade (0x80000000)" переименован в "NegotiatedMatchByRef (0x80000000)" - Признак заявки или сделки, сформированной в режиме "Адресный с мэтчингом по уникальному коду". Добавлен новый поток FORTS_REJECTEDORDERS_REPL - Отвергнутые в клиринг заявки. Таблицы: rejected_orders - Отвергнутые в клиринг заявки. Таблица используется вместо устаревших таблиц fut_rejected_orders и opt_rejected_orders потока FORTS_REFDATA_REPL. Поток FORTS_COMMON_REPL: Из таблицы sys_events удалено устаревшее поле type. Вместо него следует использовать поле event_type. Поток FORTS_REFDATA_REPL: Из таблицы session удалено устаревшее поле opt_sess_id. Вместо него следует использовать поле sess_id. Начиная с версии 7.18 таблицы fut_rejected_orders и opt_rejected_orders объявляются устаревшими и будут удалены в версии 7.21. Вместо этих таблиц надо использовать таблицу rejected_orders потока FORTS_REJECTEDORDERS_REPL. Поток RTS_INDEX_REPL: Из таблицы rts_index удалено устаревшее поле value. Вместо него следует использовать поле value_highprec. Изменения в репозитории схем подачи команд: Удалены медленные версии команды ChangeClientMoney (версии команд с ID in = 4, 60, 63, 67, 409, 425 / Reply ID out = 104 ), ранее объявленные устаревшими. Используйте более быструю версию команды ChangeClientMoney с ID in = 458 / Reply ID out = 187.
04.09.2023 | Внесённые изменения: Раздел "3.1.4. Установка ПО в среде Linux" разбит на две части: "3.1.4.1. Установка из zip-архива". "3.1.4.2. Установка из deb-пакета или rpm-пакета" Добавлен новый поток FORTS_USER_REPL - Пользователи. Таблицы: user - Пользователи системы sma_master - Привязка SMA-логина к MASTER-логину sma_pre_trade_check - Настройки предварительных проверок SMA-логина sys_events - Таблица событий Поток FORTS_PROHIBITION_REPL: Удалено значение "0x20000000 (Споты)" для поля group_mask в таблице prohibition. Поток FORTS_REFDATA_REPL: Удалена устаревшая таблица option_series. Вместо этой таблицы надо использовать таблицу sess_option_series. В таблицу sess_option_series добавлены поля interest_rate_risk_up, interest_rate_risk_down, r2, interest_rate2_risk_up, interest_rate2_risk_down. Из таблицы sess_option_series удалено устаревшее поле state. Вместо него следует использовать поле state из таблицы opt_sess_contents. Из таблицы investor удалено устаревшее поле status. Вместо него следует использовать поле xstatus. Поток FORTS_CLR_REPL: В таблицы fut_pos, opt_pos, fut_pos_sa и opt_pos_sa добавлено поле sbor_nosys. В таблицу fut_sess_settl добавлено поле index_div. Поток FORTS_VM_REPL: Добавлена таблица событий sys_events. Поток FORTS_VOLAT_REPL: Добавлена таблица событий sys_events. Поток FORTS_INFO_REPL: В таблицу option_series_params добавлены поля r2, interest_rate2_risk_up, interest_rate2_risk_down. Поток FORTS_TNPENALTY_REPL: В таблицу fee_tn добавлено поле num_orders. Удалены коды ошибок: 9999.
02.06.2023 | Внесённые изменения: Поток FORTS_COMMON_REPL: В таблицу sys_events добавлено поле event_type. Начиная с версии 7.12 поле type в таблице sys_events объявляется устаревшим и будет удалено в версии 7.18. Вместо него следует использовать поле event_type. Поток FORTS_REFDATA_REPL: Из таблицы opt_sess_contents удалены устаревшие поля d_exec_beg и d_exec_end. Вместо них следует использовать поле expiration_date из таблицы sess_option_series. Из таблицы opt_sess_contents удалено устаревшее поле step_price. Вместо него следует использовать поле step_price из таблицы sess_option_series. Начиная с версии 7.12 поле opt_sess_id в таблице session объявляется устаревшим и будет удалено в версии 7.18. Вместо него следует использовать поле sess_id. В таблицу sess_option_series добавлены поля step_price_clr и step_price_interclr. Поток FORTS_CLR_REPL: Из таблиц fut_pos, opt_pos, fut_pos_sa и opt_pos_sa удалены поля vat_ex и vat_cc. Поток RTS_INDEX_REPL: Начиная с версии 7.12 поле value в таблице rts_index объявляется устаревшим и будет удалено в версии 7.18. Вместо него следует использовать поле value_highprec. Изменения в репозитории схем подачи команд: Медленные версии команды ChangeClientMoney (версии команд с ID in = 4, 60, 63, 67, 409, 425 / Reply ID out = 104 ) начиная с версии 7.12 объявляются устаревшими и будут удалены в версии 7.18. Используйте более быструю версию команды ChangeClientMoney с ID in = 458 / Reply ID out = 187. В версии 7.12 в системе введено ограничение на количество одновременных подписок на один поток Plaza2 (Cgate) от одного шлюзового логина - не более 20 (подробнее см. раздел "3.3.9. Ограничение количества одновременно открытых потоков репликации от одного соединения Plaza2").
27.03.2023 | Внесённые изменения: В раздел "2.4.4. Типы сделок, формируемые при исполнении и истечении фьючерсов и опционов" добавлено описание новых флагов: Устаревший бит "eREPOCCStatus (0x2000)" переименован в "DueToCrossCancel (0x2000)" - Признак снятия пассивной заявки при кросс-сделке. Начиная с версии 7.9 в системе SPECTRA сервис информирования участников о прогнозных значениях риск-параметров (ForecastIM) объявляется устаревшим с последующим удалением сервиса в версии 7.15. Поток FORTS_COMMON_REPL: В таблицу common добавлено поле swap_rate. Добавлена таблица событий sys_events. Поток FORTS_PROHIBITION_REPL: В таблицу prohibition добавлены поля section_id и base_contract_id. Начиная с версии 7.9 значение "0x20000000 (Споты)" для поля group_mask в таблице prohibition объявляется устаревшим и будет удалено в версии 7.15. Поток FORTS_REFDATA_REPL: Из таблиц fut_sess_contents и fut_instruments удалено устаревшее поле is_percent. Вместо него следует использовать поле asset_class из таблицы fut_vcb. В таблицу investor добавлено поле xstatus. Поле xstatus отличается от существующего поля status расширенным типом i8 и трансляцией в нем двух дополнительных флагов: 0x10000000000 - Квалифицированный инвестор 0x40000000000 - Снять пассивную заявку при кросс-сделке Начиная с версии 7.9 поле status в таблице investor объявляется устаревшим и будет удалено в версии 7.15. Вместо него следует использовать поле xstatus. Добавлена таблица brokers_base_contracts_params. В таблицу opt_sess_contents добавлено поле state. Начиная с версии 7.9 поле state из таблиц option_series и sess_option_series объявляется устаревшим и будет удалено в версии 7.15. Вместо него следует использовать поле state из таблицы opt_sess_contents. Поток FORTS_INFO_REPL: Из таблицы base_contracts_params удалено устаревшее поле is_percent. Вместо него следует использовать поле asset_class. Добавлена таблица brokers_base_contracts_params. Изменения в репозитории схем подачи команд: Добавлена новая команда ChangeBFClientBaseContractParametersNextSession (msgid=1057) - Изменение параметров клиентов БФ по БА.
09.11.2022 | Внесённые изменения: В раздел "2.3.1. Заявки – общие возможности" добавлено описание заявок типа Book-or-Cancel (BOC). Раздел "2.4.4. Типы сделок, формируемые при исполнении и истечении фьючерсов и опционов" разбит на две части: "2.4.4. Признаки, выставляемые у заявок и сделок". "2.4.5. Типы сделок, формируемые при исполнении и истечении фьючерсов и опционов" В раздел "2.4.4. Признаки, выставляемые у заявок и сделок" добавлено описание новых флагов: DuringDiscreteAuction (0x4000000000000000) - Признак заявки или сделки в аукционе открытия. BOC (0x1000000000000000) - Заявка Book-or-Cancel (BOC). Добавлен раздел "2.5.7. Аукцион открытия". Поток FORTS_TRADE_REPL: В таблицы orders_log и multileg_orders_log добавлено поле xstatus2. В таблицы user_deal и user_multileg_deal добавлены поля xstatus2_buy и xstatus2_sell. Поток FORTS_ORDLOG_REPL: В таблицы orders_log и multileg_orders_log добавлено поле xstatus2. Поток FORTS_DEALS_REPL: В таблицы deal и multileg_deal добавлены поля xstatus2_buy и xstatus2_sell. Поток FORTS_USERORDERBOOK_REPL: В таблицу orders добавлено поле xstatus2. Поток FORTS_ORDBOOK_REPL: В таблицу orders добавлено поле xstatus2. Поток FORTS_COMMON_REPL: В таблицу common добавлено поле opening_auction_price. Поток FORTS_REFDATA_REPL: Добавлены таблицы sess_option_series, discrete_auction и discrete_auction_base_contract. Из таблицы opt_sess_contents удалены поля europe, min_step, lot_volume. В таблицу user добавлено поле user_level. Начиная с версии 7.6 таблица option_series объявляется устаревшей и будет удалена в последующих версиях. Вместо этой таблицы надо использовать таблицу sess_option_series. Поток FORTS_CLR_REPL: В таблицы fut_pos, opt_pos, fut_pos_sa и opt_pos_sa добавлены поля pos_exec и charge_exec. Начиная с версии 7.6 поля vat_ex и vat_cc в таблицах fut_pos, opt_pos, fut_pos_sa и opt_pos_sa объявляются устаревшими и будут удалены в версии 7.12. Поток FORTS_INFO_REPL: Из таблицы base_contracts_params удалено поле subrisk_step. Из таблицы futures_params удалено поле subrisk. Изменения в репозитории схем подачи команд: В команду IcebergAddOrder добавлено поле type (i4). Добавлен новый тип команды IcebergAddOrder (msgid=472). Добавлены новые коды ошибок: 82, 85, 90, 95, 100, 105, 110, 115, 120, 125, 130, 135, 3002, 4300-4305 Изменены тексты кодов ошибок: 62
15.09.2022 | Внесённые изменения: Добавлен раздел "2.3.4. Кросс-сделки". Добавлен раздел "2.4.3. Прекращение обязательств по однодневным фьючерсам с автопролонгацией ("вечным фьючерсам")". В раздел "2.4.4. Типы сделок, формируемые при исполнении и истечении фьючерсов и опционов" добавлено описание новых флагов: ePerpetualFuturesExecutionVoluntary (0x10000000000000) - Техническая сделка вследствие добровольного выхода из вечного фьючерса (на основании поданного поручения). ePerpetualFuturesExecutionForced (0x400000000000000) - Техническая сделка вследствие принудительного выхода из вечного фьючерса (реализация неудовлетворённого спроса). ePerpetualFuturesExecution (0x800000000000000) - Техническая сделка в связанном инструменте вследствие выхода из вечного фьючерса. Поток FORTS_FEE_REPL: В таблицу adjusted_fee добавлены поля adjusted_fee_trade_buy, adjusted_fee_clearing_buy, adjusted_fee_trade_sell, adjusted_fee_clearing_sell. Поток FORTS_PROHIBITION_REPL: Добавлена таблица событий sys_events. Поток FORTS_REFDATA_REPL: Удалена устаревшая таблица prohibition. Вместо этой таблицы надо использовать таблицу prohibition потока FORTS_PROHIBITION_REPL. Добавлена таблица fut_exec_orders. Начиная с версии 7.3 поле is_percent из таблиц fut_sess_contents и fut_instruments объявляется устаревшим и будет удалено в версии 7.9. Вместо него следует использовать поле asset_class из таблицы fut_vcb. Начиная с версии 7.3 поля d_exec_beg и d_exec_end в таблице opt_sess_contents объявляются устаревшим и будут удалены в версии 7.9. Вместо них следует использовать поле expiration_date из таблицы option_series. Поток FORTS_INFO_REPL: Из таблицы currency_params удалено поле signs. Начиная с версии 7.3 поле is_percent в таблице base_contracts_params объявляется устаревшим и будет удалено в версии 7.9. Вместо него следует использовать поле asset_class. Изменения в репозитории схем подачи команд: В команды FutChangeClientProhibit и OptChangeClientProhibit добавлено поле client_priority (i4). Добавлены новые типы команд FutChangeClientProhibit (msgid=469) и OptChangeClientProhibit (msgid=468). Добавлена новая команда FuturesExecutionRequest (msgid=470) - Поручения на исполнение однодневных фьючерсов с автопролонгацией. В команде OptChangeExpiration тип поля order_id изменен на i8. Добавлен новый тип команды OptChangeExpiration (msgid=471). Добавлены новые коды ошибок: 4283, 5052-5055, 5061-5065, 5069, 5071-5073. Изменены тексты кодов ошибок: 4050-4055, 4060-4067, 4069, 4070. Удалены коды ошибок: 300-307, 4068.
17.05.2022 | Внесённые изменения: Добавлен раздел "2.11. Опционы на акции". Изменен раздел "2.2.3. Опционы". Изменен раздел "2.4.2. Экспирация опционов". В раздел "2.4.3. Типы сделок, формируемые при исполнении и истечении фьючерсов и опционов" добавлено описание новых флагов: eSyntheticPassive (0x200000000000000) - Признак пассивной синтетической заявки. Изменен раздел "2.5. Расписание торгов и клиринга". Изменен раздел "2.6.3. Ограничения на торговые операции и открытие позиций для клиентов". Поток FORTS_TRADE_REPL: Из таблиц orders_log и multileg_orders_log удалены поля id_ord, xamount, xamount_rest, action. Из таблиц user_deal и user_multileg_deal удалены поля id_ord_buy и id_ord_sell. Поток FORTS_USERORDERBOOK_REPL: Из таблицы orders удалены поля id_ord, xamount, xamount_rest, action, init_moment, xinit_amount. Поток FORTS_POS_REPL: В таблицы position и position_sa добавлено поле last_quantity. Поток FORTS_PART_REPL: В таблицы part и part_sa добавлены поля premium_intercl и net_option_value. Поток FORTS_PROHIBITION_REPL: Из таблицы prohibition удалено поле prohib_id. Поток FORTS_REFDATA_REPL: В таблицу option_series добавлены поля margin_style, settlement_type, exercise_style, min_step, step_price, lot_coefficient, r, fixed_spot_discount, projected_spot_discount, step_price_curr, underlying_price, lot_volume, state. Из таблицы opt_sess_contents удалено поле base_isin_id. Начиная с версии 7.0 поле europe в таблице opt_sess_contents объявляется устаревшим и будет удалено в версии 7.6. Вместо него следует использовать поле exercise_style из таблицы option_series. Начиная с версии 7.0 поле min_step в таблице opt_sess_contents объявляется устаревшим и будет удалено в версии 7.6. Вместо него следует использовать поле min_step из таблицы option_series. Начиная с версии 7.0 поле lot_volume в таблице opt_sess_contents объявляется устаревшим и будет удалено в версии 7.6. Вместо него следует использовать поле lot_volume из таблицы option_series. Начиная с версии 7.0 поле step_price в таблице opt_sess_contents объявляется устаревшим и будет удалено в версии 7.6. Вместо него следует использовать поле step_price из таблицы option_series. В таблицу fut_vcb добавлены поля asset_class и board_md. В таблице fut_vcb для поля asset_class удалено значение: '7' - Драгоценные металлы. В таблицу opt_intercl_info добавлены поля premium и premium_in_settl_currency. В таблицу opt_vcb добавлено поле settlement_currency. Из таблицы prohibition удалено поле prohib_id. Удалена устаревшая таблица usd_online. Из таблицы option_series удалены поля A, B, C, D, E, S. Поток FORTS_CLR_REPL: В таблицы opt_pos и opt_pos_sa добавлены поля premium и premium_in_settl_currency. Добавлена таблица option_series_settl. Поток FORTS_VM_REPL: В таблицы opt_vm и opt_vm_sa добавлены поля premium и premium_in_settl_currency. Поток FORTS_INFO_REPL: Начиная с версии 7.0 поле subrisk_step в таблице base_contracts_params объявляется устаревшим и будет удалено в версии 7.6. Вместо него следует использовать поле strike_step из таблицы option_series_params. В таблицу base_contracts_params добавлены поля asset_class и cf_risk. В таблице base_contracts_params для поля asset_class удалено значение: '7' - Драгоценные металлы. Начиная с версии 7.0 поле subrisk в таблице futures_params объявляется устаревшим и будет удалено в версии 7.6. Вместо него следует использовать поле sub_risk из таблицы option_series_params. В таблицу option_series_params добавлены поля sub_risk, spread_aspect, enforce_half_netting, min_step, step_price, lot_coefficient, r, interest_rate_risk_up, interest_rate_risk_down, fixed_spot_discount, projected_spot_discount. Из таблицы option_series_params удалены поля a, b, c, d, e, s. Изменены тексты кодов ошибок: 4067.
05.04.2022 | Внесённые изменения: Добавлен раздел "2.2.2.1. Однодневные фьючерсы с автопролонгацией". Удален раздел "3.3.4. Мониторинг latency со стороны клиента", являющийся устаревшим. Поток FORTS_REFDATA_REPL: В таблице fut_sess_contents для поля signs появился новый бит: 0x4000 - Однодневный фьючерсный контракт с автопролонгацией (CFD - Contract for difference). Поток FORTS_CLR_REPL: В таблицу fut_sess_settl добавлено поле swap_rate.
20.10.2021 | Внесённые изменения: Доработка утилиты для смены пароля (change_password.exe): В строку запуска добавлен параметр app_name (имя приложения). В строку запуска добавлен параметр local_pass (пароль для локального соединения с роутером). Из возможных ключей строки запуска удален ключ key. Добавлен новый поток FORTS_PROHIBITION_REPL - Запреты. Таблица prohibition вынесена в отдельный поток. Поток FORTS_REFDATA_REPL: Начиная с версии 6.15 таблица prohibition объявляется устаревшей и будет удалена в версии 7.3. Вместо этой таблицы надо использовать таблицу prohibition потока FORTS_PROHIBITION_REPL. Поток FORTS_INFO_REPL: Начиная с версии 6.15 поле signs в таблице currency_params объявляется устаревшим и будет удалено в версии 7.3. Добавлены новые коды ошибок: 81, 4280-4282. Изменены тексты кодов ошибок: 4160. Удалены коды ошибок: 4168.
23.07.2021 | Внесённые изменения: Добавлен раздел "2.10. Сделки урегулирования". Поток FORTS_PART_REPL: Из таблицы part удалено поле balance_money. Поток FORTS_REFDATA_REPL: В таблицы fut_sess_contents и fut_instruments добавлено поле enforce_ims_half_netting. Поток FORTS_INFO_REPL: В таблицу futures_params добавлено поле enforce_ims_half_netting. В таблицу option_series_params добавлены поля margin_style, settlement_type, exercise_style. Поток FORTS_FEERATE_REPL: В таблицы futures_rate, option_rate добавлено поле exp_clearing_fee. В версии 6.12 поле всегда будет содержать "0.0". В версии 6.15 это поле будет заполняться значениями ставки. Удалены коды ошибок: 4120, 4121. Добавлены новые коды ошибок: 80.
14.05.2021 | Внесённые изменения: В раздел "2.4.3. Типы сделок, формируемые при исполнении и истечении фьючерсов и опционов" добавлено описание новых флагов: eDontFineRF (0x80000000000000) - Признак невзимания штрафа за сделки урегулирования. Удалены потоки FORTS_FUTTRADE_REPL и FORTS_OPTTRADE_REPL. Вместо них следует использовать поток FORTS_TRADE_REPL. Удалены потоки FORTS_FUTORDERBOOK_REPL и FORTS_OPTORDERBOOK_REPL. Вместо них следует использовать поток FORTS_USERORDERBOOK_REPL. Удалены потоки FORTS_FUTCOMMON_REPL и FORTS_OPTCOMMON_REPL. Вместо них следует использовать поток FORTS_COMMON_REPL. Удалены потоки FORTS_FUTINFO_REPL и FORTS_OPTINFO_REPL. Вместо них следует использовать поток FORTS_REFDATA_REPL. Удалены потоки FORTS_FUTAGGR5_REPL, FORTS_FUTAGGR20_REPL, FORTS_FUTAGGR50_REPL, FORTS_OPTAGGR5_REPL, FORTS_OPTAGGR20_REPL и FORTS_OPTAGGR50_REPL. Вместо них следует использовать потоки FORTS_AGGR5_REPL, FORTS_AGGR20_REPL и FORTS_AGGR50_REPL. Поток FORTS_TRADE_REPL: Из таблиц orders_log и multileg_orders_log удавлено поле local_stamp. В таблицы orders_log и multileg_orders_log добавлено поле reason. В таблицы user_deal и user_multileg_deal добавлены поля reason_buy и reason_sell. Поток FORTS_FEE_REPL: Добавлена таблица penalty. Поток FORTS_USERORDERBOOK_REPL: В таблицу orders добавлено поле reason. Поток FORTS_PART_REPL: В таблицу part добавлено поле penalty. В таблицу part_sa добавлено поле blocked_tax. Поток FORTS_REFDATA_REPL: Из таблиц fut_sess_contents, fut_instruments и opt_sess_contents удавлено поле d_start. В таблицу prohibition добавлено поле xprohibition_id. Начиная с версии 6.9 в таблице prohibition поле prohib_id объявляется устаревшим и будет удалено в версии 6.15. Начиная с версии 6.9 таблица usd_online объявляется устаревшей и будет удалена в версии 6.15. Вместо этой таблицы надо использовать таблицу curr_online потока MOEX_RATES_REPL. Поток FORTS_CLR_REPL: В таблицу money_clearing_sa добавлено поле blocked_tax. Изменения в репозитории схем подачи команд: Из команд 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). Удалена устаревшая команда FutTransferRisk. Добавлены новые коды ошибок: 3001. Изменены тексты кодов ошибок: 4017.
25.02.2021 | Внесённые изменения: Поток FORTS_PART_REPL: Начиная с версии 6.8 в таблице part поле balance_money объявляется устаревшим и будет удалено в версии 6.12.
12.01.2021 | Внесённые изменения: Поток FORTS_REFDATA_REPL: В таблицу dealer добавлено поле order_allowed_in_morning_session. Поток FORTS_INFO_REPL: В таблицу dealer добавлено поле order_allowed_in_morning_session. Изменения в репозитории схем подачи команд: Начиная с версии 6.7 процедура FutTransferRisk объявляется устаревшей и будет удалена в последующих версиях. Добавлены новые коды ошибок: 4226.
19.10.2020 | Внесённые изменения: Изменен раздел "2.5. Расписание торгов и клиринга". Изменен раздел "2.4.3. Типы сделок, формируемые при исполнении и истечении фьючерсов и опционов". Поток FORTS_TRADE_REPL: В таблицах orders_log и multileg_orders_log поле local_stamp объявляется устаревшим и будет удалено в версии 6.9. Поток FORTS_DEALS_REPL: В таблицу deal добавлены поля xstatus_buy и xstatus_sell. В таблицу multileg_deal добавлены поля xstatus_buy и xstatus_sell. Поток FORTS_USERORDERBOOK_REPL: В таблицу info добавлено поле publication_state. Поток FORTS_ORDBOOK_REPL: В таблицу info добавлено поле publication_state. Поток FORTS_REFDATA_REPL: В таблицу user добавлено поле password_expiration_date. Изменения в репозитории схем подачи команд: Обновленная команда установки клиентских лимитов ChangeClientMoney (msgid=458). Удалены следующие устаревшие команды: FutAddOrder, OptAddOrder, FutAddMultilegOrder, FutDelOrder, OptDelOrder, FutMoveOrder, OptMoveOrder, FutDelUserOrders, OptDelUserOrders, FutChangeClientMoney, FutChangeBFMoney, FutExchangeBFMoney, FutTransferClientPosition, OptTransferClientPosition, FutChangeBFLimit. Команда OptChangeRiskParameters переименована в OptChangeRiskParametersNextSession. В командах поле local_stamp объявляется устаревшим и будет удалено в версии 6.9. Добавлены новые коды ошибок: 300-307, 4175. Изменены тексты кодов ошибок 4006-4011, 4017.
17.08.2020 | Внесённые изменения: Добавлен раздел "2.3.5. Айсберг-заявки". В раздел "2.4.3. Типы сделок, формируемые при исполнении и истечении фьючерсов и опционов" добавлено описание новых флагов: eIceberg (0x800000000000) - признак айсберг-заявки, сделки по айсберг-заявке eSynthetic (0x200000000000) - признак синтетической заявки eOperatorInputSA (0x1000000000000) - блокировка по Расчетному коду Изменен раздел "2.6.9. Поддержка отрицательных цен в SPECTRA". Добавлен раздел "2.9. Синтетический матчинг". Добавлен новый поток FORTS_TRADE_REPL - объединение FORTS_FUTTRADE_REPL и FORTS_OPTTRADE_REPL. Потоки FORTS_FUTTRADE_REPL и FORTS_OPTTRADE_REPL в версии СПЕКТРА 6.5 объявляются устаревшими, изменения следует смотреть в описании FORTS_TRADE_REPL. Поток FORTS_TRADE_REPL: В таблицу orders_log добавлены поля public_order_id, public_amount, public_amount_rest, public_action, private_order_id, private_amount, private_amount_rest, variance_amount, private_action, disclose_const_amount. В таблицу multileg_orders_log добавлены поля public_order_id, public_amount, public_amount_rest, public_action, private_order_id, private_amount, private_amount_rest, variance_amount, private_action, disclose_const_amount. В таблицу user_deal добавлены поля public_order_id_buy, public_order_id_sell, private_order_id_buy, private_order_id_sell. В таблицу user_multileg_deal добавлены поля public_order_id_buy, public_order_id_sell, private_order_id_buy, private_order_id_sell. Добавлен новый поток FORTS_USERORDERBOOK_REPL - объединение FORTS_FUTORDERBOOK_REPL и FORTS_OPTORDERBOOK_REPL. Потоки FORTS_FUTORDERBOOK_REPL и FORTS_OPTORDERBOOK_REPL в версии СПЕКТРА 6.5 объявляются устаревшими, изменения следует смотреть в описании FORTS_USERORDERBOOK_REPL. Поток FORTS_USERORDERBOOK_REPL: В таблицу orders добавлены поля public_order_id, public_amount, public_amount_rest, public_action, private_order_id, private_amount, private_amount_rest, variance_amount, private_action, disclose_const_amount, public_init_moment, public_init_amount, private_init_moment, private_init_amount. В таблицах orders_log и multileg_orders_log потока FORTS_ORDLOG_REPL: Поле id_ord переименовано в public_order_id. Поле xamount переименовано в public_amount. Поле xamount_rest переименовано в public_amount_rest. Поле action переименовано в public_action. В таблицах deal и multileg_deal потока FORTS_DEALS_REPL: Поле id_ord_buy переименовано в public_order_id_buy. Поле id_ord_sell переименовано в public_order_id_sell. В таблице orders потока FORTS_ORDBOOK_REPL: Поле id_ord переименовано в public_order_id. Поле xamount переименовано в public_amount. Поле xamount_rest переименовано в public_amount_rest. Поле action переименовано в public_action. Поле init_moment переименовано в public_init_moment. Поле xinit_amount переименовано в public_init_amount. Добавлен новый поток FORTS_COMMON_REPL - объединение FORTS_FUTCOMMON_REPL и FORTS_OPTCOMMON_REPL. Потоки FORTS_FUTCOMMON_REPL и FORTS_OPTCOMMON_REPL в версии СПЕКТРА 6.5 объявляются устаревшими, изменения следует смотреть в описании FORTS_COMMON_REPL. Поток FORTS_COMMON_REPL: В таблице common изменено описание полей best_buy, xamount_buy, orders_buy_qty, xorders_buy_amount, best_sell, xamount_sell, orders_sell_qty, xorders_sell_amount. В таблицу common добавлены поля best_buy_native, xamount_buy_native, xorders_buy_amount_native, best_sell_native, xamount_sell_native, xorders_sell_amount_native. Из таблицы common удалены поля old_kotir и cur_kotir. Потоки агрегированных стаканов: Добавлены новые потоки FORTS_AGGR5_REPL, FORTS_AGGR20_REPL, FORTS_AGGR50_REPL - объединение соответствующих фьючерсных и опционных агрегированных потоков. В таблице orders_aggr изменено описание поля volume и добавлено поле synth_volume. Поток FORTS_CLR_REPL: Из таблицы money_clearing удалено поле share. Из таблицы fut_pos удалено поле account. Из таблицы opt_pos удалено поле account. Добавлен новый поток FORTS_REFDATA_REPL - объединение FORTS_FUTINFO_REPL и FORTS_OPTINFO_REPL. Потоки FORTS_FUTINFO_REPL и FORTS_OPTINFO_REPL в версии СПЕКТРА 6.5 объявляются устаревшими, изменения следует смотреть в описании FORTS_REFDATA_REPL. Поток FORTS_REFDATA_REPL: Из таблицы fut_sess_contents удалены поля code_vcb, old_kotir, d_pg и last_cl_quote. Из таблицы fut_vcb удалены поля code_vcb и is_foreign. Из таблицы fut_instruments удалены поля code_vcb, old_kotir, d_pg, d_exp, exec_name и last_cl_quote. Из таблицы dealer удалено поле go_ratio. Из таблицы prohibition удалено поле code_vcb. В таблицу fut_margin_type добавлено поле operator_input. Из таблицы opt_sess_contents удалены поля code_vcb, old_kotir, d_pg, bgo_c, bgo_nc, bgo_buy и last_cl_quote. Из таблицы opt_vcb удалено поле code_vcb. В таблицу option_series добавлено поле m_bach. Поток FORTS_INFO_REPL: Из таблицы base_contracts_params удалено поле code_vcb. Из таблицы futures_params удалены поля code_vcb, settl_price и settl_price_real. Из таблицы investor удалено поле go_ratio. Из таблицы dealer удалено поле go_ratio. В таблицу option_series_params добавлено поле m_bach. Поток FORTS_PART_REPL: Из таблицы part удалены поля coeff_go, no_fut_discount и num_clr_2delivery. Поток FORTS_RISKINFOBACH_REPL: В таблицу volat_coeff добавлено поле m. Изменения в репозитории схем подачи команд: Добавлена новая команда AddOrder - объединяет FutAddOrder, OptAddOrder и FutAddMultilegOrder. Добавлена новая команда DelUserOrders - объединяет FutDelUserOrders и OptDelUserOrders. Добавлены новые команды IcebergAddOrder, IcebergDelOrder, IcebergMoveOrder - команды для управления айсберг-заявками. Команда ChangeBFParameters переименована в ChangeBFParametersNextSession. Команда ChangeBFClientDefaultParameters переименована в ChangeBFClientDefaultParametersNextSession. Добавлены новые коды ошибок: 4174, 4258, 4259, 4260, 4261, 4262, 4264, 4266, 4268.
19.06.2020 | Внесённые изменения: Добавлен раздел "2.6.9. Поддержка отрицательных цен в SPECTRA". Добавлен новый поток FORTS_RISKINFOBLACK_REPL - Риск-параметры для модели Блэка-Шоулза. Добавлен новый поток FORTS_RISKINFOBACH_REPL - Риск-параметры для модели Башелье. В релизе 6.4.20 в параметрах транслируется 0. Поток FORTS_FUTCOMMON_REPL: В таблицу common добавлено поле price_assigned_by_admin. Поток FORTS_FUTINFO_REPL: В таблицу fut_vcb добавлены поля negative_prices, option_model. Поток FORTS_OPTINFO_REPL: В таблицу opt_vcb добавлены поля negative_prices, option_model. В таблицу option_series добавлены поля a-s_black, a-s_bach. Поток FORTS_INFO_REPL: В таблицу base_contracts_params добавлено поле option_model. Поля has_options и spot_price объявляются устаревшими и будут удалены в версии 6.6. В таблицу futures_params добавлены поля attribute, mr_addon_up, mr_addon_down. В таблицу option_series_params добавлены поля a-s_black, a-s_bach. Поток FORTS_VOLAT_REPL: В таблицу volat добавлено поле option_model.
15.01.2020 | Внесённые изменения: Добавлен раздел "2.6.8. Блокировка брокерской части клиентского сбора". Добавлен новый поток FORTS_BROKER_FEE_REPL - Брокерские комиссии. Добавлен новый поток FORTS_BROKER_FEE_PARAMS_REPL - Параметры для расчета брокерской комиссии. Поток FORTS_PART_REPL: В таблицу part добавлено поле broker_fee. Поток FORTS_OPTCOMMON_REPL: В таблицу common добавлено поле total_premium_volume. Изменения в репозитории схем подачи команд: Удалена команда FutChangeBFParameters. Добавлена новая команда SetBrokerFeeParamNextSession - Установка параметров для расчета брокерской комиссии. Добавлены новые коды ошибок: 3000.
10.12.2019 | Внесённые изменения: Внесены изменения в раздел "3.1.3. Установка ПО в среде Windows".
12.09.2019 | Внесённые изменения: Добавлен раздел "3.3.10. Типы потоков данных". В описания потоков добавлен тип, к которому они относятся.
31.08.2019 | Внесённые изменения: Добавлен раздел "3.3.9. Партиционирование матчинга". В раздел "2.4.3. Типы сделок, формируемые при исполнении и истечении фьючерсов и опционов" добавлено описание двух новых флагов, которые проставляются в заявках и сделках: eActiveSide (0x20000000000), ePassiveSide (0x40000000000). Поток FORTS_FUTINFO_REPL: Добавлена таблица instr2matching_map. Поток RTS_INDEX_REPL: Из таблицы rts_index удалены устаревшие поля prev_close_value, open_value, max_value, min_value. Изменения в репозитории схем подачи команд: Добавлены новые команды DelOrder, MoveOrder, ChangeClientParameters. В командах ChangeBFParameters и ChangeClientParametersNextSession у полей calendar_spread_margin_type и ics_margin_type тип поля i4 изменен на i1. Добавлены новые коды ошибок 78, 79, 4269.
20.06.2019 | Внесённые изменения: Поток FORTS_FUTTRADE_REPL: Из таблицы orders_log удалены поля hedge и trust. Из таблицы multileg_orders_log удалены поля hedge и trust. Из таблицы user_deal удалены поля trust_buy, trust_sell, hedge_buy, hedge_sell. Из таблицы user_multileg_deal удалены поля isin_id_repo, buyback_amount, trust_buy, trust_sell, hedge_buy, hedge_sell. Поток FORTS_OPTTRADE_REPL: Из таблицы orders_log удалены поля hedge и trust. Из таблицы user_deal удалены поля trust_buy, trust_sell, hedge_buy, hedge_sell. Из таблицы multileg_deal потока FORTS_DEALS_REPL удалено поле buyback_amount. Из таблицы adjusted_fee потока FORTS_FEE_REPL удалено поле id_repo. Поток FORTS_FUTORDERBOOK_REPL / FORTS_OPTORDERBOOK_REPL: Из таблицы orders удалены поля hedge и trust. Поток FORTS_FUTCOMMON_REPL: Из таблицы common удалено поле cur_kotir_real, и добавлены в таблицу поля settlement_price_open и market_price. Поток FORTS_OPTCOMMON_REPL: В таблицу common добавлено поле settlement_price_open. Поток FORTS_FUTINFO_REPL: Добавлена таблица clearing_members. Из таблицы fut_sess_contents удалены поля d_exp и price_dir, и добавлены в таблицу поля base_contract_code, settlement_price_open, settlement_price, last_trade_date. В таблицу fut_vcb добавлены поля base_contract_code, signs. Из таблицы fut_instruments удалено поле price_dir, и добавлены в таблицу поля base_contract_code, settlement_price_open, settlement_price, last_trade_date, d_exp_start, series_type. В таблицу prohibition добавлено поле base_contract_code. В таблицу dealer добавлены поля coeff_im, short_option_minimum_charge_ratio, ics_margin_type. В таблицу investor добавлены поля is_blank, short_option_minimum_charge_ratio, ics_margin_type, coeff_im, no_fut_discount, num_clr_2delivery, exp_weight. Поток FORTS_OPTINFO_REPL: В таблицу opt_sess_contents добавлены поля base_contract_code, settlement_price_open, base_im_covered_sell, base_im_sell, last_trade_date, base_im_buy, settlement_price. В таблицу opt_vcb добавлено поле base_contract_code. В таблицу option_series добавлено поле signs. Поток FORTS_CLR_REPL: В таблицы money_clearing и money_clearing_sa добавлено поле asset_type. В таблицу fut_pos добавлено поле account_type. В таблицу opt_pos добавлено поле account_type. Из таблицы pledge_details удалено поле com_ensure. Поток FORTS_VM_REPL: Из таблиц fut_vm, opt_vm, fut_vm_sa, opt_vm_sa удалено поле vm_real. Поток FORTS_INFO_REPL: Добавлена таблица multileg_dictionary. Из таблицы base_contracts_params удалено поле is_usd, и добавлены в таблицу поля base_contract_code, window_size. В таблицу futures_params добавлены поля base_contract_code, settlement_price, risk_range_center. Удалена таблица virtual_futures_params. В таблицу investor добавлены поля is_blank, coeff_im, short_option_minimum_charge_ratio, ics_margin_type. В таблице investor поле n_clr_2delivery переименовано в num_clr_2delivery. В таблицу dealer добавлены поля coeff_im, short_option_minimum_charge_ratio, ics_margin_type. Изменения в репозитории схем подачи команд: В командах FutAddOrder, OptAddOrder удалены поля du, hedge. В команде FutChangeBFMoney удалено поле limit_pledge. В команде FutExchangeBFMoney удалено поле amount_pledge. В команде FutAddMultiLegOrder удалены поля price, hedge, trust, trade_mode, поле rate_price переименовано в swap_price. В командах FutDelUserOrders, OptDelUserOrders, FutChangeClientProhibit, OptChangeClientProhibit поле code_vcb переименовано в base_contract_code. Добавлены новые команды ChangeClientMoney, ChangeBFMoney, ExchangeBFMoney, ChangeBFLimit, ChangeBFParameters, TransferClientPosition, ChangeClientParametersNextSession. Команда FutChangeBFClientDefaultParameters переименована в ChangeBFClientDefaultParameters. В команду OptChangeRiskParameters добавлено поле short_option_minimum_charge_ratio - "Индивидуальный коэффициент веса сценария SOMC". Добавлены новые коды ошибок 77, 4225.
14.01.2019 | Внесённые изменения: В таблицу fut_vcb потока FORTS_FUTINFO_REPL добавлено поле base_contract_id. В таблицу opt_vcb потока FORTS_OPTINFO_REPL добавлено поле base_contract_id.
05.12.2018 | Внесённые изменения: Добавлены разделы "2.7. Разделение статусов участников торгов и участников клиринга" и "3.3.8. Смена пароля доступа в торговую систему". В команды FutAddOrder, FutAddMultiLegOrder, FutDelOrder, FutMoveOrder, OptAddOrder, OptDelOrder, OptMoveOrder добавлено поле ncc_request - признак "Запрос к НКЦ на заключение сделок с участником торгов". А также изменены идентификаторы этих команд. Добавлены команды DelOrdersByBFLimit и ChangePassword. В команде OptRecalcCS поле isin_id заменено на option_series_id, а также изменен идентификатор команды. Добавлены новые коды ошибок 682, 4168, 4169, 4170, 4171, 4172, 4173, 4221, 4222, 4223, 4224, 4230. Поток FORTS_OPTINFO_REPL: Добавлена таблица option_series. В таблице opt_sess_contents удалены поля is_limited, limit_up, limit_down, exch_pay и добавлено поле option_series_id. Поток FORTS_FUTINFO_REPL: Удалены таблицы diler и investr. В таблицу dealer добавлены поля firm_id и tm_name. Из таблицы fut_sess_contents удалены поля is_limited и exch_pay, и добавлены в таблицу поля d_exp_start и d_exp_end. Из таблицы fut_instruments удалены поля is_limited, volat_min, volat_max, is_limit_opt, limit_up_opt, limit_down_opt, adm_lim, adm_lim_offmoney и apply_adm_limit. Поток FORTS_MM_REPL: В таблице cs_mm_rule поле isin_id переименовано в option_series_id. Поток FORTS_MISCINFO_REPL: В таблице volat_coeff поле isin_id переименовано в option_series_id. Поток FORTS_INFO_REPL: В таблице option_series_params поле isin переименовано в small_name, поле exp_date переименовано в expiration_date, и добавлены поля option_series_id и underlying_id. Из таблицы base_contracts_params удалено поле currency_volat.
26.09.2018 | Добавлен новый код ошибки 4208.
25.09.2018 | Добавлен раздел "3.3.7. Клиентские SMA-логины (спонсируемый доступ)".
03.08.2018 | Из таблицы orders потока FORTS_ORDBOOK_REPL удалено поле aspref.
01.08.2018 | Из потока FORTS_INFO_REP удалены таблицы sma_master, sma_pre_trade_check.
31.07.2018 | В поток FORTS_INFO_REPL добавлена таблица option_series_params.
30.07.2018 | Из таблицы opt_vcb потока FORTS_OPTINFO_REPL удалено поле coeff_out.
27.07.2018 | Внесённые изменения: Изменены описания полей is_cupon в таблицах fut_bond_nkd и fut_bond_nominal Переименована таблица fut_bond_nkd.
26.07.2018 | Добавлен новый код ошибки 4220.
26.07.2018 | Внесённые изменения: Поток FORTS_CLR_REPL: Из таблиц fut_pos, opt_pos, fut_pos_sa, opt_pos_sa удалены поля pos_beg, pos_end из таблицы pledge_details удалены поля amount_beg, pay, amount, amount_beg_money, pay_money, amount_money. Поток FORTS_DEALS_REPL: из таблицы deal удалены поля pos, amount. из таблицы multileg_deal удалено поле amount. Поток FORTS_FUTCOMMON_REPL: из таблицы common удалены поля amount_buy, orders_buy_amount, amount_sell, orders_sell_amount, amount, contr_count, pos. Поток FORTS_OPTCOMMON_REPL: из таблицы common удалены поля amount_buy, orders_buy_amount, amount_sell, orders_sell_amount, amount, contr_count, pos. Поток FORTS_MM_REPL: из таблиц fut_MM_info и opt_MM_info удалены поля amount_sells, amount_buys, mm_amount. Поток FORTS_OPTINFO_REPL: из таблицы opt_rejected_orders удалено поле amount из таблицы opt_exp_orders удалены поля amount, amount_apply Поток FORTS_ORDLOG_REPL: из таблиц orders_log и multileg_orders_log удалены поля amount, amount_rest, status. Поток FORTS_POS_REPL: из таблиц position и position_sa удалены поля pos, buys_qty, sells_qty, open_qty. Поток FORTS_FUTINFO_REPL: из таблицы fut_rejected_orders удалено поле amount добавлены таблицы user, sma_master, sma_pre_trade_check удалена таблица fut_sess_settl в таблицу fut_margin_type добавлено поле type изменены описания полей UCP_type и prohibit_coeff. Поток FORTS_INFO_REPL: удалена таблица opt_sess_settl добавлены таблицы sma_master, sma_pre_trade_check из таблицы opt_vcb удалено поле min_vol. Поток FORTS_FUTTRADE_REPL: в таблицы orders_log и multileg_orders_log добавлено поле aspref из таблиц orders_log и multileg_orders_log удалены поля amount, amount_rest, status из таблицы user_deal удалены поля pos, amount, status_buy, status_sell из таблицы user_multileg_deal удалены поля amount, status_buy, status_sell. Поток FORTS_OPTTRADE_REPL: в таблицу orders_log добавлено поле aspref из таблицы orders_log удалены поля amount, amount_rest, status из таблицы user_deal удалены поля pos, amount, status_buy, status_sell. Поток FORTS_ORDBOOK_REPL: В таблицу orders добавлено поле aspref Из таблицы orders удалены поля status, amount, amount_rest, init_amount. Потоки FORTS_FUTORDERBOOK_REPL/FORTS_OPTORDERBOOK_REPL: В таблицу orders добавлено поле aspref Из таблицы orders удалены поля status, amount, amount_rest, init_amount. Поток RTS_INDEX_REPL: в таблицу rts_index добавлены поля value_highprec, prev_close_value_highprec, open_value_highprec, max_value_highprec, min_value_highprec.
18.07.2018 | Добавлены команды SetSmaPreTradeCheck, DelSmaPreTradeCheck, UserKillSwitch.
25.06.2018 | Добавлены новые коды ошибок (76, 4167, 4200 - 4207).
21.06.2018 | Добавлен раздел "3.3.6. Потоки, получаемые логинами разных подтипов".
19.06.2018 | У команды FutChangeClientMoney удалены неиспользуемые поля limit_pledge и coeff_liquidity.
21.05.2018 | В таблицу diler потока FORTS_FUTINFO_REPL добавлено поле signs.
11.04.2018 | В сообщениях OptChangeExpiration, FutTransferClientPosition, OptTransferClientPosition изменены тип сообщения и тип поля amount.
30.03.2018 | В таблицу part_sa потока FORTS_PART_REPL добавлено поле money_old.
22.03.2018 | Внесённые изменения: В таблицу dealer потока FORTS_FUTINFO_REPL добавлено поле signs. В таблицу virtual_futures_params потока FORTS_INFO_REPL добавлены поля strike_step, exp_clearings_bf и exp_clearings_cc. В таблицу futures_params потока FORTS_INFO_REPL добавлено поле lot. В таблицу base_contracts_params потока FORTS_INFO_REPL добавлены поля has_options, msp_type и currency_id. В поток FORTS_INFO_REPL добавлены таблицы currency_params и common_params.
28.02.2018 | Из потока FORTS_FORECASTIM_REPL удалена таблица part_forecast.
26.02.2018 | Внесённые изменения: Из таблицы fut_vcb потока FORTS_FUTINFO_REPL удалены поля client_code, exch_pay, exch_pay_scalped, clear_pay, clear_pay_scalped, exch_pay_spot, exch_pay_spot_repo, sell_fee и buy_fee. Из таблицы opt_vcb потока FORTS_OPTINFO_REPL удалены поля client_code, exch_pay, exch_pay_scalped, clear_pay, clear_pay_scalped, is_spec, spec_spread, sell_fee и buy_fee.
21.02.2018 | Добавлены новые коды ошибок: 4148, 4149. Изменено описание кодов ошибок: 4127, 4138
20.02.2018 | Внесённые изменения: Добавлено описание команды FutChangeBFLimit. В таблицу part_sa потока FORTS_PART_REPL добавлены поля money_blocked и vm_reserve.
31.01.2018 | Внесённые изменения: Из таблицы money_clearing потока FORTS_CLR_REPL удалено поле ext_reserve. Из таблиц fut_sess_contents и fut_instruments потока FORTS_FUTINFO_REPL удалено поле coeff. В таблице fut_bond_registry потока FORTS_FUTINFO_REPL изменён тип поля bond_type на i4. Из потока FORTS_FUTTRADE_REPL удалены таблицы deal и multileg_deal. Из потока FORTS_OPTTRADE_REPL удалена таблица deal. Из таблицы base_contracts_params потока FORTS_INFO_REPL удалено поле points_num. В эту же таблицу добавлены поля spot_price, mr1, mr2, mr3, lk1, lk2, risk_points_n. Из таблицы futures_params потока FORTS_INFO_REPL удалены поля limit и spot_signs. В эту же таблицу добавлены поля interest_rate_risk_up, interest_rate_risk_down, time_to_expiration, normalized_spot. Из таблицы virtual_futures_params потока FORTS_INFO_REPL удалены поля is_net_positive, volat_range, t_squared и max_addrisk. В эту же таблицу добавлены поля exp_clearings_sa, volatility_risk, volatility_risk_mismatch, time_to_expiration. В таблицу sys_events потока FORTS_INFO_REPL добавлено поле server_time. Из таблицы common потока FORTS_OPTCOMMON_REPL удалено поле isin_is_spec. Из таблицы part потока FORTS_PART_REPL удалены поля pledge_free, pledge_blocked, coeff_liquidity, pledge_old, pledge_amount. Из таблицы part_sa потока FORTS_PART_REPL удалены поля pledge_amount и liquidity_ratio. В эту же таблицу добавлены поля vm_intercl и fee. Добавлено описание потока FORTS_FEERATE_REPL - Поток точных комиссий биржи. Добавлено описание команд FutChangeBFParameters, FutChangeClientParameters и FutChangeBFClientDefaultParameters. В таблицу diler потока FORTS_FUTINFO_REPL добавлены поля: exp_weight, num_clr_2delivery, margin_type, calendar_spread_margin_type, num_clr_2delivery_client_default, exp_weight_client_default, go_ratio, check_limit_on_withdrawal, limit_tied_money, limits_set, no_fut_discount, no_fut_discount_client_default. В таблицу investr потока FORTS_FUTINFO_REPL добавлено поле calendar_spread_margin_type. В поток FORTS_FUTINFO_REPL добавлены таблицы dealer и investor. В поток FORTS_INFO_REPL добавлены таблицы dealer и investor.
26.12.2017 | Внесённые изменения: В таблицу position потока FORTS_POS_REPL добавлено поле account_type В поток FORTS_POS_REPL добавлена таблица position_sa.
21.12.2017 | Добавлены новые коды ошибок (4160 - 4166).
16.11.2017 | Изменено описание параметра code_vcb метода FutDelUserOrders.
25.10.2017 | Внесённые изменения: Из потока FORTS_FUTINFO_REPL удалена таблица delivery_report В таблицу fut_rejected_orders потока FORTS_FUTINFO_REPL добавлено поле xamount В таблицы opt_rejected_orders и opt_exp_orders потока FORTS_OPTINFO_REPL добавлено поле xamount В таблицу opt_exp_orders потока FORTS_OPTINFO_REPL добавлено поле xamount_apply.
24.10.2017 | Внесённые изменения: В таблицу fut_MM_info потока FORTS_MM_REPL добавлены поля xamount_sells, xamount_buys, xmm_amount В таблицу opt_MM_info потока FORTS_MM_REPL добавлены поля xamount_sells, xamount_buys, xmm_amount
28.08.2017 | В сообщениях OptChangeExpiration, FutTransferClientPosition, OptTransferClientPosition изменены тип сообщения и тип поля amount.
23.06.2017 | Удалён поток RTS_INDEXLOG_REPL.
02.06.2017 | Внесенные изменения: В таблицу multileg_dict потока FORTS_FUTINFO_REPL добавлено поле leg_order_no. В таблицу fut_margin_type потока FORTS_FUTINFO_REPL добавлены поля UCP_type, prohibit_coeff, prohibit_type.
18.05.2017 | Внесенные изменения: В таблицы fut_pos, opt_pos, fut_pos_sa и opt_pos_sa потока FORTS_CLR_REPL добавлены поля xpos_beg и xpos_end. В таблицу pledge_details потока FORTS_CLR_REPL добавлены поля xamount_beg, xpay, xamount, xamount_beg_money, xpay_money, xamount_money.
15.05.2017 | Внесенные изменения: В таблицы common потоков FORTS_FUTCOMMON_REPL и FORTS_OPTCOMMON_REPL добавлены поля xamount_buy, xorders_buy_amount, xamount_sell, xorders_sell_amount, xamount, xcontr_count, xpos. В таблицы orders потоков FORTS_ORDBOOK_REPL, FORTS_FUTORDERBOOK_REPL и FORTS_OPTORDERBOOK_REPL добавлены поля xamount, xamount_rest, xinit_amount. В таблицу position потока FORTS_POS_REPL добавлены поля xpos, xbuys_qty, xsells_qty, xopen_qty.
05.05.2017 | Внесенные изменения: В таблицу deal потока FORTS_DEALS_REPL добавлены поля xpos и xamount. В таблицу multileg_deal потока FORTS_DEALS_REPL добавлено поле xamount. В таблицу orders_log потока FORTS_FUTTRADE_REPL добавлены поля xamount и xamount_rest. В таблицу multileg_orders_log потока FORTS_FUTTRADE_REPL добавлены поля xamount и xamount_rest. В таблицу deal потока FORTS_FUTTRADE_REPL добавлены поля xpos и xamount. В таблицу multileg_deal потока FORTS_FUTTRADE_REPL добавлено поле xamount. В таблицу user_deal потока FORTS_FUTTRADE_REPL добавлены поля xpos и xamount. В таблицу user_multileg_deal потока FORTS_FUTTRADE_REPL добавлено поле xamount. В таблицу orders_log потока FORTS_OPTTRADE_REPL добавлены поля xamount и xamount_rest. В таблицу deal потока FORTS_OPTTRADE_REPL добавлены поля xpos и xamount. В таблицу user_deal потока FORTS_OPTTRADE_REPL добавлены поля xpos и xamount. В таблицу orders_log потока FORTS_ORDLOG_REPL добавлены поля xamount и xamount_rest. В таблицу multileg_orders_log потока FORTS_ORDLOG_REPL добавлены поля xamount и xamount_rest.
24.03.2017 | Внесенные изменения: В таблице fut_vcb потока FORTS_FUTIINFO_REPL поля exch_pay, exch_pay_scalped, clear_pay, clear_pay_scalped, sell_fee, buy_fee, exch_pay_spot, exch_pay_spot_repo, client_code заполняются значениями по умолчанию (нули, пустые строки). В таблице opt_vcb потока FORTS_OPTINFO_REPL поля exch_pay, exch_pay_scalped, clear_pay, clear_pay_scalped, sell_fee, buy_fee, is_spec, spec_spread, client_code заполняются значениями по умолчанию (нули, пустые строки).
28.12.2016 | Внесенные изменения: Добавлен раздел "Поток FORTS_FORECASTIM_REPL - Прогноз рисков после возможной раздвижки". Из таблицы part потока FORTS_PART_REPL удалено поле exp_weight.
21.12.2016 | В соответствии с политикой декомиссии программного обеспечения с 5 декабря 2016 прекращена поддержка API P2ClientGate и библиотек Plaza-2 версий младше или равных 198. Это изменение отменяет и обратную совместимость: шлюзы с библиотеками версий младше или равными 198, а также написанные с использованием API P2ClientGate, не смогут продолжать свою работу.
30.08.2016 | Изменён список синхроевентов в таблице sys_events в потоках FORTS_PART_REPL, FORTS_CLR_REPL, FORTS_INFO_REPL.
18.05.2016 | Внесенные изменения: Удалено описание методов для работы со Спотами: "FutChangeBrokerVcb - Изменение параметров БФ по БА"; "FutChangeClientVcb - Изменение клиентских параметров по БА"; "FutChangeMoney - Изменение лимита на покупку спотов по БФ". В таблицу fut_instruments потока FORTS_FUTINFO_REPL добавлено поле exec_name (Признак срочности опциона). Добавлено описание метода "OptChangeRiskParameters - Управление риск-параметрами опционов". Из сообщения "FutChangeClientMoney - Изменение клиентских лимитов" удалено поле num_clr_2delivery. Для старых версий сообщений это поле будет игнорироваться в случае заполнения. Добавлено описание метода "FutTransferRisk - Перенос риска". Добавлены коды возврата: 75, 331, 339, 383, 4127, 4138, 4139, 4150-4155, 9999, 10000, 10001, 10004-10006. В поток FORTS_FUTINFO_REPL добавлены таблицы fut_settlement_account и fut_margin_type. В поток FORTS_PART_REPL добавлена таблица part_sa. В поток FORTS_CLR_REPL добавлены таблицы: money_clearing_sa, fut_pos_sa, opt_pos_sa. В поток FORTS_VM_REPL добавлены таблицы fut_vm_sa и opt_vm_sa. В таблицу part потока FORTS_PART_REPL добавлены поля num_clr_2delivery и exp_weight. Из таблицы part потока FORTS_PART_REPL удалено поле cal_exp_extra_risk. В таблицу virtual_futures_params потока FORTS_INFO_REPL добавлены поля exp_clearings_bf и exp_clearings_cc. Из таблицы virtual_futures_params потока FORTS_INFO_REPL удалены поля allow_use_extra_exp_risk и calc_extra_exp_risk.
14.10.2015 | Добавлено описание CODHeartbeat.
14.10.2015 | В таблицу fut_sess_contents добавлено 2 новых поля: pctyield_coeff и pctyield_total.
12.08.2015 | Добавлены новые коды ошибок (200 - 208).
23.01.2015 | В "Описание торгового шлюза" добавлен раздел "Обработка нештатных ситуаций".
22.01.2015 | Добавлен раздел "Автоматическое снятие заявок при отключении пользователя от торгов".
16.12.2014 | Отредактирован список кодов ошибок.
29.09.2014 | Добавлена расшифровка таблицы prohibition потока FUTINFO.
18.08.2014 | Добавлены коды ошибок ASTS.
24.07.2014 | В таблицах fut_MM_info и opt_MM_info потока FORTS_MM_REPL теперь транслируются обязательства маркет-мейкеров с детализацией до семизначного клиентского кода. Форматы сообщений-транзакций FutTransferClientPosition и OptTransferClientPosition теперь идентичны. Из потока FORTS_FUTINFO_REPL удалена таблица fut_ts_cons.
17.07.2014 | Из таблицы ORDERS потока FORTS_ORDBOOK_REPL удалено поле client_code
25.04.2014 | В поток FORTS_MM_REPL добавлена новая таблица mm_agreement: Таблица с номерами и типами договоров на оказание маркет-мейкерских услуг.
15.04.2014 | Добавлены новые команды: Перенос фьючерсной позиции между БФ Перенос опционной позиции между БФ
14.01.2014 | Добавлены новые поля: fulfil_min - процент минимального исполнения обязательств за торговую сессию fulfil_partial - процент частичного исполнения обязательств за торговую сессию fulfil_total - процент полного исполнения обязательств за торговую сессию is_fulfil_min - признак минимального исполнения обязательств в текущий момент is_fulfil_partial - признак частичного исполнения обязательств в текущий момент is_fulfil_total - признак полного исполнения обязательств в текущий момент в таблицы fut_MM_info, opt_MM_info потока FORTS_MM_REPL
31.05.2013 | Добавлено новое поле: rate_id - Идентификатор курса в таблицу clr_rate потока FORTS_CLR_REPL
18.04.2013 | Добавлен анонимный поток orderbook: FORTS_ORDBOOK_REPL Добавлено поле: ext_reserve - Дополнительный резерв в таблицу money_clearing потока FORTS_CLR_REPL Удален поток FORTS_CLMONEY_REPL
12.04.2013 | Добавлено новое поле: exch_pay - Биржевой сбор за 1 контракт в рублях в таблицу fut_sess_contents потока FORTS_FUTINFO_REPL
10.04.2013 | Добавлено новое поле: exch_pay - Биржевой сбор за 1 контракт в рублях в таблицу opt_sess_contents потока FORTS_OPTINFO_REPL
26.03.2013 | Добавлено новое поле: rate_id - Идентификатор курса в таблицы fut_vcb и opt_vcb потоков FORTS_FUTINFO_REPL и FORTS_OPTINFO_REPL Добавлен поток репликации: MOEX_RATES_REPL - Курсы валют он-лайн Добавлена новая таблица: rates - Справочник курсов валют в поток FORTS_FUTINFO_REPL
27.11.2012 | Изменение описания таблицы user_deal.
01.11.2012 | Добавлено описание двух событий для таблицы sys_events.
30.10.2012 | Обновление документации: В разделе "Метод FutChangeMoney - Изменение лимита на покупку спотов по БФ" дополнено описание параметра limit_spot_buy. В разделах "Метод FutMoveOrder - Перемещение двух заявок" и "Метод OptMoveOrder - Перемещение двух заявок" дополнено описание логики работы команды MoveOrder.
22.10.2012 | Обновление документации: Внесены изменения в разделы: "Пользователи. Привязка пользователя к участнику торгов", "Состав, установка и настройка ПО шлюз SPECTRA Plaza-2", "Рекомендации по включению рантаймов РТС в приложение пользователя при распространении пользовательского ПО сторонним компаниям", "Восстановление и поздний вход". Удален раздел "Интерфейс технического центра ".
10.02.12 | Обновления документации: В раздел "Особенности использования шлюза" добавлен пункт "Команды". Добавлен раздел "Приостановка торгов для расширения лимита колебаний цен сделок". Исправлена ошибка в описании формулы расчета цены фьючерса. Обновлено описание инсталлятора шлюза.
09.02.2012 | Добавлено новое поле: login_from - Логин пользователя, поставившего заявку в таблицы: fut_rejected_orders - Отвергнутые в клиринг заявки opt_rejected_orders - Отвергнутые в клиринг заявки потоков: FORTS_FUTINFO_REPL - Фьючерсы: справочная и сессионная информация FORTS_OPTINFO_REPL - Опционы: справочная и сессионная информация
24.01.2012 | В таблицу orders потоков: FORTS_FUTORDERBOOK_REPL - Фьючерсы: Cрез стакана FORTS_OPTORDERBOOK_REPL - Опционы: Cрез стакана добавлены следующие поля: init_moment - Время появления заявки init_amount - Начальное количество в заявке
23.01.2012 | Добавлена таблица событий sys_events в потоки: FORTS_CLMONEY_REPL - Деньги в клиринг FORTS_CLR_REPL - Клиринговая информация
17.01.2012 | В таблицу fut_vcb потока FORTS_FUTINFO_REPL добавлено поле exch_pay_spot_repo, содержащее биржевой сбор по Репо
12.01.2012 | Добавлен поток репликации: FORTS_ORDLOG_REPL - поток, в котором передаются все действия с заявками в анонимном виде
02.11.2011 | Добавлены новые поля: Поле comment - Комментарий трейдера Поле ext_id - Внешний номер в таблицы: fut_rejected_orders - Отвергнутые в клиринг заявки opt_rejected_orders - Отвергнутые в клиринг заявки
25.11.2011 | Добавлен раздел "Использование тестовых примеров".
7.11.2011 | Ревизия документа. Доработаны разделы "Введение" и "Описание торгового шлюза". Добавлен раздел "Краткий обзор системы SPECTRA".
20.10.2011 | Добавлены следующие поля: Поле theor_price_limit - теоретическая цена опциона, рассчитанная исходя из котировки фьючерса, ограниченной лимитом Поле vm_real, содержащее текущую ВМ по опционам, рассчитанную исходя из рыночной котировки опциона theor_price. При этим, значение в старом поле vm рассчитывается исходя из ограниченной котировки опциона theor_price_limit. Добавлена таблица событий sys_events в потоки: FORTS_FUTTRADE_REPL -- Фьючерсы: заявки и сделки FORTS_OPTTRADE_REPL - Опционы: заявки и сделки FORTS_POS_REPL - Информация о позициях FORTS_PART_REPL - Информация о средствах и лимитах FORTS_FUTINFO_REPL - Фьючерсы: справочная и сессионная информация FORTS_OPTINFO_REPL - Опционы: справочная и сессионная информация FORTS_INFO_REPL - Дополнительная справочная информация
4.10.2011 | Добавлены потоки репликации: FORTS_CLR_REPL - поток, транслирующий клиринговую информацию, в том числе информация о сборах и ВМ на момент клиринга, зафиксированные значения курсов валют, используемые для расчетов, а также расчетные цены клиринга FORTS_MM_REPL - поток, содержащий информацию об обязательствах ММ в режиме он-лайн Изменены номера команд торговых операций для поддержки возможности мониторинга времен полной обработки, включая канал до пользователя.
14.09.2011 | Исправлены ошибки в значениях по умолчанию некоторых команд: Если параметр является строковым - его значение по умолчанию берется в кавычки
15.04.2011 | Добавлены следующие поля: поле status таблицы diler потока FORTS_FUTINFO_REPL - информация по разделам РФ и БФ поле status таблицы investr потока FORTS_FUTINFO_REPL - информация по клиентским разделам поле vm_order_reserve потока FORTS_PART_REPL - резерв ВМ по заявкам поле waprice потока FORTS_POS_REPL - средневзвешенная цена Изменения в системе команды: Важно: изменился формат команд FutAddOrder, OptAddOrder и FutAddMultilegOrder - в каждую из команд добавлен параметр dont_check_money. Изменились идентификаторы команд. Команды старого формата поддерживаются со старыми идентификаторами. Добавлена команда FutExchangeBFMoney, предназначенная для выполнения переводов между БФ разделами
28.03.2011 | В таблицу multileag_deal потока FORTS_FUTTRADE_REPL добавлено поле buyback_amount, содержащее сумму обратного выкупа для сделок Репо
24.03.2011 | Добавлен поток RTS_INDEXLOG_REPL, транслирующий историю изменения индексов РТС
01.02.2011 | Для команды FutChangeClientVcb изменён тип параметра code_vcb с c4 на c25. Новый формат команды имеет код сообщения 33. Код ответного сообщения для команды не изменился. В документацию добавлен справочник кодов возврата команд.
27.01.2011 | Исправлена ошибка в документации - параметр check_limit команд OptAddOrder и OptMoveOrder был описан некорректно. Правильные значения параметра: 0 - не выполнять проверку, 1 - выполнять проверку.
24.12.2010 | Исправлен ряд ошибок в именовании полей команд, а также значения по умолчанию некоторых команд: Значение по умолчанию параметра ext_id для команды FutDelUserOrders установлено в 0. Значения по умолчанию параметров comment, hedge, broker_to, ext_id, trust, date_exp для команды FutAddMultiLegOrder установлены в 0 или пустую строку в зависимости от типа сообщения. Значение по умолчанию параметров price1 и price2 для команды OptMoveOrder установлены в 0. Значение по умолчанию параметра no_fut_discount для команды FutChangeClientMoney установлено в 0. Значение по умолчанию параметра limit_spot для команды FutChangeBrokerVcb установлено в -1. В ответах команд FutChangeClientMoney, FutChangeBFMoney, FutChangeClientVcb и OptChangeExpiration поле Message исправлено на message для достижения единообразия с остальными командами. .
26.11.2010 | Изменен формат агрегированных стаканов - убрано поле price2. Теперь поле price принимает различный смысл в зависимости от значения признака 0x1000 инструмента (поле signs таблицы fut_sess_contents потока FORTS_FUTINFO_REPL): в случае установки признака поле price содержит ставку, иначе - своп-цену.
15.10.2010 | Новые признаки инструмента (поле signs таблицы fut_sess_contents потока FORTS_FUTINFO_REPL): 0x800 - признак инструмента RTS Money 0x1000 - признак основной цены для составных инструментов (0 - котируется в своп-цене, 1 - котируется в ставке) Новое значение признака составных инструментов multileg_type (таблицы fut_sess_contents потока FORTS_FUTINFO_REPL. Для свопов RTS Money принимает значение 2. Новое поле в стаканах агрегированных котировок - price2. Используется для свопов - в данное поле записывается своп-цена.
14.09.2010 | В потоки FORTS_FUTCOMMON_REPL и FORTS_OPTCOMMON_REPL добавлены значения цен открытия и закрытия (поля open_price и close_price). В поток RTS_INDEX_REPL добавлены значения капитализации и объёма для индексов (поля cap и volume).
07.07.2010 | В таблицу с информацией о сессии session потока FORTS_FUTINFO_REPL добавлена информация об интервале переноса позиций (поля pos_transfer_begin и pos_transfer_end) Добавлены таблицы: fut_sess_settl в поток FORTS_FUTINFO_REPL с расчетными ценами за прошедший клиринг opt_sess_settl в поток FORTS_OPTINFO_REPL со значениями волатильности и теоретической цены опциона на момент клиринга
15.06.2010 | Исправлена ошибка в описании команды FutAddMultiLegOrder: тип параметра isin_id изменён c25->i4
| В таблице delivery_report потока FORTS_FUTINFO_REPL поля oblig_uni и fulfil_uni типа i4 заменены на поля oblig_qty и fulfil_qty типа i8.
31.05.2010 | В таблицы fut_sess_contents и fut_instruments потока FORTS_FUTINFO_REPL добавлено поле step_price_curr. В потоки FORTS_FUTCOMMON_REPL и FORTS_OPTCOMMON_REPL в таблицу common добавлены поля для совокупного спроса и предложения: orders_sell_qty, orders_sell_amount, orders_buy_qty, orders_buy_amount.
17.05.2010 | Добавлена информация о параметрах инструментов: таблицы base_contracts_params, futures_params, virtual_futures_params, options_params Добавлена информация о стоимости шага цены инструмента в вечерний клиринг – поле step_price_clr таблицы fut_sess_contents потока FORTS_FUTINFO_REPL, а также в пром. клиринг – поле step_price_interclr той же таблицы.
19.04.2010 | Изменены типы многих полей, в частности: объём агрегированных стаканов d16.5 -> i8 направление заявок i4 -> i1 признаки инструментов (signs) i1 -> i4 Таблица money_clearing перенесена из потока FORTS_FUTINFO_REPL в поток FORTS_CLMONEY_REPL. Переименованы: таблица repo_orders_log -> multileg_orders_log таблица repo_deal -> multileg_deal команда FutAddRepo -> FutAddMultiLegOrder Добавлены: таблица multileg_dict – справочник связок поля price_dir, multileg_type, legs_qty таблицы fut_sess_contents поля с идентификатором и ценой сделки в таблицы orders_log фьючерсную и опционную поля fee_sell, fee_buy таблицы deal потока FORTS_OPTTRADE_REPL потоки FORTS_FUTORDERBOOK_REPL и FORTS_OPTORDERBOOK_REPL с информацией о текущем состоянии стаканов таблица broker_params потока FORTS_INFO_REPL таблицы fut_instruments потока FORTS_FUTINFO_REPL таблицы usd_online потока FORTS_FUTINFO_REPL Удалены: поле state таблицы opt_sess_contents
16.03.2010 | Изменен описание команды FutAddRepo: • вместо параметра swap_price, теперь используется параметр repo_rate
24.02.2010 | Добавлено: описание таблиц repo_orders_log, repo_deals описание статусов заявок и сделок Репо описание новых статусов заявок и сделок описание команды FutAddRepo поле last_deal_id в таблицу position потока FORTS_POS_REPL
18.01.2010 | Добавлено описание команд: FutChangeBrokerVcb, FutChangeClientProhibit, FutChangeMoney, OptChangeClientProhibit Добавлено поле limits_set таблицы part потока FORTS_PART_REPL Исправлен ряд ошибок в описании команд
15.01.2010 | Изменены типы идентификаторов заявок и сделок (i4 -> i8) Изменены типы статусов заявок и сделок (i2 -> i4) Исправлен ряд ошибок в описании команд
25.11.2009 | Исправлен ряд ошибок в описании команд
03.11.2009 | Добавлена поддержка задания кодов брокеров при отправке сообщений
30.10.2009 | Добавлены команды управления лимитами клиентов
10.08.2009 | Добавлены справочники инструментов по опционам
15.07.2009 | Добавлено описание справочных потоков репликации
17.06.2009 | Добавлено описание команд управления заявками для фьючерсов и опционов
27.03.2009 | Добавлено описание потоков репликации ‘common’
20.03.2009 | Первая версия документа

## Введение

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

Целью документа является освещение всего комплекса информации, необходимой пользователям при проектировании и разработке программного обеспечения для доступа на срочный рынок с использованием ПО PLAZA II шлюз (SPECTRA). В документе рассматриваются следующие вопросы:

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

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

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

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

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

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

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

### Сокращения

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

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

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

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

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

- Участники клиринга (Расчетные фирмы)

- Участники торгов (Брокерские фирмы)

- Клиенты участников торгов и участников клиринга

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

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

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

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

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

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

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

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

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

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

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

- Взнос в Гарантийный фонд.

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

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

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

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

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

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

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

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

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

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

#### Клиенты

Любое юридическое и физическое лицо может принимать участие в торгах на рынке фьючерсов и опционов 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 имеют иерархическую структуру. Далее приведено описание инструментов, начиная с корневого уровня иерархии.

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

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

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

- Разнообразные ставки комиссий.

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

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

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

- Валюта для расчета стоимости шага цены. В настоящий момент может принимать значения:

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

  - USR — стоимость шага цены указывается в рублях, с пересчетом по курсу доллара, рассчитываемого по методике Московской Биржи: http://moex.com/n6126

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

- Форма торгов — с залогом или без. При торговле с залогом часть депозита под позицию можно вносить путем передачи НКЦ в залог акций и других ценных бумаг из утвержденного списка.

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

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

#### Фьючерсы

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

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

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

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

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

, где

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

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

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

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

- Стоимость шага цены в исходной валюте (т.е. в долларах США);

- Стоимость шага цены в рублях, зафиксированная для промежуточного клиринга;

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

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

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

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

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

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

##### Однодневные фьючерсы с автопролонгацией

В ТС SPECTRA существуют фьючерсы, которые по своему поведению несколько отличаются от обычных - это однодневные фьючерсные контракты с автопролонгацией. Близкими аналогами таких контрактов на рынке могут служить CFD (Contract For Difference) или NDF (Non-Deliverable Forward).

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

Основные особенности таких инструментов:

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

- Расчетные цены формируются на основании рыночных данных с Валютного и Фондового рынков Московской биржи.

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

- Для индикативной вариационной маржи фандинг рассчитывается отдельно и публикуется в шлюзе в таблице common потока FORTS_COMMON_REPL в поле swap_rate.

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

- Индикативное значение фандинга и дивидендной поправки по текущей клиентской позиции рассчитывается и публикуется в шлюзе в потоке индикативной вариационной маржи по позиции FORTS_VM_REPL.fut_vm/fut_vm_sa в полях swap_rate и index_div, соответственно.

Формулы и детальное описание можно найти в спецификациях контрактов.

В справочнике торгуемых инструментов однодневные фьючерсы помечаются специальным признаком (бит 0x4000 в поле signs таблицы fut_sess_contents потока FORTS_REFDATA_REPL).

#### Опционы

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

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

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

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

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

В настоящий момент в системе SPECTRA поддерживаются американские маржируемые поставочные опционы на фьючерсы и европейские премиальные расчетные опционы на спот-активы (акции, индексы, валюту и т.п.) и фьючерсы.

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

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

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

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

- Поток FORTS_REFDATA_REPL, таблица opt_vcb — содержит справочник базовых контрактов для опционов.

- Поток FORTS_REFDATA_REPL, таблица sess_option_series — содержит список опционных серий.

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

- Поток FORTS_INFO_REPL, таблица option_series_params — содержит параметры опционных серий.

#### Составные инструменты (связки)

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

Список имеющихся в системе составных инструментов можно получить из таблицы fut_sess_contents потока FORTS_REFDATA_REPL, проверяя поле multileg_type. Записи, со значением этого поля не равным 0, описывают составные инструменты.

Для получения составных частей инструмента следует пользоваться таблицей multileg_dict потока FORTS_REFDATA_REPL, в которой для каждого составного инструмента существует две или более записей, описывающей отдельные части такого инструмента (Рис. 1). Записи таблицы multileg_dict ссылаются обратно в fut_sess_contents, т.к. составные части инструментов являются обычными инструментами торговой системы. Для каждой составной части также указывается коэффициент, на который умножается объём исходной заявки для получения объёма заявки по составной части. Знак этого коэффициента указывает на направление заявки по составляющей — положительное значение означает, что составляющая будет направлена в ту же сторону, что и заявка по составному инструменту, отрицательное — в противоположную сторону.

Рисунок 1. Составные инструменты

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

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

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

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

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

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

Пример 3. Фьючерс на индекс РТС с исполнением в декабре 2010 года:

isin_id=

isin = RTS-12.10

short_isin = RIZ0

name = Фьючерсный контракт на индекс РТС с исполнением 15 декабря 2010 г.

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

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

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

#### Инструменты с ограничениями по квалификации инвестора

В соответствие с требованиями регулятора для определенных инструментов разрешена торговля только квалифицированным инвесторам. Под квалифицированным инвестором в системе SPECTRA понимается клиент, у которого выставлен специальный признак "Квалифицированный инвестор" (бит 0x10000000000 в поле xstatus таблицы investor потока FORTS_REFDATA_REPL). Этот признак устанавливается самим брокером с помощью системы ЕРК. Изменение признака применяется в системе в вечерний клиринг (для существующих клиентов). Для новых клиентов (активация болванки) признак применяется в он-лайне.

У инструментов с ограничениями по квалификации инвестора выставляется признак "Для квалифицированных инвесторов". Признак устанавливается на уровне ФБК (бит 0x8 в поле signs таблицы fut_vcb потока FORTS_REFDATA_REPL) и действует на все инструменты этого ФБК. Этими инструментами может торговать только квалифицированный инвестор, при попытке выставить заявку по такому инструменту, клиентом без признака "Квалифицированный инвестор", заявка автоматически отвергается системой с кодом ошибки "4227 - Должен быть признак квалифицированного инвестора для совершения сделки".

Особенности поддержки инструментов с ограничениями по квалификации инвестора:

- Запрещен перенос позиции клиента (команда TransferClientPosition ) по инструменту с ограничениями по квалификации инвестора к клиенту, у которого нет признака квалифицированного инвестора.

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

  - Брокер ставит запрет на открытие позиций по инструменту

  - Брокер уведомляет клиента и дает время на самостоятельное закрытие позиции

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

  - Брокер снимает признак "Квалифицированный инвестор" с клиента (применяется в ВК)

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

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

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

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

Заявки бывают котировочные (Day), встречные (Immediate-or-Cancel), заявки Fill-or-Kill и заявки Book-or-Cancel. Котировочная заявка (Day) остается в очереди независимо от того, свелась ли она частично, или не свелась совсем. Встречная заявка (IOC), если она не свелась в сделку, удаляется из системы после проведения аукциона. При частичном сведении встречной заявки, несведенная ее часть также удаляется. Заявки Fill-or-Kill (FOK) - это встречные заявки, которые предполагают только полное исполнение (сведение в сделку). Заявка Book-or-Cancel (BOC) - это разновидность котировочной заявки, которая при выставлении либо целиком встает в стакан, либо отклоняется системой. Такая заявка может быть только пассивной стороной в сделке (Maker).

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

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

- поле comment - Строка в 20 символов. Поле не должно содержать управляющих символов (0x00-0x1F и 0x7F) и поле должно конвертироваться из cp1251 в utf-8.

- поле 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. Можно только вручную удалить и выставить новую заявку.

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

- Адресные заявки сводятся в сделку при условии точного совпадения в них значения поля match_ref (см. описание поля в разделе Метод AddOrder - Добавление заявок ). Возможно частичное сведение адресных заявок.

##### Адресный режим с мэтчингом по уникальному коду

В данном режиме участники выставляют адресные заявки с обязательным заполнением поля match_ref и указанием в поле broker_to кода НКЦ (код фирмы с флагом dealer.status 0x10000 – НКЦ). В поле match_ref задается уникальная последовательность символов, о которой стороны сделки отдельно (вне торговой системы) договариваются, что она будет использоваться в их заявках. Сведение заявок в сделки осуществляется по совпадению значений поля match_ref в заявках. Совпадение значения поля match_ref является подтверждением согласия контрагентов на совершение сделки на условиях, указанных в сделке. В режиме "Адресный режим с мэтчингом по уникальному коду" контрагент скрыт на всех этапах заключения и обработки сделки (заявка, мэтчинг, сделка, отчеты).

В остальном адресные заявки в таком режиме торгов имеют те же ограничения, что и обычные адресные заявки. Для отличия таких заявок от обычных адресных у них в дополнение к признаку Address (0x4000000) выставляется флаг NegotiatedMatchByRef (0x80000000).

#### Сделки

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

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

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

#### Кросс-сделки

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

Для определения логики обработки кросс-сделок в системе предусмотрено два флага:

- "Разрешить кросс-сделки" - Разрешает кросс-сделки для адресных заявок. Чтобы кросс-сделка прошла данный флаг должен быть выставлен у обоих сторон сделки. В безадресном режиме совершение кросс-сделок запрещено всегда.

- "Снять пассивную заявку при кросс-сделке" - Разрешает при кросс-сделке вместо отклонения вновь поступившей (она же активная) заявки снимать пассивную, на которую она наткнулась. Снятие пассивной заявки подразумевает продолжение сведения активной заявки в рамках транзакции. Если в процессе сведения транзакция не может завершиться успешно, то снятые пассивные заявки восстанавливаются.

Указанные флаги выставляются на уровне семизначного клиентского раздела на основании заявления участника. Выставленные флаги транслируются в шлюзе в поле xstatus таблицы investor потока FORTS_REFDATA_REPL.

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

Тип активной заявки | Флаг у клиентского раздела - автора пассивной заявки | Сценарии
--- | --- | ---
Котировочная заявка (Day) | "Снять пассивную заявку при кросс-сделке"=НЕТ | Пассивная: Остается в стакане. Активная: В процессе сведения доходит до заявки с таким же ИНН, затем откатывается обратно по всем предварительно сведенным заявкам.
"Снять пассивную заявку при кросс-сделке"=ДА | Пассивная: Снимается. Активная: В процессе сведения доходит до пассивной с тем же ИНН, инициирует снятие пассивной, продолжает сведение далее в стакане или остается как котировочная в стакане. Если далее в транзакции сведение активной заявки не может завершиться успешно (например, по причине встречи с еще одной кроссовой заявкой, по которой нет разрешения снимать ее), то все заявки, включая кроссовую пассивную, восстанавливаются.
Встречная заявка (IOC) | "Снять пассивную заявку при кросс-сделке"=НЕТ | Пассивная: Остается в стакане. Активная: В процессе сведения доходит до заявки с таким же ИНН, затем остаток снимается.
"Снять пассивную заявку при кросс-сделке"=ДА | Пассивная: Снимается только в том случае, если активная может свестись хотя бы один раз со следующей в очереди после кроссовой. Активная: В рамках одной транзакции доходит до пассивной с тем же ИНН, инициирует предварительное снятие пассивной, затем продолжает сведение со следующими заявками в очереди из стакана. Если после снятия пассивной, в рамках данной транзакции, не произошло ни одного сведения, то остаток активной IOC снимается, а пассивная восстанавливается.
Заявка Fill-or-Kill (FOK) | "Снять пассивную заявку при кросс-сделке"=НЕТ | Пассивная: Остается в стакане. Активная: В процессе сведения доходит до заявки с таким же ИНН, затем откатывается обратно по всем предварительно сведенным заявкам.
"Снять пассивную заявку при кросс-сделке"=ДА | Пассивная: Снимается только в том случае если активная может свестись полностью. Активная: В рамках одной транзакции доходит до пассивной с тем же ИНН, инициирует предварительное снятие пассивной, продолжает сведение далее в стакане. Если полный объем не собран по активной, то все предварительно сведенные и снятые пассивные заявки восстанавливаются обратно в стакан.

Для адресных заявок логика обработки ситуаций с кросс-сделками аналогична. Если кросс-сделки не разрешены (нет признака "Разрешить кросс-сделки" у кого-либо из контрагентов), то в зависимости от значения признака "Снять пассивную заявку при кросс-сделке" у контрагента - автора пассивной заявки (НЕТ/ДА), отклоняется активная заявка либо снимается пассивная.

В случае синтетического матчинга, два стакана с заявками анализируются независимо – т.е. могут быть сняты как одна так и две пассивные заявки. Если для обеих пассивных заявок снятие не разрешено ("Снять пассивную заявку при кросс-сделке"=НЕТ), то отклоняется активная заявка, иначе снимаются (независимо) пассивные заявки, для которых снятие разрешено ("Снять пассивную заявку при кросс-сделке"=ДА).

У снятых пассивных кросс-заявок в поле xstatus выставляется отличительный признак DueToCrossCancel (0x2000).

#### Особенности торговли связками

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

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

- Порядок сортировки цен в стаканах может быть различным (прямой или обратный).

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

- Для связок невозможна операция передвижки заявок.

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

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

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

- Айсберг-заявки могут быть только безадресными. С точки зрения времени жизни айсберг-заявки могут быть обычными и многодневными. По типам айсберг-заявки делятся на котировочные (Day) и заявки Book-or-Cancel.

- При добавлении айсберг-заявки в ней дополнительно указываются параметры для расчета размера всплывающей части. Всплывающая часть состоит из постоянной составляющей (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 помечаются специальным признаком "Iceberg" (0x800000000000).

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

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

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

   - Таблицы orders_log и multileg_orders_log:

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

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

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

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

   - Таблицы user_deal и user_multileg_deal:

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

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

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

   - Таблицы orders_log и multileg_orders_log:

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

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

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

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

   - Таблицы user_deal и user_multileg_deal:

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

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

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

public_ order_id | public_ amount | public_ amount_ rest | public_ action | price | moment | dir | client_ code | private_ order_id | private_ amount | private_ amount_ rest | private_ action | comment
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
101 | 100 | 100 | 1 | 312 | 2019-01-11 11:55:58 | 1 | OD01123 | 101 | 1000 | 1000 | 1 | Add Iceberg
102 | 1 | 1 | 1 | 312 | 2019-01-11 14:56:58 | 1 | PJ99888 | 102 | 1 | 1 | 1 | Add standard Order
103 | 250 | 250 | 1 | 310 | 2019-01-11 16:58:58 | 2 | FS01020 | 103 | 250 | 250 | 1 | Add standard Order
101 | 100 | 0 | 2 | 312 | 2019-01-11 16:58:58 | 1 | OD01123 | 101 | 100 | 900 | 2 | Match Iceberg
103 | 100 | 150 | 2 | 310 | 2019-01-11 16:58:58 | 2 | FS01020 | 103 | 100 | 150 | 2 | Match standard Order
102 | 1 | 0 | 2 | 312 | 2019-01-11 16:58:58 | 1 | PJ99888 | 102 | 1 | 0 | 2 | Match standard Order
103 | 1 | 149 | 2 | 310 | 2019-01-11 16:58:58 | 2 | FS01020 | 103 | 1 | 149 | 2 | Match standard Order
104 | 100 | 100 | 1 | 312 | 2019-01-11 16:58:58 | 1 | OD01123 | 101 | 100 | 900 | 3 | Pop-up Iceberg
104 | 100 | 0 | 2 | 312 | 2019-01-11 16:58:58 | 1 | OD01123 | 101 | 100 | 800 | 2 | Match Iceberg
103 | 100 | 49 | 2 | 310 | 2019-01-11 16:58:58 | 2 | FS01020 | 103 | 100 | 49 | 2 | Match standard Order
105 | 100 | 100 | 1 | 312 | 2019-01-11 16:58:58 | 1 | OD01123 | 101 | 100 | 800 | 3 | Pop-up Iceberg
105 | 49 | 51 | 2 | 312 | 2019-01-11 16:58:58 | 1 | OD01123 | 101 | 49 | 751 | 2 | Match Iceberg
103 | 49 | 0 | 2 | 310 | 2019-01-11 16:58:58 | 2 | FS01020 | 103 | 49 | 0 | 2 | Match standard Order
105 | 51 | 0 | 0 | 312 | 2019-01-11 17:00:58 | 1 | OD01123 | 101 | 751 | 0 | 0 | Cancel 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_id | public_ amount | public_ amount_ rest | public_ action | id_ord | xamount | xamount_ rest | action | private_ order_id | private_ amount | private_ amount_ rest | private_ action | comment
--- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---
101 | 100 | 100 | 1 | 101 | 1000 | 1000 | 1 | 101 | 1000 | 1000 | 1 | Add Iceberg
102 | 1 | 1 | 1 | 102 | 1 | 1 | 1 | 102 | 1 | 1 | 1 | Add Order
103 | 250 | 250 | 1 | 103 | 250 | 250 | 1 | 103 | 250 | 250 | 1 | Add Order
101 | 100 | 0 | 2 | 101 | 100 | 900 | 2 | 101 | 100 | 900 | 2 | Match Iceberg
103 | 100 | 150 | 2 | 103 | 100 | 150 | 2 | 103 | 100 | 150 | 2 | Match Order
102 | 1 | 0 | 2 | 102 | 1 | 0 | 2 | 102 | 1 | 0 | 2 | Match Order
103 | 1 | 149 | 2 | 103 | 1 | 149 | 2 | 103 | 1 | 149 | 2 | Match Order
104 | 100 | 100 | 1 | 101 | 100 | 900 | 3 | 101 | 100 | 900 | 3 | Pop-up Iceberg
104 | 100 | 0 | 2 | 101 | 100 | 800 | 2 | 101 | 100 | 800 | 2 | Match Iceberg
103 | 100 | 49 | 2 | 103 | 100 | 49 | 2 | 103 | 100 | 49 | 2 | Match Order
105 | 100 | 100 | 1 | 101 | 100 | 800 | 3 | 101 | 100 | 800 | 3 | Pop-up Iceberg
105 | 49 | 51 | 2 | 101 | 49 | 751 | 2 | 101 | 49 | 751 | 2 | Match Iceberg
103 | 49 | 0 | 2 | 103 | 49 | 0 | 2 | 103 | 49 | 0 | 2 | Match Order
105 | 51 | 0 | 0 | 101 | 751 | 0 | 0 | 101 | 751 | 0 | 0 | Cancel Iceberg

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

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

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

- Добавление заявки (команда 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_id | public_action | private_order_id | private_action | id_ord1
--- | --- | --- | --- | --- | ---
Добавление | 100 | 1 | 100 | 1 |
Сведение в сделку | 100 | 2 | 100 | 2 |
Всплытие новой части | 105 | 1 | 100 | 3 |
Перевыставление в ВК | 1106 | 1 | 1106 | 1 | 100
Передвижка (move) | 1106 | 0 | 1106 | 0 | 100
1200 | 1 | 1200 | 1 |

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

- Добавление - добавляется айсберг-заявка (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 фондового рынка. Более подробно см. подраздел "Реализация поставки фьючерсных контрактов срочного рынка на фондовом рынке (режим Т+2)".

##### Реализация поставки фьючерсных контрактов срочного рынка на фондовом рынке (режим Т+2)

Исполнение всех поставочных фьючерсных контрактов производится путём автоматического заключения сделок Т+2 в секторе "Основной рынок" Московской биржи (Торгово-клиринговая система ASTS).

В Клиринговой системе SPECTRA за каждой брокерской фирмой, которая желает проводить поставку, по заявлению Участника, закрепляется код фирмы и торгово-клиринговый счёт (далее – ТКС), зарегистрированные в Торгово-клиринговой системе фондового рынка (далее – ASTS ФР), с указанием которого должны быть заключены сделки Т+2 в целях исполнения обязательств по фьючерсным контрактам. За клиентским разделом регистра учета позиций может быть закреплён отдельный ТКС и код клиента, зарегистрированного в ASTS ФР.

Заранее по заявлению Участника регистрируются в SPECTRA три ТКС ФР (т.н. "любимые" ТКС): один для учета собственных обязательств, один для учета обязательств клиентов, один для учета обязательств ДУ. "Любимые" ТКС прикрепляются к БФ соответствующего типа по умолчанию.

Сделки Т+2 заключаются в ASTS ФР на отдельном режиме торгов (SPEQ) с кодом расчётов Y2. Сделка заключается между НКЦ и участником торгов фондового рынка. Никакого дополнительного подтверждения от участника торгов фондового рынка не требуется.

В случае, если сделка Т+2 не может быть заключена по причине отсутствия или неверных реквизитов привязки к фирме и ТКС, Участником до 15:00 МСК текущего дня должен быть закреплён за соответствующей брокерской фирмой действующий ТКС ФР. Если до 15:00 МСК Участник не закрепляет действующий ТКС, то в 15:00 МСК сделки Т+2 будут заключены с указанием "любимого" ТКС соответствующего типа (собственный, клиентский, ДУ). Если сделки Т+2 не могут быть заключены с указанием "любимого" ТКС (он также не указан или указан неверно), то обязательства участника клиринга по поставке по фьючерсу на акции в части позиций данной БФ считаются невыполненными, и взимается штраф в размере ГО по неисполненным фьючерсам.

После заключения сделок поставки по акциям в системе фондового рынка, в случае достаточности обеспечения под совокупную позицию на рынке T+2, фьючерсная позиция в системе SPECTRA закрывается, и обеспечение под эту позицию освобождается. В случае недостаточности обеспечения под совокупную позицию на рынке T+2, фьючерсная позиция и обеспечение под неё остаются заблокированными в системе SPECTRA до момента исполнения маржинального требования на рынке T+2.

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

Более подробную информацию по механизму реализации поставки вы можете найти на сайте – http://moex.com/s1262

#### Экспирация опционов

В настоящий момент система SPECTRA поддерживает американские поставочные опционы на фьючерсы и европейские расчетные опционы на спот-активы (акции, индексы, валюту и т.п.) и фьючерсы.

##### Экспирация американских поставочных опционов на фьючерсы

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

Экспирация опционов возможна в двух режимах:

- Досрочная, выполняемая по запросу участника. Покупатель может в любой момент предъявить продавцу требование об исполнении опциона, послав с систему поручение об экспирации (подробнее см. раздел Метод OptChangeExpiration — Поручения на экспирацию опционов). Поручения на экспирацию собираются в течение всей торговой сессии, но исполняются два раза в день — в промежуточный клиринг и в вечерний клиринг.

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

  Для опционов "на деньгах" (коллы и путы, страйк которых строго равен цене исполнения фьючерса) автоматическое исполнение осуществляется для половины открытой опционной позиции с данным страйком. Если величина открытой позиции является нечётным числом, то при расчёте величины исполняемой позиции для коллов применяется округление вверх (0.5=1), для путов – округление вниз (0.5=0).

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

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

##### Экспирация европейских рачетных опционов

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

##### Расчет опционных рисков перед экспирацией

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

Параметры сценария экспирации:

- exp_clearings_bf - данный параметр устанавливается НКЦ на весь рынок и определяет (для опционной серии) количество клиринговых сессий перед экспирацией, в течении которых по брокерской фирме начнется блокироваться обеспечение, посчитанное для всей брокероской фирмы по модели экспирации. До даты экспирации минус (exp_clearings_bf/2), применяется модель волатильности. Новое значение параметра применяется только в вечернюю или промежуточную клиринговую сессию.

- exp_clearings_sa - определяет количество клиринговых сессий перед экспирацией, в которых будет применен сценарий экспирации для расчетного кода. Устанавливается и изменяется НКЦ на весь рынок. Применяется только в вечернюю или промежуточную клиринговую сессию.

- exp_weight - вес риск-профиля с учетом сценариев экспирации.

  - exp_weight (client): Может меняться брокерской фирмой путем подачи неторговой шлюзовой транзакции OptChangeRiskParametersNextSession по каждому клиенту, применяется в ближайшую клиринговую сессию.

  - exp_weight (broker): Может устанавливаться расчетной фирмой через документооборот с биржей и командой ChangeBFParametersNextSession. В таком случае параметр exp_weight (broker) применяется для расчета гарантийного обеспечения брокера, у которого включен режим маржирования нетто.

  - exp_weight_client_default: Может устанавливаться расчетной фирмой через документооборот с биржей и командой ChangeBFClientDefaultParametersNextSession. В таком случае параметр exp_weight_client_default применяется на всех клиентов брокера, у которых не установлен exp_weight (client), то есть работает для таких клиентов как значение по умолчанию.

  В случае, если участник не подал соответствующие распоряжения на установку веса риск-профиля, ко всем его клиентам будут применены параметры, установленные по умолчанию НКЦ.

- exp_clearings_cc - определяет количество клиринговых сессий перед экспирацией, в которых будет применен вес риск-профиля exp_weight для клиентов БФ. Устанавливается и изменяется НКЦ на весь рынок. Применяется только в вечернюю или промежуточную клиринговую сессию.

- num_clr_2delivery (broker) - параметр, который устанавливает брокерская фирма путем подачи неторговой шлюзовой транзакции ChangeBFParametersNextSession. Означает количество клиринговых сессий перед экспирацией, в которых будет применен вес риск-профиля exp_weight (broker) для расчета гарантийного обеспечения брокера в случае выбора режима маржирования нетто. Имеет приоритетное значение над предустановленным НКЦ параметром exp_clearings_bf, в случае, если num_clr_2delivery (broker) меньше exp_clearings_bf.

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

#### Прекращение обязательств по однодневным фьючерсам с автопролонгацией ("вечным фьючерсам")

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

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

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

- PerpetualFuturesExecutionVoluntary (0x10000000000000) - техническая сделка вследствие добровольного выхода из вечного фьючерса (на основании поданной заявки);

- PerpetualFuturesExecutionForced (0x400000000000000) - техническая сделка вследствие принудительного выхода из вечного фьючерса (реализация неудовлетворённого спроса);

- PerpetualFuturesExecution (0x800000000000000) - техническая сделка в связанном инструменте вследствие выхода из вечного фьючерса;

- PerpetualFuturesExecutionPartialVoluntary (0x2000000000000000) - техническая сделка выхода из вечного фьючерса с принудительным закрытием позиции одной из сторон.

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

Единовременный платеж за принудительное исполнение ВФ автоматически уплачивается в вечернюю клиринговую сессию при исполнении поручений на выход из ВФ. Платеж за принудительный выход из ВФ транслируется в шлюзе:

- В потоке FORTS_CLR_REPL в таблице fut_pos в полях:

  - pos_enforcement_exec - Количество принудительно исполненных позиций для выхода из ВФ;

  - pay_enforcement_exec - Сумма платежа (с учетом знака) за принудительное исполнение.

- В потоке FORTS_CLR_REPL в таблице fut_sess_settl в поле exp_enforcement_pay - Сумма платежа (в рублях) за 1 контракт по сделкам прекращения обязательств по ВФ, в случае принудительного исполнения, от стороны подавшей поручение на выход из ВФ, стороне, которую принудительно закрыли.

#### Расчет сделки по заявке с указанием спреда TAS (В текущей версии данный сервис недоступен)

Сервис TAS (Trade at Settlement) - это возможность купить или продать фьючерсный контракт по будущей расчетной цене текущего торгового дня, определяемой в вечерний клиринг, плюс некий спред, который участник готов заплатить/уступить дополнительно от расчетной цены контракта. Именно спред является соглашением контрагентов в сделке и указывается в заявке TAS в качестве цены. Технически TAS в торговой системе реализован как обычный фьючерсный контракт с указанием спреда TAS в качестве цены в заявке (TAS-фьючерс), базисным активом (БА-фьючерсом) которого служит искомый фьючерсный контракт (фьючерс на фьючерс). Совершая сделку по заявке с указанием спреда TAS, участник получает позицию по TAS-фьючерсу.

Расчет сделки по заявке с указанием спреда TAS осуществляется в вечернюю клиринговую сессию. В результате позиция по TAS-фьючерсу превращается в позицию по БА-фьючерсу, что технически оформляется технической сделкой закрытия позиции в TAS-фьючерсе по цене 0 и сделкой открытия позиции в БА-фьючерсе по расчетной цене БА-фьючерса. Сделки в таблице сделок помечаются специальным признаком в полях xstatus_sell и xstatus_buy (бит 0x10000 (TASSettlement) - Расчет сделки по заявке с указанием спреда TAS).

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

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

Наименование признака | Битовая маска | Описание
--- | --- | ---
Типы рыночных заявок
Auction | 0x1 | Котировочная заявка (Day).
Opposite | 0x2 | Встречная заявка (IOC).
FOK | 0x80000 | Заявка Fill-or-Kill (FOK).
BOC | 0x1000000000000000 | Заявка Book-or-Cancel (BOC).
Типы клиринговых сделок
NonQuote | 0x4 | Признак заявки/сделки, которая не участвует в расчете котировок. Признак выставляется в адресных заявках и сделках, технических сделках, клиринговых сделках, сделках по ногам мультилегов и сделках RFS.
Exec | 0x20 | Сделка, возникшая в результате исполнения опциона. Флаг ставится для опционных сделок и для фьючерсных сделок, которые появились в результате экспирации опционов.
Expiration | 0x80 | Истечение времени жизни инструмента, фьючерса или опциона.
DUFlow | 0x800 | Сделка переноса ДУ между РФ.
TASSettlement | 0x10000 | Расчет сделки по заявке с указанием спреда TAS. (В текущей версии недоступно)
OptionLapse | 0x800000 | Сделка истечения опциона.
ClearingTrade | 0x2000000 | Техническая клиринговая сделка, сформированная вне торгов. Выставляется у всех клиринговых сделок.
FuturesExecution | 0x40000000 | Сделка исполнения фьючерса.
CollateralInstrument | 0x400000000 | Сделка по коллатеральному инструменту.
PerpetualFuturesExecutionVoluntary | 0x10000000000000 | Техническая сделка вследствие добровольного выхода из вечного фьючерса (на основании поданного поручения).
PerpetualFuturesExecutionForced | 0x400000000000000 | Техническая сделка вследствие принудительного выхода из вечного фьючерса (реализация неудовлетворённого спроса).
PerpetualFuturesExecution | 0x800000000000000 | Техническая сделка в связанном инструменте вследствие выхода из вечного фьючерса.
PerpetualFuturesExecutionPartialVoluntary | 0x2000000000000000 | Техническая сделка выхода из вечного фьючерса с принудительным закрытием позиции одной из сторон.
Адресные заявки и сделки
TransferClientPosition | 0x8 | Признак переноса позиций между БФ.
Address | 0x4000000 | Признак адресной заявки, адресной сделки, сделки RFS или заявки, формируемой по результатам проверки котировок RFS.
NegotiatedMatchByRef | 0x80000000 | Признак заявки или сделки, сформированной в режиме "Адресный с мэтчингом по уникальному коду".
TransferSource | 0x200000000 | Признак источника переноса позиций между БФ.
Операции над связками
REPOBack | 0x4000 | Признак операции над второй ногой связки.
Strategy | 0x8000000 | Признак заявки или сделки по связке. Ставится у операций над ногами связки.
Другое
DontCheckMoney | 0x10 | Не проверять обеспечение по клиентскому уровню.
ExternalUseEveningExecution | 0x100 | Признак заявки или сделки в вечернюю сессию.
DontCheckLimits | 0x200 | Не проверять лимиты по опционам.
Charge | 0x400 | Конец логической транзакции. Флаг ставится ядром на заявки, чтобы по ордер логу можно было получить число (и границы) транзакций, то есть последовательности заявок, порожденных одной транзакцией.
LastRec | 0x1000 | Признак последней записи в транзакции матчинга.
DueToCrossCancel | 0x2000 | Признак снятия пассивной заявки при кросс-сделке.
MoveOperation | 0x100000 | Признак передвижки заявки.
DeleteOperation | 0x200000 | Признак одиночного удаления заявки.
BulkDeleteOperation | 0x400000 | Признак группового удаления заявок.
OppositeOrderTailDeleteDueToCrossTrade | 0x20000000 | Признак удаления остатка IOC-заявки по причине кросс-сделки.
CODBulkDeleteOperation | 0x100000000 | Признак операции удаления заявки сервисом Cancel On Disconnect.
FineOperation | 0x1000000000 | Проставляется при снятии заявки в результате штрафа в RFS.
UKSBulkDeleteOperation | 0x2000000000 | Признак снятия заявок по команде UserKillSwitch
NCCRequest | 0x4000000000 | Признак того, что операция является следствием подачи поручения НКЦ
NCCBulkDeleteOperation | 0x8000000000 | Признак снятия заявок по команде DelOrdersByBFLimit
LiqNettingRF | 0x10000000000 | Признак заявки или сделки, сформированной в процессе ликвидационного неттинга.
ActiveSide | 0x20000000000 | Активная сторона в сделке. Заявка, приведшая к сделке при добавлении в стакан.
PassiveSide | 0x40000000000 | Пассивная сторона в сделке. Заявка из стакана, участвующая в сделке.
Synthetic | 0x200000000000 | Признак синтетической заявки и стороны сделки, соответствующей этой синтетической заявке.
RFSOrder | 0x400000000000 | Заявка из системы RFS.
Iceberg | 0x800000000000 | Признак айсберг-заявки, сделки по айсберг-заявке.
OperatorInputSA | 0x1000000000000 | Признак заявки или сделки, сформированной при блокировке по Расчетному коду.
DontFineRF | 0x80000000000000 | Признак невзимания штрафа за сделки урегулирования.
MorningSession | 0x100000000000000 | Признак того, что сделка совершена в утреннюю торговую сессию.
SyntheticPassive | 0x200000000000000 | Признак пассивной синтетической заявки.
DuringDiscreteAuction | 0x4000000000000000 | Признак заявки или сделки в аукционе открытия.

Для отличия адресных сделок от сделок, формируемых по результатам проверки котировок RFS, следует проверять не только бит Address, но и признак RFSOrder. В заявках и сделках, заключенных в результате сведения котировок из системы RFS, бит RFSOrder поднят, тогда как в адресных сделках этот бит снят.

Для удобства работы бэк-офисов информация в PLAZA II шлюзах и отчетах синхронизирована. Для этого в отчетах f04_XXYY.csv, f04clXXYYZZZ.csv, o04_XXYY.csv, o04clXXYYZZZ.csv используются поля signs_buy и signs_sell. Эти поля построены на основе битовой маски в PLAZA II.

Биты ExternalUseEveningExecution и MorningSession транслируются только в отчетах.

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

- SpotTransfer (0x8000);

- REPO (0x20000);

- IQSOrder (0x800000000).

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

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

Тип операции | Сделка закрытия позиции | Сделка открытия позиции | Дата и время, когда сделки появятся в отчете и шлюзе
--- | --- | --- | ---
Исполнение поставочного фьючерса | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки округляется с точностью до минимального шага цены. Техническая сделка, юридически не является сделкой. В шлюзах и отчётах в битовой маске признаки: NonQuote, Expiration, FuturesExecution, ClearingTrade. | Нет | Утром в день исполнения
Исполнение расчетного фьючерса | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки округляется с точностью до 5 знака после запятой. Техническая сделка, юридически не является сделкой. В шлюзах и отчётах в битовой маске признаки: NonQuote, Expiration, FuturesExecution, ClearingTrade. | Нет | Вечером в день исполнения фьючерса
Исполнение поставочного опциона | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки равна 0. Техническая сделка, юридически не является сделкой. В шлюзах и отчётах в битовой маске признаки: NonQuote, Exec, ClearingTrade. | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки округляется с точностью до 5 знака после запятой. Юридически является сделкой. В шлюзах и отчётах в битовой маске признаки: NonQuote, Exec, ClearingTrade. | Сделки исполнения опционов генерируются: В промклиринге В вечернем клиринге В зависимости от времени подачи заявки на исполнение опциона (генерация в ближайшем клиринге)
Исполнение расчетного опциона | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки округляется с точностью до 5 знака после запятой. Техническая сделка, юридически не является сделкой. В шлюзах и отчётах в битовой маске признаки: NonQuote, Exec, ClearingTrade. | Нет | Сделки исполнения опционов генерируются: В промклиринге В вечернем клиринге
Истечение опциона | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки равна 0. Техническая сделка, юридически не является сделкой. В шлюзах и отчётах в битовой маске признаки: NonQuote, Expiration, ClearingTrade, OptionLapse. | Нет | Вечером в день исполнения фьючерса
Перенос позиции ОБФ | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки равна 0. Техническая сделка, юридически не является сделкой. В шлюзах и отчётах в битовой маске признаки: NonQuote, Address, TransferClientPosition, ClearingTrade. | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки равна 0. Техническая сделка, юридически не является сделкой. В шлюзах и отчётах в битовой маске признаки: NonQuote, Address, TransferClientPosition, TransferSource, ClearingTrade. | Вечером
Добровольный выход из вечного фьючерса (на основании поданного поручения) | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки равна расчетной цене вечного фьючерса. Техническая сделка, юридически не является сделкой. В шлюзах и отчётах в битовой маске признаки: NonQuote, PerpetualFuturesExecutionVoluntary, ClearingTrade, PerpetualFuturesExecutionPartialVoluntary. | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки равна расчетной цене вечного фьючерса, умноженной на коэффициент, учитывающий разницу в размерностях инструментов. Юридически является сделкой. В шлюзах и отчётах в битовой маске признаки: NonQuote, PerpetualFuturesExecution, ClearingTrade. | Вечером в день подачи поручения на исполнение
Принудительный выход из вечного фьючерса (реализация неудовлетворённого спроса) | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки равна расчетной цене вечного фьючерса. Техническая сделка, юридически не является сделкой. В шлюзах и отчётах в битовой маске признаки: NonQuote, PerpetualFuturesExecutionForced, ClearingTrade, PerpetualFuturesExecutionPartialVoluntary. | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки равна расчетной цене вечного фьючерса, умноженной на коэффициент, учитывающий разницу в размерностях инструментов. Юридически является сделкой. В шлюзах и отчётах в битовой маске признаки: NonQuote, PerpetualFuturesExecution, ClearingTrade. | Вечером в день подачи поручения на исполнение
Расчет сделки по заявке с указанием спреда TAS (В текущей версии недоступно) | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки равна 0. Техническая сделка, юридически не является сделкой. В шлюзах и отчётах в битовой маске признаки: NonQuote, ClearingTrade, TASSettlement. | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки равна расчетной цене БА-фьючерса. Юридически является сделкой. В шлюзах и отчётах в битовой маске признаки: NonQuote, ClearingTrade, TASSettlement. | Вечером в день исполнения TAS-фьючерса

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

Операции в ходе торгов | Информация по операциям
--- | ---
Сделка по фьючерсу на акции на основании адресной заявки | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки округляется с точностью до минимального шага цены. Юридически является сделкой. В шлюзах и отчётах в битовой маске: признаки NonQuote, Address.
Сделка по фьючерсу на акции на основании безадресной заявки | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки округляется с точностью до минимального шага цены. Юридически является сделкой. В шлюзах и отчётах в битовой маске: все биты выключены.
Сделка по опциону на фьючерсы на акции на основании адресной заявки | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки округляется с точностью до минимального шага цены. Юридически является сделкой. В шлюзах и отчётах в битовой маске: признаки NonQuote, Address.
Сделка по опциону на фьючерсы на акции на основании безадресной заявки | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки округляется с точностью до минимального шага цены. Юридически является сделкой. В шлюзах и отчётах в битовой маске: все биты выключены.
Сделка по переносу позиций | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки округляется с точностью до 5 знака после запятой. Юридически не является сделкой. В шлюзах и отчётах в битовой маске: признаки NonQuote, Address, TransferClientPosition, TransferSource.
Техническая сделка на основании 1 части адресной парной заявки | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки округляется с точностью до 5 знака после запятой. Юридически является сделкой. В шлюзах и отчётах в битовой маске: признаки NonQuote, Address, Strategy.
Техническая сделка на основании 2 части адресной парной заявки | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки округляется с точностью до 5 знака после запятой. Юридически является сделкой. В шлюзах и отчётах в битовой маске: признаки NonQuote, Address, Strategy, REPOBack.
Техническая сделка на основании 1 части безадресной парной заявки | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки округляется с точностью до 5 знака после запятой. Юридически является сделкой. В шлюзах и отчётах в битовой маске: признаки NonQuote, Strategy.
Техническая сделка на основании 2 части безадресной парной заявки | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки округляется с точностью до 5 знака после запятой. Юридически является сделкой. В шлюзах и отчётах в битовой маске: признаки NonQuote, Strategy, REPOBack.
Сделка по фьючерсу на акции на основании сделки в RFS | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки округляется с точностью до минимального шага цены. Юридически является сделкой. В шлюзах и отчётах в битовой маске: признаки NonQuote, Address, RFSOrder.
Сделка по опциону на фьючерсы на акции на основании сделки в RFS | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки округляется с точностью до минимального шага цены. Юридически является сделкой. В шлюзах и отчётах в битовой маске: признаки NonQuote, Address, RFSOrder.
Техническая сделка по 1 части парной заявки на основании сделки в RFS | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки округляется с точностью до 5 знака после запятой. Юридически является сделкой. В шлюзах и отчётах в битовой маске: признаки NonQuote, Address, Strategy, RFSOrder.
Техническая сделка по 2 части парной заявки на основании сделки в RFS | В шлюзах и отчётах будет уникальный ненулевой id. Цена сделки округляется с точностью до 5 знака после запятой. Юридически является сделкой. В шлюзах и отчётах в битовой маске: признаки NonQuote, Address, Strategy, REPOBack, RFSOrder.

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

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

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

- Вечернюю дополнительную торговую сессию предыдущего рабочего дня (в случае ее проведения) — для реальных торгов длится с 19.05 до 23.50 по московскому времени.

- Утреннюю дополнительную торговую сессию текущего рабочего дня (в случае ее проведения) — для реальных торгов длится с 9.00 до 10.00 следующих календарных суток.

- Основную торговую сессию текущего рабочего дня — для реальных торгов длится с 10.00 до 18.50.

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

#### Промежуточный клиринг

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

В промежуточный клиринг изменяются:

- Расчетные цены инструментов, по которым были торговые операции в период вечерних/утренних торгов и первой половины дневных торгов. Старые и новые расчетные цены отображаются в специальных полях таблиц fut_sess_contents и opt_sess_contents потока FORTS_REFDATA_REPL.

- Свободные средства клиентов после расчета и перечисления вариационной маржи (премии). Перечисленная вариационная маржа (премия) отображается в специальных полях таблиц part и part_sa потока FORTS_PART_REPL.

В промежуточный клиринг не изменяются:

- Размер лимитов по инструментам.

- Состав торговых инструментов. Удаление старых инструментов и добавление новых осуществляется в основную клиринговую сессию.

#### Основной клиринг

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

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

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

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

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

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

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

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

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

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

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

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

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

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

##### Инструменты

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

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

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

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

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

- Поток с текущими значениями волатильности FORTS_VOLAT_REPL.

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

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

- Поток со справочной информацией FORTS_REFDATA_REPL.

- Поток с торговой информацией FORTS_TRADE_REPL.

- Поток со срезами стаканов FORTS_USERORDERBOOK_REPL.

- Потоки агрегированных стаканов.

- Потоки FORTS_PART_REPL, FORTS_POS_REPL, FORTS_INFO_REPL

- Поток биржевых индексов RTS_INDEX_REPL.

- Поток FORTS_CLR_REPL.

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

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

- Данные для новой торговой сессии закачены и рассчитаны (~18:54-18:55, Московского времени)

- Начало промежуточного клиринга (14:00, Московского времени)

- Денежные средства после промклиринга перерассчитаны (~14:01:30, Московского времени)

- Все расчетные процедуры в промклиринге закончены (~14:02, Московского времени)

- Начало основного клиринга (18:50, Московского времени)

- Данные после основного клиринга перерассчитаны (~18:54, Московского времени)

- Раздвижка лимитов закончена (в течение торгов)

- Начало приема заявок в аукцион открытия (~8.50, Московского времени)

- Окончание приема заявок в аукцион открытия (~8.59, Московского времени)

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

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
event_id | i8 | Уникальный идентификатор события
sess_id | i4 | Номер сессии
event_type | i4 | Тип события
message | c64 | Описание события
server_time | t | Время события

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

- FORTS_TRADE_REPL

- FORTS_INFO_REPL

- FORTS_PART_REPL

- FORTS_POS_REPL

- FORTS_REFDATA_REPL

- FORTS_ORDLOG_REPL

- FORTS_CLR_REPL

- FORTS_DEALS_REPL

- FORTS_FEE_REPL

- FORTS_FEERATE_REPL

- FORTS_BROKER_FEE_REPL

- FORTS_BROKER_FEE_PARAMS_REPL

- FORTS_PROHIBITION_REPL

- FORTS_COMMON_REPL

- FORTS_VM_REPL

- FORTS_VOLAT_REPL

- FORTS_USER_REPL

- FORTS_RMT_REPL

- FORTS_SESSIONSTATE_REPL

- FORTS_INSTRUMENTSTATE_REPL

- FORTS_SECURITYGROUPSTATE_REPL

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

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

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

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

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

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

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

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

- 23 (discrete_auction_add_order_started) - начало приема заявок в аукцион открытия; события данного типа транслируются в потоках FORTS_TRADE_REPL, FORTS_ORDLOG_REPL, FORTS_DEALS_REPL и FORTS_REFDATA_REPL

- 24 (discrete_auction_add_order_finished) - окончание приема заявок в аукцион открытия; события данного типа транслируются в потоках FORTS_TRADE_REPL, FORTS_ORDLOG_REPL, FORTS_DEALS_REPL и FORTS_REFDATA_REPL

- 36 (start_of_calendar_date) - начало календарного дня; события данного типа транслируются во всех потоках, где есть таблица 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 вычисление статусов по всем инструментам и их раздача клиентам происходят с некоторыми задержками относительно времени их (статусов) реального изменения в системе, что негативно сказывается на пользователях системы. Информация о текущем статусе торговой сессии и инструментов доступна в шлюзе в таблицах session, fut_sess_contents и opt_sess_contents, потока FORTS_REFDATA_REPL. В рамках программы импортозамещения и в целях ускорения раздачи информации по статусам инструментов и сессии в ТС SPECTRA в версии 8.3 реализован новый сервис - Сервис раздачи статусов инструментов.

Сервис раздачи статусов инструментов при изменении состояния инструментов или сессии, рассчитывает итоговые статусы инструментов и сессии, и раздает их в виде реплики потребителям. На выходе сервис выдает три новых потока:

- FORTS_SESSIONSTATE_REPL - Статус активной сессии.

- FORTS_INSTRUMENTSTATE_REPL - Статусы инструментов по активной сессии.

- FORTS_SECURITYGROUPSTATE_REPL - Статус по группе инструментов активной сессии.

Сервис раздает статусы инструментов по группам инструментов. К одному инструменту может быть применено несколько групповых статусов, соответственно один инструмент может входить в несколько групп. Раздача статуса инструмента по группам позволяет экономить трафик (инструментов много, групп мало), так как не надо получать обновления по всем инструментам, а также повышает скорость расчета самого статуса инструментов, так как пересчет ведется только для инструментов группы. Например, в ВК и ПК обновляются статусы по всем инструментам и в этом случае раздача по сети занимает секунды, получение статуса по 1 группе - миллисекунды.

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

##### Алгоритм вычисления статуса инструмента из групповых статусов

Инструмент входит в одну или более групп. Каждая группа имеет торговый статус в поле state таблицы security_group_state. Итоговый статус инструмента - это худший (самый строгий) из статусов групп, в которые входит инструмент. Статусы группы инструментов:

- '4' - Запрещено всё.

- '2' - Запрещено все кроме снятия заявки.

- '16' - Запрещено увеличение позиции.

- '8' - Сбор заявок в аукцион открытия.

- '0' - Разрешено все.

Статусы перечислены в порядке убывания приоритета (строгости ограничения).

Алгоритм вычисления торгового статуса инструмента из групповых статусов:

1. Обращаем внимание, что данные в потоках FORTS_REFDATA_REPL и FORTS_SECURITYGROUPSTATE_REPL должны быть засинхронизированы по синхрособытиям.

2. По потоку FORTS_REFDATA_REPL получаем список инструментов и их привязку к ФБК, секциям, режиму торгов и группе инструментов. По событию session_data_ready фиксируем список инструментов и их привязок, в течении торгов этот список не меняется.

3. Строим контейнер instrument_state по записям из fut_sess_contents и opt_sess_contents и записям из FORTS_SECURITYGROUPSTATE_REPL.security_group_state. Элементы контейнера:

   - isin_id - Уникальный идентификатор инструмента. Из записи в fut_sess_contents/opt_sess_contents.

   - section_id - Идентификатор секции. По fut_sess_contents.base_contract_code/opt_sess_contents.base_contract_code в fut_vcb/opt_vcb берем section_id.

   - base_contract_id - Идентификатор ФБК (фьючерсного базового контракта). По fut_sess_contents.base_contract_code/opt_sess_contents.base_contract_code в fut_vcb/opt_vcb берем base_contract_id.

   - trade_mode_mask - Режим торгов, в который входит инструмент. От значение из поля fut_sess_contents.trade_mode_id/opt_sess_contents.trade_mode_id отнимаем единицу и преобразуем в маску с одним включенным битом (флагом).

   - group_mask - Маска, в которой включены биты (флаги) с номерами групп, в которые входит данный инструмент. Значение из поля fut_sess_contents.group_mask/opt_sess_contents.group_mask.

   - Контейнер map<security_group_id, state> security_groups_map. map - отсортированный ассоциативный контейнер, содержащий пары ключ-значение с уникальными ключами.

4. Обработка записи из FORTS_SECURITYGROUPSTATE_REPL.security_group_state выполняется следующим образом. Для каждой записи по полю security_group_state.type определяем тип группового статуса и выполняем соответствующую обработку:

   1. security_group_state.type=1 - На торговую сессию.

      Во всех инструментах в контейнере instrument_state в контейнер security_groups_map добавляем элемент с полями: security_group_id, state. Если такой элемент уже есть в контейнере, то обновляем в элементе значение поля state на значение поля state, взятое из обрабатываемой записи из FORTS_SECURITYGROUPSTATE_REPL.security_group_state.

   2. security_group_state.type=2 - Секция.

      В контейнере instrument_state находим все инструменты, у которых значение поля section_id совпадает со значением поля section_id из обрабатываемой записи. В найденных инструментах в контейнер security_groups_map добавляем элемент с полями: security_group_id, state. Если такой элемент уже есть в контейнере, то обновляем в элементе значение поля state на значение поля state, взятое из обрабатываемой записи из FORTS_SECURITYGROUPSTATE_REPL.security_group_state.

   3. security_group_state.type=3 - Секция + Режим торгов.

      В контейнере instrument_state находим все инструменты, у которых значение поля section_id совпадает со значением поля section_id из обрабатываемой записи, и значение поля trade_mode_mask совпадает со значением поля trade_mode_mask из обрабатываемой записи. В найденных инструментах в контейнер security_groups_map добавляем элемент с полями: security_group_id, state. Если такой элемент уже есть в контейнере, то обновляем в элементе значение поля state на значение поля state, взятое из обрабатываемой записи из FORTS_SECURITYGROUPSTATE_REPL.security_group_state.

   4. security_group_state.type=4 - ФБК.

      В контейнере instrument_state находим все инструменты, у которых значение поля base_contract_id совпадает со значением поля base_contract_id из обрабатываемой записи. В найденных инструментах в контейнер security_groups_map добавляем элемент с полями: security_group_id, state. Если такой элемент уже есть в контейнере, то обновляем в элементе значение поля state на значение поля state, взятое из обрабатываемой записи из FORTS_SECURITYGROUPSTATE_REPL.security_group_state.

   5. security_group_state.type=5 - Инструменты из режима торгов.

      В контейнере instrument_state находим все инструменты, у которых значение поля trade_mode_mask совпадает со значением поля trade_mode_mask из обрабатываемой записи. В найденных инструментах в контейнер security_groups_map добавляем элемент с полями: security_group_id, state. Если такой элемент уже есть в контейнере, то обновляем в элементе значение поля state на значение поля state, взятое из обрабатываемой записи из FORTS_SECURITYGROUPSTATE_REPL.security_group_state.

   6. security_group_state.type=6 - Инструменты из режима торгов + ФБК.

      В контейнере instrument_state находим все инструменты, у которых значение поля trade_mode_mask совпадает со значением поля trade_mode_mask из обрабатываемой записи, и значение поля base_contract_id совпадает со значением поля base_contract_id из обрабатываемой записи. В найденных инструментах в контейнер security_groups_map добавляем элемент с полями: security_group_id, state. Если такой элемент уже есть в контейнере, то обновляем в элементе значение поля state на значение поля state, взятое из обрабатываемой записи из FORTS_SECURITYGROUPSTATE_REPL.security_group_state.

   7. security_group_state.type=7 - Группа инструментов.

      В контейнере instrument_state находим все инструменты, у которых в поле group_mask включен бит из поля group_mask (instrument_state.group_mask & security_group_state.group_mask != 0) из обрабатываемой записи. В найденных инструментах в контейнер security_groups_map добавляем элемент с полями: security_group_id, state. Если такой элемент уже есть в контейнере, то обновляем в элементе значение поля state на значение поля state, взятое из обрабатываемой записи из FORTS_SECURITYGROUPSTATE_REPL.security_group_state.

   8. security_group_state.type=8 - Группа инструментов + ФБК.

      В контейнере instrument_state находим все инструменты, у которых в поле group_mask включен бит из поля group_mask (instrument_state.group_mask & security_group_state.group_mask != 0) из обрабатываемой записи, и значение поля base_contract_id совпадает со значением поля base_contract_id из обрабатываемой записи. В найденных инструментах в контейнер security_groups_map добавляем элемент с полями: security_group_id, state. Если такой элемент уже есть в контейнере, то обновляем в элементе значение поля state на значение поля state, взятое из обрабатываемой записи из FORTS_SECURITYGROUPSTATE_REPL.security_group_state.

5. Определение текущего статуса инструмента выполняется следующим образом. В элементе контейнера instrument_state проходим по элементам контейнера map<security_group_id, state> security_groups_map и определяем текущий статус инструмента как наихудший в порядке убывания приоритета (строгости ограничения) по значениям поля state.

Также в CGate (\SpectraCGate\SDK\samples | /usr/share/doc/cgate-examples) добавлен тестовый пример instruments_state, который демонстрирует расчет статусов инструментов по потоку FORTS_SECURITYGROUPSTATE_REPL.

#### Расписание игровых и тестовых торгов

Помимо реальной торговой системы SPECTRA, существует игровая система и две тестовых системы: T0 - с версией ТС, аналогичной реальной системе SPECTRA, и T+1 - с аналогичной реальной системе SPECTRA или следующей версией ТС.

Расписание работы игровой системы:

- Вечерняя торговая сессия: 16:00 - 22:00.

- Утренняя торговая сессия: 06:00 - 08:55.

- Основная торговая сессия: 09:00 - 15:45.

- Промклиринг: 13:00 - 13:05.

- Клиринг: 15:45 - 16:00.

Расписание работы тестовых систем T0 и T+1:

- Вечерняя торговая сессия: 14:15 - 23:50.

- Утренняя торговая сессия: 06:00 - 06:14.

- Основная торговая сессия: 06:15 - 13:45.

- Промклиринг: 11:00 - 11:04.

- Точки Х для поставки: 13:00, 13:15.

- Поставка: 13:30 - 14:00.

Полное расписание сессий также можно посмотреть в таблице session потока FORTS_REFDATA_REPL или в терминале в таблице "Сессии".

#### Аукцион открытия

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

Основные особенности аукциона открытия:

- В аукционе открытия могут участвовать только фьючерсы, включая вечные фьючерсы. Календарных спредов и опционов нет. Признак допуска инструмента к участию в аукционе открытия устанавливается на уровне БА и действует на все инструменты этого БА.

- В период сбора заявок в аукцион открытия можно выставлять только безадресные котировочные заявки (тип Day), включая айсберги. Заявки типа BOK, FOK, IOC - недопустимы.

- Контроль кросс-заявок: пересечение ценовых уровней противоположных заявок с одним ИНН не допускается (снимается более поздняя заявка), при этом настройки "Разрешить кросс-сделки" и "Снять пассивную заявку при кросс-сделке" не учитываются.

- Цены заявок должны находиться в лимитах ценового коридора инструмента.

- Ограничения на выставление заявок в соответствующий торговый период на уровне БФ, распространяются и на аукцион открытия, проводимый перед этим торговым периодом.

- Безадресные заявки из предшествующего торгового периода участвуют в аукционе открытия, включая айсберги и заявки типа Book-or-Cancel.

- В период сбора заявок можно ставить и снимать (если это разрешено для инструментов данного БА в этом аукционе) заявки, перестановка заявок запрещена в аукционе открытия.

- Время начала сбора заявок – за 10 мин до старта торгового периода. Этому моменту в системе соответствует приход синхрособытия discrete_auction_add_order_started в таблицы sys_events потоков FORTS_TRADE_REPL и FORTS_REFDATA_REPL.

- Время окончания сбора заявок – случайное для всех инструментов в промежутке, указанном в полях discrete_auction.add_order_finish_from и discrete_auction.add_order_finish_till таблицы discrete_auction в потоке FORTS_REFDATA_REPL. Этому моменту в системе соответствует приход синхрособытия discrete_auction_add_order_finished в таблицы sys_events потоков FORTS_TRADE_REPL и FORTS_REFDATA_REPL.

- После завершения фазы сбора заявок и до окончания аукциона не допускаются операции с заявками, включая удаление.

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

- Не сведенные в процессе аукциона открытия заявки переходят в основной режим торгов.

Информация об аукционах открытия в таблицах торгового интерфейса:

- Информация о расписании назначенных аукционов открытия содержится в таблицах discrete_auction и discrete_auction_base_contract потока FORTS_REFDATA_REPL торгового интерфейса.

- Цена аукциона открытия транслируется в шлюзе в поле opening_auction_price таблицы common потока FORTS_COMMON_REPL на протяжении утренней и дневной торговой сессии. В вечернюю торговую сессию цена аукциона открытия равна нулю.

- Информация о состоянии торгов по инструменту передается в поле state (добавлены новые значения 6 и 7) в таблице fut_sess_contents потока FORTS_REFDATA_REPL.

- У всех заявок, попавших в аукцион открытия, и сделок, сформированных по результатам этого аукциона, в таблицах заявок и сделок транслируется специальный отличительный признак - DuringDiscreteAuction (0x4000000000000000).

#### Торги в выходные дни

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

Временной интервал дополнительной торговой сессии выходного дня: 10:00 - 19:00. Аукцион открытия (АО) планируется проводить перед каждой дополнительной торговой сессией выходного дня. Время проведения аукциона: 9:50 - 10:00.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Информация о размере учитываемого обеспечения доступна в отчетах.

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

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

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

##### Маржирование календарных спредов

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

- полунетто – величина ГО определяется на основе большего ГО из инструментов, входящих в спред;

- нетто – величина ГО определяется, исходя из ставки рассогласования цен на инструменты, входящие в спред.

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

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

Для клиентских разделов можно изменять режим маржирования календарных спредов с помощью параметра calendar_spread_margin_type метода ChangeClientParametersNextSession.

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

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

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

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

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

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

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

Режим определения торгового лимита брокерской фирмы определяется параметром limit_tied_to_money метода ChangeBFParametersNextSession.

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

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

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

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

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

##### Единый пул обеспечения

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

В торговой системе SPECTRA, профили активов учитываются одновременно как оценочная стоимость актива с учетом знака профиля (изменяет торговый лимит) и позиция по специальному инструменту (для профиля рубля позиция не создается). Позиция по специальному инструменту создается на клиентском разделе БФ, если профиль был переведен на этот раздел, либо на СпецБФ (Код Клиента 000), если профиль был переведен без указания клиентского раздела. Для каждого актива, по которому может быть передан профиль, в торговой системе SPECTRA существует свой специальный инструмент - коллатерал (имеет суффикс _CLT в имени инструмента). Подавать заявки и заключать сделки по такому инструменту запрещено. Единственный способ изменения позиции по специальному инструменту - это перевод соответствующего профиля актива в/из клиринговой системы SPECTRA. При расчете величины ГО на счетах/суб-счетах участника позиция по специальному инструменту маржируется аналогично позиции по фьючерсу на тот же базовый актив.

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

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

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

##### Запреты - общие возможности

Реализованный в системе SPECTRA механизм запретов позволяет запретить клиенту (группе клиентов) подавать транзакции по торговому инструменту или группе инструментов. Общие принципы механизма запретов:

- Запреты накладываются на стандартное подмножество счетов: РФ, БФ, клиенты. Обращаем внимание, что по РФ в настоящее время запреты не используются.

- Запреты применяются по следующим подмножествам торговых инструментов:

  - отдельный фьючерс или все опционы на один и тот же базовый инструмент;

  - инструменты с общим базовым активом;

  - инструменты торговой секции;

  - все инструменты.

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

- Запреты начинают действовать сразу после выставления. Для запретов не существует возможности задания интервала их применения.

Атрибуты запретов

Атрибут | Описание
--- | ---
xprohibition_id | Уникальный идентификатор запрета.
client_code | Код участника. Может содержать 2, 4 или 7 символов в зависимости от того, на какое подмножество счетов распространяется запрет.
initiator | Инициатор запрета. Значение определяется в зависимости от уровня логина, выставившего запрет. Может принимать следующие значения: 1 - Главный трейдер РФ; 2 - Администратор КЦ; 3 - Администратор ТС. Параметр используется для определения того, действует ли запрет на логин, подающий транзакцию. Ниже в таблице приведена матрица влияния запретов от разных инициаторов на различные уровни логинов, подающих транзакцию. Обращаем внимание, что все запреты, выставляемые пользователем с помощью шлюзовых команд (см. ниже), имеют инициатора - '1 - Главный трейдер РФ'.
section | Идентификатор секции. Используется для выставления запрета на торговлю всеми инструментами в секции. Может принимать следующие значения: 1 - Фондовая; 2 - Товарная; 3 - Денежная.
base_contract_code | Код базового актива. Запрет выставляется только на инструменты, базирующиеся на этом БА.
isin_id | Уникальный числовой идентификатор инструмента. Используется для запретов на торговлю конкретным инструментом.
priority | Приоритет запрета. Автоматически вычисляется из параметров запрета (см ниже).
group_mask | Битовая маска групп инструментов, по которым действует запрет. Может принимать следующие значения: 0x40000000 - Фьючерсы. 0x80000000 - Опционы.
type | Тип запрета. Может принимать следующие значения: 0 - Разрешены все операции. Используется для точечного разрешения в случае наличия более широкого запрета; 1 - Запрет на открытие позиций; 2 - Запрет на выставление любых заявок; 3 - Запрет на открытие позиций на продажу; 0x08 - Запрет брокера на подачу поручений на Экспирацию; 0x10 - Запрет Главного трейдера РФ на подачу поручений на Экспирацию. Но ему самому - можно; 0x20 - Запрет на запрос потока ликвидности без автоподтверждения (RFS); 0x40 - Запрет на запрос потока ликвидности (RFS); 0x80 - Запрет на заключения сделки при недостаточном количестве котировок (RFS); 0x100 - Запрет на запрос потока ликвидности с ограничением времени жизни котировок (RFS). Типы запретов 0-3 упорядочены по строгости следующим образом: 2 > 1 > 3 > 0.
is_legacy | Признак пользовательского запрета. Может принимать следующие значения: 0 - Запрет был выставлен Администратором торгов или клиринга и не может быть изменен пользователем; 1 - Запрет был выставлен пользователем и может быть изменен средствами шлюзового API.

Таблица 1. Матрица влияния запретов

Уровень логина / Инициатор | Главный трейдер РФ | Администратор КЦ | Администратор ТС
--- | --- | --- | ---
Клиент | + | + | +
БФ | + | + | +
РФ, трейдер | + | + | +
РФ, главный трейдер | - | + | +

Приоритеты запретов

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

Приоритет | Группа счетов | Группа инструментов
--- | --- | ---
9 | Клиентский код | инструмент, isin_id != 0
8 | Клиентский код | БА, base_contract_code != 0
7 | Клиентский код | все инструменты
6 | Код БФ | инструмент, isin_id != 0
5 | Код БФ | БА, base_contract_code != 0
4 | Код БФ | все инструменты
3 | Код РФ | инструмент, isin_id != 0
2 | Код РФ | БА, base_contract_code != 0
1 | Код РФ | все инструменты

Применение запретов

Ниже очень кратко описан алгоритм поиска эффективного запрета для заявки:

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

- Среди этого множества запретов выбираются запреты с наибольшим приоритетом, а среди них самый строгий запрет (см. выше описание параметра type).

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

Таким образом, так как запреты предназначены для ограничения операций, то среди запретов разных инициаторов выбирается наиболее строгий. То есть, даже администратор не сможет преодолеть запрет на заявки, выставленный по всем инструментам на БФ (priority 4) каким-нибудь логином уровня БФ, или запрет на заявки, выставленный по всем инструментам на всю РФ главным трейдером (priority 1). Потому что запрет на заявки - это самый строгий запрет. Если его установил другой инициатор, то запрет может быть отменен (или преодолен для конкретного инструмента и/или клиента) только самим инициатором.

Интерфейсы

Запреты транслируются в шлюзе в таблице prohibition потока FORTS_PROHIBITION_REPL.

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

Выставление запретов (примеры конфигурации запретов)

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

1. Примеры задания запретов, когда все клиенты имеют одинаковые права.

   1. Запретить все операции по n БА (список запрещенных БА). n < 0.5*M, где М – общее количество БА.

      - Ставятся n запретов БФ на БА. Тип запрета - state=2 (запрет на выставление любых заявок), приоритет запрета - priority=5 (Код БФ / БА, base_contract_code != 0).

        Добавление нового БА, входящего в список запрещённых БА, требует явного выставления запрета.

        Добавление нового БА, не входящего в список запрещённых БА, не требует выставления нового запрета.

   2. Запретить все операции по n БА (список запрещенных БА). n > 0.5*M, где М – общее количество БА. Сценарий отличается от предыдущего соотношением между количеством запрещенных и разрешенных БА.

      - Ставится запрет БФ на все БА. Тип запрета - state=2 (запрет на выставление любых заявок), приоритет запрета - priority=4 (Код БФ / все инструменты).

      - Ставятся М-n разрешений БФ на разрешенные БА (обратного множества к запрещенным БА). Тип запрета - state=0 (разрешены все операции), приоритет запрета - priority=5 (Код БФ / БА, base_contract_code != 0).

        Добавление нового БА, входящего в список запрещённых БА, не требует выставления запрета.

        Добавление нового БА, не входящего в список запрещённых БА, требует выставления по нему разрешения.

2. Примеры задания запретов, когда клиенты делятся на две группы: квалифицированные инвесторы и неквалифицированные инвесторы.

   Количество квалифицированных инвесторов = m. Количество неквалифицированных инвесторов = n.

   Неквалифицированные инвесторы должны иметь доступ только к БА из группы L. Квалифицированные инвесторы имеют доступ ко всем БА.

   1. Разрешить неквалифицированным инвестором торговать только по БА из группы L и запретить по остальным БА. Квалифицированным инвестором разрешить торговать по всем БА. m < n - квалифицированных инвесторов меньше.

      - Ставится запрет БФ на все БА. Тип запрета - state=2 (запрет на выставление любых заявок), приоритет запрета - priority=4 (Код БФ / все инструменты).

      - Ставятся разрешения БФ на БА из группы L. Тип запрета - state=0 (разрешены все операции), приоритет запрета - priority=5 (Код БФ / БА, base_contract_code != 0). Т.е. будет разрешено всем клиентам БФ.

      - Ставятся разрешения квалифицированным инвесторам БФ на все БА. Тип запрета - state=0 (разрешены все операции), приоритет запрета - priority=7 (Клиентский код / все инструменты). Т.е. будет разрешено только всем квалифицированным инвесторам БФ.

        Добавление нового квалифицированного инвестора, требует выставить по нему разрешение.

        Добавление нового неквалифицированного инвестора, не требует изменений в запретах.

   2. Разрешить неквалифицированным инвестором торговать только по БА из группы L и запретить по остальным БА. Квалифицированным инвестором разрешить торговать по всем БА. m >= n - квалифицированных инвесторов больше. Сценарий отличается от предыдущего соотношением между количеством квалифицированных и неквалифицированных инвесторов.

      - Ставятся запреты неквалифицированным инвесторам БФ на БА, не входящие в группу L. Тип запрета - state=2 (запрет на выставление любых заявок), приоритет запрета - priority=8 (Клиентский код / БА, base_contract_code != 0).

        Добавление нового квалифицированного инвестора, не требует изменений в запретах.

        Добавление нового неквалифицированного инвестора, потребует выставить запрет.

Запреты с пользовательским приоритетом

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

- 10 – пользовательский приоритет низкий;

- 11 – пользовательский приоритет средний;

- 12 – пользовательский приоритет высокий.

Для выставления запретов с пользовательским приоритетом в команды FutChangeClientProhibit и OptChangeClientProhibit добавлено поле client_priority (i4), которое принимает значение 10, 11 или 12 (низкий, средний, высокий). Если в команде в поле client_priority указано значение 10, 11 или 12, то выставляется запрет с указанным пользовательский приоритетом. Если пользовательский приоритет не указан, то приоритет будет установлен автоматически, в соответствии с параметрами запрета.

##### Автоматические запреты

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

- 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, то при выставлении запрета автоматически снимаются все активные заявки. Проверки на уровне БФ и клиента осуществляются независимо.

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

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

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

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

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

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

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

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

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

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

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

С технической точки зрения при приостановке торгов в системе 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 реализована поддержка отрицательных цен, обеспечивающая корректное поведение системы в случае ухода цен фьючерсов и страйков опционов в отрицательную зону в ходе торгов или в результате клиринга. Для каждого базового актива возможен один из двух режимов поддержки отрицательных цен:

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

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

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

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

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

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

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

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

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

Поток | Таблица | Поле | Описание
--- | --- | --- | ---
FORTS_TRADE_REPL | orders_log | price | Цена в заявке
FORTS_TRADE_REPL | orders_log | deal_price | Цена заключенной сделки
FORTS_TRADE_REPL | user_deal | price | Цена заключенной сделки
FORTS_ORDLOG_REPL | orders_log | price | Цена в заявке
FORTS_ORDLOG_REPL | orders_log | deal_price | Цена заключенной сделки
FORTS_USERORDERBOOK_REPL | orders | price | Цена в заявке
FORTS_ORDBOOK_REPL | orders | price | Цена в заявке
FORTS_COMMON_REPL | common | best_buy | Цена лучшей заявки на покупку
FORTS_COMMON_REPL | common | best_sell | Цена лучшей заявки на продажу
FORTS_COMMON_REPL | common | open_price | Цена открытия
FORTS_COMMON_REPL | common | close_price | Цена закрытия
FORTS_COMMON_REPL | common | price | Цена последней сделки
FORTS_COMMON_REPL | common | min_price | Минимальная цена
FORTS_COMMON_REPL | common | max_price | Максимальная цена
FORTS_COMMON_REPL | common | avr_price | Средневзвешенная цена
FORTS_COMMON_REPL | common | settlement_price_open | Расчетная цена предыдущей сессии
FORTS_COMMON_REPL | common | market_price | Текущая рыночная цена
Потоки агрегированных стаканов FORTS_AGGRXX | orders_aggr | price | Ценовой уровень
FORTS_POS_REPL | position | waprice | Учетная цена позиции
FORTS_POS_REPL | position_sa | waprice | Учетная цена позиции
FORTS_REFDATA_REPL | fut_sess_contents | limit_up | Верхний лимит цены
FORTS_REFDATA_REPL | fut_sess_contents | limit_down | Нижний лимит цены
FORTS_REFDATA_REPL | fut_sess_contents | settlement_price_open | Расчетная цена на начало сессии
FORTS_REFDATA_REPL | fut_sess_contents | settlement_price | Расчетная цена после последнего клиринга
FORTS_REFDATA_REPL | fut_instruments | settlement_price_open | Расчетная цена на начало сессии
FORTS_REFDATA_REPL | fut_instruments | settlement_price | Расчетная цена после последнего клиринга
FORTS_REFDATA_REPL | opt_sess_contents | strike | Цена исполнения
FORTS_MM_REPL | fut_MM_info | price_edge_sell | Цена худшей заявки на продажу, вошедшей в спред
FORTS_MM_REPL | fut_MM_info | price_edge_buy | Цена худшей заявки на покупку, вошедшей в спред
FORTS_CLR_REPL | fut_sess_settl | settl_price | Расчетная цена
FORTS_INFO_REPL | futures_params | risk_range_center | Центр расчета риска
FORTS_INFO_REPL | futures_params | settlement_price | Расчетная цена последнего клиринга
FORTS_INFO_REPL | options_params | strike | Цена исполнения
FORTS_REJECTEDORDERS_REPL | rejected_orders | price | Цена в заявке

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

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

- трансляция отрицательного значения в качестве индикативной текущей рыночной цены, установленной Администратором торгов (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".

#### Сервисы МБ в рамках Указания 6681-У - регулирование маржинальной торговли брокерских клиентов

В рамках указания ЦБ 6681-У к Брокерам устанавливаются дополнительные требования по соблюдению нормативов НПР1 (норматив покрытия риска при исполнении поручения клиента, >0) и НПР2 (норматив покрытия риска при изменении стоимости портфеля клиента, >0). В рамках Указания предусматривается возможность использования "рыночного метода" для Участников, когда при расчете НПР-ов используется индикативная ВМ МБ для переоценки портфеля, и ГО МБ, расчет которого осуществляется в соответствии с правилами расчета размера индивидуального клирингового обеспечения, требуемого для обеспечения обязательств, исполнение которых осуществляется за счет портфеля клиента.

##### ГО с учетом категории уровня риска клиента

В ТС SPECTRA на уровне оконечного клиента (7кк) можно задать признак - Категория уровня риска клиента:

- "0" - Не указано (значение по умолчанию)

- "1" - Клиент с Начальным Уровнем Риска (КНУР)

- "2" - Клиент со Стандартным Уровнем Риска (КСУР)

- "3" - Клиент с Повышенным Уровнем Риска (КПУР)

- "4" - Клиент с Особым Уровнем Риска (КОУР)

Задание уровня риска клиента производится самими участниками через систему ЕРК, участник может не передавать категорию для своего клиента и в этом случае используется категория по умолчанию (значение "0"). Существует возможность менять категорию внутри дня, признаки КСУР\КПУР\КНУР\КОУР применяются в ТС SPECTRA в вечерний клиринг. При онлайн-регистрации на Срочном Рынке передается категория, которую Участник указал в онлайне, применение категории в ТС SPECTRA также осуществляется онлайн.

Категория уровня риска клиента транслируется в шлюзе в потоках FORTS_REFDATA_REPL и FORTS_INFO_REPL в таблице investor в поле client_risk_level.

Клиентское ГО (на уровне 7кк) считается с учетом категории уровня риска клиента. При расчете учитываются соответствующие категории риск-параметры (категорийные ставки рыночного риска - MR-ы). Если уровень риска клиента не задан (значение "0"), используются базовые значения ставок риска, установленные НКЦ.

##### Расчет НПР-ов в рыночном методе

Расчет НПР-ов осуществляется на стороне Брокера с использованием выходных данных нового RMT-сервиса (regulation of margin trading):

- ГО б/з - ГО МБ без заявок. Считается:

  - без учета заявок;

  - с учетом категории уровня риска клиента;

  - с учетом текущего реализованного риска (с учетом текущей цены);

  - по риск-параметрам на начало сессии с учетом проведенных раздвижек.

- ВМ - Индикативная вариационная маржа с учетом текущего индикативного курса валют (рассчитывается аналогично текущей индикативной ВМ, учитывает в т.ч. вариационную маржу по закрытым позициям).

- NOV - Net Option Value. Текущий NOV по портфелю 7кк с учетом текущего курса и текущих цен опционов.

Сервис производит расчет раз в 10 мин по всем 7кк, с трансляцией данных в потоке FORTS_RMT_REPL.

Формулы для расчета НПР-ов:

                        НПР1 = начальная стоимость портфеля + ВМ + NOV - ГО б/з

                        НПР2 = начальная стоимость портфеля + ВМ + NOV - (ГО б/з)/2

При условии, когда начальный лимит (money_amount) <= начальной стоимости портфеля, можно говорить о том, что биржевой пре-трейд (money_free>0) с учетом категории обеспечивает непробитие НПР1 (>0), посчитанного по рыночному методу, в подавляющем большинстве случаев.

##### Текущий оперативный риск по позиции

Текущий оперативный риск по позиции - величина, рассчитываемая по правилам расчета размера индивидуального клирингового обеспечения, и отражает размер ГО "если клиринг провести прямо сейчас". Дополнительная прогнозная величина, которая может быть использована Участником для принятия решений относительно позиций клиента. Рассчитывается также RMT-сервисом:

- с учетом текущих риск-параметров и рыночных данных;

- без учета заявок;

- с учетом категории уровня риска клиента.

Сервис производит расчет раз в 10 мин по всем 7кк, с трансляцией данных в потоке FORTS_RMT_REPL.

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

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

Доступ к ТС клиенту участника предоставляется путем выделения ему персонального идентификатора - SMA-логина, с которого напрямую можно выставлять заявки. Доступ возможен через PLAZA II, 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-логин х Инструмент* | Руб | Сразу
5 | Максимальная сумма заявок за торговый день (брутто) | SMA-логин или SMA-логин х Инструмент* | Руб | Сразу
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-логина сохраняется до конца торгового дня и восстанавливается при рестартах ТС в технологический перерыв или при сбоях.

### Разделение статусов участников торгов и участников клиринга

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

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

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

- Участник клиринга и участник торгов в одном лице (УК+УТ - текущий статус всех участников). УК+УТ могут сами заключать сделки на организованных торгах, и одновременно являются контрагентами НКЦ по заключенным сделкам. Порядок оказания клиринговых услуг и услуг по организации торгов для таких участников не изменяется.

#### Соответствие сущностям системы

В терминах SPECTRA сущностью, описывающей участника клиринга, является Расчетная фирма, при этом РФ может принадлежать либо УК, либо УК+УТ.

Участнику торгов соответствуют Брокерские фирмы, открытые в рамках Расчетной фирмы соответствующего участника клиринга. При этом:

- одному участнику торгов могут быть открыты несколько Брокерских фирм в рамках одной Расчетной фирмы (одного участника клиринга);

- одному участнику торгов могут быть открыты несколько Брокерских фирм в рамках разных Расчетных фирм (разных участников клиринга).

У БФ участник торгов может совпадать в одном лице с участником клиринга (УК=УТ), либо не совпадать (УК!=УТ).

Если РФ - УК, у нее могут быть зарегистрированы только БФ, у которых УК не совпадает в одном лице с УТ. Если РФ - УК+УТ, то возможны комбинации форм БФ.

Рисунок 2. Иерархия сущностей

#### Разделение полномочий участников

Разделение статусов участников торгов и участников клиринга подразумевает и разделения полномочий участников на торговые и клиринговые. Под полномочиями здесь понимаются права на просмотр информации в шлюзе и права на выполнение операций.

Основные полномочия участника торгов, которые не доступны участнику клиринга - это подача/снятие торговых заявок и заключение сделок на основании поданных заявок. При этом участник клиринга может совершать некоторые действия с заявками, подавая поручения в НКЦ, а уже НКЦ может выставлять заявку от имени участника клиринга, а также снимать другие заявки (подробнее см. раздел 2.7.3. Урегулирование неисполненных обязательств).

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

Разделение полномочий производится на уровне логина доступа к ТС. Исходя из этого логины могут обладать следующими полномочиями:

- "Логин УК" - логин, обладающий полномочиями участника клиринга.

- "Логин УТ" - логин, обладающий полномочиями участника торгов.

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

Ниже в таблице приведен список полномочий "Логин УК":

Операция | Доступные шлюзовые команды
--- | ---
Установка лимитов по БФ. | ChangeBFMoney
Установка торговых лимитов по БФ. | ChangeBFLimit
Перевод денежных средств между двумя БФ одного РК. | ExchangeBFMoney
Установка риск-параметров по БФ. | ChangeBFParametersNextSession
Перенос позиций между БФ (только для логинов уровня РФ). | TransferClientPosition
Подача Запросов к НКЦ на заключение сделок с УТ. Технически реализована как подача заявки с особым признаком. | AddOrder
Отмена Запроса к НКЦ на заключение сделок с УТ. Технически реализована как удаление заявки с особым признаком. | DelOrder
Изменение Запроса к НКЦ на заключение сделок с УТ. Технически реализована как изменение заявки с особым признаком. | MoveOrder
Подача Запросов к НКЦ на проверку достаточности обеспечения по БФ. | DelOrdersByBFLimit
Подача/удаление поручений на досрочную экспирацию опционов. | OptChangeExpiration
Подача/удаление поручений на исполнение однодневных фьючерсов с автопролонгацией. | FuturesExecutionRequest
Управление SMA-логинами. | SetSmaPreTradeCheck; DelSmaPreTradeCheck; UserKillSwitch
Пересчет центрального страйка. | OptRecalcCS

Ниже в таблице приведен список полномочий "Логин УТ":

Операция | Доступные шлюзовые команды
--- | ---
Подача торговых заявок. | AddOrder; IcebergAddOrder
Удаление торговых заявок. | DelOrder; DelUserOrders; IcebergDelOrder
Изменение торговых заявок. | MoveOrder; IcebergMoveOrder
Подача/удаление поручений на досрочную экспирацию опционов. | OptChangeExpiration
Подача/удаление поручений на исполнение однодневных фьючерсов с автопролонгацией. | FuturesExecutionRequest
Управление SMA-логинами. | SetSmaPreTradeCheck; DelSmaPreTradeCheck; UserKillSwitch
Пересчет центрального страйка. | OptRecalcCS

"Логин УК+УТ" обладает совокупным набором полномочий "Логина УК" и "Логина УТ", за исключением подачи Запросов к НКЦ, которые может подавать только "Логин УК".

Участник клиринга может получить логины следующих уровней:

- Расчетной фирмы.

- Брокерской фирмы.

- Клиента.

Участник торгов может получить логины следующих уровней:

- Брокерской фирмы.

- Клиента.

В зависимости от уровня, полномочия логина могут различаться:

- При работе с разделами БФ, у которой УК совпадает с УТ, логины уровня РФ и уровня БФ обладают полномочиями "Логин УК+УТ".

- При работе с разделами БФ, у которой УК не совпадает с УТ, логин уровня РФ обладает полномочиями "Логин УК".

- При работе с разделами БФ, у которой УК не совпадает с УТ, полномочия логина уровня БФ совпадают со значением признака [ "Логин УК" | "Логин УТ" ].

- Для любой БФ логин уровня клиента обладает полномочиями "Логин УТ".

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

- Клиентами управляет УТ. Участник торгов управляет клиентскими разделами, входящими в состав своих Брокерских фирм (схема по умолчанию). В данной схеме участнику клиринга не доступна информация о клиентах участников торгов: средства, лимиты и индивидуальные риск-параметры по клиентским разделам, а также не доступны операции по управлению клиентами.

- Клиентами управляет УК. Участник торгов передает клиентские разделы, входящие в состав своих Брокерских фирм, "под управление" участнику клиринга.

Схема взаимодействия задается на уровне БФ путем выставления у нее специального признака: "Клиентами управляет УТ"/"Клиентами управляет УК".

Для иллюстрации приведем пару примеров:

1. Небольшой региональный брокер для доступа к торгам своих клиентов заключает с участником клиринга договор на обслуживание по модели клирингового брокера. Участник клиринга открывает для такого брокера брокерскую фирму, и регистрирует брокера как участника торгов на бирже. При этом торговать на бирже будут клиенты регионального брокера, а не участника клиринга, и соответственно, управлять клиентами хочет сам брокер - в этом случае применима схема "Клиентами управляет УТ".

2. Компания нерезидент, чтобы получить доступ к торгам на Московской бирже для своих клиентов, регистрируется в НКЦ в качестве участника клиринга. Далее нерезидент заключает договор поручение с брокерской фирмой (российская дочка нерезидента либо большой УК+УТ) на обслуживание своих клиентов. Но торговать будут клиенты нерезидента и контролировать их он хочет сам - в этом случае используется схема "Клиентами управляет УК".

Рисунок 3. Примеры

Ниже в таблице приведен список полномочий, относящийся к праву управления клиентскими разделами. Обладать данными полномочиями будут логины, у которых набор полномочий ("Логин УТ" /"Логин УК") совпадает со схемой, заданной у БФ ("Клиентами управляет УТ"/"Клиентами управляет УК").

Операция | Доступные шлюзовые команды, потоки, таблицы
--- | ---
Установка лимитов по клиентским разделам. | ChangeClientMoney
Установка риск-параметров по клиентским разделам. | ChangeClientParameters; ChangeClientParametersNextSession; ChangeBFClientDefaultParametersNextSession
Установка запретов на операции на уровне клиентских разделов. | FutChangeClientProhibit; OptChangeClientProhibit
Установка риск-параметрами опционов. | OptChangeRiskParametersNextSession
Перевод клиентских позиций. Только для логинов уровня БФ с признаком "Логин УТ". | TransferClientPosition
Просмотр информации по клиентским разделам: размер обеспечения и индивидуальные риск-параметры. | FORTS_PART_REPL.part; FORTS_CLR_REPL.money_clearing; FORTS_CLR_REPL.pledge_details

Также данными полномочиями обладает "Логин УК+УТ".

#### Управление участником клиринга обязательствами участника торгов

Участник клиринга не может выставлять и снимать заявки, однако для управления неисполненными обязательствами участника торгов перед участником клиринга, и в том числе, в случае недостаточности обеспечения участника торгов, участник клиринга вправе подавать в адрес НКЦ запросы на заключение сделок с участником торгов. Такой запрос подается участником клиринга с указанием любого клиентского раздела участника торгов. По такому запросу НКЦ выставляет безадресную заявку "в стакан" или адресную заявку, на основании которой будут заключаться сделки.

Технически такой запрос подается в формате обычной торговой заявки, имеющей специальный признак - "Запрос к НКЦ на заключение сделок с участником торгов". Запрос может быть подан как в форме безадресной заявки, так и в форме адресной заявки. Участники торгов ставить (снимать, в том числе массово) заявки с таким признаком не могут. У заявок с признаком "Запрос к НКЦ" в битовой маске признаков выставляется бит NCCRequest (0x4000000000). Аналогичный бит получают и сделки, заключенные на основании таких заявок.

В целях устранения необеспеченности позиций участник клиринга имеет возможность инициировать снятие заявок, поданных участником торгов. Для этого используется команда DelOrdersByBFLimit, которую может подавать участник клиринга по БФ, открытым для участников торгов, обслуживаемых таким участником клиринга. При обработке данной команды в случае отрицательного свободного лимита по БФ, снимаются все активные заявки по клиентским разделам, принадлежащим такой БФ. У снимаемых заявок в битовой маске признаков выставляется бит NCCBulkDeleteOperation (0x8000000000).

### Синтетический матчинг

Синтетический матчинг – формирование сделок на основании заявок, поступающих в разные стаканы (стаканы разных инструментов). Целью синтетического матчинга является повышение ликвидности инструментов путем объединения нескольких стаканов. Например, синтетический матчинг позволит сведение заявок инструмента типа календарный спред не только со встречной заявкой внутри стакана данного инструмента, но и с отдельными заявками из стаканов фьючерсов его ног. Таким образом заявка КС учитывает встречные интересы из других стаканов своих ног.

#### Синтетические заявки

Идея синтетического мэтчинга состоит в заключении сделки на основании трех заявок по разным торговым инструментам, если цены этих инструментов связаны между собой определенным соотношением. Например, цена инструмента календарный спред равна разнице цены дальней ноги и цены ближней ноги. Тогда заявка на покупку по календарному спреду RTS-9.18-12.18 по цене 1000 (участник "A"), заявка на покупку по фьючерсу RTS-9.18 по цене 114000 (участник "B") и заявка на продажу по фьючерсу RTS-12.18 по цене 115000 (участник "C") могут быть одновременно исполнены. В результате участник "B" получит длинную позицию по фьючерсу RTS-9.18 по цене 114000. Участник "C" получит короткую позицию по фьючерсу RTS-12.18 по цене 115000. А участник "A" получит две позиции: короткую по фьючерсу RTS-9.18 по цене 114000 и длинную по фьючерсу RTS-12.18 по цене 115000, при чем их цены связаны соотношением 115000 - 114000 = 1000. Таким образом, все три заявки могут быть удовлетворены корректно.

На Московской бирже сделки заключаются с центральным контрагентом (НКЦ). В нашем примере может быть одновременно заключено три сделки:

- по календарному спреду RTS-9.18-12.18 между участником "A" и НКЦ

- по фьючерсу RTS-9.18 между участником "B" и НКЦ

- по фьючерсу RTS-12.18 между участником "C" и НКЦ

Для того, чтобы сделки были заключены, в процессе синтетического матчинга в ядре торговой системы автоматически формируются заявки, поданные от имени НКЦ. Такие заявки называются синтетическими. Синтетическая заявка - заявка создаваемая ядром в ходе синтетического матчинга при выполнении условия сведения заявок. Синтетическая заявка является реальной заявкой, подаваемой центральным контрагентом в торги, и фигурирует в сделках, порождаемых в ходе синтетического матчинга. В анонимных и пользовательских потоках заявок синтетические заявки в полях xstatus помечаются специальным признаком "Synthetic" (0x200000000000).

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

- заявка от НКЦ на продажу по календарному спреду RTS-9.18-12.18 по цене 1000 (встречная к заявке участника "A")

- заявка от НКЦ на продажу по фьючерсу RTS-9.18 по цене 114000 (встречная к заявке участника "B")

- заявка от НКЦ на покупку по фьючерсу RTS-12.18 по цене 115000 (встречная к заявке участника "C")

Рисунок 4. Стаканы календарного спреда

Синтетическая заявка формируется системой на основании двух реальных заявок, поданных участниками в двух других инструментах. В нашем примере система сформировала синтетическую заявку на продажу по календарному спреду RTS-9.18-12.18 по цене 1000 на основании заявки на покупку по фьючерсу RTS-9.18 по цене 114000 (от участника "B") и заявки на продажу по фьючерсу RTS-12.18 по цене 115000 (от участника "C").

Есть два основных сценария синтетического матчинга:

Кейс 1: Заявки отдельных фьючерсов генерируют синтетическую заявку по календарному спреду.

Пример (см. Рисунок 4, «Стаканы календарного спреда»):

- В стакан календарного спреда RTS-9.18-12.18 (стакан КС) поступает заявка на покупку в количестве 20 по цене 1000 от участника "A".

- Участник "B" поставил заявку на покупку в RTS-9.18 (стакан ближней ноги) в количестве 12 по цене 114000.

- Участник "C" ставит заявку на продажу в RTS-12.18 (стакан дальней ноги) в количестве 10 по цене 115000 (входящая активная заявка). В этот момент начинается матчинг.

- На основе заявок в стаканах ближней и дальней ног, в стакане КС появляется синтетическая заявка на продажу календарного спреда RTS-9.18-12.18 в количестве 10 (минимальное количество из трех заявок, участвующих в матчинге) по цене 1000 (115000-114000: то есть цена дальней ноги минус цена ближней ноги), выставленная от имени НКЦ, которая сводится в сделку с заявкой по календарному спреду от участника "A".

- В стакане ближней ноги появляется синтетическая заявка на продажу RTS-9.18 по цене 114000 с объемом 10 от имени НКЦ, которая сводится в сделку с заявкой от участника "B", в стакане дальней ноги - синтетическая заявка на покупку RTS-12.18 по цене 115000 с объемом 10 от имени НКЦ, которая сводится в сделку с заявкой от участника "C".

- Таким образом образуются три сделки: по ближнему фьючерсу (контрагенты: "B" и НКЦ) по цене 114000, по дальнему фьючерсу (контрагенты: "C" и НКЦ) по цене 115000 и по календарному спреду (контрагенты: "A" и НКЦ) по цене 1000. Также образуются две технические сделки, отображающие движение ног по календарному спреду. Для обеих технических сделок контрагенты "A" и НКЦ.

- Остались несведенными заявка RTS-9.18-12.18 в объеме 10 и заявка RTS-9.18 в объеме 2.

Кейс 2: Заявка на календарный спред и заявка на один из фьючерсов ног этого спреда генерируют синтетическую заявку на другую из ног этого спреда.

Пример (см. Рисунок 4, «Стаканы календарного спреда»):

- Участник "B" поставил заявку на покупку в RTS-9.18 (стакан ближней ноги) в количестве 12 по цене 114000.

- В стакан календарного спреда RTS-9.18-12.18 (стакан КС) поступает заявка на покупку в количестве 20 по цене 1000 от участника "A".

- Участник "C" ставит заявку на продажу в RTS-12.18 (стакан дальней ноги) в количестве 10 по цене 115000 (входящая активная заявка). В этот момент начинается матчинг.

- На основе заявок в стакане ближней ноги и стакане КС, в стакане дальней ноги появляется синтетическая заявка на покупку RTS-12.18 в количестве 10 по цене 115000, выставленная от имени НКЦ, которая сводится в сделку с заявкой от участника "C".

- В стакане ближней ноги появляется синтетическая заявка на продажу RTS-9.18 по цене 114000 с объемом 10 от имени НКЦ, которая сводится в сделку с заявкой от участника "B", в стакане КС - синтетическая заявка на продажу RTS-9.18-12.18 по цене 1000 с объемом 10 от имени НКЦ, которая сводится в сделку с заявкой по календарному спреду от участника "A".

- Таким образом образуются три сделки: по ближнему фьючерсу (контрагенты: "B" и НКЦ) по цене 114000, по дальнему фьючерсу (контрагенты: "C" и НКЦ) по цене 115000 и по календарному спреду (контрагенты: "A" и НКЦ) по цене 1000. Также образуются две технические сделки, отображающие движение ног по календарному спреду. Для обеих технических сделок контрагенты "A" и НКЦ.

- Остались несведенными заявка RTS-9.18-12.18 в объеме 10 и заявка RTS-9.18 в объеме 2.

Таким образом, в зависимости от входящей активной заявки возможны 6 вариантов синтетического матчинга:

Активная заявка | Встречная реальная заявка | Формирование встречной (пассивной) синтетической заявки | Цена встречной пассивной синтетической заявки
--- | --- | --- | ---
Покупка ближнего фьючерса | Продажа ближнего фьючерса | Продажа дальнего фьючерса + Покупка КС | Цена дальнего фьючерса - Цена КС
Продажа ближнего фьючерса | Покупка ближнего фьючерса | Покупка дальнего фьючерса + Продажа КС | Цена дальнего фьючерса - Цена КС
Покупка дальнего фьючерса | Продажа дальнего фьючерса | Продажа ближнего фьючерса + Продажа КС | Цена ближнего фьючерса + Цена КС
Продажа дальнего фьючерса | Покупка дальнего фьючерса | Покупка ближнего фьючерса + Покупка КС | Цена ближнего фьючерса + Цена КС
Покупка КС | Продажа КС | Покупка ближнего фьючерса + Продажа дальнего фьючерса | Цена дальнего фьючерса - Цена ближнего фьючерса
Продажа КС | Покупка КС | Продажа ближнего фьючерса + Покупка дальнего фьючерса | Цена дальнего фьючерса - Цена ближнего фьючерса

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

#### Синтетическая ликвидность в агрегированных стаканах

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

Пример

- Допустим, есть три стакана RTS-9.18, RTS-12.18, RTS-9.18-12.18, которые полностью пустые в данный момент.

- В стакане RTS-9.18 (стакан 1) участник "A" ставит заявку на покупку по цене 114000 в объёме 12 контрактов. Затем в стакане RTS-12.18 (стакан 2) участник "B" ставит заявку на продажу по цене 115000 в объёме 10 контрактов.

- В результате в стакане RTS-9.18-12.18 (стакан 3), появляется индикативная синтетическая заявка на продажу календарного спреда RTS-9.18-12.18 по цене 115000 - 114000 = 1000, в объёме 10 контрактов, образованная из заявок, выставленными участниками "A" и "B".

- Участник "C" может ударить по индикативной синтетической заявке - купить КС RTS-9.18-12 в стакане 3 по цене 1000 в объёме 10 контрактов.

- На основе заявок в стаканах 1 и 2, выставленных участниками "A" и "B". в стакане 3 появляется синтетическая заявка на продажу календарного спреда RTS-9.18-12.18 в количестве 10 по цене 1000, выставленная от имени НКЦ, которая сводится в сделку с заявкой по календарному спреду от участника "C".

- В стакане 1 появляется синтетическая заявка на продажу RTS-9.18 по цене 114000 с объемом 10 от имени НКЦ, которая сводится в сделку с заявкой от участника "A", а в стакане 2 - синтетическая заявка на покупку RTS-12.18 по цене 115000 с объемом 10 от имени НКЦ, которая сводится в сделку с заявкой от участника "B".

- Таким образом образуются три сделки: по ближнему фьючерсу (контрагенты: "A" и НКЦ) по цене 114000, по дальнему фьючерсу (контрагенты: "B" и НКЦ) по цене 115000 и по календарному спреду (контрагенты: "C" и НКЦ) по цене 1000. Также образуются две технические сделки, отображающие движение ног по календарному спреду. Для обеих технических сделок контрагенты A и НКЦ.

Синтетическая ликвидность транслируется в потоке агрегатов (FORTS_AGGR##_REPL) совместно с ликвидностью по реальным заявкам. При этом помимо суммарного объема (поле volume), например, если внутри одного ценового уровня есть как и реальные заявки, так и индикативные синтетические объемы, в отдельном поле транслируется синтетический объем (поле synth_volume).

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

Рисунок 5. Обычные агрегированные стаканы календарного спреда

Эти же стаканы, но с учетом синтетической ликвидности, выглядят следующим образом.

Рисунок 6. Агрегированные стаканы с синтетической ликвидностью

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

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

В стакане дальней ноги ситуация уже не столь радикально изменилась за счет синтетической ликвидности. Хотя и здесь, если трейдер подаст заявку в покупку 15 контрактов по цене 66212, то он получит сделки не только с заявками по тому же инструменту (уровни 5 по 66200, 1 по 66202, 3 по 66210, что дает исполнение 9 контрактов из 15), но еще и получит сделку в синтетическом мачтинге на 6 оставшихся контрактов по цене 66211. Этот синтетический матчинг использует 6 контрактов на продажу Si-6.19-9.19 по 860 и 6 контрактов на продажу Si-6.19 по 65351.

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

Синтетическая ликвидность в агрегированных стаканах обновляется с той же частотой, с какой обновляется агрегированные стаканы. Частота обновления агрегированных стаканов ниже частоты торговых событий, происходящих в системе. Иными словами, агрегированный стакан, а значит и синтетическая ликвидность в нем не обновляется на каждую заявку или сделку. Участник, желающий оценивать полную глубину синтетической ликвидности (более 5 ценовых уровней) и ее изменение при каждом торговом событии (транзакции), должен самостоятельно рассчитывать доступную синтетическую ликвидность на основании информации в публичном orders_log.

Так же следует учитывать, что в публичном orders_log синтетические заявки появляются только, когда происходит синтетический матчинг, в объеме необходимом для заключения сделки, т.е. синтетические заявки полностью исполняются внутри той транзакции, в которой они порождены. Поэтому если пользователь сам собирает стакан по orders_log (без построения синтетики) и сверяет его, например, с данными, транслируемыми в FORTS_AGGR##_REPL, то стаканы эти будут отличаться – в стакане из FORTS_AGGR##_REPL могут быть цены, которые «не видно» в стакане, построенном по orders_log.

В потоке коммонов (FORTS_COMMON_REPL) поля с лучшими ценами и объемами по лучшей цене также рассчитываются с учетом синтетической ликвидности, при этом в старых полях (типа best_buy, best_sell, xamount_buy, xamount_sell и т.п) транслируется сумма натуральной и синтетической ликвидности, а в новых (с постфиксом _native) - отдельно натуральная без учета синтетической.

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

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

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

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

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

Признак сделок урегулирования транслируется в шлюзе в таблицах своих заявок 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 специальным признаком:

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

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

- payXXYY.csv;

- payclXXYY.csv.

### Опционы на акции

В версии SPECTRA 7.0 на Срочном рынке появляются новые производные инструменты – опционы на акции. Особенность этих инструментов заключается в том, что базовым активом для них является акция, а не фьючерс на нее. То есть логически появляется прямая связка опционной серии (ОС) непосредственно с БА, минуя фьючерс. Однако физически ОС для таких опционов будут заводиться на специальный фьючерс (коллатерал). Данный инструмент уже имеется в ТС SPECTRA и используется для передачи профилей активов на суб-счета расчётных кодов Единого пула. Таким образом, иерархическая структура инструментов не меняется и для опционов на акции остается полностью идентична опционам на фьючерсы.

На первом этапе предполагается ввести только европейские премиальные расчетные опционы на акции.

Так как планируется запуск опционов не только на российские, но и на иностранные акции, то взаиморасчёты по премии и финансовому результату исполнения опционов могут производиться в соответствующей иностранной валюте. В связи с этим следует отличать валюту котирования (поле curr) и валюту расчётов (новое поле settlement_currency) в таблице opt_vcb потока FORTS_REFDATA_REPL.

Обращаем ваше внимание, что в результате ВК на разделах учёта залогов (pledge_details), принадлежащих РК, не входящих в Единый пул, могут образовываться отрицательные остатки по валютам. В связи с этим рублёвая переоценка обеспечения по таким расчётным кодам и БФ с признаком limit_tied_to_money = 1, будет проводиться по формуле: ОБЪЁМ_ОБЕСПЕЧЕНИЯ_В_ВАЛЮТЕ * КУРС_ВАЛЮТЫ - abs(ОБЪЁМ_ОБЕСПЕЧЕНИЯ_В_ВАЛЮТЕ * КУРС_ВАЛЮТЫ * ВАЛЮТНЫЙ_РИСК).

Опцион на акции определяется по следующим признакам:

- Опционная серия опциона на акции привязана к коллатеральному фьючерсному инструменту: в поле underlying_id соответствующей записи из таблицы FORTS_REFDATA_REPL:sess_option_series содержится идентификатор фьючерса, который можно найти в таблице FORTS_REFDATA_REPL:fut_sess_contents по полю isin_id; в полученной записи в поле signs должен быть взведён бит 0x40000 (признак коллатерального инструмента);

- Базовым активом для коллатерального фьючерсного инструмента является акция: в поле asset_class записи таблицы FORTS_REFDATA_REPL:fut_vcb, связанной с FORTS_REFDATA_REPL:fut_sess_contents по полю base_contract_code, должно быть значение 1 – «Акция». Код акции содержится в поле SECCODE таблицы FORTS_REFDATA_REPL:fut_vcb.

#### Изменения в расчете свободных средств под опционы на акции

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

Премиальные опционы имеют стоимость и (по просьбам участников) будут использоваться в качестве обеспечения по портфелю, а также влиять на объём свободных средств (FreeMoney). Величина корректировки FreeMoney будет доступна в виде нового параметра NetOptionValue (NOV), который будет рассчитываться в ближайшую клиринговую сессию как сумма произведений учетных стоимостей и объемов соответствующих опционных позиций в портфеле с учетом знака:

- voli – объем позиции в i-м опционном контракте по итогам текущей клиринговой сессии;

- RCi – расчетная цена i-го опционного контракта по итогам текущей клиринговой сессии.

Величина NetOptionValue (поле net_option_value таблиц part и part_sa потока FORTS_PART_REPL) определяется по каждому уровню учета позиций (клиент, БФ, РК). Для фьючерсов и маржируемых опционов на фьючерсы значение NOV всегда равно нулю.

#### Новый индикатив - величина премии подлежащей к уплате/получению в ближайшую клиринговую сессию

Поскольку по премиальным опционам на акции вариационная маржа отсутствует, значения VM, выдаваемые ТКС всегда будут нулевыми по таким инструментам. В связи с этим появляется новый индикатив по премиям (поле premium в таблице opt_vm потока FORTS_VM_REPL), отражающий величину премии к уплате/получению в ближайшую клиринговую сессию. Вычисляемое значение не включает в себя финансовый результат исполнения опционной позиции в день экспирации опционов на акции. Данная величина рассчитывается индикативно, исключительно для информирования Участников клиринга. А поскольку расчеты могут производиться не только в рублях, то трансляция премии в валюте расчётов будет осуществляться в отдельном поле premium_in_settl_currency таблицы opt_vm потока FORTS_VM_REPL.

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

#### Изменение расписания клиринговых сессий

Для осуществления взаиморасчетов в момент экспирации необходимы цены БА (акций), которые берутся из поля LCLOSEPRICE таблицы SECURITIES торгового шлюза Фондового рынка. Получение этих данных влечет за собой сдвиг начала вечернего клиринга на 18:50 МСК и окончания клиринговой сессии - на 19:05 MCK. Сдвиг вечерней клиринговой сессии влечет за собой сдвиг начала вечерней торговой сессии на 19:05 MCK.

#### Исполнение опционов на акции

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

Как было сказано ранее, для определения цены исполнения опциона в день экспирации используется цена БА, полученная из поля LCLOSEPRICE таблицы SECURITIES торгового шлюза Фондового рынка. Данная цена фиксируется в размерности коллатерального инструмента в поле underlying_price таблицы option_series_settl потока FORTS_CLR_REPL. В остальные дни в этом поле передается цена коллатерала, определенная на момент проведения клиринга согласно методике расчетных цен.

Премия по опционным контрактам с расчетами в рублях, полученная/списанная в промежуточный клиринг, транслируется в шлюзе в поле premium таблицы opt_intercl_info потока FORTS_REFDATA_REPL. Значение включает в себя финансовый результат исполнения опционной позиции в день экспирации опционов на акции. Премия по опционным контрактам с расчетами в валюте, полученная/списанная в промежуточный клиринг, транслируется в отдельном поле premium_in_settl_currency таблицы opt_intercl_info потока FORTS_REFDATA_REPL. При осуществлении расчетов в рублях это поле заполняется нулем. Аналогично, при расчетах в валюте рублевая премия (поле premium) равна нулю.

Премия по опционным контрактам с расчетами в рублях, полученная/списанная в вечернюю клиринговую сессию, транслируется в полях premium таблиц opt_pos и opt_pos_sa потока FORTS_CLR_REPL. Транслируемое значение включает в себя финансовый результат исполнения опционной позиции в день экспирации опционов на акции. Премия по опционным контрактам с расчетами в валюте, полученная/списанная в вечернюю клиринговую сессию, транслируется в полях premium_in_settl_currency таблиц opt_pos и opt_pos_sa потока FORTS_CLR_REPL. При осуществлении расчетов в рублях эти поля заполняются нулем. Аналогично, при расчетах в валюте рублевая премия (поля premium) равна нулю.

#### Маржирование опционов на акции

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

В иерархии маржирования системы расчета гарантийного обеспечения появляется новый уровень взятия ГО - опционная серия. Ранее минимальным уровнем являлся фьючерс и его риски неттировались с рисками по всем принадлежащим ему опционным сериям.

Появляются дополнительные поля для описания БА и ОС, значения из которых будут использоваться в формулах ценообразования опционов. Для расчета теоретических цен опционов применяются две модели ценообразования: Блэка-Шоулза и Башелье. В штатном режиме работы модель Башелье не применяется для премиальных опционов на акции, т.к. отрицательные цены по таким БА не предполагаются. Для расчета теоретических цен по опционам на акции будет использоваться модель Блэка-Шоулза с дискретной выплатой дивидендов. В связи с разделением дивидендов на прогнозные и объявленные, денежный поток содержит в себе информацию двух типов. Первый тип включает в себя величину ожидаемых дисконтированных дивидендов, а второй - объявленных.

#### Запреты по опционам на акции

В связи с тем, что все акционные опционные серии (внутри одного БА) будут заводиться не на разные фьючерсы, а на единственный коллатеральный, невозможно запрещать торговлю группами ОС, так как в нынешней реализации возможно устанавливать определённые ограничения только сразу на все опционы внутри одного фьючерса. Поэтому по опционам на акции возможно устанавливать запреты сразу на все опционы в рамках одного БА - запрет на опционы с isin коллатерального фьючерса (opt_sess_contents.fut_isin_id). Либо полный запрет опционов - group_mask = 0x80000000 (опционы).

### Торги в выходные дни

В версии 8.3 в ТС SPECTRA реализована поддержка торгов на Срочном рынке в выходные дни. Проведение организованных торгов на Срочном рынке в выходные дни осуществляется в рамках торговой сессии понедельника путем добавления дополнительных сессий выходного дня (ДСВД). Для каждого выходного дня отдельная ДСВД. После окончания ДСВД клиринговой сессии не проводится, сделки за выходные попадают в вечерний клиринг понедельника.

Общая концепция торгов в выходные:

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

- Расчеты и клиринговые сессии в ходе торгов в выходные дни не производятся. Все расчеты проводятся в ближайший следующий рабочий день.

- Режимы торгов, доступные в выходные дни: Режим безадресных сделок (двойной непрерывный аукцион), Режим Адресных сделок (РПС), включая Режим адресных сделок с матчингом по уникальному коду, Режим RFS (Request for Stream).

- В выходные дни доступны все типы заявок, которые доступны в будние дни. Заявки, выставляемые после ВК пятницы или с указанием календарной даты (GTD), и попадающие в суженный ценовой коридор, переходят в ДСВД. GTD заявки, с датой не позже дня торгов, снимаются по окончании календарного дня (аналогично будним дням).

- К торгам допущены все инструменты, торгуемые на срочном рынке, за исключением валютных контрактов. Список премиальных опционов на акции, допущенных к торгам в выходные дни, будет синхронизироваться со списком бумаг, допущенных к торгам в выходные на ФР.

- Операционные особенности:

  - Экспирация/досрочная экспирация в выходные дни не проводится. Подача заявлений на досрочную экспирацию опциона/выход из вечного фьючерса в выходные дни разрешена.

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

  - Списание комиссий/штрафов производится во время клиринговой сессии в ближайший следующий рабочий день.

  - Маржинальные требования за дни ДСВД не выставляются. Маржинальные требования выставляются и исполняются в ближайший следующий рабочий день.

  - Фандинг для вечных фьючерсов в ДСВД не рассчитывается и будет равен 0.

  - В выходные дни не меняются параметры инструментов (риск-параметры, шаг цены, лот, и т.д.). Запуск новых инструментов в выходные не проводится.

  - Нет допуска новых Участников, есть онлайн регистрации конечных клиентов.

#### Модель сессий. Торговые периоды

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

Временной интервал дополнительной торговой сессии выходного дня: 10:00 - 19:00. Аукцион открытия (АО) планируется проводить перед каждой дополнительной торговой сессией выходного дня. Время проведения аукциона: 9:50 - 10:00.

Для хранения расписания новых дополнительных торговых сессий выходного дня в дополнение к сессионной таблице session добавлена новая таблица trade_periods - параметры торговых периодов, которая транслируется в шлюзе в потоке FORTS_REFDATA_REPL.

Таблица 2. trade_periods

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
trade_period_id | i8 | Идентификатор торгового периода
sess_id | i4 | Идентификатор торговой сессии
trade_period_type | i8 | Тип торгового периода: 1 - основная торговая сессия 2 - вечерняя дополнительная торговая сессия 4 - дополнительная сессия выходного дня 8 - утренняя дополнительная торговая сессия
trade_period_begin | t | Дата и время начала торгового периода
trade_period_end | t | Дата и время окончания торгового периода
trade_period_name | c255 | Название торгового периода
trade_period_flags | i8 | Флаги дополнительных свойств торгового периода: 0x01 - перед торговым периодом произведена псевдораздвижка

Пример заполнения расписания сессий

Обычные выходные 22.03.25 суббота, 23.03.25 воскресенье

Таблица 3. session

sess_id | begin | end | eve_begin | eve_end | mon_begin | mon_end
--- | --- | --- | --- | --- | --- | ---
100 | 21.03.2025 10:00 | 21.03.2025 18:50 | 20.03.2025 19:05 | 20.03.2025 23:50 | 21.03.2025 9:00 | 21.03.2025 10:00
101 | 24.03.2025 10:00 | 24.03.2025 18:50 | 21.03.2025 19:05 | 21.03.2025 23:50 | 24.03.2025 9:00 | 24.03.2025 10:00

Таблица 4. trade_periods

trade_period_id | sess_id | trade_period_type | trade_period_begin | trade_period_end | trade_period_name
--- | --- | --- | --- | --- | ---
1 | 100 | 2 | 20.03.2025 19:05 | 20.03.2025 23:50 | вечерняя сессия
2 | 100 | 8 | 21.03.2025 9:00 | 21.03.2025 10:00 | утренняя сессия
3 | 100 | 1 | 21.03.2025 10:00 | 21.03.2025 18:50 | основная сессия
4 | 101 | 2 | 21.03.2025 19:05 | 21.03.2025 23:50 | вечерняя сессия
5 | 101 | 4 | 22.03.2025 10:00 | 22.03.2025 19:00 | сессия вых. дня
6 | 101 | 4 | 23.03.2025 10:00 | 23.03.2025 19:00 | сессия вых. дня
7 | 101 | 8 | 24.03.2025 9:00 | 24.03.2025 10:00 | утренняя сессия
8 | 101 | 1 | 24.03.2025 10:00 | 24.03.2025 18:50 | основная сессия

#### Допуск БФ Участников к торгам в ДСВД

По умолчанию все участники допущены к торгам в рамках ДСВД. Участники, не желающие участвовать в торгах в дополнительную сессию выходного дня, подают постоянное заявление на ограничение времени начала заключения сделок с Клиринговым центром в ДСВД по каждой БФ. Изменение статуса после подачи заявления происходит в ВК. Статус допуска\недопуска сохраняется до внесения изменения. Под допуском понимается возможность выставлять или изменять заявки (включая "поручения к НКЦ") в ходе ДСВД по данной Брокерской фирме. Операции снятия заявок (и "поручений к НКЦ"), включая массовые, разрешены. Также нет ограничений на выполнение неторговых операций.

Активные заявки Участников торгов, подавших заявление на отказ от участия в торгах на выходных по БФ, автоматически снимаются после завершения торгового периода, предшествовавшего ДСВД.

Признак допуска БФ Участника к торгам в ДСВД транслируется в шлюзе в поле order_allowed_in_weekend_session таблицы dealer потоков FORTS_REFDATA_REPL и FORTS_INFO_REPL.

#### Допуск инструментов к торгам в ДСВД

Допуск новых инструментов, изменение параметров инструментов (шаги, лоты, и т.д.) в дополнительную сессию выходного дня не осуществляется. Допуск текущих инструментов производится путем назначения их в торги в торговый период "Дополнительная сессия выходного дня". Признак торговли в дополнительную сессию выходного дня для инструмента транслируется в шлюзе в поле trade_period_access в таблицах fut_instruments, fut_sess_contents и opt_sess_contents потока FORTS_REFDATA_REPL.

#### Аукцион открытия с пересечением торговых периодов

Добавляется возможность назначать несколько АО внутри одной торговой сессии, при этом:

- может проводиться АО без пересечения с текущим торговым периодом: АО для утренней сессии, АО для дополнительной сессии выходного дня;

- может проводиться АО с пересечением с текущим торговым периодом: АО для основной сессии будет накладываться на период проведения утренней дополнительной сессии.

Пример расписания АО

Обычные выходные 22.03.25 Суббота, 23.03.25 Воскресенье. Будет фактически 4 АО в длинную торговую сессию пятницы-понедельника, отличающихся поведением и временными периодами:

- 2 АО ДСВД , стартует в 09:50 (Суббота, Воскресенье) – не пересекается с торгами.

- АО утренней дополнительной сессии понедельника, стартует в 08:50 – не пересекается с остальными торгами.

- АО основной сессии понедельника, стартует в 09:50 – пересекается с торгами утренней дополнительной сессии. Участвуют инструменты, не допущенные к торговле в утреннюю дополнительную сессию.

Пересечение выделено жирным

Таблица 5. session

sess_id | begin | end | eve_begin | eve_end | mon_begin | mon_end
--- | --- | --- | --- | --- | --- | ---
100 | 21.03.2025 10:00 | 21.03.2025 18:50 | 20.03.2025 19:05 | 20.03.2025 23:50 | 21.03.2025 9:00 | 21.03.2025 10:00
101 | 24.03.2025 10:00 | 24.03.2025 18:50 | 21.03.2025 19:05 | 21.03.2025 23:50 | 24.03.2025 9:00 | 24.03.2025 10:00

Таблица 6. trade_periods

trade_period_id | sess_id | trade_period_type | trade_period_begin | trade_period_end | trade_period_name
--- | --- | --- | --- | --- | ---
1 | 100 | 2 | 20.03.2025 19:05 | 20.03.2025 23:50 | вечерняя сессия
2 | 100 | 8 | 21.03.2025 9:00 | 21.03.2025 10:00 | утренняя сессия
3 | 100 | 1 | 21.03.2025 10:00 | 21.03.2025 18:50 | основная сессия
4 | 101 | 2 | 21.03.2025 19:05 | 21.03.2025 23:50 | вечерняя сессия
5 | 101 | 4 | 22.03.2025 10:00 | 22.03.2025 19:00 | сессия вых. дня
6 | 101 | 4 | 23.03.2025 10:00 | 23.03.2025 19:00 | сессия вых. дня
7 | 101 | 8 | 24.03.2025 9:00 | 24.03.2025 10:00 | утренняя сессия
8 | 101 | 1 | 24.03.2025 10:00 | 24.03.2025 18:50 | основная сессия

Таблица 7. discrete_auction

discrete_auction_id | sess_id | add_order_start | add_order_finish_from | add_order_finish_till | trade_period_type
--- | --- | --- | --- | --- | ---
утренний АО пятницы | 100 | 21.03.2025 08:50 | 21.03.2025 08:55 | 21.03.2025 08:58 | 8
выходной АО субботы | 101 | 22.03.2025 09:50 | 22.03.2025 09:55 | 22.03.2025 09:58 | 4
выходной АО воскресенья | 101 | 23.03.2025 09:50 | 23.03.2025 09:55 | 23.03.2025 09:58 | 4
утренний АО понедельника | 101 | 24.03.2025 08:50 | 24.03.2025 08:55 | 24.03.2025 08:58 | 8
основной АО понедельника | 101 | 24.03.2025 09:50 | 24.03.2025 09:55 | 24.03.2025 09:58 | 1

Инструменты будут участвовать во всех АО перед периодом сессии, в котором разрешена торговля ФБК этих инструментов, при условии, что период сбора заявок этого АО не пересекается с предыдущим торговым периодом, в котором разрешена торговля ФБК этих инструментов.

#### Ценовые границы и ставки риска в ДСВД

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

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

Раздвижки ценовых границ в ходе торгов в выходные дни не предусмотрены.

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

Кривые волатильности в выходные дни зафиксированы Остановка пересчета кривых происходит на момент окончания торгов в пятницу 23 50.

#### Данные одного календарного дня в публичных интерфейсах SPECTRA

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

В системе добавлен новый тип синхрособытия start_of_calendar_date - начало календарного дня, которое ежедневно генерируется и публикуется во всех потоках после завершения торгов (после снятия GTD заявок). По этому событию сервисы PosBuilder и OrderBook публикуют срезы позиций и заявок на момент срабатывания синхрособытия. Также публикуется мета-информация о ревижене exec_log, на который сгенерен срез. Клиенты могут использовать срезы и стартовый ревижен для открытия потоков, производных от exec_log, для получения данных только за текущий день.

##### Срезы позиций

В поток FORTS_POS_REPL в таблицы position и position_sa добавлены поля xday_open_qty, xday_open_buys_qty, xday_open_sells_qty. В этих полях по приходу события start_of_calendar_date публикуется срез позиций на начало календарного дня. В поток также добавлена служебная таблица info, в ней содержится одна запись с полями:

- trades_rev – ревижен синхрособытия start_of_calendar_date;

- trades_lifenum – номер жизни поток, соответствующий синхрособытию start_of_calendar_date;

- server_time – дата-время формирования среза позиций (для контроля).

##### Срезы заявок

Для публикации срезов активных заявок на начало дня в потоки FORTS_ORDBOOK_REPL и FORTS_USERORDERBOOK_REPL добавлены две таблицы orders_currentday и info_currentday. В таблицах orders_currentday по приходу события start_of_calendar_date публикуется срез активных заявок на начало календарного дня. Таблица orders_currentday является копией таблицы orders с некоторыми модификациями для приведения информации об активной заявке к формату "как будто эта заявка была только что поставлена в текущем ее виде":

- В поля public_action и private_action всегда пишется 1 (выставление заявки).

В таблице info_currentday содержится одна запись с полями:

- logRev – ревижен синхрособытия start_of_calendar_date;

- lifenum – номер жизни потока;

- server_time – дата-время формирования среза заявок (для контроля).

Дополнительно в потоки FORTS_ORDBOOK_REPL и FORTS_USERORDERBOOK_REPL добавлены таблицы multileg_orders и multileg_orders_currentday со срезами заявок по связкам.

##### Вариант сценария работы с новыми данными

Для открытия потока сделок текущего дня необходимо открыть поток позиций FORTS_POS_REPL и прочитать из него служебные поля из таблицы info. При вызове листенера для потоков FORTS_TRADE_REPL, FORTS_DEALS_REPL

    CG_RESULT cg_lsn_open(cg_listener_t* lsn, const char* settings)

В строку settings передать

    mode=snapshot+online,lifenum=<trades_lifenum>,rev.deal=<trades_rev>,rev.heart_beat=<trades_rev>

где <trades_lifenum> и <trades_rev> прочитаны из таблицы info потока позиций.

Таким образом, вы будете получать сделки и другие таблицы только за текущий день. Расчет текущей позиции при получении сделки – прибавить к значению xday_open_qty объем сделки с учетом направления.

С таблицей orders_log требуется особая внимательность, т.к. могут быть многодневные заявки. Для работы с многодневными заявками предлагается следующее. После получения среза заявок, работа с таблицей orders_log потока FORTS_TRADE_REPL аналогична описанной выше для сделок, или можно воспользоваться вот таким синтаксисом URL при создании листенера для таблицы orders_log:

    p2ordbook://FORTS_TRADE_REPL;snapshot=FORTS_USERORDERBOOK_REPL;
    online.scheme=|FILE|.\forts_scheme.ini|ORDLOG;online.data=orders_log;
    snapshot.scheme=|FILE|.\forts_scheme.ini|OrderBook;snapshot.data=orders_currentday;
    snapshot.bind=info_currentday.logRev

Открытие потока собственных заявок через пару потоков: "срез заявок" + "лог заявок".

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

Аналогично должна быть организована работа с таблицами multileg_orders_currentday и multileg_orders_log.

Примечание: Для анализа среза активных заявок на начало текущего дня значения полей private/public _ amount и private/public _action смысла не имеют, их необходимо игнорировать. Для получения количества контрактов в заявке на начало текущего дня надо смотреть поля private/public _amount_rest, для получения начального количества контрактов в заявке необходимо использовать поля private/public _init_amount.

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

### Состав, установка и настройка ПО PLAZA II шлюз

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

ПО PLAZA II шлюз включает в себя следующие программные компоненты:

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

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

    Стандартно шлюз PLAZA II использует четыре TCP-соединения с серверами биржи:

    - Соединение для подачи приказов/команд (Order Management).

    - Соединение для получения основных рыночных данных (Primary Data). К таким данным относятся потоки агрегатов, потоки FORTS_ORDLOG_REPL, FORTS_DEALS_REPL, FORTS_TRADE_REPL, FORTS_COMMON_REPL.

    - Соединение для получения вспомогательных и справочных потоков (Other Data).

    - Соединение для получения данных для восстановления при восстановлении связи или первоначальном присоединении (Snapshot).

    Все настройки для данных соединений прописаны в конфигурационных файлах роутера, при этом соединение для "Other Data" указывается как исходящее default connection, а остальные как исходящие direct connection. Такое построение является основной штатной конфигурацией при подключении к серверной ферме биржи. Конфигурация соединений при подключении через сервер доступа брокера может отличаться, в этом случае требуется запрашивать конкретную конфигурацию у владельца сервера.

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

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

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

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

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

- Системные библиотеки PLAZA II.

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

Рисунок 7. PLAZA II шлюз. Архитектура

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

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

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

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

- Процессор 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, AstraLinux SE v. 1.7, RedOS v. 7.3, AltLinux workstation 10.1, также возможно использование других дистрибутивов

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

Заберите новую версию шлюза с сервера разработчиков https://ftp.moex.com/pub/ClientsAPI/Spectra/CGate/. Имя инсталляционного файла - setup_SpectraCGate_x64_vx.x.x.msi, где х.х.х - номер версии ПО, например 7.0.0.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

##### Установка из zip-архива

Дистрибутив Cgate состоит из инсталляционого скрипта и архива, в котором находятся загружаемые модули проекта cgate и проекта cgate_java, файлы include, файлы документации и файлы примеров. Дистрибутив доступен для скачивания по адресу: https://ftp.moex.com/pub/ClientsAPI/Spectra/CGate/.

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

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

       chmod 755 ./install.sh

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

       ./install.sh ./cgate_linux_amd64-7.12.0.103.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).

##### Установка из deb-пакета или rpm-пакета

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

1. Скачайте и установите пакет шлюза с помощью команды:

       dpkg -i cgate_<version>_amd64.deb

   в случае установки из deb-пакета, или команды:

       rpm -U cgate-<version>.x86_64.rpm

   в случае установки из rpm-пакета.

   <version> - номер версии дистрибутива

   Таблица раскладки компонентов:

   Куда ставится | Описание
   --- | ---
   /opt/moex/cgate | Бинарники, схемы, документация по шлюзу
   /etc/opt/moex/cgate | Настроечные файлы, auth.ini - файлы
   /var/opt/moex/cgate | Каталог логирования, трейс файлы
   /usr/share/doc | Copyright, документация по установке

2. Зайдите в каталог /etc/opt/moex/cgate/auth и в соответствующем ini-файле укажите логин/пароль для подключения:

   - prod.ini - для подключения к production системе

   - t1.ini - для подключения к полигону T1

   - t0.ini - для подключения к полигону T0

   - game.ini - для подключения к игровому полигону

   Внимание! Обратите внимание, что в случае переустановки пакета каталог \auth и файлы с настройками подключения не удаляются, поэтому повторно настраивать логин/пароль не потребуется.

3. Запустите сервис (роутер) с помощью команды:

       systemctl start cgate@<profile>

   <profile> - вариант подключения. В качестве профиля можно указать:

   - prod - подключение к Spectra боевой контур

   - rezerv - подключение к Spectra резервный контур

   - t1 - подключение к полигону T1

   - t0 - подключение к полигону T0

   - game - подключение к игровому полигону

   - rfs.prod - подключение к Spectra боевой контур с дополнительным доступом к RFS

   - rfs.rezerv - подключение к Spectra резервный контур с дополнительным доступом к RFS

   - rfs.t1 - подключение к полигону T1 с дополнительным доступом к RFS

   - rfs.t0 - подключение к полигону T0 с дополнительным доступом к RFS

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

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

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

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

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

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

1. Пример aggrspy

   aggrspy - пример построения агрегированного стакана на покупку и продажу по фиксированному инструменту по потоку FORTS_AGGR50_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 на посылаемые заявки.

8. Пример instruments_state

   instruments_state - пример, который демонстрирует самостоятельный расчет статусов инструментов по потоку FORTS_SECURITYGROUPSTATE_REPL (подробнее см. "«Сервис раздачи статусов инструментов»").

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- Информация об индексах и курсах

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

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

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

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

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

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

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

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

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

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

- Справочник облигаций

  Облигации описываются набором таблиц потока FORTS_REFDATA_REPL: справочник параметров спот-активов fut_bond_registry, справочник инструментов облигаций fut_bond_isin, НКД на даты выплат купонов fut_bond_nkd, размеры выплат номинальной стоимости облигации fut_bond_nominal.

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

  Транслируются в таблицах volat_coeff потоков FORTS_RISKINFOBLACK_REPL и FORTS_RISKINFOBACH_REPL.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- Вариационная маржа (премия) промежуточного клиринга

  Вариационная маржа (премия) промежуточного клиринга доступна в таблицах fut_intercl_info и opt_intercl_info потока FORTS_REFDATA_REPL для фьючерсов и опционов, соответственно.

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

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

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

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

- Заявки на исполнение опционов

#### Информация об индексах и курсах

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

- Текущие значения индексов РТС

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

- Значения курсов валют

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

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

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

- Текущие значения вариационной маржи и индикатив по премиям

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

- Текущие значения волатильности и теоретические цены для опционов

  Транслируются в потоке FORTS_VOLAT_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):

Поле | Тип | Описание
--- | --- | ---
code | i4 | Код возврата
message | c255 | Текст сообщения.

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

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

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

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

Поле | Тип | Описание
--- | --- | ---
queue_size | i4 | Количество сообщений пользователя
penalty_remain | i4 | Время в миллисекундах, по прошествии которого будет успешно принято следующее сообщение от этого пользователя
message | c128 | Текст сообщения об ошибке

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- FORTS_FEERATE_REPL - Поток точных ставок комиссий биржи

- FORTS_BROKER_FEE_PARAMS_REPL - Параметры для расчета брокерской комиссии

- FORTS_BROKER_FEE_REPL - Брокерские комиссии

- FORTS_FEE_REPL - Поток комиссий и штрафов биржи

- FORTS_PROHIBITION_REPL - Запреты

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

- FORTS_TRADE_REPL - Заявки и сделки пользователя

- FORTS_MM_REPL - Информация об обязательствах ММ

- FORTS_USERORDERBOOK_REPL - Заявки пользователя: срез стакана

- FORTS_FORECASTIM_REPL - Прогноз рисков после возможной раздвижки

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

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

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

- FORTS_TNPENALTY_REPL - Информация о сборах за транзакции

- FORTS_VM_REPL - Вариационная маржа и премия

- FORTS_DEALS_REPL - Поток анонимных сделок

- FORTS_COMMON_REPL - Общая информация по сессии

- FORTS_VOLAT_REPL - Волатильность

- MOEX_RATES_REPL - Курсы валют он-лайн

- RTS_INDEX_REPL - Биржевые индексы

- FORTS_RISKINFOBLACK_REPL - Риск-параметры для модели Блэка-Шоулза

- FORTS_RISKINFOBACH_REPL - Риск-параметры для модели Башелье

- FORTS_USER_REPL - Пользователи

- FORTS_REJECTEDORDERS_REPL - Отвергнутые в клиринг заявки

- FORTS_RMT_REPL - ГО без заявок и текущий оперативный риск

- FORTS_SESSIONSTATE_REPL - Статус активной сессии

- FORTS_INSTRUMENTSTATE_REPL - Статусы инструментов по активной сессии.

- FORTS_SECURITYGROUPSTATE_REPL - Статус по группе инструментов активной сессии

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

- FORTS_AGGR5_REPL, FORTS_AGGR20_REPL и FORTS_AGGR50_REPL - Потоки агрегированных стаканов

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

- FORTS_ORDLOG_REPL - Поток анонимных заявок

- FORTS_ORDBOOK_REPL - Срез стакана. Анонимный

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

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

- FORTS_FEERATE_REPL - Поток точных ставок комиссий биржи

- FORTS_BROKER_FEE_PARAMS_REPL - Параметры для расчета брокерской комиссии

- FORTS_BROKER_FEE_REPL - Брокерские комиссии

- FORTS_FEE_REPL - Поток комиссий и штрафов биржи

- FORTS_PROHIBITION_REPL - Запреты

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

- FORTS_TRADE_REPL - Заявки и сделки пользователя

- FORTS_MM_REPL - Информация об обязательствах ММ

- FORTS_USERORDERBOOK_REPL - Заявки пользователя: срез стакана

- FORTS_FORECASTIM_REPL - Прогноз рисков после возможной раздвижки

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

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

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

- FORTS_TNPENALTY_REPL - Информация о сборах за транзакции

- FORTS_VM_REPL - Вариационная маржа и премия

- FORTS_DEALS_REPL - Поток анонимных сделок

- FORTS_COMMON_REPL - Общая информация по сессии

- FORTS_VOLAT_REPL - Волатильность

- MOEX_RATES_REPL - Курсы валют он-лайн

- RTS_INDEX_REPL - Биржевые индексы

- FORTS_RISKINFOBLACK_REPL - Риск-параметры для модели Блэка-Шоулза

- FORTS_RISKINFOBACH_REPL - Риск-параметры для модели Башелье

- FORTS_USER_REPL - Пользователи

- FORTS_REJECTEDORDERS_REPL - Отвергнутые в клиринг заявки

- FORTS_RMT_REPL - ГО без заявок и текущий оперативный риск

- FORTS_SESSIONSTATE_REPL - Статус активной сессии

- FORTS_INSTRUMENTSTATE_REPL - Статусы инструментов по активной сессии

- FORTS_SECURITYGROUPSTATE_REPL - Статус по группе инструментов активной сессии

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

- FORTS_AGGR5_REPL, FORTS_AGGR20_REPL и FORTS_AGGR50_REPL - Потоки агрегированных стаканов

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

- FORTS_ORDLOG_REPL - Поток анонимных заявок

- FORTS_ORDBOOK_REPL - Срез стакана. Анонимный

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

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

- FORTS_FEERATE_REPL - Поток точных ставок комиссий биржи

- FORTS_BROKER_FEE_PARAMS_REPL - Параметры для расчета брокерской комиссии

- FORTS_BROKER_FEE_REPL - Брокерские комиссии

- FORTS_FEE_REPL - Поток комиссий и штрафов биржи

- FORTS_PROHIBITION_REPL - Запреты

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

- FORTS_TRADE_REPL - Заявки и сделки пользователя

- FORTS_MM_REPL - Информация об обязательствах ММ

- FORTS_USERORDERBOOK_REPL - Заявки пользователя: срез стакана

- FORTS_FORECASTIM_REPL - Прогноз рисков после возможной раздвижки

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

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

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

- FORTS_TNPENALTY_REPL - Информация о сборах за транзакции

- FORTS_VM_REPL - Вариационная маржа и премия

- FORTS_USER_REPL - Пользователи

- FORTS_REJECTEDORDERS_REPL - Отвергнутые в клиринг заявки

- FORTS_RMT_REPL - ГО без заявок и текущий оперативный риск

- FORTS_SESSIONSTATE_REPL - Статус активной сессии

- FORTS_INSTRUMENTSTATE_REPL - Статусы инструментов по активной сессии

- FORTS_SECURITYGROUPSTATE_REPL - Статус по группе инструментов активной сессии

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

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

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

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

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

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

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

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

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

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

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

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

##### Утилита change_password

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

Утилита представляет собой консольное приложение с запуском из командной строки, исполняемый файл change_password.exe. Находится: для среды Windows - C:\Moscow Exchange\SpectraCGate\bin\change_password.exe; для среды Linux - \opt\moex\cgate\bin\change_password.

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

--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-файле роутера и перезапустить роутер.

##### Одноразовые пароли

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

#### Партиционирование матчинга

В ТС SPECTRA поддерживается разделение (партиционирование) торговых инструментов на группы, и торговля ими раздельно на нескольких независимых модулях сведения заявок (модулях матчинга), при этом каждый модуль матчинга обрабатывает свою группу инструментов. Принадлежность инструмента к группе (матчингу) определяется кодом базового актива (base_contract_code) инструмента.

Трансляция торговых данных производится также раздельно и независимо, для каждого из модулей матчинга назначаются собственные потоки репликации. Принадлежность потоков репликации матчингу определяется по постфиксу _MATCH${id} в названии потока, где ${id} - ID модуля матчинга. Например, поток FORTS_TRADE_REPL_MATCH1 - заявки и сделки пользователя по фьючерсным инструментам, которые обрабатываются на MATCH1.

Потоки, транслируемые раздельно для каждого матчинга (имеют постфикс _MATCH${id}):

- FORTS_DEALS_REPL

- FORTS_FEE_REPL

- FORTS_FORECASTIM_REPL

- FORTS_COMMON_REPL

- FORTS_TRADE_REPL

- FORTS_ORDBOOK_REPL

- FORTS_USERORDERBOOK_REPL

- FORTS_AGGR5_REPL, FORTS_AGGR20_REPL, FORTS_AGGR50_REPL

- FORTS_ORDLOG_REPL

- FORTS_POS_REPL

- FORTS_VM_REPL

- FORTS_VOLAT_REPL

Для сопоставления инструментов матчингу, на котором они обрабатываются, в потоке 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_PROHIBITION_REPL | Запреты | R
FORTS_REFDATA_REPL | Справочная и сессионная информация | R
RTS_INDEX_REPL | Биржевые индексы | R
FORTS_INFO_REPL | Справочная информация | R
FORTS_USER_REPL | Пользователи | R
FORTS_REJECTEDORDERS_REPL | Отвергнутые в клиринг заявки | R
FORTS_FEE_REPL | Поток комиссий и штрафов биржи | AR
FORTS_FEERATE_REPL | Поток точных ставок комиссий биржи | AR
FORTS_CLR_REPL | Клиринговая информация | AR
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_VOLAT_REPL | Волатильность | I
FORTS_TNPENALTY_REPL | Информация о сборах за транзакции | I
MOEX_RATES_REPL | Курсы валют он-лайн | I
FORTS_FORECASTIM_REPL | Прогноз рисков после возможной раздвижки | I
FORTS_RISKINFOBLACK_REPL | Риск-параметры для модели Блэка-Шоулза | I
FORTS_RISKINFOBACH_REPL | Риск-параметры для модели Башелье | I
FORTS_RMT_REPL | ГО без заявок и текущий оперативный риск | I
FORTS_SESSIONSTATE_REPL | Статус активной сессии | I
FORTS_INSTRUMENTSTATE_REPL | Статусы инструментов по активной сессии | I
FORTS_SECURITYGROUPSTATE_REPL | Статус по группе инструментов активной сессии | I

#### Ограничение количества одновременно открытых потоков репликации от одного соединения PLAZA II

В системе существует ограничение на количество одновременных подписок на один поток PLAZA II (Cgate) от одного шлюзового логина - не более 20. При превышении этого ограничения, каждая последующая попытка подписаться на поток будет завершаться с кодом ошибки ERROR:TOO MANY CONNECTIONS, отражающаяся в журнале работы Cgate.

#### Отображение информации о логинах казначеев в сделках\заявках

В некоторых случаях клиенты в таблицах заявок/сделок могут увидеть операции, выполненные от имени неизвестных им логинов формата _admin4kazn. Это логины казначеев, которыми пользуются сотрудники МБ/НКЦ при проведении процедур снятия заявок, заключения сделок урегулирования и т.п. Появление у участника таких заявок/сделок означает, что у этого участника проблемы с финансовым состоянием и ему лучше бы обратиться в МБ/НКЦ.

Предусмотрено два вида логинов:

1. Логин с маской ftxxrm_admin4forts – логин с ролью Администратора торгов (маклера), уровня Администратор. Используется сотрудниками МБ. Применяется в процессах:

   - Установка запретов по БФ, 7кк.

   - Снятие заявок (запрос Участника торгов, приостановка, ликвидационный неттинг, сделки урегулирования).

   - Иные операции, предусмотренные процедурами МБ.

2. Логин с маской ftxxrm_admin4kazn – логин с ролью Казначейства НКЦ, уровня Администратор. Используется сотрудниками НКЦ. Применяется в процессах:

   - Установка запретов по РК.

   - Заключение сделок от имени НКЦ (ликвидационный неттинг, сделки урегулирования).

   - Иные операции, предусмотренные процедурами НКЦ.

### Обработка нештатных ситуаций

#### Восстановление при потере соединения с Биржей

Шлюз PLAZA II в стандартной конфигурации использует четыре TCP соединения с серверами биржи:

- Соединение для подачи приказов/команд.

- Соединение для получения основных рыночных данных. К таким данным относятся потоки агрегатов, потоки FORTS_ORDLOG_REPL, FORTS_DEALS_REPL, FORTS_TRADE_REPL, FORTS_COMMON_REPL.

- Соединение для получения вспомогательных и справочных потоков.

- Соединение для получения данных для восстановления при восстановлении связи или первоначальном присоединении (Snapshot).

Рисунок 18. Схема соединений

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

##### Диагностика разрыва соединений

За установку TCP соединений отвечает ПО P2MQRouter, все настройки для данных соединений прописаны в конфигурационном файле роутера, при этом соединение для "Other Data" указывается как исходящее default connection, а остальные как исходящие direct connection. Такое построение является основной штатной конфигурацией при подключении к серверной ферме биржи. Конфигурация соединений при подключении через сервер доступа брокера может отличаться, в этом случае требуется запрашивать конкретную конфигурацию у владельца сервера.

За восстановление соединения в случае разрыва также отвечает P2MQRouter, при обрыве он автоматически, с заданной периодичностью пытается восстановить соединение, при этом пользовательское приложение повлиять на эти процессы никак не может. И в этом случае, отследить разрыв соединения приложение пользователя может по изменению статуса P2MQRouter с ROUTER_CONNECTED на ROUTER_RECONNECTING, получая уведомления об изменении статуса от объекта "connection".

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

- Разрыв соединения с гейтом обработки входных приказов диагностируется непосредственно в момент получения ошибки TCP-соединения. При этом, затронутые разрывом объекты publisher переходят в ошибочное состояние.

- Диагностика разрыва соединения, используемого для получения основных рыночных данных, происходит в течение 30 секунд. Затронутые объекты listener при этом переходят в ошибочное состояние.

Объекты в состоянии ERROR необходимо освободить, и с какой-то периодичностью (например, раз в несколько секунд) пытаться переоткрыть заново.

##### Обработка таймаутов при отправке команд/транзакций

При работе с публикатором типа p2mq и подписчиком p2mqreply клиентский код может получить код ответа СG_MSG_P2MQ_TIMEOUT, сигнализирующий о том, что не был получен ответ на сообщение, ссылка на которое передается вместе с кодом ответа, в течение заданного пользователем времени. Получение ответа типа "таймаут" свидетельствует о проблемах соединения либо об иных инфраструктурных проблемах со стороны участника или биржи. Такая ситуация является ситуацией неопределенности - невозможно сказать было ли отправленное сообщение успешно обработано системой или нет. Для минимизации вероятности таких ситуаций следует задавать большие таймауты в коде - порядка 60 секунд.

При получении ответа типа "таймаут" рекомендуется иметь процедуру верификации отправленного сообщения:

1. Проверить, что пара публикатор p2mq и подписчик p2mqreply не перешли в ошибочное состояние. Если публикатор или подписчик в ошибочном состоянии, провести их закрытие и удаление и инициализировать заново.

2. Для команд управления заявками рекомендуется всегда задавать внешний номер заявки (параметр ext_id). В случае получения "таймаута" на команду AddOrder или MoveOrder возможной безопасной реакцией будет удалить заявку с помощью команды DelUserOrders с указанием ext_id.

3. Если "таймаут" произошел при удалении/отмене заявки, исходите из предположения, что заявка НЕ удалена. Повторите удаление после восстановления соединения или через ВПТС, работающее с другим ЦОД биржи.

4. Проанализируйте данные таблицы собственных заявок orders_log потока FORTS_TRADE_REPL на предмет наличия или отсутствия в ней отправленных заявок или отмен заявок.

5. Если "таймаут" произошел при отправке неторговой команды, проанализируйте состояние соответствующей таблицы в потоке реплики – отражены ли там запрошенные изменения.

##### Процедура восстановления

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

- После старта предпринимать периодические попытки открыть соединение с P2MQRouter.

- При восстановлении соединения рутера с сетью PLAZA II объект соединение перейдет в состояние 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 | Информация о вариационной марже и премии | Переоткрытие потока с нуля
FORTS_VOLAT_REPL | Информация о волатильности и теоретических ценах опционов | Переоткрытие потока с нуля
RTS_INDEX_REPL | Значения биржевых индексов | Переоткрытие потока с нуля

При восстановлении соединения важной задачей является получение текущих активных заявок пользователя:

1. Получение набора активных в момент восстановления заявок.

2. Получение журнал действий с заявками в период отсутствия соединения.

Задача 1 решается путём получения среза заявок (FORTS_USERORDERBOOK_REPL) — заявки, отсутствующие в срезе, были сведены или отвергнуты в период отсутствия соединения.

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

Примечание: Приведенная выше процедура восстановления подходит и для позднего входа.

##### Общие рекомендации

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

Рисунок 19. Дублирование каналов связи

#### Восстановление при проблемах в инфраструктуре Биржи

Под такими проблемами понимаются аварии на стороне биржи, связанные с нарушениями в работе ядра ТС или сервисов, формирующих какие-либо рыночные данные. Как правило, это приводит к останову и перезапуску этих сервисов.

##### Очистка данных по потокам

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

Уведомления об очистке есть двух типов:

- 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 - Журнал заявок
- multileg_orders_log - Журнал заявок по связкам
- user_deal - Журнал сделок пользователя
- user_multileg_deal - Журнал сделок пользователя по связкам
- heartbeat - Служебная таблица cерверных часов
- sys_events - Таблица событий

##### Таблица orders_log: Журнал заявок

Таблица 8. Поля таблицы 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 | Расширенный статус заявки
xstatus2 | i8 | Расширение для статусов заявок (в дополнение к полю xstatus)
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-логина.
private_order_id | i8 | Идентификационный номер заявки (для айсбергов – идентификационный номер всей айсберг-заявки)
private_amount | i8 | Количество контрактов в операции (для айсбергов – количество контрактов в операции со всей айсберг-заявкой)
private_amount_rest | i8 | Оставшееся количество контрактов в заявке (для айсбергов - оставшееся количество контрактов во всей айсберг-заявке)
variance_amount | i8 | Амплитуда отклонения (в контрактах) случайной надбавки к всплывающей части айсберг-заявки
disclose_const_amount | i8 | Количество единиц инструмента в постоянной составляющей всплывающей части айсберг-заявки
private_action | i1 | Действие с заявкой (для айсбергов – действие в отношении всей айсберг-заявки)
reason | i4 | Признак (причина) заявки, выставленной для заключения сделки урегулирования обязательств.
match_ref | c10 | Текст-связка для однозначного сопоставления двух встречных адресных заявок
compliance_id | c1 | Способ ввода заявки

Примечания:

- Поле 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

    Иное

- Поле compliance_id может принимать следующие значения:

  " " (пробел или пустая строка)

    Не заполнено/Не задано

  M

    Ручной ввод

  S

    В результате срабатывания условного поручения (стоп-лосс)

  R

    В результате работы алгоритма-робота

  A

    В результате алгоритма автоследования

  D

    Закрытие позиции в результате не исполненного MarginCall

##### Таблица multileg_orders_log: Журнал заявок по связкам

Таблица 9. Поля таблицы multileg_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 | Расширенный статус заявки
xstatus2 | i8 | Расширение для статусов заявок (в дополнение к полю xstatus)
price | d16.5 | Цена. Поле не используется.
moment | t | Время изменения состояния заявки
moment_ns | u8 | Время изменения состояния заявки (UNIX-время в наносекундах по стандарту UTC)
dir | i1 | Направление
public_action | i1 | Действие с заявкой (для айсбергов - действие с видимой частью айсберга)
deal_price | d16.5 | Цена первой ноги заключенной сделки
rate_price | d16.5 | Ставка заявки. Поле не используется.
swap_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-логина.
private_order_id | i8 | Идентификационный номер заявки (для айсбергов – идентификационный номер всей айсберг-заявки)
private_amount | i8 | Количество контрактов в операции (для айсбергов – количество контрактов в операции со всей айсберг-заявкой)
private_amount_rest | i8 | Оставшееся количество контрактов в заявке (для айсбергов - оставшееся количество контрактов во всей айсберг-заявке)
variance_amount | i8 | Амплитуда отклонения (в контрактах) случайной надбавки к всплывающей части айсберг-заявки
disclose_const_amount | i8 | Количество единиц инструмента в постоянной составляющей всплывающей части айсберг-заявки
private_action | i1 | Действие с заявкой (для айсбергов – действие в отношении всей айсберг-заявки)
reason | i4 | Признак (причина) заявки, выставленной для заключения сделки урегулирования обязательств.
match_ref | c10 | Текст-связка для однозначного сопоставления двух встречных адресных заявок
compliance_id | c1 | Способ ввода заявки

Примечания:

- Поле 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

    Иное

- Поле compliance_id может принимать следующие значения:

  " " (пробел или пустая строка)

    Не заполнено/Не задано

  M

    Ручной ввод

  S

    В результате срабатывания условного поручения (стоп-лосс)

  R

    В результате работы алгоритма-робота

  A

    В результате алгоритма автоследования

  D

    Закрытие позиции в результате не исполненного MarginCall

##### Таблица user_deal: Журнал сделок пользователя

Таблица 10. Поля таблицы 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 | Статус сделки со стороны продавца
xstatus2_buy | i8 | Расширение для статусов сделок (в дополнение к полю xstatus_buy)
xstatus2_sell | i8 | Расширение для статусов сделок (в дополнение к полю xstatus_sell)
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 | Код РТС фирмы продавца
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 являются битовыми масками (подробнее см. раздел Признаки, выставляемые у заявок и сделок)

- Для технических сделок, являющимися результатами сделок по инструментам-связкам, поле nosystem всегда установлено в 1, вне зависимости от того, является ли сделка по связке системной или адресной. Для определения системности исходной сделки надо использовать признак nosystem соответствующей записи таблицы multileg_deal.

- Поле id_repo содержит номер сделки по другой ноге. Для I-й ноги поле содержит номер сделки по II-й ноге, для II-й ноги – номер сделки по I-й.

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

- Для "чужих" сделок в полях xstatus_buy и xstatus_sell могут выставляться признаки NonQuote, ClearingTrade, Address и Strategy.

- В сделках экспирации id поручения на экспирацию указывается в поле private_order_id_buy, если экспирировался опцион колл, либо в поле private_order_id_sell, если экспирировался опцион пут.

- Поля fee_buy и fee_sell содержат оценочный размер лимита, блокируемого под комиссию по сделке. Размер комиссии необходимо смотреть в потоке FORTS_FEE_REPL.

- Поля reason_buy и reason_sell могут принимать следующие значения:

  0

    Обычная сделка

  4

    Балансирующие Срочные контракты, заключенные с Добросовестным участником клиринга без подачи заявок

  6

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

  7

    Закрывающие Срочные контракты, заключенные в связи с неисполнением Маржинального требования

  8

    Закрывающие Срочные контракты, заключенные в связи с неисполнением Обязательства по поставке по поставочным Срочным контрактам на драгоценные металлы

  100

    Иное

##### Таблица user_multileg_deal: Журнал сделок пользователя по связкам

Таблица 11. Поля таблицы user_multileg_deal

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
sess_id | i4 | Идентификатор торговой сессии
isin_id | i4 | Идентификатор инструмента-связки
isin_id_rd | i4 | Идентификатор инструмента первой ноги
isin_id_rb | i4 | Идентификатор инструмента второй ноги
duration | i4 | Разница в календарных днях между датами исполнения двух фьючерсов
id_deal | i8 | Номер сделки по связке
id_deal_rd | i8 | Идентификатор сделки по первой ноге
id_deal_rb | i8 | Идентификатор сделки по второй ноге
public_order_id_buy | i8 | Идентификатор заявки покупателя (для айсбергов - номер видимой части айсберг-заявки покупателя)
public_order_id_sell | i8 | Идентификатор заявки продавца (для айсбергов - номер видимой части айсберг-заявки продавца)
xamount | i8 | Объем, количество единиц инструмента
price | d16.5 | Цена первой части парной связки
rate_price | d16.5 | Ставка сделки
swap_price | d16.5 | Своп-цена сделки
moment | t | Время заключения сделки
moment_ns | u8 | Время заключения сделки (UNIX-время в наносекундах по стандарту UTC)
nosystem | i1 | Признак внесистемной сделки
xstatus_buy | i8 | Расширенный статус сделки со стороны покупателя
xstatus_sell | i8 | Расширенный статус сделки со стороны продавца
xstatus2_buy | i8 | Расширение для статусов сделок (в дополнение к полю xstatus_buy)
xstatus2_sell | i8 | Расширение для статусов сделок (в дополнение к полю xstatus_sell)
ext_id_buy | i4 | Внешний номер из заявки покупателя
ext_id_sell | i4 | Внешний номер из заявки продавца
code_buy | c7 | Код покупателя
code_sell | c7 | Код продавца
comment_buy | c20 | Комментарий из заявки покупателя
comment_sell | c20 | Комментарий из заявки продавца
login_buy | c20 | Логин пользователя покупателя
login_sell | c20 | Логин пользователя продавца
code_rts_buy | c7 | Код РТС фирмы покупателя
code_rts_sell | c7 | Код РТС фирмы продавца
private_order_id_buy | i8 | Идентификатор заявки покупателя (для айсбергов - идентификатор всей айсберг-заявки покупателя)
private_order_id_sell | i8 | Идентификатор заявки продавца (для айсбергов - идентификатор всей айсберг-заявки продавца)
reason_buy | i4 | Признак (причина) сделки урегулирования покупателя.
reason_sell | i4 | Признак (причина) сделки урегулирования продавца.

Примечания:

- Поля code_sell, comment_sell, ext_id_sell, code_rts_sell, fee_sell, code_buy, comment_buy, ext_id_buy, code_rts_buy, fee_buy, заполняются только для своих сделок

- Поле rate_price для инструментов, торгуемых в своп цене, содержит 0.

- Поля reason_buy и reason_sell могут принимать следующие значения:

  0

    Обычная сделка

  4

    Балансирующие Срочные контракты, заключенные с Добросовестным участником клиринга без подачи заявок

  6

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

  7

    Закрывающие Срочные контракты, заключенные в связи с неисполнением Маржинального требования

  8

    Закрывающие Срочные контракты, заключенные в связи с неисполнением Обязательства по поставке по поставочным Срочным контрактам на драгоценные металлы

  100

    Иное

##### Таблица heartbeat: Служебная таблица cерверных часов

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

Таблица 12. Поля таблицы heartbeat

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
server_time | t | Дата и время сервера

##### Таблица 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 = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 23

    message = "discrete_auction_add_order_started"

    Начало приема заявок в аукцион открытия

    event_type = 24

    message = "discrete_auction_add_order_finished"

    Окончание приема заявок в аукцион открытия

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

### Поток FORTS_ORDLOG_REPL - Поток анонимных заявок (Type=R)

#### Схема данных

Таблицы:

- orders_log - Журнал заявок
- multileg_orders_log - Журнал заявок по связкам
- heartbeat - Служебная таблица cерверных часов
- sys_events - Таблица событий

##### Таблица orders_log: Журнал заявок

Таблица 14. Поля таблицы 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 | Расширенный статус заявки
xstatus2 | i8 | Расширение для статусов заявок (в дополнение к полю xstatus)
price | d16.5 | Цена
moment | t | Время изменения состояния заявки
moment_ns | u8 | Время изменения состояния заявки (UNIX-время в наносекундах по стандарту UTC)
dir | i1 | Направление
public_action | i1 | Действие с заявкой (для айсбергов - действие с видимой частью айсберга)
deal_price | d16.5 | Цена заключенной сделки

Примечания:

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

- Поле dir может принимать следующие значения:

  1

    Buy

  2

    Sell

- Поле public_action может принимать следующие значения

  0

    Заявка удалена

  1

    Заявка добавлена

  2

    Заявка сведена в сделку

##### Таблица multileg_orders_log: Журнал заявок по связкам

Таблица 15. Поля таблицы multileg_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 | Расширенный статус заявки
xstatus2 | i8 | Расширение для статусов заявок (в дополнение к полю xstatus)
price | d16.5 | Цена. Поле не используется.
moment | t | Время изменения состояния заявки
moment_ns | u8 | Время изменения состояния заявки (UNIX-время в наносекундах по стандарту UTC)
dir | i1 | Направление
public_action | i1 | Действие с заявкой (для айсбергов - действие с видимой частью айсберга)
deal_price | d16.5 | Цена первой ноги заключенной сделки
rate_price | d16.5 | Ставка заявки. Поле не используется.
swap_price | d16.5 | Своп-цена заявки

Примечания:

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

- Поле dir может принимать следующие значения:

  1

    Buy

  2

    Sell

- Поле public_action может принимать следующие значения

  0

    Заявка удалена

  1

    Заявка добавлена

  2

    Заявка сведена в сделку

##### Таблица heartbeat: Служебная таблица cерверных часов

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

Таблица 16. Поля таблицы heartbeat

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
server_time | t | Дата и время сервера

##### Таблица 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 = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 23

    message = "discrete_auction_add_order_started"

    Начало приема заявок в аукцион открытия

    event_type = 24

    message = "discrete_auction_add_order_finished"

    Окончание приема заявок в аукцион открытия

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

### Поток FORTS_DEALS_REPL - Поток анонимных сделок (Type=R)

#### Схема данных

Таблицы:

- deal - Журнал сделок
- multileg_deal - Журнал сделок по связкам
- heartbeat - Служебная таблица cерверных часов
- sys_events - Таблица событий

##### Таблица deal: Журнал сделок

Таблица 18. Поля таблицы 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 | Статус сделки со стороны продавца
xstatus2_buy | i8 | Расширение для статусов сделок (в дополнение к полю xstatus_buy)
xstatus2_sell | i8 | Расширение для статусов сделок (в дополнение к полю xstatus_sell)

Примечания:

- В сделках экспирации id поручения на экспирацию указывается в поле public_order_id_sell, если это сделка по опциону, в поле public_order_id_buy в сделках по фьючерсу для опциона колл, в поле public_order_id_sell в сделках по фьючерсу для опциона пут.

- Поля xstatus_sell и xstatus_buy являются битовыми масками (подробнее см. раздел Признаки, выставляемые у заявок и сделок)

##### Таблица multileg_deal: Журнал сделок по связкам

Таблица 19. Поля таблицы multileg_deal

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
sess_id | i4 | Идентификатор торговой сессии
isin_id | i4 | Идентификатор инструмента-связки
id_deal | i8 | Номер сделки
public_order_id_buy | i8 | Идентификатор заявки покупателя (для айсбергов - номер видимой части айсберг-заявки покупателя)
public_order_id_sell | i8 | Идентификатор заявки продавца (для айсбергов - номер видимой части айсберг-заявки продавца)
xamount | i8 | Объем, количество единиц инструмента
price | d16.5 | Цена первой части парной связки
rate_price | d16.5 | Ставка сделки
swap_price | d16.5 | Своп-цена сделки
moment | t | Время заключения сделки
moment_ns | u8 | Время заключения сделки (UNIX-время в наносекундах по стандарту UTC)
nosystem | i1 | Признак внесистемной сделки
xstatus_buy | i8 | Статус сделки со стороны покупателя
xstatus_sell | i8 | Статус сделки со стороны продавца
xstatus2_buy | i8 | Расширение для статусов сделок (в дополнение к полю xstatus_buy)
xstatus2_sell | i8 | Расширение для статусов сделок (в дополнение к полю xstatus_sell)

Примечания:

- Поля xstatus_sell и xstatus_buy являются битовыми масками (подробнее см. раздел Признаки, выставляемые у заявок и сделок)

##### Таблица heartbeat: Служебная таблица cерверных часов

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

Таблица 20. Поля таблицы heartbeat

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
server_time | t | Дата и время сервера

##### Таблица sys_events: Таблица событий

Таблица 21. Поля таблицы 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 = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 23

    message = "discrete_auction_add_order_started"

    Начало приема заявок в аукцион открытия

    event_type = 24

    message = "discrete_auction_add_order_finished"

    Окончание приема заявок в аукцион открытия

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

### Поток FORTS_FEE_REPL - Поток комиссий и штрафов биржи (Type=AR)

#### Схема данных

Таблицы:

- adjusted_fee - Комиссии биржи
- penalty - Штрафы биржи
- sys_events - Таблица событий

##### Таблица adjusted_fee: Комиссии биржи

Таблица 22. Поля таблицы 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_trade_buy | d26.2 | Биржевой сбор по сделке покупателя, точно
adjusted_fee_clearing_buy | d26.2 | Клиринговый сбор по сделке покупателя, точно
adjusted_fee_sell | d26.2 | Сбор по сделке продавца, точно
adjusted_fee_trade_sell | d26.2 | Биржевой сбор по сделке продавца, точно
adjusted_fee_clearing_sell | d26.2 | Клиринговый сбор по сделке продавца, точно
id_deal_multileg | i8 | Номер сделки по связке

##### Таблица penalty: Штрафы биржи

Таблица 23. Поля таблицы 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: Таблица событий

Таблица 24. Поля таблицы 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 = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

### Поток FORTS_FEERATE_REPL - Поток точных ставок комиссий биржи (Type=AR)

#### Схема данных

Таблицы:

- futures_rate - Точные ставки комиссий по фьючерсам и инструментам-связкам

- option_rate - Точные ставки комиссий по опционам

- sys_events - Таблица событий

##### Таблица futures_rate: Точные ставки комиссий по фьючерсам и инструментам-связкам

Таблица 25. Поля таблицы 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 | Точная ставка клиринговой комиссии за исполнение контракта.

##### Таблица option_rate: Точные ставки комиссий по опционам

Таблица 26. Поля таблицы option_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: Таблица событий

Таблица 27. Поля таблицы 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 = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

### Поток FORTS_BROKER_FEE_REPL - Брокерские комиссии (Type=I)

#### Схема данных

Таблицы:

- broker_fee - Брокерская комиссия
- sys_events - Таблица событий

##### Таблица broker_fee: Брокерская комиссия

Таблица 28. Поля таблицы broker_fee

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
sess_id | i4 | Номер сессии
id_deal | i8 | Номер сделки
moment | t | Время заключения сделки
moment_ns | u8 | Время заключения сделки (UNIX-время в наносекундах по стандарту UTC)
code_buy | c7 | Код покупателя
code_sell | c7 | Код продавца
broker_fee_buy | d26.2 | Брокерская комиссия по сделке покупателя
broker_fee_sell | d26.2 | Брокерская комиссия по сделке продавца
id_deal_multileg | i8 | Номер сделки по связке

##### Таблица sys_events: Таблица событий

Таблица 29. Поля таблицы 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 = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

### Поток FORTS_BROKER_FEE_PARAMS_REPL - Параметры для расчета брокерской комиссии (Type=I)

#### Схема данных

Таблицы:

- broker_fee_params - Параметры для расчета брокерской комиссии
- sys_events - Таблица событий

##### Таблица broker_fee_params: Параметры для расчета брокерской комиссии

Таблица 30. Поля таблицы 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: Таблица событий

Таблица 31. Поля таблицы 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 = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

### Поток FORTS_USERORDERBOOK_REPL - Заявки пользователя: Cрез стакана (Type=R)

В потоке с периодичностью раз в 2 минуты в таблице orders публикуется срез активных заявок, и запись в таблице info с ревизией последней обработанной транзакции из orders_log, номером жизни потока и состоянием публикации среза (поле publication_state). В момент публикации среза поле publication_state принимает значение 0. После того как срез опубликован publication_state принимает значение 1. До момента publication_state=1 данные в таблице orders могут быть неконсистентны.

#### Схема данных

Таблицы:

- orders - Таблица активных фьючерсных и опционных заявок
- multileg_orders - Таблица активных заявок по связкам
- info - Информация о стаканах
- orders_currentday - Срез активных заявок пользователя на начало текущего дня
- multileg_orders_currentday - Срез активных заявок пользователя по связкам на начало текущего дня
- info_currentday - Информация о срезе

##### Таблица orders: Таблица активных фьючерсных и опционных заявок

Таблица 32. Поля таблицы 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 | Расширенный статус заявки
xstatus2 | i8 | Расширение для статусов заявок (в дополнение к полю xstatus)
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-логина.
private_order_id | i8 | Идентификационный номер заявки (для айсбергов – идентификационный номер всей айсберг-заявки)
private_amount | i8 | Количество контрактов в операции (для айсбергов – количество контрактов в операции со всей айсберг-заявкой)
private_amount_rest | i8 | Оставшееся количество контрактов в заявке (для айсбергов - оставшееся количество контрактов во всей айсберг-заявке)
variance_amount | i8 | Амплитуда отклонения (в контрактах) случайной надбавки к всплывающей части айсберг-заявки
disclose_const_amount | i8 | Количество единиц инструмента в постоянной составляющей всплывающей части айсберг-заявки
private_action | i1 | Действие с заявкой (для айсбергов – действие в отношении всей айсберг-заявки)
private_init_moment | t | Время появления заявки (для айсбергов - время появления всей айсберг-заявки)
private_init_amount | i8 | Начальное количество контрактов в заявке (для айсбергов - начальное количество контрактов во всей айсберг-заявке)
reason | i4 | Признак (причина) заявки, выставленной для заключения сделки урегулирования обязательств.
match_ref | c10 | Текст-связка для однозначного сопоставления двух встречных адресных заявок
public_init_moment | t | Время появления заявки (для айсбергов - время появления видимой части айсберга)
public_init_amount | i8 | Начальное количество контрактов в заявке (для айсбергов - начальное количество контрактов в видимой части айсберга)
compliance_id | c1 | Способ ввода заявки

Примечания:

- Поле 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

    Иное

- Поле compliance_id может принимать следующие значения:

  " " (пробел или пустая строка)

    Не заполнено/Не задано

  M

    Ручной ввод

  S

    В результате срабатывания условного поручения (стоп-лосс)

  R

    В результате работы алгоритма-робота

  A

    В результате алгоритма автоследования

  D

    Закрытие позиции в результате не исполненного MarginCall

##### Таблица multileg_orders: Таблица активных заявок по связкам

Таблица 33. Поля таблицы multileg_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 | Расширенный статус заявки
xstatus2 | i8 | Расширение для статусов заявок (в дополнение к полю xstatus)
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-логина.
private_order_id | i8 | Идентификационный номер заявки (для айсбергов – идентификационный номер всей айсберг-заявки)
private_amount | i8 | Количество контрактов в операции (для айсбергов – количество контрактов в операции со всей айсберг-заявкой)
private_amount_rest | i8 | Оставшееся количество контрактов в заявке (для айсбергов - оставшееся количество контрактов во всей айсберг-заявке)
variance_amount | i8 | Амплитуда отклонения (в контрактах) случайной надбавки к всплывающей части айсберг-заявки
disclose_const_amount | i8 | Количество единиц инструмента в постоянной составляющей всплывающей части айсберг-заявки
private_action | i1 | Действие с заявкой (для айсбергов – действие в отношении всей айсберг-заявки)
private_init_moment | t | Время появления заявки (для айсбергов - время появления всей айсберг-заявки)
private_init_amount | i8 | Начальное количество контрактов в заявке (для айсбергов - начальное количество контрактов во всей айсберг-заявке)
reason | i4 | Признак (причина) заявки, выставленной для заключения сделки урегулирования обязательств.
match_ref | c10 | Текст-связка для однозначного сопоставления двух встречных адресных заявок
public_init_moment | t | Время появления заявки (для айсбергов - время появления видимой части айсберга)
public_init_amount | i8 | Начальное количество контрактов в заявке (для айсбергов - начальное количество контрактов в видимой части айсберга)
compliance_id | c1 | Способ ввода заявки
rate_price | d16.5 | Ставка заявки. Поле не используется.
swap_price | d16.5 | Своп-цена заявки

Примечания:

- Поле 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

    Иное

- Поле compliance_id может принимать следующие значения:

  " " (пробел или пустая строка)

    Не заполнено/Не задано

  M

    Ручной ввод

  S

    В результате срабатывания условного поручения (стоп-лосс)

  R

    В результате работы алгоритма-робота

  A

    В результате алгоритма автоследования

  D

    Закрытие позиции в результате не исполненного MarginCall

##### Таблица info: Информация о стаканах

Таблица 34. Поля таблицы info

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
infoID | i8 | Уникальный ключ
logRev | i8 | Последняя обработанная ревизия на момент формирования среза. Поле является устаревшим и будет удалено в версии 8.9.
lifeNum | i4 | Номер жизни потока. Поле является устаревшим и будет удалено в версии 8.9
moment | t | Время формирования среза
publication_state | i1 | Состояние публикации среза
trades_rev | i8 | Последняя обработанная ревизия на момент формирования среза
trades_lifenum | i8 | Номер жизни потока

Примечания:

- Поле publication_state может принимать следующие значения:

  0

    in progress (данные не готовы)

  1

    done

##### Таблица orders_currentday: Срез активных заявок пользователя на начало текущего дня

Таблица 35. Поля таблицы orders_currentday

Поле | Тип | Описание
--- | --- | ---
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 | Расширенный статус заявки
xstatus2 | i8 | Расширение для статусов заявок (в дополнение к полю xstatus)
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-логина.
private_order_id | i8 | Идентификационный номер заявки (для айсбергов – идентификационный номер всей айсберг-заявки)
private_amount | i8 | Количество контрактов в операции (для айсбергов – количество контрактов в операции со всей айсберг-заявкой)
private_amount_rest | i8 | Оставшееся количество контрактов в заявке (для айсбергов - оставшееся количество контрактов во всей айсберг-заявке)
variance_amount | i8 | Амплитуда отклонения (в контрактах) случайной надбавки к всплывающей части айсберг-заявки
disclose_const_amount | i8 | Количество единиц инструмента в постоянной составляющей всплывающей части айсберг-заявки
private_action | i1 | Действие с заявкой (для айсбергов – действие в отношении всей айсберг-заявки)
private_init_moment | t | Время появления заявки (для айсбергов - время появления всей айсберг-заявки)
private_init_amount | i8 | Начальное количество контрактов в заявке (для айсбергов - начальное количество контрактов во всей айсберг-заявке)
reason | i4 | Признак (причина) заявки, выставленной для заключения сделки урегулирования обязательств.
match_ref | c10 | Текст-связка для однозначного сопоставления двух встречных адресных заявок
public_init_moment | t | Время появления заявки (для айсбергов - время появления видимой части айсберга)
public_init_amount | i8 | Начальное количество контрактов в заявке (для айсбергов - начальное количество контрактов в видимой части айсберга)
compliance_id | c1 | Способ ввода заявки

Примечания:

- Поле 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

    Иное

- Поле compliance_id может принимать следующие значения:

  " " (пробел или пустая строка)

    Не заполнено/Не задано

  M

    Ручной ввод

  S

    В результате срабатывания условного поручения (стоп-лосс)

  R

    В результате работы алгоритма-робота

  A

    В результате алгоритма автоследования

  D

    Закрытие позиции в результате не исполненного MarginCall

##### Таблица multileg_orders_currentday: Срез активных заявок пользователя по связкам на начало текущего дня

Таблица 36. Поля таблицы multileg_orders_currentday

Поле | Тип | Описание
--- | --- | ---
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 | Расширенный статус заявки
xstatus2 | i8 | Расширение для статусов заявок (в дополнение к полю xstatus)
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-логина.
private_order_id | i8 | Идентификационный номер заявки (для айсбергов – идентификационный номер всей айсберг-заявки)
private_amount | i8 | Количество контрактов в операции (для айсбергов – количество контрактов в операции со всей айсберг-заявкой)
private_amount_rest | i8 | Оставшееся количество контрактов в заявке (для айсбергов - оставшееся количество контрактов во всей айсберг-заявке)
variance_amount | i8 | Амплитуда отклонения (в контрактах) случайной надбавки к всплывающей части айсберг-заявки
disclose_const_amount | i8 | Количество единиц инструмента в постоянной составляющей всплывающей части айсберг-заявки
private_action | i1 | Действие с заявкой (для айсбергов – действие в отношении всей айсберг-заявки)
private_init_moment | t | Время появления заявки (для айсбергов - время появления всей айсберг-заявки)
private_init_amount | i8 | Начальное количество контрактов в заявке (для айсбергов - начальное количество контрактов во всей айсберг-заявке)
reason | i4 | Признак (причина) заявки, выставленной для заключения сделки урегулирования обязательств.
match_ref | c10 | Текст-связка для однозначного сопоставления двух встречных адресных заявок
public_init_moment | t | Время появления заявки (для айсбергов - время появления видимой части айсберга)
public_init_amount | i8 | Начальное количество контрактов в заявке (для айсбергов - начальное количество контрактов в видимой части айсберга)
compliance_id | c1 | Способ ввода заявки
rate_price | d16.5 | Ставка заявки. Поле не используется.
swap_price | d16.5 | Своп-цена заявки

Примечания:

- Поле 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

    Иное

- Поле compliance_id может принимать следующие значения:

  " " (пробел или пустая строка)

    Не заполнено/Не задано

  M

    Ручной ввод

  S

    В результате срабатывания условного поручения (стоп-лосс)

  R

    В результате работы алгоритма-робота

  A

    В результате алгоритма автоследования

  D

    Закрытие позиции в результате не исполненного MarginCall

##### Таблица info_currentday: Информация о срезе

Таблица 37. Поля таблицы info_currentday

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
trades_rev | i8 | Ревижен события start_of_calendar_date
trades_lifenum | i8 | Номер жизни потока
server_time | t | Дата-время формирования среза заявок

### Поток FORTS_ORDBOOK_REPL - Cрез стакана. Анонимный (Type=R)

В потоке с периодичностью раз в 2 минуты в таблице orders публикуется срез активных заявок, и запись в таблице info с ревизией последней обработанной транзакции из orders_log, номером жизни потока и состоянием публикации среза (поле publication_state). В момент публикации среза поле publication_state принимает значение 0. После того как срез опубликован publication_state принимает значение 1. До момента publication_state=1 данные в таблице orders могут быть неконсистентны.

#### Схема данных

Таблицы:

- orders - Таблица активных анонимных заявок
- multileg_orders - Таблица активных анонимных заявок по связкам
- info - Информация о стаканах
- orders_currentday - Срез активных заявок на начало текущего дня
- multileg_orders_currentday - Срез активных заявок по связкам на начало текущего дня
- info_currentday - Информация о срезе

##### Таблица orders: Таблица активных анонимных заявок

Таблица 38. Поля таблицы orders

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
public_order_id | i8 | Идентификационный номер заявки (для айсбергов - номер видимой части айсберга)
sess_id | i4 | Идентификатор торговой сессии
moment | t | Время изменения состояния заявки
moment_ns | u8 | Время изменения состояния заявки (UNIX-время в наносекундах по стандарту UTC)
xstatus | i8 | Расширенный статус заявки
xstatus2 | i8 | Расширение для статусов заявок (в дополнение к полю xstatus)
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 | Начальное количество контрактов в заявке (для айсбергов - начальное количество контрактов в видимой части айсберга)

Примечания:

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

- Поле dir может принимать следующие значения:

  1

    Buy

  2

    Sell

- Поле public_action может принимать следующие значения

  1

    Заявка добавлена

  2

    Заявка сведена в сделку

##### Таблица multileg_orders: Таблица активных анонимных заявок по связкам

Таблица 39. Поля таблицы multileg_orders

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
public_order_id | i8 | Идентификационный номер заявки (для айсбергов - номер видимой части айсберга)
sess_id | i4 | Идентификатор торговой сессии
moment | t | Время изменения состояния заявки
moment_ns | u8 | Время изменения состояния заявки (UNIX-время в наносекундах по стандарту UTC)
xstatus | i8 | Расширенный статус заявки
xstatus2 | i8 | Расширение для статусов заявок (в дополнение к полю xstatus)
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 | Начальное количество контрактов в заявке (для айсбергов - начальное количество контрактов в видимой части айсберга)
rate_price | d16.5 | Ставка заявки. Поле не используется.
swap_price | d16.5 | Своп-цена заявки

Примечания:

- Поле 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

    Иное

- Поле compliance_id может принимать следующие значения:

  " " (пробел или пустая строка)

    Не заполнено/Не задано

  M

    Ручной ввод

  S

    В результате срабатывания условного поручения (стоп-лосс)

  R

    В результате работы алгоритма-робота

  A

    В результате алгоритма автоследования

  D

    Закрытие позиции в результате не исполненного MarginCall

##### Таблица info: Информация о стаканах

Таблица 40. Поля таблицы info

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
infoID | i8 | Уникальный ключ
logRev | i8 | Последняя обработанная ревизия на момент формирования среза. Поле является устаревшим и будет удалено в версии 8.9.
lifeNum | i4 | Номер жизни потока. Поле является устаревшим и будет удалено в версии 8.9.
moment | t | Время формирования среза
publication_state | i1 | Состояние публикации среза
trades_rev | i8 | Последняя обработанная ревизия на момент формирования среза
trades_lifenum | i8 | Номер жизни потока

Примечания:

- Поле publication_state может принимать следующие значения:

  0

    in progress (данные не готовы)

  1

    done

##### Таблица orders_currentday: Срез активных заявок на начало текущего дня

Таблица 41. Поля таблицы orders_currentday

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
public_order_id | i8 | Идентификационный номер заявки (для айсбергов - номер видимой части айсберга)
sess_id | i4 | Идентификатор торговой сессии
moment | t | Время изменения состояния заявки
moment_ns | u8 | Время изменения состояния заявки (UNIX-время в наносекундах по стандарту UTC)
xstatus | i8 | Расширенный статус заявки
xstatus2 | i8 | Расширение для статусов заявок (в дополнение к полю xstatus)
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 | Начальное количество контрактов в заявке (для айсбергов - начальное количество контрактов в видимой части айсберга)

Примечания:

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

- Поле dir может принимать следующие значения:

  1

    Buy

  2

    Sell

- Поле public_action может принимать следующие значения

  1

    Заявка добавлена

  2

    Заявка сведена в сделку

##### Таблица multileg_orders_currentday: Срез активных заявок по связкам на начало текущего дня

Таблица 42. Поля таблицы multileg_orders_currentday

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
public_order_id | i8 | Идентификационный номер заявки (для айсбергов - номер видимой части айсберга)
sess_id | i4 | Идентификатор торговой сессии
moment | t | Время изменения состояния заявки
moment_ns | u8 | Время изменения состояния заявки (UNIX-время в наносекундах по стандарту UTC)
xstatus | i8 | Расширенный статус заявки
xstatus2 | i8 | Расширение для статусов заявок (в дополнение к полю xstatus)
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 | Начальное количество контрактов в заявке (для айсбергов - начальное количество контрактов в видимой части айсберга)
rate_price | d16.5 | Ставка заявки. Поле не используется.
swap_price | d16.5 | Своп-цена заявки

Примечания:

- Поле 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

    Иное

- Поле compliance_id может принимать следующие значения:

  " " (пробел или пустая строка)

    Не заполнено/Не задано

  M

    Ручной ввод

  S

    В результате срабатывания условного поручения (стоп-лосс)

  R

    В результате работы алгоритма-робота

  A

    В результате алгоритма автоследования

  D

    Закрытие позиции в результате не исполненного MarginCall

##### Таблица info_currentday: Информация о срезе

Таблица 43. Поля таблицы info_currentday

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
trades_rev | i8 | Ревижен события start_of_calendar_date
trades_lifenum | i8 | Номер жизни потока
server_time | t | Дата-время формирования среза заявок

### Поток FORTS_COMMON_REPL - Общая информация по сессии (Type=I)

#### Схема данных

Таблицы:

- common - Общая информация по сессии
- sys_events - Таблица событий

##### Таблица common: Общая информация по сессии

Таблица содержит общерыночные показатели такие как лучшие заявки на покупку и продажу, цены открытия, закрытия и т.п.

Таблица 44. Поля таблицы 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 | Цена закрытия
opening_auction_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 | Текущая рыночная цена.
price_assigned_by_admin | i1 | Признак установки текущей рыночной цены Администратором торгов.
local_time | t | Поле для мониторинга репликации common
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 | Объём в контрактах в заявках на продажу без учета синтетической ликвидности
swap_rate | d16.5 | Текущий индикативный фандинг по инструменту (для ВФ)
index_div | d18.4 | Текущая дивидендная поправка для ВФ на индекс или акцию

Примечания:

- Поле open_price содержит цену первой сделки в текущей сессии, а если её нет, то 0.

- Поле close_price содержит цену последней сделки в соответствующей сессии. До завершения сессии в поле транслируется 0. После завершения сессии (после вечернего клиринга до утра) транслируется цена последней сделки или 0, если сделок не было.

- Поле price_assigned_by_admin может принимать следующие значения:

  1

    Значение текущей рыночной цены в поле market_price установлено Администратором торгов.

  0

    Значение текущей рыночной цены в поле market_price рассчитано системой.

##### Таблица sys_events: Таблица событий

Таблица 45. Поля таблицы 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 = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

### Потоки агрегированных стаканов (Type=I)

Существует несколько потоков агрегированных стаканов с различной глубиной.

- FORTS_AGGR50_REPL - с глубиной 50 ценовых уровней

- FORTS_AGGR20_REPL - с глубиной 20 ценовых уровней

- FORTS_AGGR5_REPL - с глубиной 5 ценовых уровней

#### Схема данных

Таблицы:

- orders_aggr - Агрегированные стаканы
- sys_events - Таблица событий

##### Таблица orders_aggr: Агрегированные стаканы

Агрегированные стаканы формируются путем суммирования по объёму активных заявок с одинаковыми инструментом, ценой и направлением.

Режимы использования таблицы в зависимости от режимов работы торговой системы:

- Ночной период - таблица содержит данные на момент завершения вечерней сессии

- Торговая сессия до промежуточного клиринга - таблица обновляется активными заявками

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

- Торговая сессия после промежуточного клиринга - таблица обновляется активными заявками

- Основной клиринг - таблица очищается

- Вечерняя торговая сессия - таблица обновляется активными заявками вечерней сессии

Таблица 46. Поля таблицы 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 | Объем синтетической ликвидности

Примечания:

- Данные в таблице агрегированных стаканов orders_aggr считаются валидными только после получения в потоке в таблице sys_events синхрособытия session_data_ready.

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

- Записи в стакане по инструменту могут обновляться (изменение price/volume/dir). Это означает, что предыдущий ценовой уровень "вышел" из стакана, а новый "вошел" в стакан.

- Обнуление (volume=0) существующей записи в стакане – означает, что данный ценовой уровень "вышел" из стакана (например, единственная заявка, формировавшая ценовой уровень, была удалена), а других скрытых ценовых уровней (заявок) по инструменту в системе нет.

- Значение поля moment (moment_ns) в таблице не является монотонно возрастающим. При возрастании replRev в потоке агрегированных стаканов могут появляться записи с более ранним значением поля moment. Такое поведение системы ожидаемо и может возникать в разных ситуациях, когда сформированный ранее ценовой уровень был скрыт в силу некоторых причин, но потом начал отображаться. Поле же moment содержит в себе время события, приведшего к формированию ценового уровня (постановка, снятие, исполнение заявки). Примеры подобного поведения системы:

  - Самый простой случай связан с тем, что в потоках агрегированных стаканов показывается ограниченное по цене количество уровней ликвидности. Например, в FORTS_AGGR20_REPL показывается лишь 20 лучших ценовых уровней. Скрытый, но уже сформированный уровень с ценой вне отображаемого диапазона, может появиться, если один из отображаемых ценовых уровней "исчез" (например, была удалена единственная заявка, формировавшая видимый ценовой уровень).

  - Похожая, но чуть более сложная ситуация связана с индикативной синтетической ликвидностью. В агрегированных стаканах, вне зависимости от их глубины, всегда транслируется не более 5 ценовых уровней, формируемых индикативными синтетическими заявками (см. «Синтетическая ликвидность в агрегированных стаканах»). Соответственно, здесь ситуация может быть аналогична, если какие-то ценовые уровни представлены только лишь индикативной синтетической ликвидностью. При "исчезновении" такого ценового уровня начнет отображаться спрятанный до этого ценовой уровень индикативной синтетической ликвидности. Если же на этих уровнях присутствует и ликвидность, созданная реальными заявками в этом инструменте, то подобного эффекта уже не будет. Подробнее про синтетический матчинг и индикативную синтетическую ликвидность см. «Синтетический матчинг».

Пример построения агрегированного стакана:

Для упрощения выбираем случай, когда глубина стакана равна 2.

1. Время 12:00:01. Появилась заявка на покупку с ценой 5 и объемом 10 по новому инструменту с isin_id=12345. Приходят новые четыре записи. Стакан полностью заполнился нулевыми значениями.

       replID=1   replRev=1   isin_id=12345   price=0   volume=0   moment='12:00:01'   dir=1
       replID=2   replRev=2   isin_id=12345   price=0   volume=0   moment='12:00:01'   dir=1
       replID=3   replRev=3   isin_id=12345   price=0   volume=0   moment='12:00:01'   dir=2
       replID=4   replRev=4   isin_id=12345   price=0   volume=0   moment='12:00:01'   dir=2

   Приходит апдейт записи. В одной из записей поменялась цена и объем. Следует заметить, что при добавлении новой заявки, когда происходит поиск нулевых записей, система может выбрать случайный replID, т.е. не факт, что произойдет апдейт записи с replID=1, а не с replID=2.

       replID=1   replRev=5   isin_id=12345   price=5   volume=10   moment='12:00:01'   dir=1

   Стакан:

2. Время 12:00:02. Появилась заявка на покупку с ценой 4 и объемом 10. Приходит апдейт записи.

       replID=2   replRev=6   isin_id=12345   price=4   volume=10   moment='12:00:02'   dir=1

   Стакан:

3. Время 12:00:03. Появилась заявка на продажу с ценой 8 и объемом 10. Приходит апдейт записи.

       replID=3   replRev=7   isin_id=12345   price=8   volume=10   moment='12:00:03'   dir=2

   Стакан:

4. Время 12:00:04. Появилась заявка на продажу с ценой 7 и объемом 10. Приходит апдейт записи.

       replID=4   replRev=8   isin_id=12345   price=7   volume=10   moment='12:00:04'   dir=2

   Стакан:

5. Время 12:00:05. Появилась еще одна заявка на покупку с ценой 4 и объемом 5. Приходит апдейт записи. У заявки с ценой 4, т.е. с replID=2 изменился объем.

       replID=2   replRev=9   isin_id=12345   price=4   volume=15   moment='12:00:05'   dir=1

   Стакан:

6. Время 12:00:06. Удалилась/свелась заявка на покупку с ценой 5 и объемом 10. Приходит апдейт записи. Значения цены и объема обнулились для replID=1, так как такой заявки больше нет.

       replID=1   replRev=10   isin_id=12345   price=0   volume=0   moment='12:00:06'   dir=1

   Стакан:

7. Время 12:00:07. Появилась заявка на покупку с ценой 5 и объемом 8. Приходит апдейт записи.

       replID=1   replRev=11   isin_id=12345   price=5   volume=8   moment='12:00:07'   dir=1

   Стакан:

8. Время 12:00:08. Появилась заявка на покупку с ценой 6 и объемом 10. Приходит апдейт записи. Запись с ценой 4 теперь не входит в стакан, она заменена на цену 6.

       replID=2   replRev=12   isin_id=12345   price=6   volume=10   moment='12:00:08'   dir=1

   Стакан:

9. Время 12:00:09. Удалилась/свелась заявка на покупку с ценой 6 и объемом 10. Приходит апдейт записи. Заявка с ценой 6 удалена, поэтому в стакан возвращается заявка с ценой 4.

       replID=2   replRev=13   isin_id=12345   price=4   volume=15   moment='12:00:09'   dir=1

   Стакан:

##### Таблица sys_events: Таблица событий

Таблица 47. Поля таблицы 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 = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 23

    message = "discrete_auction_add_order_started"

    Начало приема заявок в аукцион открытия

    event_type = 24

    message = "discrete_auction_add_order_finished"

    Окончание приема заявок в аукцион открытия

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

### Поток FORTS_POS_REPL - Информация о позициях (Type=I)

#### Схема данных

Таблицы:

- position - Позиции клиентов и Брокерских Фирм

- position_sa - Позиции уровня Расчётного Кода

- info - Информация о срезе
- sys_events - Таблица событий

##### Таблица position: Позиции клиентов

Таблица содержит информацию о позициях клиентов и БФ.

Таблица 48. Поля таблицы position

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
client_code | c7 | Код клиента
isin_id | i4 | Уникальный числовой идентификатор инструмента
xpos | i8 | Текущая позиция
xbuys_qty | i8 | Количество купленных контрактов в ходе сессии
xsells_qty | i8 | Количество проданных контрактов в ходе сессии
xday_open_qty | i8 | Количество позиций на начало календарного дня
xday_open_buys_qty | i8 | Количество купленных контрактов на начало календарного дня
xday_open_sells_qty | i8 | Количество проданных контрактов на начало календарного дня
xopen_qty | i8 | Количество позиций на начало сессии
waprice | d16.5 | Учетная цена позиции
net_volume_rur | d26.2 | Нетто-оборот по сделкам за сессию в рублях. Продажи учитываются с положительным знаком, а покупки с отрицательным.
last_deal_id | i8 | Номер последней сделки
last_quantity | i8 | Объем позиции на момент окончания промежуточного или вечернего клиринга
account_type | i1 | 1 - для БФ 2 - для клиента

##### Таблица position_sa: Позиции уровня Расчётного кода

Таблица содержит информацию о позициях уровня Расчётного кода.

Таблица 49. Поля таблицы position_sa

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
client_code | c12 | Расчётный код
isin_id | i4 | Уникальный числовой идентификатор инструмента
xpos | i8 | Текущая позиция
xbuys_qty | i8 | Количество купленных контрактов в ходе сессии
xsells_qty | i8 | Количество проданных контрактов в ходе сессии
xday_open_qty | i8 | Количество позиций на начало календарного дня
xday_open_buys_qty | i8 | Количество купленных контрактов на начало календарного дня
xday_open_sells_qty | i8 | Количество проданных контрактов на начало календарного дня
xopen_qty | i8 | Количество позиций на начало сессии
waprice | d16.5 | Учетная цена позиции
net_volume_rur | d26.2 | Нетто-оборот по сделкам за сессию в рублях. Продажи учитываются с положительным знаком, а покупки с отрицательным.
last_deal_id | i8 | Номер последней сделки
last_quantity | i8 | Объем позиции на момент окончания промежуточного или вечернего клиринга

##### Таблица info: Информация о срезе

Таблица 50. Поля таблицы info

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
trades_rev | i8 | Ревижен синхрособытия start_of_calendar_date
trades_lifenum | i8 | Номер жизни потока, соответствующий синхрособытию start_of_calendar_date
server_time | t | Дата-время формирования среза позиций

##### Таблица sys_events: Таблица событий

Таблица 51. Поля таблицы 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 = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

### Поток FORTS_PART_REPL - Информация о средствах и лимитах (Type=I)

#### Схема данных

Таблицы:

- part - Средства и лимиты по клиентам и брокерским фирмам
- part_sa - Средства и лимиты по Расчетному коду
- sys_events - Таблица событий

##### Таблица part: Средства и лимиты по клиентам и брокерским фирмам

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

Таблица 52. Поля таблицы part

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
client_code | c7 | Код клиента или брокерской фирмы
money_free | d26.2 | Свободные средства. Сумма рублей и залогов, дисконтированных в рубли, доступная для открытия позиций. (money_free=money_amount + vm_intercl + premium_intercl + net_option_value – money_blocked – vm_reserve – fee – broker_fee – penalty)
money_blocked | d26.2 | Средства, заблокированные под ГО.
vm_reserve | d26.2 | Вариационная маржа по закрытым позициям и валютный риск.
fee | d26.2 | Списанный сбор
limits_set | i1 | Наличие установленных денежного и залогового лимитов: 1 - лимит установлен (проверяется); 0 - лимит не установлен (не проверяется)
money_old | d26.2 | Общее количество рублей и дисконтированных в рубли залогов на конец предыдущей сессии
money_amount | d26.2 | Общее количество рублей и дисконтированных в рубли залогов
money_pledge_amount | d26.2 | Сумма залогов, дисконтированных в рубли
vm_intercl | d26.2 | Вариационная маржа, списанная или полученная в пром. клиринг
is_auto_update_limit | i1 | Признак автоматической коррекции лимита на величину дохода при закачке после клиринга: 0-нет, 1-менять.
broker_fee | d26.2 | Средства, заблокированные под брокерскую комиссию.
penalty | d26.2 | Штраф за сделки урегулирования, заключенные при проведении процедуры принудительного закрытия позиций Недобросовестного Участника клиринга.
premium_intercl | d26.2 | Премия, полученная/списанная в промежуточный клиринг, в пересчёте на рубли. Включает в себя финансовый результат исполнения позиций по премиальным опционам.
net_option_value | d26.2 | Суммарная оценочная стоимость премиальных опционов в портфеле.

##### Таблица part_sa: Средства и лимиты по Расчетному коду

Таблица 53. Поля таблицы part_sa

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
settlement_account | c12 | Расчетный код
money_old | d26.2 | Общее количество рублей и дисконтированных в рубли залогов на конец предыдущей сессии
money_amount | d26.2 | Общее количество рублей и дисконтированных в рубли залогов
money_free | d26.2 | Свободные средства. Сумма рублей и залогов, дисконтированных в рубли, доступная для открытия позиций. (money_free=money_amount + vm_intercl + premium_intercl + net_option_value – money_blocked – vm_reserve – fee – blocked_tax)
money_blocked | d26.2 | Средства, заблокированные под ГО.
money_pledge_amount | d26.2 | Сумма залогов, дисконтированных в рубли
vm_reserve | d26.2 | Вариационная маржа по закрытым позициям и валютный риск.
vm_intercl | d26.2 | Вариационная маржа, списанная или полученная в пром. клиринг
fee | d26.2 | Списанный сбор
blocked_tax | d26.2 | Средства, заблокированные под выплату налогов.
premium_intercl | d26.2 | Премия, полученная/списанная в промежуточный клиринг, в пересчёте на рубли. Включает в себя финансовый результат исполнения позиций по премиальным опционам.
net_option_value | d26.2 | Суммарная оценочная стоимость премиальных опционов в портфеле.

##### Таблица sys_events: Таблица событий

Таблица 54. Поля таблицы 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 = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

### Поток FORTS_PROHIBITION_REPL - Запреты (Type=R)

#### Схема данных

Таблицы:

- prohibition - Запреты
- sys_events - Таблица событий

##### Таблица prohibition: Запреты

Таблица 55. Поля таблицы prohibition

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
section | c50 | Имя секции
base_contract_code | c25 | Код базового актива.
isin_id | i4 | Уникальный числовой идентификатор инструмента
group_mask | i8 | Битовая маска групп, по которым действует запрет
xprohibition_id | i8 | Номер запрета
section_id | i4 | Идентификатор секции
initiator | i4 | Инициатор запрета
base_contract_id | i4 | Числовой идентификатор базового контракта
client_code | c7 | Код клиента
is_legacy | i1 | Тип инициатора запрета
priority | i4 | Приоритет запрета
type | i4 | Тип запрета

Примечания:

- Поле initiator - Инициатор запрета:

  1

    Главный трейдер РФ;

  2

    Администратор КЦ;

  3

    Администратор ТС.

- Поле type - Тип запрета

  0

    Разрешены все операции. Используется для точечного разрешения в случае наличия более широкого запрета;

  1

    Запрет на открытие позиций;

  2

    Запрет на выставление любых заявок;

  3

    Запрет на открытие позиций на продажу;

  0x08

    Запрет брокера на подачу поручений на Экспирацию;

  0x10

    Запрет Главного трейдера РФ на подачу поручений на Экспирацию. Но ему самому - можно;

  0x20

    Запрет на запрос потока ликвидности без автоподтверждения (RFS);

  0x40

    Запрет на запрос потока ликвидности (RFS);

  0x80

    Запрет на заключения сделки при недостаточном количестве котировок (RFS);

  0x100

    Запрет на запрос потока ликвидности с ограничением времени жизни котировок (RFS).

- Поле group_mask - Битовая маска типов инструментов:

  0x40000000

    Фьючерсы.

  0x80000000

    Опционы.

- Поле priority - От максимального приоритета к минимальному:

  Клиентский приоритет высокий

    12

  Клиентский приоритет средний

    11

  Клиентский приоритет низкий

    10

  Клиентский код, инструмент

    9

  Клиентский код, БА

    8

  Клиентский код, все БА

    7

  Код БФ, инструмент

    6

  Код БФ, БА

    5

  Код БФ, все БА

    4

  Код РФ, инструмент

    3

  Код РФ, БА

    2

  Код РФ, все БА

    1

- Поле section - Название секции:

  1

    Фондовая

  2

    Товарная

  3

    Денежная

- Поле is_legacy - Тип инициатора запрета:

  0

    Запрет был выставлен Администратором торгов или клиринга и не может быть изменен пользователем;

  1

    Запрет был выставлен пользователем и может быть изменен средствами шлюзового API.

##### Таблица sys_events: Таблица событий

Таблица 56. Поля таблицы 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 = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

### Поток FORTS_REFDATA_REPL - Справочная и сессионная информация (Type=R)

#### Схема данных

Таблицы:

- rates - Справочник курсов валют
- fut_sess_contents - Справочник торгуемых инструментов (фьючерсы)
- fut_vcb - Справочник торгуемых активов (фьючерсы)
- fut_instruments - Справочник инструментов
- fut_bond_registry - Справочник параметров спот-активов
- dealer - Справочник фирм
- sys_messages - Сообщения торговой системы
- opt_sess_contents - Справочник торгуемых инструментов (опционы)
- opt_vcb - Справочник торгуемых активов (опционы)
- multileg_dict - Справочник связок
- fut_intercl_info - Информация о вариационной марже по фьючерсам, рассчитанной по результатам промежуточного клиринга
- opt_intercl_info - Информация о вариационной марже и премии по опционам, рассчитанной по результатам промежуточного клиринга
- opt_exp_orders - Поручения на экспирацию
- fut_bond_nkd - НКД на дату исполнения срочного контракта с облигацией
- fut_bond_nominal - Размеры выплат номинальной стоимости облигации
- fut_bond_isin - Справочник соответствия инструментов спот-активам
- user - Пользователи системы
- sess_option_series - Опционные серии по сессиям
- investor - Справочник клиентов
- fut_margin_type - Тип маржирования
- fut_settlement_account - Расчетный Код
- sma_master - Привязка SMA-логина к MASTER-логину
- sma_pre_trade_check - Настройки предварительных проверок SMA-логина
- clearing_members - Участники клиринга
- instr2matching_map - Сопоставление инструментов матчингу
- fut_exec_orders - Поручения на исполнение однодневных фьючерсов с автопролонгацией
- discrete_auction - Параметры назначенных аукционов открытия
- discrete_auction_base_contract - Сопоставление инструментов аукциону открытия
- trade_periods - Параметры торговых периодов
- session - Информация о торговой сессии
- brokers_base_contracts_params - Индивидуальный коэффициент ГО в разрезе базового контракта и БФ
- sys_events - Таблица событий

##### Таблица rates: Справочник курсов валют

Таблица 57. Поля таблицы rates

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
rate_id | i4 | Идентификатор валюты платежа
curr_base | c15 | Код базовой валюты
curr_coupled | c15 | Код сопряжённой валюты
radius | d16.5 | Радиус изменения цены индикатора в процентах

##### Таблица fut_sess_contents: Справочник торгуемых инструментов (фьючерсы)

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

Таблица 58. Поля таблицы 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 | Дата начала исполнения инструмента
percent_rate | d6.2 | Процентная ставка для расчета вариационной маржи по процентным фьючерсам
settlement_price | d16.5 | Расчетная цена после последнего клиринга.
signs | i4 | Поле признаков
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 | Стоимость минимального шага цены, выраженная в валюте. Используется для контрактов с рачетами в валюте, для рублевых контрактов значение совпадает со step_price.
pctyield_coeff | d16.5 | Коэффициент для вычисления доходности по фьючерсам на процентные ставки
pctyield_total | d16.5 | Сумма ставок для вычисления доходности по фьючерсам на процентные ставки
d_exp_end | t | Дата окончания исполнения инструмента
enforce_ims_half_netting | i1 | Признак учитывать риски межмесячного спреда по правилу "полунетто". 1 – да; 0 – нет.
tas_base_fut_isin_id | i4 | Идентификатор (isin_id) БА-фьючерса для TAS-фьючерса (В текущей версии недоступно)
trade_mode_id | i4 | Режим торгов, в который входит инструмент. Один инструмент может входить только в 1 режим торгов. Номер бита, нумерация начинается с 1.
group_mask | i8 | Битовая маска групп, в которые входит инструмент
trade_period_access | i8 | Признак торговли в определенный период сессии (битовая маска)
buy_deposit_erc | d16.2 | Базовое ГО покупателя для КОУР (руб)
sell_deposit_erc | d16.2 | Базовое ГО продавца для КОУР (руб)
buy_deposit_hrc | d16.2 | Базовое ГО покупателя для КПУР (руб)
sell_deposit_hrc | d16.2 | Базовое ГО продавца для КПУР (руб)
buy_deposit_lrc | d16.2 | Базовое ГО покупателя для КНУР (руб)
sell_deposit_lrc | d16.2 | Базовое ГО продавца для КНУР (руб)
buy_deposit_mrc | d16.2 | Базовое ГО покупателя для КСУР (руб)
sell_deposit_mrc | d16.2 | Базовое ГО продавца для КСУР (руб)

Примечания:

- Состояние сессии имеет приоритет над состоянием инструмента. То есть, если сессия находится в состоянии «приостановлена» или «завершена», то по всем инструментам нельзя торговать, независимо от значения state в инструменте.

- Поле state может принимать следующие значения:

  0

    Сессия по этому инструменту назначена. Нельзя ставить заявки, но можно удалять по этому инструменту.

  1

    Сессия по этому инструменту идет. Можно ставить и удалять заявки по этому инструменту.

  2

    Приостановка торгов по всем инструментам. Нельзя ставить заявки, но можно удалять.

  3

    Сессия по этому инструменту принудительно завершена. Нельзя ставить и удалять заявки по этому инструменту.

  4

    Сессия по этому инструменту завершена по времени. Нельзя ставить и удалять заявки по этому инструменту.

  5

    Приостановка торгов по этому инструменту. Нельзя ставить заявки, но можно удалять по этому инструменту.

  6

    Стартовал аукцион открытия по этому инструменту. Можно ставить и удалять заявки по этому инструменту.

  7

    Аукцион открытия по этому инструменту завершен.

  8

    Сессия по этому инструменту идет. Можно ставить заявки в закрытие по этому инструменту.

  9

    Аукцион открытия по этому инструменту идет. Можно ставить заявки в закрытие по этому инструменту.

- Поле signs является битовой маской и может принимать следующие значения:

  0x10

    Признак анонимной торговли

  0x20

    Признак неанонимной торговли

  0x100

    Признак инструмента-связки

  0x200

    Фьючерс

  0x4000

    Однодневный фьючерсный контракт с автопролонгацией (CFD - Contract for difference)

  0x10000

    Календарный спред

  0x40000

    Признак коллатерального инструмента

  0x80000

    Исполнение в вечерний или промежуточный клиринг:

    - 0 - вечерний клиринг

    - 1 - промежуточный клиринг

  0x100000

    TAS-фьючерс (В текущей версии недоступно)

- Поле multileg_type может принимать следующие значения:

  0

    Обычный инструмент - не связка

  3

    Календарный спред

- Значение поля roundto в технических сделках исполнения может содержать разное количество знаков после запятой. Это зависит от спецификации контракта.

- Поле trade_mode_id может принимать следующие значения:

  1

    Фьючерсы, анонимный

  3

    Опционы, анонимный

  14

    Календарные спреды, анонимный

  17

    Коллатеральный, адресный

  18

    Однодневный фьючерс с автопролонгацией, анонимный

- Поле group_mask является битовой маской и может принимать следующие значения:

  0x1

    Свободен

  0x2

    Переполнение HaltGroupMask

  0x4

    Запрет торговать в дополнительную сессию

  0x10

    Исполнение в ПК (поставка)

  0x20

    Хальты, связанные с дискретными аукционами

- Поле trade_period_access является битовой маской и может принимать следующие значения:

  0x1

    Основная

  0x2

    Вечерняя

  0x4

    Дополнительная сессия выходного дня

  0x8

    Утренняя

##### Таблица fut_vcb: Справочник торгуемых активов (фьючерсы)

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

Таблица 59. Поля таблицы 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 | Числовой идентификатор базового контракта
SECCODE | с12 | Код SECCODE таблицы SECURITIES шлюза ASTS. Значение по умолчанию NULL.
signs | i4 | Поле признаков
negative_prices | i1 | Признак ограничения отрицательных цен.
option_model | i1 | Модель ценообразования опционов.
asset_class | i4 | Тип базового актива.
board_md | с4 | Идентификатор режима торгов SECBOARD из шлюза ASTS.
section_id | i4 | Идентификатор Секции

Примечания:

- Поле exec_type может принимать следующие значения:

  I

    Расчетный

  T

    Поставка акций через торговую систему ASTS

  D

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

- Поле trade_scheme может принимать следующие значения:

  F

    С полным обеспечением

  G

    С залогом

- Поле signs является битовой маской и может принимать следующие значения:

  0x1

    Исполнение в вечерний или промежуточный клиринг: 0 - вечерний клиринг; 1 - промежуточный клиринг

  0x2

    Признак отнесения инструмента к иностранным: 0 - не иностранный; 1 - иностранный

  0x4

    Признак TAS-фьючерс: 0 - не TAS-фьючерс; 1 - TAS-фьючерс (В текущей версии недоступно)

  0x8

    Для квалифицированных инвесторов

- Поле negative_prices может принимать следующие значения:

  0

    Цены фьючерсов, ценовые границы и страйки опционов ограничены положительными значениями

  1

    Цены фьючерсов, ценовые границы и страйки опционов не ограничены

- Поле option_model может принимать следующие значения:

  0

    Модель Блэка-Шоулза

  1

    Модель Башелье

- Поле asset_class может принимать следующие значения:

  1

    Акция

  2

    Валюта

  3

    Облигация

  4

    Индекс

  5

    Товар

  6

    Процентная ставка

- Поле section_id может принимать следующие значения:

  1

    Фондовая секция

  2

    Товарная секция

  3

    Денежная секция

##### Таблица fut_instruments: Справочник инструментов

Таблица 60. Поля таблицы fut_instruments

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
isin_id | i4 | Уникальный числовой идентификатор инструмента
short_isin | c25 | Короткий символьный код инструмента для информационных систем
isin | c25 | Символьный код инструмента
name | c75 | Наименование инструмента
inst_term | i4 | Смещение от спота
base_contract_code | c25 | Код базового актива.
settlement_price_open | d16.5 | Расчетная цена на начало сессии.
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 | Дата начала исполнения инструмента.
percent_rate | d6.2 | Процентная ставка для расчета вариационной маржи по процентным фьючерсам
settlement_price | d16.5 | Расчетная цена после последнего клиринга.
signs | i4 | Поле признаков
multileg_type | i4 | Тип связки
legs_qty | i4 | Количество инструментов в связке
step_price_clr | d16.5 | Стоимость шага цены вечернего клиринга
step_price_interclr | d16.5 | Стоимость шага цены промежуточного клиринга
step_price_curr | d16.5 | Стоимость минимального шага цены, выраженная в валюте. Используется для контрактов с рачетами в валюте, для рублевых контрактов значение совпадает со step_price.
pctyield_coeff | d16.5 | Коэффициент для вычисления доходности по фьючерсам на процентные ставки
pctyield_total | d16.5 | Сумма ставок для вычисления доходности по фьючерсам на процентные ставки
series_type | c1 | Тип срочности фьючерса. M - месячный; Q - квартальный.
enforce_ims_half_netting | i1 | Признак учитывать риски межмесячного спреда по правилу "полунетто". 1 – да; 0 – нет.
tas_base_fut_isin_id | i4 | Идентификатор (isin_id) БА-фьючерса для TAS-фьючерса (В текущей версии недоступно)
trade_mode_id | i4 | Режим торгов, в который входит инструмент. Один инструмент может входить только в 1 режим торгов. Номер бита, нумерация начинается с 1.
group_mask | i8 | Битовая маска групп, в которые входит инструмент
trade_period_access | i8 | Признак торговли в определенный период сессии (битовая маска)

Примечания:

- Значение поля roundto в технических сделках исполнения может содержать разное количество знаков после запятой. Это зависит от спецификации контракта.

- Поле trade_mode_id может принимать следующие значения:

  1

    Фьючерсы, анонимный

  3

    Опционы, анонимный

  14

    Календарные спреды, анонимный

  17

    Коллатеральный, адресный

  18

    Контракт на разницу цен, анонимный

- Поле group_mask является битовой маской и может принимать следующие значения:

  0x1

    Свободен

  0x2

    Переполнение HaltGroupMask

  0x4

    Запрет торговать в дополнительную сессию

  0x10

    Исполнение в ПК (поставка)

  0x20

    Хальты, связанные с дискретными аукционами

- Поле trade_period_access является битовой маской и может принимать следующие значения:

  0x1

    Основная

  0x2

    Вечерняя

  0x4

    Дополнительная сессия выходного дня

  0x8

    Утренняя

##### Таблица fut_bond_registry: Справочник параметров спот-активов

Таблица 61. Поля таблицы fut_bond_registry

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
bond_id | i4 | Уникальный числовой идентификатор спот-актива
small_name | c25 | Символьный код спот-актива
short_isin | c25 | ISIN код акции/выпуск облигации/код валюты
name | c75 | Наименование спот-актива
date_redempt | t | Дата погашения облигации (NULL для остальных)
nominal | d16.5 | Номинал облигации/акции
bond_type | i4 | Тип: акция/облигация/валюта
year_base | i2 | База расчета (условное количество дней в году)

Примечания:

- Поле bond_type является битовой маской и может принимать следующие значения:

  0x1

    Акция

  0x2

    Облигация

  0x4

    Облигация с амортизацией

  0x800000

    Валюта

##### Таблица dealer: Справочник фирм

Таблица 62. Поля таблицы 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 | Коэффициент итогового ГО для БФ. Будет применен в вечерний клиринг.
check_limit_on_withdrawal | i1 | Проверка достаточности обеспечения по БФ при вводе/выводе средств. 1 - Да, 0 - Нет
limit_tied_money | i1 | Соответствие торгового лимита БФ сумме средств на разделах БФ. 1 - Поддерживать соответствие, 0 - Независимый (виртуальный) лимит. Виртуальный лимит по результатам вечернего клиринга меняется только на величину дохода/убытка. Будет применен в вечерний клиринг
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 | Доступ к торгам в утреннюю торговую сессию.
order_allowed_in_weekend_session | i1 | Доступ к торгам в дополнительную торговую сессию выходного дня.

Примечания:

- Поле status является битовой маской:

  - 0x01 - Брокерская фирма ДУ

  - 0x02 - Обособленная Брокерская фирма (ОБФ)

  - 0x100 - БФ для клиента - юридического лица

  - 0x200 - БФ для клиента - нерезидента

  - 0x10000 - НКЦ

  - 0x20000 – Собственная Брокерская фирма

  - 0x40000 – Клиентская Брокерская фирма

  - 0x80000 - СпецБФ

  Другие биты содержат техническую информацию

- Поле order_allowed_in_morning_session может принимать следующие значения:

  0

    Доступ к торгам в утреннюю торговую сессию ограничен. Запрещены торговые операции, кроме операций снятия заявок.

  1

    Доступ к торгам в утреннюю торговую сессию разрешен.

- Поле order_allowed_in_weekend_session может принимать следующие значения:

  0

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

  1

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

##### Таблица sys_messages: Сообщения торговой системы

Таблица 63. Поля таблицы sys_messages

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
msg_id | i4 | Уникальный идентификатор сообщения
lang_code | c8 | Язык сообщения
type_id | i4 | Тип сообщения
moment | t | Дата и время регистрации сообщения
text | c255 | Краткий текст сообщения
urgency | i1 | Признак срочности сообщения
status | i1 | Статус сообщения
message_body | c4000 | Полный текст сообщения

Типы сообщений:

type_id | Текст шаблона сообщения
--- | ---
4 | Уважаемые клиенты, если цена останется на текущем уровне в течение #ShiftTimeMin# минут, то торги фьючерсами #БФ# будут приостановлены для #НомерРасширения# расширения #ГРАНИЦА#ней границы диапазона оценки ценового коридора и #РИСКОВ#.
5 | Торги фьючерсами #БФ# приостановлены для #НомерРасширения# расширения #ГРАНИЦА#ней границы диапазона оценки ценового коридора и #РИСКОВ#.
6 | Торги фьючерсами #БФ# возобновлены. Новые #ГРАНИЦА#ние ценовые границы составляют: #UpCotir/DownCotir#, новая ставка #NEWRATE#.
7 | Средства ГО составляют #AmountGO# #valuta#, изменение к предыдущему дню #DiffAmountGO# #valuta#.
8 | Торги фьючерсами #БФ# приостановлены.
9 | Торги фьючерсами #БФ# возобновлены.
11 | Список участников, предоставляющих котировки на большие объемы - https://www.moex.com/s2996
12 | Внимание! Сегодня последний день обращения и экспирации #ТЕКУЩМЕСЯЦ# #НЕДЕЛЬНЫЕ?недельных# #АМЕРИКАНСКИХ/ЕВРОПЕЙСКИХ# #МАРЖИРУЕМЫХ/ПРЕМИАЛЬНЫХ# #РАСЧЕТНЫХ/ПОСТАВОЧНЫХ# опционов на акции (#БФ#).
13 | Сейчас можно снимать заявки.
14 | Начало технического перерыва в 14:00.
15 | Торги возобновятся в 14:05. Сейчас можно снимать заявки.
17 | Курсы валют для расчета Вармаржи и ГO в дневной клиринговой сессии: CAD=51.88280, CHF=76.18050, EUR=75.59800, GBP=84.79190, HKD=9.03970, JPY=0.53061, TRY=3.75870, USR=71.83600.
18 | Курсы валют для расчета Вармаржи и ГO в вечерней клиринговой сессии: CAD=51.88280, CHF=76.18050, EUR=76.22500, GBP=84.79190, HKD=9.03970, JPY=0.53061, TRY=3.75870, USR=72.08270.
19 | Определена цена исполнения…
20 | Внимание! Сегодня в промклиринг исполняется…
500 | Свободный текст для штатных сообщений
501 | Свободный текст для нештатных сообщений

##### Таблица opt_sess_contents: Справочник торгуемых инструментов (опционы)

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

Таблица 64. Поля таблицы opt_sess_contents

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
sess_id | i4 | Идентификатор торговой сессии
isin_id | i4 | Уникальный числовой идентификатор инструмента
isin | c25 | Символьный код инструмента
short_isin | c25 | Короткий символьный код инструмента для информационных систем
name | c75 | Наименование инструмента
base_contract_code | c25 | Код базового актива.
fut_isin_id | i4 | Код фьючерсного инструмента
settlement_price_open | d16.5 | Расчетная цена (Теоретическая цена опциона) на начало сессии.
base_im_covered_sell | d16.2 | Базовое ГО под одну покрытую позицию подписчика (руб).
base_im_sell | d16.2 | Базовое ГО под одну непокрытую позицию подписчика (руб).
put | i1 | Тип опциона. 0 - Call опцион,1 - Put опцион
strike | d16.5 | Цена страйк
roundto | i4 | Количество знаков после запятой в цене
last_trade_date | t | Дата окончания обращения инструмента.
signs | i4 | Поле признаков
settlement_price | d16.5 | Расчетная цена (Теоретическая цена опциона) после последнего клиринга.
base_im_buy | d16.2 | Базовое ГО под покупку маржируемого опциона.
option_series_id | i4 | Идентификатор опционной серии
state | i4 | Состояние торгов по инструменту.
trade_mode_id | i4 | Режим торгов, в который входит инструмент. Один инструмент может входить только в 1 режим торгов. Номер бита, нумерация начинается с 1.
group_mask | i8 | Битовая маска групп, в которые входит инструмент
trade_period_access | i8 | Признак торговли в определенный период сессии (битовая маска)
base_im_covered_sell_erc | d16.2 | Базовое ГО под одну покрытую позицию подписчика для КОУР (руб)
base_im_covered_sell_hrc | d16.2 | Базовое ГО под одну покрытую позицию подписчика для КПУР (руб)
base_im_covered_sell_lrc | d16.2 | Базовое ГО под одну покрытую позицию подписчика для КНУР (руб)
base_im_covered_sell_mrc | d16.2 | Базовое ГО под одну покрытую позицию подписчика для КСУР (руб)
base_im_sell_erc | d16.2 | Базовое ГО под одну непокрытую позицию подписчика для КОУР (руб)
base_im_buy_erc | d16.2 | Базовое ГО под покупку маржируемого опциона для КОУР (руб)
base_im_sell_hrc | d16.2 | Базовое ГО под одну непокрытую позицию подписчика для КПУР (руб)
base_im_buy_hrc | d16.2 | Базовое ГО под покупку маржируемого опциона для КПУР (руб)
base_im_sell_lrc | d16.2 | Базовое ГО под одну непокрытую позицию подписчика для КНУР (руб)
base_im_buy_lrc | d16.2 | Базовое ГО под покупку маржируемого опциона для КНУР (руб)
base_im_sell_mrc | d16.2 | Базовое ГО под одну непокрытую позицию подписчика для КСУР (руб)
base_im_buy_mrc | d16.2 | Базовое ГО под покупку маржируемого опциона для КСУР (руб)

Примечания:

- Поле signs является битовой маской и принимает следующие значения:

  0x10

    Признак анонимной торговли

  0x20

    Признак неанонимной торговли

- Поле state может принимать следующие значения:

  0

    Сессия по этому инструменту назначена. Нельзя ставить заявки, но можно удалять по этому инструменту.

  1

    Сессия по этому инструменту идет. Можно ставить и удалять заявки по этому инструменту.

  2

    Приостановка торгов по всем инструментам. Нельзя ставить заявки, но можно удалять.

  3

    Сессия по этому инструменту принудительно завершена. Нельзя ставить и удалять заявки по этому инструменту.

  4

    Сессия по этому инструменту завершена по времени. Нельзя ставить и удалять заявки по этому инструменту.

  5

    Приостановка торгов по этому инструменту. Нельзя ставить заявки, но можно удалять по этому инструменту.

  6

    Стартовал аукцион открытия по этому инструменту. Можно ставить и удалять заявки по этому инструменту.

  7

    Аукцион открытия по этому инструменту завершен.

  8

    Сессия по этому инструменту идет. Можно ставить заявки в закрытие по этому инструменту.

  9

    Аукцион открытия по этому инструменту идет. Можно ставить заявки в закрытие по этому инструменту.

- Поле trade_mode_id может принимать следующие значения:

  1

    Фьючерсы, анонимный

  3

    Опционы, анонимный

  14

    Календарные спреды, анонимный

  17

    Коллатеральный, адресный

  18

    Однодневный фьючерс с автопролонгацией, анонимный

- Поле group_mask является битовой маской и может принимать следующие значения:

  0x1

    Свободен

  0x2

    Переполнение HaltGroupMask

  0x4

    Запрет торговать в дополнительную сессию

  0x10

    Исполнение в ПК (поставка)

  0x20

    Хальты, связанные с дискретными аукционами

- Поле trade_period_access является битовой маской и может принимать следующие значения:

  0x1

    Основная

  0x2

    Вечерняя

  0x4

    Дополнительная сессия выходного дня

  0x8

    Утренняя

##### Таблица opt_vcb: Справочник торгуемых активов (опционы)

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

Таблица 65. Поля таблицы opt_vcb

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
base_contract_code | c25 | Код базового актива.
name | c75 | Наименование
exec_type | c1 | Тип исполнения
curr | c3 | Валюта котирования
trade_scheme | c1 | Форма торгов
rate_id | i4 | Идентификатор курса
base_contract_id | i4 | Числовой идентификатор базового контракта
negative_prices | i1 | Признак ограничения отрицательных цен.
option_model | i1 | Модель ценообразования опционов.
settlement_currency | c3 | Валюта расчетов
section_id | i4 | Идентификатор Секции

Примечания:

- Поле negative_prices может принимать следующие значения:

  0

    Цены фьючерсов, ценовые границы и страйки опционов ограничены положительными значениями

  1

    Цены фьючерсов, ценовые границы и страйки опционов не ограничены

- Поле option_model может принимать следующие значения:

  0

    Модель Блэка-Шоулза

  1

    Модель Башелье

- Поле section_id может принимать следующие значения:

  1

    Фондовая секция

  2

    Товарная секция

  3

    Денежная секция

##### Таблица multileg_dict: Справочник связок

Таблица 66. Поля таблицы multileg_dict

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
sess_id | i4 | Идентификатор торговой сессии
isin_id | i4 | Уникальный числовой код связки
isin_id_leg | i4 | Уникальный код инструмента, входящего в связку
qty_ratio | i4 | Коэффициент количества
leg_order_no | i1 | Порядок ноги в связке. Значение по умолчанию 0.

Примечания:

- Смысл поля qty_ratio состоит в указании количества и направления инструмента, входящего в связку: если значение qty_ratio > 0, то данный инструмент входит в связку с тем же направлением, с каким и заявка по связке, если qty_ratio < 0 – с противоположным. Абсолютное значение qty_ratio определяет коэффициент, на который умножается количество единиц инструмента-связки в заявке для получения количества единиц инструмента isin_id_leg.

##### Таблица fut_intercl_info: Информация о вариационной марже по фьючерсам, рассчитанной по результатам промежуточного клиринга

Таблица 67. Поля таблицы fut_intercl_info

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
isin_id | i4 | Уникальный числовой идентификатор инструмента
client_code | c7 | Код клиента
vm_intercl | d16.2 | Вариационная маржа, списанная или полученная в промежуточный клиринг

##### Таблица opt_intercl_info: Информация о вариационной марже и премии по опционам, рассчитанной по результатам промежуточного клиринга

Таблица 68. Поля таблицы opt_intercl_info

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
isin_id | i4 | Уникальный числовой идентификатор инструмента
client_code | c7 | Код клиента
vm_intercl | d16.2 | Вариационная маржа, списанная или полученная в промежуточный клиринг
premium | d26.2 | Рублевая премия по опциону, полученная/списанная в промежуточный клиринг. Включает в себя финансовый результат исполнения позиции.
premium_in_settl_currency | d26.2 | Валютная премия по опциону, полученная/списанная в промежуточный клиринг. Включает в себя финансовый результат исполнения позиции.

##### Таблица opt_exp_orders: Поручения на экспирацию

Таблица 69. Поля таблицы opt_exp_orders

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
exporder_id | i8 | Идентификатор поручения на экспирацию
client_code | c7 | Код клиента
isin_id | i4 | Уникальный числовой идентификатор инструмента
xamount | i8 | Количество экспирируемых позиций
sess_id | i4 | Идентификатор торговой сессии
date | t | Дата и время
xamount_apply | i8 | Количество в поручениях на момент промежуточного клиринга

##### Таблица fut_bond_nkd: НКД на дату исполнения срочного контракта с облигацией

Таблица 70. Поля таблицы fut_bond_nkd

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
bond_id | i4 | Цифровой код облигации
date | t | Дата выплаты купона
nkd | d16.7 | НКД на дату выплаты купона
is_cupon | i1 | Признак: 0 - НКД на дату исполнения срочного контракта с облигацией, 2 - НКД на дату поставки облигации

##### Таблица fut_bond_nominal: Размеры выплат номинальной стоимости облигации

Таблица 71. Поля таблицы fut_bond_nominal

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
bond_id | i4 | Цифровой код облигации
date | t | Дата выплаты купона
nominal | d16.5 | Размер выплат номинальной стоимости
face_value | d16.5 | Размер остаточной номинальной стоимости облигации
coupon_nominal | d8.5 | Стоимость купона в % от номинала
is_nominal | i1 | Признак записи в таблицах номиналов: 0 - Размер остаточной номинальной стоимости на дату исполнения срочного контракта с облигацией, 2 - Размер остаточной номинальной стоимости на дату поставки облигации.

##### Таблица fut_bond_isin: Справочник соответствия инструментов спот-активам

Таблица 72. Поля таблицы fut_bond_isin

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
isin_id | i4 | Уникальный числовой идентификатор инструмента
bond_id | i4 | Уникальный числовой идентификатор спот-актива
coeff_conversion | d5.4 | Конверсионный коэффициент

##### Таблица user: Пользователи системы

Таблица 73. Поля таблицы user

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
login | c20 | Логин участника торгов
start_date | t | Время начала действия логина
end_date | t | Время окончания действия логина
client_code | c7 | Семизначный код клиента
operation_mask | i4 | Битовая маска. Задает разрешения на выполнение операций: 2 - Лимитирование открытых позиций по БФ. 8 - Лимитирование БФ (перевод денег). Может быть установлено только Оператором-РФ или Администратором Торгов. 16 - Возврат денег. 32 - Лимитирование клиентов. 128 - Установка ограничений по клиентам. 1024 - Установка ограничений по заявкам для SMA логинов.
lang | i2 | Код языка для сообщений
sma_flags | i4 | Битовая маска (см. Примечания): 1-й бит - Cancel on Disconnect 2-й бит - Cancel on DropCopy Disconnect 3-й бит - SMA-логин.
sma_status | i4 | Битовая маска (см. Примечания): 1-й бит - разрешить/запретить торговые операции для логина 2-й бит - снимать/не снимать заявки при запрете торговых операций с логина.
aspref | i4 | Идентификатор пользователя. Для заявок, поданных от SMA-логина - идентификатор MASTER-логина.
user_level | i1 | Уровень логина пользователя: 1 - РФ 2 - БФ 3 - Клиент
password_expiration_date | t | Дата истечения срока действия пароля.

Примечания:

- Поле 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 - снимать заявки логина при запрете торговых операции с логина.

##### Таблица sess_option_series: Опционные серии по сессиям

Таблица 74. Поля таблицы sess_option_series

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
series_id | i4 | Идентификатор опционной серии
underlying_id | i4 | Идентификатор фьючерса
base_contract_id | i4 | Идентификатор базового контракта
expiration_date | t | Дата завершения периода исполнения
expiration_anchor_date | t | Якорная дата (дата экспирации опционной серии)
days_to_expiration | i4 | Количество рабочих дней (по местному календарю) до исполнения
years_to_expiration | f | Время до экспирации опциона в долях года (календарных дней до экспирации/количество дней в году)
series_type | c1 | Тип срочности опциона. W-недельный; M-месячный; Q-квартальный.
small_name | c25 | Символьный код
strike_step | d16.5 | Шаг стайков
use_null_volat | i1 | 1 - Включен режим расчета нулевой волатильности, 0 - Выключен
sub_risk | i1 | 1 - Включен режим учета рисков по подточкам риска, 0 - Выключен
volat_min | d20.15 | Лимит волатильности минимальный
volat_max | d20.15 | Лимит волатильности максимальный
volatility_risk | f | Текущая ставка риска волатильности в долях
volatility_mismatch_risk | f | Текущая ставка риска рассогласования волатильности в долях
signs | i4 | Поле признаков
a_black | f | Параметр расчета кривой волатильности по модели Блэка-Шоулза
b_black | f | Параметр расчета кривой волатильности по модели Блэка-Шоулза
c_black | f | Параметр расчета кривой волатильности по модели Блэка-Шоулза
d_black | f | Параметр расчета кривой волатильности по модели Блэка-Шоулза
e_black | f | Параметр расчета кривой волатильности по модели Блэка-Шоулза
s_black | f | Параметр расчета кривой волатильности по модели Блэка-Шоулза
a_bach | f | Параметр расчета кривой волатильности по модели Башелье
b_bach | f | Параметр расчета кривой волатильности по модели Башелье
c_bach | f | Параметр расчета кривой волатильности по модели Башелье
d_bach | f | Параметр расчета кривой волатильности по модели Башелье
e_bach | f | Параметр расчета кривой волатильности по модели Башелье
s_bach | f | Параметр расчета кривой волатильности по модели Башелье
m_bach | f | Параметр расчета кривой волатильности по модели Башелье
r | f | Безрисковая процентная ставка.
fixed_spot_discount | f | Сумма дисконтированных значений объявленных денежных потоков.
projected_spot_discount | f | Сумма дисконтированных значений прогнозных денежных потоков.
margin_style | i4 | Способ маржирования опциона. 0 - маржируемый; 1 - премиальный.
settlement_type | i4 | Тип опциона. 0 - расчетный; 1 - поставочный.
exercise_style | i4 | Способ исполнения опциона. 0 - американский; 1 - европейский.
min_step | d16.5 | Минимальный шаг изменения цены.
step_price | d16.5 | Стоимость шага цены.
lot_coefficient | i4 | Коэффициент, указывающий на объём базового актива в котировке контракта и страйках опционной серии.
interest_rate_risk_up | f | Ставка рассогласования процентного риска в сценарии движения ставки r вверх.
interest_rate_risk_down | f | Ставка рассогласования процентного риска в сценарии движения ставки r вниз.
step_price_curr | d16.5 | Стоимость шага цены в валюте. Используется для контрактов с рачетами в валюте, для рублевых контрактов значение совпадает со step_price.
underlying_price | d16.5 | Текущая цена спот инструмента, а в день экспирации - цена нижележащего актива, относительно которой будут исполнены опционы (подробности см. в соответствующей спецификации контракта).
lot_volume | i4 | Количество единиц базового актива в инструменте.
sess_id | i4 | Идентификатор торговой сессии
step_price_clr | d16.5 | Стоимость шага цены вечернего клиринга.
step_price_interclr | d16.5 | Стоимость шага цены промежуточного клиринга.
r2 | f | Безрисковая ставка FX2 валютной пары FX2/FX1 (для премиальных опционов на валюту); ставка дивидендной доходности q (для премиальных опционов на индекс).
interest_rate2_risk_up | f | Ставка рассогласования процентного риска в сценарии движения ставки r2 вверх.
interest_rate2_risk_down | f | Ставка рассогласования процентного риска в сценарии движения ставки r2 вниз.
d_sess_assign | t | Дата исторически первого назначении опционной серии в торги

Примечания:

- Поле signs является битовой маской и может принимать следующие значения:

  0x1

    Исполнение в вечерний или промежуточный клиринг: 0 - вечерний клиринг; 1 - промежуточный клиринг

##### Таблица investor: Справочник клиентов

Таблица 75. Поля таблицы investor

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
client_code | c7 | Код клиента.
name | c200 | Наименование клиента.
calendar_spread_margin_type | i1 | Тип маржирования календарных спредов для клиента. 3 - Полунетто, 4 - Нетто. Будет применен в вечерний клиринг.
is_blank | i4 | Признак раздела-болванки для онлайн-регистрации.
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 | Вес сценариев экспирации в итоговом ГО.
xstatus | i8 | Признаки раздела, расширенное.
client_risk_level | i4 | Категория уровня риска клиента.

Примечания:

- Поле xstatus является битовой маской:

  - 0x1 - ДУ

  - 0x2 - Обособленный

  - 0x4 - Брокерская фирма типа ДУ

  - 0x80 - Физическое лицо

  - 0x100 - Юридическое лицо

  - 0x200 - Нерезидент

  - 0x2000 - ИИС (индивидуальный инвестиционный счет)

  - 0x4000 - Признак разрешения кросс-сделок для адресных заявок. 1 - кросс-сделки разрешены; 0 - кросс-сделки запрещены

  - 0x8000 - Лицо без гражданства

  - 0x20000 - Собственный

  - 0x40000 - Клиентский

  - 0x80000 - Спец.БФ

  - 0x10000000 - Дополнительный собственный раздел

  - 0x10000000000 - Квалифицированный инвестор

  - 0x40000000000 - Снять пассивную заявку при кросс-сделке

- Поле client_risk_level может принимать следующие значения:

  - 0 - Не указано (значение по умолчанию)

  - 1 - Клиент с Начальным Уровнем Риска (КНУР)

  - 2 - Клиент со Стандартным Уровнем Риска (КСУР)

  - 3 - Клиент с Повышенным Уровнем Риска (КПУР)

  - 4 - Клиент с Особым Уровнем Риска (КОУР)

##### Таблица fut_margin_type: Тип маржирования

Таблица 76. Поля таблицы fut_margin_type

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
code | c12 | Расчетный Код или Код Брокерской Фирмы
type | i1 | Признак РК/БФ (0 - РК, 1 - БФ)
margin_type | i1 | Тип маржирования. 2 - Брутто, 3 - Полунетто, 4 - Нетто.
UCP_type | i1 | Признак принадлежности РК к Единому Пулу.
prohibit_coeff | d16.2 | Коэффициент задолженности по РК/БФ/разделу. Задает максимальное соотношение размера отрицательного свободного лимита к торговому лимиту, по превышении которого система ставит запреты на выполнение операций. Режим запрета определяется полем prohibit_type.
prohibit_type | i4 | Тип автоматического запрета для РК: 1 - запрет открытия позиций 2 - запрет выставления заявок.
settlement_account_type | i1 | Тип Расчетного Кода. 0 - собственный РК, 1 - клиентский РК, 2 - РК типа ДУ.
operator_input | i1 | Блокировка по Расчетному Коду, выставленная Администратором ТС. 0 - отключена, 1 - включена.

Примечания:

- Поле operator_input может принимать значение: 0 - блокировка отключена, 1 - блокировка включена. При включении режима блокировки автоматически снимаются заявки, выставленные со всех клиринговых разделов БФ, привязанных к блокированному РК. Снятые заявки в поле xstatus помечаются специальным признаком - OperatorInputSA (0x1000000000000). В режиме блокировки устанавливается запрет на подачу любых торговых команд в ТС с указанием клиринговых разделов брокерских фирм, привязанных к данному РК, а также запрещен перенос позиций между БФ. В заявках и сделках, сформированных по РК Администратором торгов в режиме блокировки, в полях xstatus (в заявках) и xstatus_sell или xstatus_buy (в сделках) проставляется специальный признак - OperatorInputSA (0x1000000000000).

##### Таблица fut_settlement_account: Расчетный Код

Таблица 77. Поля таблицы fut_settlement_account

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
code | c7 | Код Брокерской Фирмы или Клиентский Код
type | i1 | Признак БФ - 1, Клиент - 2
settlement_account | c12 | Расчетный Код

##### Таблица sma_master: Привязка SMA-логина к MASTER-логину

Таблица содержит информацию о привязке SMA-логина к MASTER-логину.

Таблица 78. Поля таблицы 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-логина.

Таблица 79. Поля таблицы 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: Участники клиринга

Таблица содержит информацию о блокировках участников.

Таблица 80. Поля таблицы clearing_members

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
code | c2 | Код участника
lock_type | i1 | Тип блокировки
lock_date | t | Дата блокировки
name | c200 | Название участника

Примечания:

- Поле lock_type может принимать следующие значения:

  0

    Нет блокировки.

  2

    Ликвидационный неттинг в отношении Участника клиринга.

  11

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

##### Таблица instr2matching_map: Сопоставление инструментов матчингу

Таблица служит для сопоставления инструментов матчингу, на котором они обрабатываются.

Таблица 81. Поля таблицы instr2matching_map

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
base_contract_id | i4 | Числовой идентификатор базового контракта
matching_id | i1 | Идентификатор матчинга

##### Таблица fut_exec_orders: Поручения на исполнение однодневных фьючерсов с автопролонгацией

Таблица 82. Поля таблицы fut_exec_orders

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
exес_order_id | i8 | Идентификатор поручения на исполнение
client_code | c7 | Код клиента
isin_id | i4 | Уникальный числовой идентификатор инструмента
xamount | i8 | Количество контрактов, подлежащих исполнению (с учётом знака)
sess_id | i4 | Идентификатор торговой сессии
xamount_apply | i8 | Количество в поручениях на момент промежуточного клиринга
date | t | Дата и время подачи/изменения поручения

##### Таблица discrete_auction: Параметры назначенных аукционов открытия

Таблица 83. Поля таблицы discrete_auction

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
discrete_auction_id | i8 | Идентификатор аукциона открытия
sess_id | i4 | Идентификатор торговой сессии
add_order_start | t | Время начала приема заявок в аукцион открытия
add_order_finish_from | t | Начало интервала времени, в течение которого произойдет прекращение приема заявок в аукцион открытия
add_order_finish_till | t | Конец интервала времени, в течение которого произойдет прекращение приема заявок в аукцион открытия
synchro_event_id_start | i4 | Идентификатор синхрособытия "discrete_auction_add_order_started"
synchro_event_id_finish | i4 | Идентификатор синхрособытия "discrete_auction_add_order_finished"
trade_period_id | i8 | Идентификатор торгового периода
trade_period_type | i8 | Тип торгового периода

Примечания:

- Поле trade_period_type может принимать следующие значения:

  1

    Основная торговая сессия.

  2

    Вечерняя дополнительная торговая сессия.

  4

    Дополнительная сессия выходного дня.

  8

    Утренняя дополнительная торговая сессия.

##### Таблица discrete_auction_base_contract: Базовые контракты, назначенные в аукцион открытия

Таблица 84. Поля таблицы discrete_auction_base_contract

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
discrete_auction_id | i8 | Идентификатор аукциона открытия
base_contract_id | i4 | Числовой идентификатор базового контракта
base_contract_code | c25 | Код базового контракта.

##### Таблица trade_periods: Параметры торговых периодов

Таблица содержит информацию о расписании торговых периодов.

Таблица 85. Поля таблицы trade_periods

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
trade_period_id | i8 | Идентификатор торгового периода
sess_id | i4 | Идентификатор торговой сессии
trade_period_type | i8 | Тип торгового периода
trade_period_begin | t | Дата и время начала торгового периода
trade_period_end | t | Дата и время окончания торгового периода
trade_period_name | c255 | Название торгового периода
trade_period_flags | i8 | Флаги дополнительных свойств торгового периода

Примечания:

- Поле trade_period_type может принимать следующие значения:

  1

    Основная торговая сессия.

  2

    Вечерняя дополнительная торговая сессия.

  4

    Дополнительная сессия выходного дня.

  8

    Утренняя дополнительная торговая сессия.

- Поле trade_period_flags может принимать следующие значения:

  0x01

    Перед торговым периодом произведена псевдораздвижка.

##### Таблица session: Информация о торговой сессии

Таблица содержит информацию о расписании сессий.

Таблица 86. Поля таблицы session

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
sess_id | i4 | Идентификатор торговой сессии
begin | t | Время начала
end | t | Время окончания
state | 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 | Время окончания дополнительной утренней сессии

Примечания:

- Поле state может принимать следующие значения:

  0

    Сессия назначена. Нельзя ставить заявки, но можно удалять.

  1

    Сессия идет. Можно ставить и удалять заявки.

  2

    Приостановка торгов по всем инструментам. Нельзя ставить заявки, но можно удалять.

  4

    Сессия завершена по времени. Нельзя ставить и удалять заявки.

- Поле inter_cl_state выдается (по битово):

  0x0

    Неопределен. Можно ставить и удалять заявки.

  0x01

    Будущий на сегодня. Можно ставить и удалять заявки.

  0x02

    Отменен. Можно ставить и удалять заявки.

  0x04

    Текущий, т.е. идет, ничего нельзя. Нельзя ставить и удалять заявки.

  0x08

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

  0x10

    Успешно завершен (в т.ч. и по времени). Можно ставить и удалять заявки.

##### Таблица brokers_base_contracts_params: Индивидуальный коэффициент ГО в разрезе базового контракта и БФ

Таблица 87. Поля таблицы brokers_base_contracts_params

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
broker_code | c4 | Код БФ
base_contract_code | c25 | Код базового контракта
coeff_im | d16.5 | Коэффициент ГО по базовому контракту для всех клиентов данной БФ. Будет применен в вечерний клиринг.

##### Таблица sys_events: Таблица событий

Таблица 88. Поля таблицы 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 = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 23

    message = "discrete_auction_add_order_started"

    Начало приема заявок в аукцион открытия

    event_type = 24

    message = "discrete_auction_add_order_finished"

    Окончание приема заявок в аукцион открытия

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

### Поток FORTS_MM_REPL - Информация об обязательствах ММ (Type=I)

#### Схема данных

Таблицы:

- mm_agreement_filter - Таблица с номерами и типами договоров на оказание маркет-мейкерских услуг
- fut_MM_info - Обязательства ММ по фьючерсам
- opt_MM_info - Обязательства ММ по опционам
- cs_mm_rule - Таблица с инструментами для пересчета центрального страйка

##### Таблица mm_agreement_filter: Таблица с номерами и типами договоров на оказание маркет-мейкерских услуг

Таблица 89. Поля таблицы mm_agreement_filter

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
agmt_id | i4 | Идентификатор договора
is_fut | i1 | Тип обязательства
agreement | c50 | Номер договора
client_code | c7 | Код клиента

##### Таблица fut_MM_info: Обязательства ММ по фьючерсам

Таблица 90. Поля таблицы 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 – активна
agmt_id | i4 | Идентификатор обязательства ММ
fulfil_min | d6.2 | Процент минимального исполнения обязательств за торговую сессию
fulfil_partial | d6.2 | Процент частичного исполнения обязательств за торговую сессию
fulfil_total | d6.2 | Процент полного исполнения обязательств за торговую сессию
is_fulfil_min | i1 | Признак минимального исполнения обязательств в текущий момент
is_fulfil_partial | i1 | Признак частичного исполнения обязательств в текущий момент
is_fulfil_total | i1 | Признак полного исполнения обязательств в текущий момент
is_rf | i1 | Признак обязательства расчетной фирмы
id_group | i4 | Идентификатор маркет-мейкерской связки

Примечания: В таблице fut_MM_info потока FORTS_MM_REPL транслируются обязательства маркет-мейкеров с детализацией до семизначного клиентского кода.

##### Таблица opt_MM_info: Обязательства ММ по опционам

Таблица 91. Поля таблицы opt_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 | Код клиента
cstrike_offset | d16.5 | Смещение от центрального страйка
active_sign | i4 | Признак: 1 – запись удалена (стала не активна), 0 – активна
agmt_id | i4 | Идентификатор обязательства ММ
fulfil_min | d6.2 | Процент минимального исполнения обязательств за торговую сессию
fulfil_partial | d6.2 | Процент частичного исполнения обязательств за торговую сессию
fulfil_total | d6.2 | Процент полного исполнения обязательств за торговую сессию
is_fulfil_min | i1 | Признак минимального исполнения обязательств в текущий момент
is_fulfil_partial | i1 | Признак частичного исполнения обязательств в текущий момент
is_fulfil_total | i1 | Признак полного исполнения обязательств в текущий момент
is_rf | i1 | Признак обязательства расчетной фирмы
id_group | i4 | Идентификатор маркет-мейкерской связки

Примечания: В таблице opt_MM_info потока FORTS_MM_REPL транслируются обязательства маркет-мейкеров с детализацией до семизначного клиентского кода.

##### Таблица cs_mm_rule: Таблица с инструментами для пересчета центрального страйка

Таблица 92. Поля таблицы cs_mm_rule

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
sess_id | i4 | Идентификатор торговой сессии
client_code | c4 | Код клиента
option_series_id | i4 | Идентификатор опционной серии

### Поток FORTS_CLR_REPL - Клиринговая информация (Type=AR)

#### Схема данных

Таблицы:

- money_clearing - Клиентские деньги в клиринге
- clr_rate - Курсы валют и индексов
- fut_pos - Информация о позиционном состоянии на момент вечернего клиринга по фьючерсам
- opt_pos - Информация о позиционном состоянии на момент вечернего клиринга по опционам
- fut_sess_settl - Расчетные цены по фьючерсам
- opt_sess_settl - Расчетные цены по опционам
- pledge_details - Таблица детализации залогов
- money_clearing_sa - Клиентские деньги в клиринге
- fut_pos_sa - Информация о позиционном состоянии РК на момент вечернего клиринга по фьючерсам
- opt_pos_sa - Информация о позиционном состоянии РК на момент вечернего клиринга по опционам
- option_series_settl - Расчетные цены по опционным сериям
- sys_events - Таблица событий

##### Таблица money_clearing: Клиентские деньги в клиринге

Таблица 93. Поля таблицы money_clearing

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
client_code | c7 | Код клиента
asset_type | i1 | Тип счета. 0 - рубли, 1 - залоги.
amount_beg | d16.2 | Денег на начало дня
vm | d16.2 | Вариационная маржа, включая вариационную маржу по маржируемым опционам
premium | d16.2 | Премия по опционам, полученная/списанная в вечерний клиринг, в пересчёте на рубли. Включает в себя финансовый результат исполнения позиций по премиальным опционам.
pay | d16.2 | Движение по счету
fee_fut | d16.2 | Фьючерсный биржевой сбор
fee_opt | d16.2 | Опционный биржевой сбор
go | d16.2 | Суммарное ГО по фьючерсам и опционам
amount_end | d21.2 | Денег на конец дня
free | d22.2 | Свободно средств

##### Таблица clr_rate: Курсы валют и индексов

Таблица 94. Поля таблицы clr_rate

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
rate | d16.5 | Значение индекса
moment | t | Момент фиксирования значения
signs | i1 | Признаки, соответствующие данному значению
sess_id | i4 | Идентификатор торговой сессии
rate_id | i4 | Идентификатор курса

##### Таблица fut_pos: Информация о позиционном состоянии на момент вечернего клиринга по фьючерсам

Таблица 95. Поля таблицы fut_pos

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
isin_id | i4 | Уникальный числовой идентификатор инструмента
sess_id | i4 | Идентификатор торговой сессии
isin | c25 | Символьный код инструмента
client_code | c7 | Код клиента
account_type | i1 | Тип счета (0 - РФ; 1 - БФ; 2 - клиент).
xpos_beg | i8 | Позиция на начало дня
xpos_end | i8 | Позиция на конец дня
vm | d16.2 | Суммарная ВМ по итогам основного клиринга для клиента/фирмы и инструмента
fee | d16.2 | Суммарный сбор для клиента/фирмы и инструмента
accum_go | d16.2 | Накопленный ГП
fee_ex | d16.2 | Биржевой сбор
fee_cc | d16.2 | Клиринговый сбор
pos_exec | d11.0 | Количество исполненных позиций
charge_exec | d16.2 | Сбор за исполнение
sbor_nosys | d16.2 | Сумма биржевого сбора/сбора расчетной организации и комиссионного вознаграждения Клирингового центра за внесистемные сделки (руб.)
pos_enforcement_exec | i8 | Количество принудительно исполненных позиций для выхода из вечного фьючерса
pay_enforcement_exec | d16.2 | Сумма платежа (с учетом знака) за принудительное исполнение вечного фьючерса

##### Таблица opt_pos: Информация о позиционном состоянии на момент вечернего клиринга по опционам

Таблица 96. Поля таблицы opt_pos

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
isin_id | i4 | Уникальный числовой идентификатор инструмента
sess_id | i4 | Идентификатор торговой сессии
isin | c25 | Символьный код инструмента
client_code | c7 | Код клиента
account_type | i1 | Тип счета (0 - РФ; 1 - БФ; 2 - клиент).
xpos_beg | i8 | Позиция на начало дня
xpos_end | i8 | Позиция на конец дня
vm | d16.2 | Суммарная ВМ по итогам основного клиринга для клиента/фирмы и инструмента. Равно сумме полей VAR_MARG_P и VAR_MARG_D
fee | d16.2 | Суммарный сбор для клиента/фирмы и инструмента. Совпадает с полем SBOR из отчетов
fee_ex | d16.2 | Биржевой сбор
fee_cc | d16.2 | Клиринговый сбор
pos_exec | d11.0 | Количество исполненных позиций
charge_exec | d16.2 | Сбор за исполнение
sbor_nosys | d16.2 | Сумма биржевого сбора/сбора расчетной организации и комиссионного вознаграждения Клирингового центра за внесистемные сделки (руб.)
premium | d26.2 | Рублевая премия по опциону, полученная/списанная в вечерний клиринг. Включает в себя финансовый результат исполнения позиции.
premium_in_settl_currency | d26.2 | Валютная премия по опциону, полученная/списанная в вечерний клиринг. Включает в себя финансовый результат исполнения позиции.

##### Таблица fut_sess_settl: Расчетные цены по фьючерсам

Таблица 97. Поля таблицы fut_sess_settl

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
sess_id | i4 | Идентификатор торговой сессии
date_clr | t | Дата клиринга
isin | c25 | Символьный код инструмента
isin_id | i4 | Уникальный числовой идентификатор инструмента
settl_price | d16.5 | Расчетная цена
swap_rate | d16.5 | Фандинг при отклонении цены контракта от цены БА больше заданного на контракте уровня (для ВФ)
index_div | d18.4 | Дивидендная поправка для ВФ на индекс или акцию
exp_enforcement_pay | d16.2 | Сумма платежа (в рублях) за 1 контракт по сделкам прекращения обязательств по ВФ, в случае принудительного исполнения, от стороны подавшей поручение на выход из ВФ, стороне, которую принудительно закрыли
step_price | d16.5 | Стоимость шага цены вечернего клиринга
step_price_curr | d16.5 | Стоимость шага цены вечернего клиринга в валюте

##### Таблица opt_sess_settl: Расчетные цены по опционам

Таблица 98. Поля таблицы opt_sess_settl

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
sess_id | i4 | Идентификатор торговой сессии
date_clr | t | Дата клиринга
isin | c25 | Символьный код инструмента
isin_id | i4 | Уникальный числовой идентификатор инструмента
volat | d16.5 | Волатильность опциона
theor_price | d16.5 | Теоретическая цена опциона
step_price | d16.5 | Стоимость шага цены вечернего клиринга
step_price_curr | d16.5 | Стоимость шага цены вечернего клиринга в валюте

##### Таблица pledge_details: Таблица детализации залогов

Таблица 99. Поля таблицы pledge_details

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
client_code | c7 | Код клиента
pledge_name | c10 | Код иностранной валюты или ценной бумаги
xamount_beg | d26.2 | Количество ценных бумаг или иностранной валюты на начало сессии
xpay | d26.2 | Сумма вводов-выводов в штуках ценных бумаг или иностранной валюты
xamount | d26.2 | Количество ценных бумаг или иностранной валюты на текущий момент
rate | d16.5 | Оценочная стоимость единицы иностранной валюты или одной ценной бумаги в рублях РФ
xamount_beg_money | d26.2 | Количество ценных бумаг или иностранной валюты на начало сессии в рублях РФ
xpay_money | d26.2 | Сумма вводов-выводов в штуках ценных бумаг или иностранной валюты в рублях РФ
xamount_money | d26.2 | Количество ценных бумаг или иностранной валюты на текущий момент в рублях РФ

Примечания:

- Поле amount_money - Количество ценных бумаг или иностранной валюты на текущий момент (в рублях РФ) (рассчитывается как «amount» * «rate»)

- Поле amount_beg_money - Количество ценных бумаг или иностранной валюты на начало сессии (в рублях РФ) (рассчитывается как «amount_beg» * «rate»)

- Поле pay_money - Сумма вводов-выводов в штуках ценных бумаг или иностранной валюты (в рублях РФ) (рассчитывается как «pay» * «rate»)

##### Таблица money_clearing_sa: Клиентские деньги в клиринге

Таблица 100. Поля таблицы money_clearing_sa

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
settlement_account | c12 | Расчетный Код
asset_type | i1 | Тип счета. 0 - рубли, 1 - залоги.
amount_beg | d26.2 | Денег на начало дня
vm | d26.2 | Вариационная маржа
premium | d26.2 | Премия по опционам, полученная/списанная в вечерний клиринг, в пересчёте на рубли. Включает в себя финансовый результат исполнения позиций по премиальным опционам.
pay | d26.2 | Движение по счету
fee_fut | d26.2 | Фьючерсный биржевой сбор
fee_opt | d26.2 | Опционный биржевой сбор
go | d26.2 | Суммарное ГО по фьючерсам и опционам
amount_end | d26.2 | Денег на конец дня
free | d26.2 | Свободно средств
blocked_tax | d26.2 | Средства, заблокированные под выплату налогов.

##### Таблица fut_pos_sa: Информация о позиционном состоянии РК на момент вечернего клиринга по фьючерсам

Таблица 101. Поля таблицы fut_pos_sa

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
isin_id | i4 | Уникальный числовой идентификатор инструмента
sess_id | i4 | Идентификатор торговой сессии
isin | c25 | Символьный код инструмента
settlement_account | c12 | Расчетный Код
xpos_beg | i8 | Позиция на начало дня
xpos_end | i8 | Позиция на конец дня
vm | d26.2 | Суммарная ВМ по итогам основного клиринга для клиента/фирмы и инструмента
fee | d26.2 | Суммарный сбор для клиента/фирмы и инструмента
fee_ex | d26.2 | Биржевой сбор
fee_cc | d26.2 | Клиринговый сбор
pos_exec | d11.0 | Количество исполненных позиций
charge_exec | d16.2 | Сбор за исполнение
sbor_nosys | d16.2 | Сумма биржевого сбора/сбора расчетной организации и комиссионного вознаграждения Клирингового центра за внесистемные сделки (руб.)

##### Таблица opt_pos_sa: Информация о позиционном состоянии РК на момент вечернего клиринга по опционам

Таблица 102. Поля таблицы opt_pos_sa

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
isin_id | i4 | Уникальный числовой идентификатор инструмента
sess_id | i4 | Идентификатор торговой сессии
isin | c25 | Символьный код инструмента
settlement_account | c12 | Расчетный Код
xpos_beg | i8 | Позиция на начало дня
xpos_end | i8 | Позиция на конец дня
vm | d26.2 | Суммарная ВМ по итогам основного клиринга для клиента/фирмы и инструмента. Равно сумме полей VAR_MARG_P и VAR_MARG_D
fee | d26.2 | Суммарный сбор для клиента/фирмы и инструмента. Совпадает с полем SBOR из отчетов
fee_ex | d26.2 | Биржевой сбор
fee_cc | d26.2 | Клиринговый сбор
premium | d26.2 | Рублевая премия по опциону, полученная/списанная в вечерний клиринг. Включает в себя финансовый результат исполнения позиции.
premium_in_settl_currency | d26.2 | Валютная премия по опциону, полученная/списанная в вечерний клиринг. Включает в себя финансовый результат исполнения позиции.
pos_exec | d11.0 | Количество исполненных позиций
charge_exec | d16.2 | Сбор за исполнение
sbor_nosys | d16.2 | Сумма биржевого сбора/сбора расчетной организации и комиссионного вознаграждения Клирингового центра за внесистемные сделки (руб.)

##### Таблица option_series_settl: Расчетные цены по опционным сериям

Таблица 103. Поля таблицы option_series_settl

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
sess_id | i4 | Идентификатор торговой сессии
date_clr | t | Дата клиринга
isin | c25 | Символьный код инструмента
isin_id | i4 | Уникальный числовой идентификатор инструмента
underlying_price | d16.5 | Текущая цена спот инструмента, а в день экспирации - цена нижележащего актива, относительно которой будут исполнены опционы (подробности см. в соответствующей спецификации контракта)
lot_coefficient | i4 | Коэффициент, указывающий на объём базового актива в котировке контракта и страйках опционной серии
step_price | d16.5 | Стоимость шага цены вечернего клиринга
step_price_curr | d16.5 | Стоимость шага цены вечернего клиринга в валюте

##### Таблица sys_events: Таблица событий

Таблица 104. Поля таблицы 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"

    Готовы данные после основного клиринга

### Поток RTS_INDEX_REPL - Биржевые индексы (Type=R)

#### Схема данных

Таблицы:

- rts_index - Таблица индексов

##### Таблица rts_index: Таблица индексов

Таблица содержит данные о значениях биржевых индексов.

Таблица 105. Поля таблицы rts_index

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
name | c25 | Имя индекса
moment | t | Момент последнего расчета
usd_rate | d10.4 | Для индексов, в которых учитываются как рублевые, так и долларовые цены инструментов – курс рубля к доллару, использовавшийся для расчета
cap | d18.4 | Капитализация бумаг, входящих в индекс
volume | d18.4 | Объём сделок, входящих в индекс
value_highprec | d18.6 | Значение индекса (значение высокой точности, 6 знаков после запятой)
prev_close_value_highprec | d18.6 | Значение индекса на закрытие предыдущей торговой сессии (значение высокой точности, 6 знаков после запятой).
open_value_highprec | d18.6 | Значение индекса на открытие текущей торговой сессии (значение высокой точности, 6 знаков после запятой).
max_value_highprec | d18.6 | Максимальное значение индекса в течение текущей торговой сессии (значение высокой точности, 6 знаков после запятой).
min_value_highprec | d18.6 | Минимальное значение индекса в течение текущей торговой сессии (значение высокой точности, 6 знаков после запятой).

### Поток FORTS_VM_REPL - Вариационная маржа и премия (Type=I)

#### Схема данных

Таблицы:

- fut_vm - Вариационная маржа по фьючерсам в разрезе позиций клиентов
- opt_vm - Вариационная маржа и премия по опционам в разрезе позиций клиентов
- fut_vm_sa - Вариационная маржа по фьючерсам в разрезе позиций РК
- opt_vm_sa - Вариационная маржа и премия по опционам в разрезе позиций РК
- sys_events - Таблица событий

##### Таблица fut_vm: Вариационная маржа по фьючерсам в разрезе позиций клиентов

Таблица 106. Поля таблицы fut_vm

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
isin_id | i4 | Уникальный числовой идентификатор инструмента
sess_id | i4 | Идентификатор торговой сессии
client_code | c7 | Код клиента
vm | d16.5 | Накопленная по сделкам вариационная маржа, рассчитанная по текущей рыночной цене
swap_rate | d16.5 | Индикативный фандинг по текущей клиентской позиции (для вечных фьючерсов)
index_div | d18.4 | Индикативная дивидендная поправка по текущей клиентской позиции (для вечных фьючерсов на индекс или акцию)

Примечания:

- Величина ВМ отражает (без учета вариативности валютной составляющей, которая фиксируется в клиринг) реализованный финансовый результат "если позицию закрыть сейчас".

- Величина ВМ, которая отражает значение "если клиринг провести сейчас" (без учета расхождений фиксингов БА и рыночных цен вечных фьючерсов в отдельных случаях), необходимо сложить компоненты следующим образом:

      ВМ = vm – swap_rate + index_div

##### Таблица opt_vm: Вариационная маржа и премия по опционам в разрезе позиций клиентов

Таблица 107. Поля таблицы opt_vm

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
isin_id | i4 | Уникальный числовой идентификатор инструмента
sess_id | i4 | Идентификатор торговой сессии
client_code | c7 | Код клиента
vm | d16.5 | Накопленная по сделкам вариационная маржа по маржируемым опционам, рассчитанная по текущей рыночной цене
premium | d26.2 | Накопленная по сделкам премия по премиальным опционам, подлежащая к уплате в ближайший ПК/ВК, в пересчете на рубли. Не включает в себя финансовый результат исполнения позиции.
premium_in_settl_currency | d26.2 | Накопленная по сделкам премия по премиальным опционам, подлежащая к уплате в ближайший ПК/ВК, в валюте расчетов. Не включает в себя финансовый результат исполнения позиции.

##### Таблица fut_vm_sa: Вариационная маржа по фьючерсам в разрезе позиций РК

Таблица 108. Поля таблицы fut_vm_sa

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
isin_id | i4 | Уникальный числовой идентификатор инструмента
sess_id | i4 | Идентификатор торговой сессии
settlement_account | c12 | Расчетный Код
vm | d26.2 | Накопленная по сделкам вариационная маржа, рассчитанная по текущей рыночной цене
swap_rate | d16.5 | Индикативный фандинг по текущей позиции РК (для вечных фьючерсов)
index_div | d18.4 | Индикативная дивидендная поправка по текущей позиции РК (для вечных фьючерсов на индекс или акцию)

Примечания:

- Величина ВМ отражает (без учета вариативности валютной составляющей, которая фиксируется в клиринг) реализованный финансовый результат "если позицию закрыть сейчас".

- Величина ВМ, которая отражает значение "если клиринг провести сейчас" (без учета расхождений фиксингов БА и рыночных цен вечных фьючерсов в отдельных случаях), необходимо сложить компоненты следующим образом:

      ВМ = vm – swap_rate + index_div

##### Таблица opt_vm_sa: Вариационная маржа и премия по опционам в разрезе позиций РК

Таблица 109. Поля таблицы opt_vm_sa

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
isin_id | i4 | Уникальный числовой идентификатор инструмента
sess_id | i4 | Идентификатор торговой сессии
settlement_account | c12 | Расчетный Код
vm | d26.2 | Накопленная по сделкам вариационная маржа по маржируемым опционам, рассчитанная по текущей рыночной цене
premium | d26.2 | Накопленная по сделкам премия по премиальным опционам, подлежащая к уплате в ближайший ПК/ВК, в пересчете на рубли. Не включает в себя финансовый результат исполнения позиции.
premium_in_settl_currency | d26.2 | Накопленная по сделкам премия по премиальным опционам, подлежащая к уплате в ближайший ПК/ВК, в валюте расчетов. Не включает в себя финансовый результат исполнения позиции.

##### Таблица sys_events: Таблица событий

Таблица 110. Поля таблицы 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 = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

### Поток FORTS_VOLAT_REPL - Волатильность (Type=I)

#### Схема данных

Таблицы:

- volat - Волатильность
- sys_events - Таблица событий

##### Таблица volat: Волатильность

Текущие значения волатильности и теоретические цены для опционов. Транслируется в виде временных срезов с интервалом 10 минут.

Таблица 111. Поля таблицы volat

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
isin_id | i4 | Уникальный числовой идентификатор инструмента
sess_id | i4 | Идентификатор торговой сессии
volat | d16.5 | Волатильность опциона
theor_price | d16.5 | Теоретическая цена опциона
theor_price_limit | d16.5 | Теоретическая цена опциона с учетом лимитов
up_prem | d16.5 | Верхний лимит премии по опциону
down_prem | d16.5 | Нижний лимит премии по опциону
option_model | i1 | Модель ценообразования опционов.

Примечания:

- Поле option_model может принимать следующие значения:

  0

    Модель Блэка-Шоулза

  1

    Модель Башелье

##### Таблица sys_events: Таблица событий

Таблица 112. Поля таблицы 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 = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

### Поток FORTS_RISKINFOBLACK_REPL - Риск-параметры для модели Блэка-Шоулза (Type=I)

#### Схема данных

Таблицы:

- volat_coeff - Риск-параметры для модели Блэка-Шоулза

##### Таблица volat_coeff: Риск-параметры для модели Блэка-Шоулза

Таблица 113. Поля таблицы volat_coeff

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
option_series_id | i4 | Идентификатор опционной серии
a | f | Параметр расчета кривой волатильности по модели Блэка-Шоулза
b | f | Параметр расчета кривой волатильности по модели Блэка-Шоулза
c | f | Параметр расчета кривой волатильности по модели Блэка-Шоулза
d | f | Параметр расчета кривой волатильности по модели Блэка-Шоулза
e | f | Параметр расчета кривой волатильности по модели Блэка-Шоулза
s | f | Параметр расчета кривой волатильности по модели Блэка-Шоулза

### Поток FORTS_RISKINFOBACH_REPL - Риск-параметры для модели Башелье (Type=I)

#### Схема данных

Таблицы:

- volat_coeff - Риск-параметры для модели Башелье

##### Таблица volat_coeff: Риск-параметры для модели Башелье

Таблица 114. Поля таблицы volat_coeff

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
option_series_id | i4 | Идентификатор опционной серии
a | f | Параметр расчета кривой волатильности по модели Башелье
b | f | Параметр расчета кривой волатильности по модели Башелье
c | f | Параметр расчета кривой волатильности по модели Башелье
d | f | Параметр расчета кривой волатильности по модели Башелье
e | f | Параметр расчета кривой волатильности по модели Башелье
s | f | Параметр расчета кривой волатильности по модели Башелье
m | f | Параметр расчета кривой волатильности по модели Башелье

### Поток FORTS_INFO_REPL - Справочная информация (Type=R)

#### Схема данных

Таблицы:

- currency_params - Параметры валют

- base_contracts_params - Параметры базовых контрактов
- futures_params - Параметры фьючерсов
- option_series_params - Информация о параметрах опционных серий.
- options_params - Параметры опционов
- investor - Справочник клиентов
- dealer - Справочник фирм
- multileg_dictionary - Справочник связок

- common_params - Параметры расчёта ГО

- brokers_base_contracts_params - Индивидуальный коэффициент ГО в разрезе базового контракта и БФ
- sys_events - Таблица событий

##### Таблица currency_params: Параметры валют

Таблица 115. Поля таблицы currency_params

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
currency_id | i4 | Идентификатор валюты из справочника rates потока FORTS_REFDATA_REPL
radius | f | Радиус изменения цены валюты в процентах (определяется в последний вечерний клиринг)

##### Таблица base_contracts_params: Параметры базовых контрактов

Таблица 116. Поля таблицы base_contracts_params

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
base_contract_code | c25 | Код базового контракта.
code_mcs | c25 | Код межконтрактного спреда
volat_num | 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 | Значение ставки рыночного риска второго лимита концентрации
mr1_lrc | f | Значение ставки рыночного риска для КНУР
mr2_lrc | f | Значение ставки рыночного риска первого лимита концентрации для КНУР
mr3_lrc | f | Значение ставки рыночного риска второго лимита концентрации для КНУР
mr1_mrc | f | Значение ставки рыночного риска для КСУР
mr2_mrc | f | Значение ставки рыночного риска первого лимита концентрации для КСУР
mr3_mrc | f | Значение ставки рыночного риска второго лимита концентрации для КСУР
mr1_hrc | f | Значение ставки рыночного риска для КПУР
mr2_hrc | f | Значение ставки рыночного риска первого лимита концентрации для КПУР
mr3_hrc | f | Значение ставки рыночного риска второго лимита концентрации для КПУР
mr1_erc | f | Значение ставки рыночного риска для КОУР
mr2_erc | f | Значение ставки рыночного риска первого лимита концентрации для КОУР
mr3_erc | f | Значение ставки рыночного риска второго лимита концентрации для КОУР
lk1 | i8 | Количество единиц базового актива, характеризующее достижение первого лимита концентрации
lk2 | i8 | Количество единиц базового актива, характеризующее достижение второго лимита концентрации
risk_points_n | i4 | Количество сценариев движения цены контракта слева и справа от центра расчета риска
window_size | f | Коэффициент для определения размера окна сглаживания при маржировании межконтрактного спрэда
option_model | i1 | Модель ценообразования опционов.
asset_class | i4 | Тип базового актива.
cf_risk | f | Ставка риска изменения размера денежного потока. Используется для учёта погрешности прогнозных значений cash flow.
signs | i4 | Поле признаков

Примечания:

- Поле option_model может принимать следующие значения:

  0

    Модель Блэка-Шоулза

  1

    Модель Башелье

- Поле asset_class может принимать следующие значения:

  1

    Акция

  2

    Валюта

  3

    Облигация

  4

    Индекс

  5

    Товар

  6

    Процентная ставка

- Поле signs является битовой маской и может принимать следующие значения:

  0x1

    Исполнение в вечерний или промежуточный клиринг: 0 - вечерний клиринг; 1 - промежуточный клиринг

  0x2

    Признак отнесения инструмента к иностранным: 0 - не иностранный; 1 - иностранный

  0x4

    Признак TAS-фьючерс: 0 - не TAS-фьючерс; 1 - TAS-фьючерс (В текущей версии недоступно)

  0x8

    Для квалифицированных инвесторов

##### Таблица futures_params: Параметры фьючерсов

Таблица 117. Поля таблицы 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 | Признак вхождения в спред
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 – нет.
tas_base_fut_isin_id | i4 | Идентификатор (isin_id) БА-фьючерса для TAS-фьючерса (В текущей версии недоступно)

Примечания:

- Поле spread_aspect может принимать следующие значения:

  0

    Не входит в спред

  2

    Входит в межмесячный спред

- Поле attribute может принимать следующие значения:

  0

    "Обычный" фьючерс

  0x100000

    TAS-фьючерс (В текущей версии недоступно)

  0x800000

    Collateral

##### Таблица option_series_params: Параметры опционных серий

Таблица 118. Поля таблицы option_series_params

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
small_name | c25 | Символьный код
isin_base | c25 | Код реального фьючерса
a_black | f | Параметр расчета кривой волатильности по модели Блэка-Шоулза
b_black | f | Параметр расчета кривой волатильности по модели Блэка-Шоулза
c_black | f | Параметр расчета кривой волатильности по модели Блэка-Шоулза
d_black | f | Параметр расчета кривой волатильности по модели Блэка-Шоулза
e_black | f | Параметр расчета кривой волатильности по модели Блэка-Шоулза
expiration_date | t | Дата завершения периода исполнения
use_null_volat | i1 | Признак нулевой волатильности
s_black | f | Параметр расчета кривой волатильности по модели Блэка-Шоулза
strike_step | f | Шаг страйка
exp_clearings_sa | i4 | Определяет, за сколько клиринговых сессий по РК начнет блокироваться ГО, рассчитанное для всего РК по модели экспирации. Устанавливается НКЦ.
exp_clearings_bf | i4 | Определяет, за сколько клиринговых сессий по БФ начнет блокироваться ГО, рассчитанное для всей БФ по модели экспирации. Устанавливается НКЦ.
exp_clearings_cc | i4 | Определяет, за сколько клиринговых сессий начнется применение веса exp_weight для клиентов БФ. Устанавливается НКЦ.
volatility_risk | f | Ставка диапазона риска волатильности
volatility_risk_mismatch | f | Ставка рассогласования риска волатильности между разными сроками опционных серий
time_to_expiration | f | Время до экспирации инструмента в долях года
option_series_id | i4 | Идентификатор опционной серии
underlying_id | i4 | Идентификатор фьючерса
a_bach | f | Параметр расчета кривой волатильности по модели Башелье
b_bach | f | Параметр расчета кривой волатильности по модели Башелье
c_bach | f | Параметр расчета кривой волатильности по модели Башелье
d_bach | f | Параметр расчета кривой волатильности по модели Башелье
e_bach | f | Параметр расчета кривой волатильности по модели Башелье
s_bach | f | Параметр расчета кривой волатильности по модели Башелье
m_bach | f | Параметр расчета кривой волатильности по модели Башелье
margin_style | i4 | Способ маржирования опциона. 0 - маржируемый; 1 - премиальный.
settlement_type | i4 | Тип опциона. 0 - расчетный; 1 - поставочный.
exercise_style | i4 | Способ исполнения опциона. 0 - американский; 1 - европейский.
sub_risk | i1 | Признак учета риска по подточкам: 1 - Включен режим учета риска по подточкам риска, 0 - Выключен.
spread_aspect | i1 | Признак вхождения опционной серии в спред: 0 - Не в спреде, 2 - В спреде.
enforce_half_netting | i1 | Признак принудительного включения правила полунетто при кроссмаржировании опционных серий с коллатеральным инструментом, у которых признак spread_aspect=2.
min_step | f | Минимальный шаг изменения цены.
step_price | f | Стоимость шага цены.
lot_coefficient | i4 | Коэффициент, указывающий на объём базового актива в котировке контракта и страйках опционной серии.
r | f | Безрисковая процентная ставка.
interest_rate_risk_up | f | Ставка рассогласования процентного риска в сценарии движения ставки r вверх.
interest_rate_risk_down | f | Ставка рассогласования процентного риска в сценарии движения ставки r вниз.
fixed_spot_discount | f | Сумма дисконтированных значений объявленных денежных потоков.
projected_spot_discount | f | Сумма дисконтированных значений прогнозных денежных потоков.
r2 | f | Безрисковая ставка FX2 валютной пары FX2/FX1 (для премиальных опционов на валюту); ставка дивидендной доходности q (для премиальных опционов на индекс).
interest_rate2_risk_up | f | Ставка рассогласования процентного риска в сценарии движения ставки r2 вверх.
interest_rate2_risk_down | f | Ставка рассогласования процентного риска в сценарии движения ставки r2 вниз.
lot_volume | i4 | Количество единиц базового актива в инструменте

##### Таблица options_params: Параметры опционов

Таблица 119. Поля таблицы options_params

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
isin | c25 | Символьный код инструмента
isin_id | i4 | Уникальный числовой идентификатор инструмента
isin_base | c25 | Код фьючерса
strike | d16.5 | Страйк опциона
opt_type | i1 | Тип опциона: 1 - PUT, 2 - CALL
settl_price | d16.5 | Расчетная цена

##### Таблица investor: Справочник клиентов

Таблица 120. Поля таблицы investor

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
client_code | c7 | Код клиента
calendar_spread_margin_type | i1 | Тип маржирования календарных спредов для клиента. 3 - Полунетто, 4 - Нетто. Используемое сейчас значение
num_clr_2delivery | i4 | Количество клирингов до экспирации для начала расчета сценариев экспирации.
exp_weight | d3.2 | Вес сценариев экспирации в итоговом ГО.
coeff_im | d16.5 | Коэффициент итогового ГО.
no_fut_discount | i1 | Флаг запрещения использования скидки по фьючерсам. 1 - Запрет, 0 - Нет.
short_option_minimum_charge_ratio | d5.3 | Индивидуальный коэффициент веса сценария SOMC.
ics_margin_type | i1 | Тип маржирования межконтрактных спредов. 3 - Полунетто, 4 - Нетто МКС.
is_blank | i4 | Признак раздела-болванки для онлайн-регистрации
client_risk_level | i4 | Категория уровня риска клиента.
xstatus | i8 | Признаки раздела, расширенное.

Примечания:

- Поле client_risk_level может принимать следующие значения:

  - 0 - Не указано (значение по умолчанию)

  - 1 - Клиент с Начальным Уровнем Риска (КНУР)

  - 2 - Клиент со Стандартным Уровнем Риска (КСУР)

  - 3 - Клиент с Повышенным Уровнем Риска (КПУР)

  - 4 - Клиент с Особым Уровнем Риска (КОУР)

- Поле xstatus является битовой маской:

  - 0x1 - ДУ

  - 0x2 - Обособленный

  - 0x4 - Брокерская фирма типа ДУ

  - 0x80 - Физическое лицо

  - 0x100 - Юридическое лицо

  - 0x200 - Нерезидент

  - 0x2000 - ИИС (индивидуальный инвестиционный счет)

  - 0x4000 - Признак разрешения кросс-сделок для адресных заявок. 1 - кросс-сделки разрешены; 0 - кросс-сделки запрещены

  - 0x8000 - Лицо без гражданства

  - 0x20000 - Собственный

  - 0x40000 - Клиентский

  - 0x80000 - Спец.БФ

  - 0x10000000 - Дополнительный собственный раздел

  - 0x10000000000 - Квалифицированный инвестор

  - 0x40000000000 - Снять пассивную заявку при кросс-сделке

##### Таблица dealer: Справочник фирм

Таблица 121. Поля таблицы dealer

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
client_code | c7 | Код клиента
margin_type | i1 | Режим маржирования по разделам БФ. 3 - Полунетто, 4 - Нетто. Используемое сейчас значение
calendar_spread_margin_type | i1 | Тип маржирования календарных спредов для портфеля БФ. 3 - Полунетто, 4 - Нетто. Используемое сейчас значение
check_limit_on_withdrawal | i1 | Проверка достаточности обеспечения по БФ при вводе/выводе средств. 1 - Да, 0 - Нет. Используемое сейчас значение
limit_tied_money | i1 | Соответствие торгового лимита БФ сумме средств на разделах БФ. 1 - Поддерживать соответствие, 0 - Независимый (виртуальный) лимит. Виртуальный лимит по результатам вечернего клиринга меняется только на величину дохода/убытка. Используемое сейчас значение
num_clr_2delivery | i4 | Количество клирингов до экспирации для начала расчета сценариев экспирации по БФ. Используемое сейчас значение
exp_weight | d3.2 | Вес сценариев экспирации для БФ в итоговом ГО. Используемое сейчас значение
coeff_im | d16.5 | Коэффициент итогового ГО для БФ. Используемое сейчас значение.
no_fut_discount | i1 | Флаг запрещения использования скидки по фьючерсам для портфеля БФ. 1 - Запрет, 0 - Нет. Используемое сейчас значение
num_clr_2delivery_client_default | i4 | Количество клирингов до экспирации для начала расчета сценариев экспирации по клиентам - значение по умолчанию. Используемое сейчас значение
exp_weight_client_default | d3.2 | Вес сценариев экспирации в итоговом ГО для клиентских разделов - значение по умолчанию. Используемое сейчас значение
no_fut_discount_client_default | i1 | Флаг запрещения использования скидки по фьючерсам для клиентов - значение по умолчанию. 1 - Запрет, 0 - Нет. Используемое сейчас значение
short_option_minimum_charge_ratio | d5.3 | Индивидуальный коэффициент веса сценария SOMC.
ics_margin_type | i1 | Тип маржирования межконтрактных спредов. 3 - Полунетто, 4 - Нетто МКС.
order_allowed_in_morning_session | i1 | Доступ к торгам в утреннюю торговую сессию.
order_allowed_in_weekend_session | i1 | Доступ к торгам в дополнительную торговую сессию выходного дня.

Примечания:

- Поле order_allowed_in_morning_session может принимать следующие значения:

  0

    Доступ к торгам в утреннюю торговую сессию ограничен. Запрещены торговые операции, кроме операций снятия заявок.

  1

    Доступ к торгам в утреннюю торговую сессию разрешен.

- Поле order_allowed_in_weekend_session может принимать следующие значения:

  0

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

  1

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

##### Таблица multileg_dictionary: Справочник связок

Таблица 122. Поля таблицы multileg_dictionary

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
isin_id | i4 | Уникальный числовой код связки
isin_id_leg | i4 | Уникальный код инструмента, входящего в связку
leg_order_no | i1 | Порядок ноги в связке. Значение по умолчанию 0.

##### Таблица common_params: Параметры расчёта ГО

Таблица 123. Поля таблицы` common_params

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
common_rev | i4 | Номер ревизии - Суррогатный ключ
edge_coeff | f | Коэффициент учета краевых рисков

##### Таблица brokers_base_contracts_params: Индивидуальный коэффициент ГО в разрезе базового контракта и БФ

Таблица 124. Поля таблицы brokers_base_contracts_params

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
broker_code | c4 | Код БФ
base_contract_code | c25 | Код базового контракта
coeff_im | d16.5 | Коэффициент ГО по базовому контракту для всех клиентов данной БФ. Используемое сейчас значение.

##### Таблица sys_events: Таблица событий

Таблица 125. Поля таблицы 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 = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

### Поток FORTS_TNPENALTY_REPL - Информация о сборах за транзакции (Type=I)

#### Схема данных

Таблицы:

- fee_tn - Детализированная информация по количеству некорректных транзакций
- fee_all - Информация о количестве начисленных баллов
- heartbeat - Служебная таблица cерверных часов

##### Таблица fee_tn: Детализированная информация по количеству некорректных транзакций

Таблица 126. Поля таблицы fee_tn

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
time | i8 | Время в формате YYYYMMddhhmmssSSS
p2login | c64 | Логин
sess_id | i4 | Номер сессии
tn_type | i4 | Тип некорректной транзакции (AddOrder - 1, DelOrder - 2, MoveOrder - 3, DelUserOrders - 4)
err_code | i4 | Код ошибки
count | i4 | Количество некорректных транзакций
num_orders | i4 | Количество удаленных заявок

##### Таблица fee_all: Информация о количестве начисленных баллов

Таблица 127. Поля таблицы fee_all

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
time | i8 | Время в формате YYYYMMddhhmmssSSS
p2login | c64 | Логин
sess_id | i4 | Номер сессии
points | i4 | Количество начисленных баллов за секунду из time
fee | d16.2 | Суммарный сбор за некорректные транзакции к моменту time от начала сессии

##### Таблица heartbeat: Служебная таблица cерверных часов

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

Таблица 128. Поля таблицы heartbeat

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
server_time | t | Дата и время сервера

### Поток MOEX_RATES_REPL - Курсы валют он-лайн (Type=I)

#### Схема данных

Таблицы:

- curr_online - Значения курсов валют

##### Таблица curr_online: Значения курсов валют

Таблица 129. Поля таблицы curr_online

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
rate_id | i4 | Идентификатор курса
value | d16.5 | Текущий курс
moment | t | Время расчёта курса

Примечания:

- Поле rate_id может принимать следующие значения:

  1

    USD/RUB

  50

    USD/JPY

  51

    USD/CHF

  52

    JPY/RUB

  53

    CHF/RUB

  56

    GBP/RUB

  58

    EUR/RUB

  62

    USD/TRY

  63

    CAD/RUB

  64

    TRY/RUB

  66

    CNY/RUB

  67

    EUR/USD

  70

    GBP/USD

  72

    HKD/RUB

### Поток FORTS_FORECASTIM_REPL - Прогноз рисков после возможной раздвижки (Type=I)

#### Схема данных

Таблицы:

- part_sa_forecast - Прогноз объема свободных средств для РК.
- sys_events - Таблица событий.

##### Таблица part_sa_forecast: Прогноз объема свободных средств для РК

Таблица 130. Поля таблицы part_sa_forecast

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
settlement_account | c12 | Расчетный код
money_free | d26.2 | Свободно денег
MarketDataRev | i8 | Номер последнего изменения данных (значение поля replRev) в потоках заявок и сделок, попавшего в расчет прогноза обеспечения. Заявки и сделки со значениями replRev меньше, чем MarketDataRev, учтены в прогнозе. Заявки и сделки со значениями replRev больше, чем MarketDataRev, НЕ учтены в прогнозе. Подробное описание поля replRev приведено в разделе 3.3.1. Служебные поля репликации.

##### Таблица sys_events: Таблица событий

Таблица 131. Поля таблицы sys_events

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
event_id | i8 | Уникальный идентификатор события
sess_id | i4 | Номер сессии
event_type | i4 | Тип события
message | c64 | Описание события
server_time | t | Время события

Примечания:

- Возможные типы событий

    event_type = 1

    message = "session_data_ready"

    Закончена загрузка данных из клиринговой системы в торговую перед началом новой торговой сессии

    event_type = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

### Поток FORTS_USER_REPL - Пользователи (Type=R)

#### Схема данных

Таблицы:

- user - Пользователи системы
- sma_master - Привязка SMA-логина к MASTER-логину
- sma_pre_trade_check - Настройки предварительных проверок SMA-логина
- sys_events - Таблица событий

##### Таблица user: Пользователи системы

Таблица 132. Поля таблицы user

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
login | c20 | Логин участника торгов
start_date | t | Время начала действия логина
end_date | t | Время окончания действия логина
client_code | c7 | Семизначный код клиента
operation_mask | i4 | Битовая маска. Задает разрешения на выполнение операций: 2 - Лимитирование открытых позиций по БФ. 8 - Лимитирование БФ (перевод денег). Может быть установлено только Оператором-РФ или Администратором Торгов. 16 - Возврат денег. 32 - Лимитирование клиентов. 128 - Установка ограничений по клиентам. 1024 - Установка ограничений по заявкам для SMA логинов.
lang | i2 | Код языка для сообщений
sma_flags | i4 | Битовая маска (см. Примечания): 1-й бит - Cancel on Disconnect 2-й бит - Cancel on DropCopy Disconnect 3-й бит - SMA-логин.
sma_status | i4 | Битовая маска (см. Примечания): 1-й бит - разрешить/запретить торговые операции для логина 2-й бит - снимать/не снимать заявки при запрете торговых операций с логина.
aspref | i4 | Идентификатор пользователя. Для заявок, поданных от SMA-логина - идентификатор MASTER-логина.
user_level | i1 | Уровень логина пользователя: 1 - РФ 2 - БФ 3 - Клиент
password_expiration_date | t | Дата истечения срока действия пароля.

Примечания:

- Поле 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 - снимать заявки логина при запрете торговых операции с логина.

##### Таблица sma_master: Привязка SMA-логина к MASTER-логину

Таблица содержит информацию о привязке SMA-логина к MASTER-логину.

Таблица 133. Поля таблицы 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-логина.

Таблица 134. Поля таблицы 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 | Проверочное значение.

##### Таблица sys_events: Таблица событий

Таблица 135. Поля таблицы sys_events

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
sess_id | i4 | Номер сессии
event_id | i8 | Уникальный идентификатор события
event_type | i4 | Тип события
message | c64 | Описание события

Примечания:

- Возможные типы событий

    event_type = 1

    message = "session_data_ready"

    Закончена загрузка данных из клиринговой системы в торговую перед началом новой торговой сессии

    event_type = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

### Поток FORTS_REJECTEDORDERS_REPL - Отвергнутые в клиринг заявки (Type=R)

#### Схема данных

Таблицы:

- rejected_orders - Отвергнутые в клиринг заявки

##### Таблица rejected_orders: Отвергнутые в клиринг заявки

Таблица 136. Поля таблицы rejected_orders

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
order_id | i8 | Номер заявки
sess_id | i4 | Идентификатор торговой сессии
moment | t | Время изменения состояния заявки
isin_id | i4 | Уникальный числовой идентификатор инструмента
client_code | c7 | Код клиента
dir | i1 | Направление
xamount | i8 | Объём, количество единиц инструмента
price | d16.5 | Цена
date_exp | t | Дата истечения заявки
id_ord1 | i8 | Номер первой заявки
moment_reject | t | Время, когда заявка была отвергнута
ret_code | i4 | Код возврата процедуры перепостановки
ret_message | c255 | Текст сообщения о причине отвержения заявки при перепостановке
comment | c20 | Комментарий трейдера
login_from | c20 | Логин пользователя, поставившего заявку
ext_id | i4 | Внешний номер
opt_type | i4 | Тип инструмента

### Поток FORTS_RMT_REPL - ГО без заявок и текущий оперативный риск (Type=I)

#### Схема данных

Таблицы:

- rmt_im - ГО без заявок и текущий оперативный риск в разрезе клиентов
- sys_events - Таблица событий

##### Таблица rmt_im: ГО без заявок и текущий оперативный риск в разрезе клиентов

Таблица содержит значения ГО МБ без заявок и Текущего оперативного риска, а также значения ВМ (индикативной вариационного маржи) и NOV (Net Option Value), которые рассчитываются специализированным сервисом, и используются Участниками при расчете на своей стороне нормативов НПР1 и НПР2.

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

- Риск-параметрам инструментов;

- Позициям;

- Текущим рыночным данным (цена, валютный курс).

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

Таблица 137. Поля таблицы rmt_im

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
rev_heartbeat | i8 | Внутренний идентификатор расчета
sess_id | i4 | Идентификатор сессии
im_time | t | Время расчета
client_code | c7 | Код клиента
client_risk_level | i4 | Категория уровня риска клиента
rmt_im | d16.2 | ГО МБ без заявок с учетом текущего реализованного риска (учитывает текущую цену)
rmt_posrisk | d16.2 | Текущий оперативный риск (дополнительная величина, по запросу Участников, не используется в расчете НПР, несет прогнозную функцию и отвечает на вопрос: "какое будет ГО, если клиринг прямо сейчас")
rmt_vm | d26.2 | Индикативная вариационная маржа с учетом текущего индикативного курса валют, руб (рассчитывается аналогично текущей индикативной ВМ, учитывает в т.ч. вар.маржу по закрытым позициям)
rmt_nov | d26.2 | Net Option Value, руб (текущий NOV по портфелю 7кк с учетом текущего курса и текущих цен опционов)

Примечания:

- Поле client_risk_level может принимать следующие значения:

  - 0 - Не указано (значение по умолчанию)

  - 1 - Клиент с Начальным Уровнем Риска (КНУР)

  - 2 - Клиент со Стандартным Уровнем Риска (КСУР)

  - 3 - Клиент с Повышенным Уровнем Риска (КПУР)

  - 4 - Клиент с Особым Уровнем Риска (КОУР)

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

##### Таблица sys_events: Таблица событий

Таблица 138. Поля таблицы sys_events

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
event_id | i8 | Уникальный идентификатор события
sess_id | i4 | Номер сессии
event_type | i4 | Тип события
message | c64 | Описание события
server_time | t | Время события

Примечания:

- Возможные типы событий

    event_type = 1

    message = "session_data_ready"

    Закончена загрузка данных из клиринговой системы в торговую перед началом новой торговой сессии

    event_type = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

### Поток FORTS_SESSIONSTATE_REPL - Статус активной сессии (Type=I)

#### Схема данных

Таблицы:

- session_state - Статус активной сессии
- sys_events - Таблица событий

##### Таблица session_state: Статус активной сессии

Таблица 139. Поля таблицы session_state

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
sess_id | i4 | Идентификатор сессии
public_state | i4 | Состояние сессии

Примечания:

- Поле public_state может принимать следующие значения:

  0

    Торги еще не начались

  1

    Торги идут

  2

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

  4

    Торги завершены по времени

##### Таблица sys_events: Таблица событий

Таблица 140. Поля таблицы sys_events

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
event_id | i8 | Уникальный идентификатор события
sess_id | i4 | Номер сессии
event_type | i4 | Тип события
message | c64 | Описание события
server_time | t | Время события

Примечания:

- Возможные типы событий

    event_type = 1

    message = "session_data_ready"

    Закончена загрузка данных из клиринговой системы в торговую перед началом новой торговой сессии

    event_type = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

### Поток FORTS_INSTRUMENTSTATE_REPL - Статусы инструментов по активной сессии (Type=I)

#### Схема данных

Таблицы:

- instrument_state - Статусы инструментов по активной сессии
- sys_events - Таблица событий

##### Таблица instrument_state: Статусы инструментов по активной сессии

Таблица 141. Поля таблицы instrument_state

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
isin_id | i4 | Идентификатор инструмента
public_state | i4 | Состояние торгов по инструменту

Примечания:

- Поле public_state может принимать следующие значения:

  0

    Сессия по этому инструменту назначена. Нельзя ставить заявки, но можно удалять по этому инструменту.

  1

    Сессия по этому инструменту идет. Можно ставить и удалять заявки по этому инструменту.

  2

    Приостановка торгов по всем инструментам. Нельзя ставить заявки, но можно удалять.

  4

    Сессия по этому инструменту завершена по времени. Нельзя ставить и удалять заявки по этому инструменту.

  5

    Приостановка торгов по этому инструменту. Нельзя ставить заявки, но можно удалять по этому инструменту.

  6

    АО сбор заявок.

  7

    АО сведение заявок.

  8

    Сессия по этому инструменту идет. Можно ставить заявки в закрытие по этому инструменту.

  9

    Аукцион открытия по этому инструменту идет. Можно ставить заявки в закрытие по этому инструменту.

##### Таблица sys_events: Таблица событий

Таблица 142. Поля таблицы sys_events

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
event_id | i8 | Уникальный идентификатор события
sess_id | i4 | Номер сессии
event_type | i4 | Тип события
message | c64 | Описание события
server_time | t | Время события

Примечания:

- Возможные типы событий

    event_type = 1

    message = "session_data_ready"

    Закончена загрузка данных из клиринговой системы в торговую перед началом новой торговой сессии

    event_type = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

### Поток FORTS_SECURITYGROUPSTATE_REPL - Статус по группе инструментов активной сессии (Type=I)

#### Схема данных

Таблицы:

- security_group_state - Статус по группе инструментов активной сессии
- sys_events - Таблица событий

##### Таблица security_group_state: Статус по группе инструментов активной сессии

Таблица выдается Сервисом раздачи статусов инструментов, который используется для ускоренной раздачи информации по торговым статусам инструментов и сессии. Используя таблицу security_group_state и справочники инструментов, клиенты могут самостоятельно на своей стороне вычислять текущие статусы инструментов (подробнее см. "«Сервис раздачи статусов инструментов»").

Таблица 143. Поля таблицы security_group_state

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
security_group_id | i8 | Идентификатор группы инструментов
type | i4 | Тип приостановки (группового статуса инструментов)
trade_mode_mask | i4 | Режим торгов (битовая маска с одним взведенным битом)
group_mask | i8 | Группа инструментов (битовая маска с одним взведенным битом)
section_id | i4 | Идентификатор секции
base_contract_id | i4 | Идентификатор ФБК (фьючерсного базового контракта)
state | i4 | Режим для группы инструментов
moment | t | Время смены состояния

Примечания:

- Поле type может принимать следующие значения:

  1

    На сессию

  2

    Секция

  3

    Секция + Режим торгов

  4

    ФБК

  5

    Инструменты из режима торгов

  6

    Инструменты из режима торгов + ФБК

  7

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

  8

    Группа инструментов + ФБК

- Поле trade_mode_mask может принимать следующие значения:

  0 (сброшены все биты)

    Все режимы

  0x1

    Фьючерсы, анонимный

  0x4

    Опционы, анонимный

  0x2000

    Календарные спреды, анонимный

  0x10000

    Коллатеральный, адресный

  0x20000

    Однодневный фьючерс с автопролонгацией, анонимный

- Поле group_mask может принимать следующие значения:

  0 (сброшены все биты)

    Все группы

  0x1

    Свободен

  0x2

    Переполнение HaltGroupMask

  0x4

    Запрет торговать в дополнительную сессию

  0x10

    Исполнение в ПК (поставка)

  0x20

    Хальты, связанные с дискретными аукционами

- Поле section_id может принимать следующие значения:

  0

    Все секции

  1

    Фондовая секция

  2

    Товарная секция

  3

    Денежная секция

- Поле state может принимать следующие значения:

  4

    Запрещено все

  2

    Запрещено все кроме снятия заявки

  16

    Запрещено увеличение позиции

  8

    Сбор заявок в аукцион открытия

  0

    Разрешено все

  Режимы перечислены в порядке убывания приоритета (строгости ограничения)

##### Таблица sys_events: Таблица событий

Таблица 144. Поля таблицы sys_events

Поле | Тип | Описание
--- | --- | ---
replID | i8 | Служебное поле подсистемы репликации
replRev | i8 | Служебное поле подсистемы репликации
replAct | i8 | Служебное поле подсистемы репликации
event_id | i8 | Уникальный идентификатор события
sess_id | i4 | Номер сессии
event_type | i4 | Тип события
message | c64 | Описание события
server_time | t | Время события

Примечания:

- Возможные типы событий

    event_type = 1

    message = "session_data_ready"

    Закончена загрузка данных из клиринговой системы в торговую перед началом новой торговой сессии

    event_type = 2

    message = "intraday_clearing_finished"

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

    event_type = 4

    message = "intraday_clearing_started"

    Начало промклиринга

    event_type = 5

    message = "clearing_started"

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

    event_type = 6

    message = "extension_of_limits_finished"

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

    event_type = 8

    message = "broker_recalc_finished"

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

    event_type = 36

    message = "start_of_calendar_date"

    Начало календарного дня

## Описание команд

### Метод AddOrder - Добавление заявок

Тип сообщения: 474

Тип ответного сообщения: 179

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

Таблица 145. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
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 | "" | Текст-связка для однозначного сопоставления двух встречных адресных заявок
ncc_request | i1 | 0 | Признак запроса к НКЦ на заключение сделок с участником торгов
compliance_id | c1 | " " | Способ ввода заявки

Таблица 146. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения
order_id | i8 |  | Код заявки в системе

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

Примечания:

- Поле `type` может принимать следующие значения:

  1

    котировочная заявка (остается в очереди после частичного сведения)

  2

    встречная заявка (снимается после проведения аукциона)

  3

    заявка Fill-or-Kill (исполняется целиком или снимается)

  4

    заявка Book-or-Cancel (целиком встает в стакан или снимается)

- Поле `dir` может принимать следующие значения:

  1

    заявка на покупку

  2

    заявка на продажу

- В поле `price` задаётся цена заявки в строковом виде 'nnnnnnnnnn.mmmmm'.

- Поле `comment` не должно содержать управляющих символов (0x00-0x1F и 0x7F) и поле должно конвертироваться из cp1251 в utf-8.

- Поле `is_check_limit` может принимать следующие значения:

  0

    Не выполнять проверку лимитов цен опционов

  1

    Выполнять проверку лимитов цен опционов

- В поле `date_exp` задаётся дата истечения заявки в виде 'YYYYMMDD'. Если в качестве данного параметра передаётся пустая строка, то заявка считается обычной. При заданной дате заявка будет автоматически перевыставляться в следующую сессию, но получая при этом новый номер и новое время. Таким образом получаются "многодневные" заявки. Время их жизни – до истечения даты. Заявки с истекшей датой будут автоматически сниматься после завершения вечерней сессии (если она есть в этот день), уже ночью. При перевыставлении делаются проверки на наличие инструмента, клиента, достаточности средств. Допустимый диапазон даты: >= сегодняшнего дня, <= одного года вперед. Нельзя указывать дату истечения заявки в адресных заявках.

- Параметр заявки `dont_check_money` принимает следующие значения:

  0

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

  1

    Не проверять обеспечение на уровне клиентского раздела

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

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

- Выставление признака `ncc_request` означает, что заявка является запросом к НКЦ на заключение сделок с участником торгов. Используется для урегулирования неисполненных обязательств участника торгов перед участником клиринга, в том числе, в случае недостаточности обеспечения участника торгов. Запрос может подаваться только участником клиринга, не являющимся одновременно участником торгов, и только с логинов уровня РФ и БФ.

- Поле `compliance_id` может принимать следующие значения:

  " " (пробел или пустая строка)

    Не заполнено/Не задано

  M

    Ручной ввод

  S

    В результате срабатывания условного поручения (стоп-лосс)

  R

    В результате работы алгоритма-робота

  A

    В результате алгоритма автоследования

  D

    Закрытие позиции в результате не исполненного MarginCall

  Обращаем внимание, что параметр `compliance_id` не влияет на заключение сделки, не проходит никакой проверки на допустимые значения и без изменений отображается в шлюзе (FORTS_REFDATA_REPL:orders_log/multileg_orders_log, FORTS_USERORDERBOOK_REPL:orders) и передается в отчеты Регулятора. Исправить его постфактум невозможно.

### Метод DelOrder - Удаление заявок

Тип сообщения: 461

Тип ответного сообщения: 177

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

Таблица 147. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
broker_code | c4 | "" | Код брокерской фирмы
order_id | i8 |  | Код заявки для удаления
ncc_request | i1 | 0 | Признак запроса к НКЦ на заключение сделок с Участником торгов.
client_code | c3 |  | Код клиента
isin_id | i4 |  | Уникальный числовой идентификатор инструмента

Таблица 148. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения
amount | i4 |  | Количество единиц инструмента в удалённой заявке

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

Примечания:

- Код возврата = 14 (Не найдена заявка для удаления) означает, что такой заявки в очереди (уже) нет. Возможно, номер неправильный или ее сегодня вообще не было. Нет смысла повторно (а тем более многократно) посылать удаление с тем же номером. Особенно это актуально для автоматических систем.

- Выставление признака `ncc_request` означает, что удаляется запрос в НКЦ на заключение сделок с участником торгов. Удалять запросы может только участник клиринга, не являющийся одновременно участником торгов, и только с логинов уровня РФ и БФ.

### Метод DelUserOrders - Массовое удаление заявок

Тип сообщения: 466

Тип ответного сообщения: 186

Команда на массовое удаление всех заявок, удовлетворяющих критериям. Можно удалять заявки по фьючерсам, опционам и составным инструментам.

Таблица 149. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
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 |  | Маска группы инструментов

Таблица 150. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения
num_orders | i4 |  | Количество удаленных заявок

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

Примечания:

- Параметр `buy_sell` может принимать следующие значения:

  1

    Заявки на покупку

  2

    Заявки на продажу

  3

    Все заявки

- Параметр `non_system` может принимать следующие значения:

  0

    Обычные заявки

  1

    Внесистемные

  2

    Все

- Параметр `instrument_mask` является битовой маской:

  0x1

    Фьючерсы

  0x2

    Опционы

  0x4

    Инструменты-связки

- Если параметр `code` не задан или его значение равно ‘%%%’, то производится удаление заявок для всех клиентских счетов.

- Если параметр `base_contract_code` не задан или его значение равно ‘%’, то производится удаление заявок для всех контрактов.

- В случае задания для параметра `ext_id` значения, отличного от 0, производится удаления всех заявок с соответствующим `ext_id`. Значения параметров `buy_sell`, `non_system`, `base_contract_code` и `isin_id` при этом игнорируются, но их значения должны находится в допустимом диапазоне.

- С помощью данной команды удаляются только заявки, но не удаляются запросы в НКЦ на заключение сделок с участником торгов.

- Команда недоступна для участников клиринга, не являющихся одновременно и участниками торгов. Для массового удаления заявок участник клиринга может воспользоваться командой DelOrdersByBFLimit.

- Если транзакция завершена успешно (код возврата 0), но не удалено ни одной заявки (`num_orders=0`), начисляется штраф за ошибочные транзакции.

### Метод MoveOrder - Изменение заявок

Тип сообщения: 476

Тип ответного сообщения: 176

Используется для изменения заявок по фьючерсам и опционам.

Таблица 151. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
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 | 0 | Признак проверки ценовых коридоров по опционным заявкам
ncc_request | i1 | 0 | Признак запроса к НКЦ на заключение сделок с участником торгов.
client_code | c3 |  | Код клиента
isin_id | i4 |  | Уникальный числовой идентификатор инструмента
compliance_id | c1 | " " | Способ ввода заявки

Таблица 152. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
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` заполняются номерами новых заявок. В случае, если заявка не была выставлена, соответствующее поле обнуляется.

- Выставление признака `ncc_request` означает, что изменяется "Запрос к НКЦ на заключение сделок с участником торгов". Изменять запросы может только участник клиринга, не являющийся одновременно участником торгов, и только с логинов уровня РФ и БФ.

- Если сдвиг заявки типа Book-or-Cancel приводит к ее исполнению, то сдвиг откатывается, а сама сдвигаемая заявка остается в системе.

- Если при сдвиге пары заявок типа Book-or-Cancel одна из них наткнулась на исполнение, она откатывается, а другая заявка сдвигается.

- Поле `compliance_id` может принимать следующие значения:

  " " (пробел или пустая строка)

    Не заполнено/Не задано

  M

    Ручной ввод

  S

    В результате срабатывания условного поручения (стоп-лосс)

  R

    В результате работы алгоритма-робота

  A

    В результате алгоритма автоследования

  D

    Закрытие позиции в результате не исполненного MarginCall

  Обращаем внимание, что параметр `compliance_id` не влияет на заключение сделки, не проходит никакой проверки на допустимые значения и без изменений отображается в шлюзе (FORTS_REFDATA_REPL:orders_log/multileg_orders_log, FORTS_USERORDERBOOK_REPL:orders) и передается в отчеты Регулятора. Исправить его постфактум невозможно.

### Метод IcebergAddOrder - Добавление айсберг-заявок

Тип сообщения: 475

Тип ответного сообщения: 180

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

Таблица 153. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
broker_code | c4 | "" | Код брокерской фирмы
isin_id | i4 |  | Уникальный числовой идентификатор инструмента
client_code | c3 |  | Код клиента
dir | i4 |  | Направления заявки
type | 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 | Признак расчета рисков по клиентскому разделу по данной заявке
ncc_request | i1 | 0 | Признак запроса к НКЦ на заключение сделок с участником торгов
compliance_id | c1 | " " | Способ ввода заявки

Таблица 154. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения
iceberg_order_id | i8 |  | Идентификатор айсберг-заявки

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

Примечания:

- Поле `dir` может принимать следующие значения:

  1

    заявка на покупку

  2

    заявка на продажу

- Поле `type` может принимать следующие значения:

  1

    котировочная заявка (остается в очереди после частичного сведения)

  4

    заявка Book-or-Cancel (целиком встает в стакан или снимается)

- В поле `price` задаётся цена заявки в строковом виде 'nnnnnnnnnn.mmmmm'.

- Поле `comment` не должно содержать управляющих символов (0x00-0x1F и 0x7F) и поле должно конвертироваться из cp1251 в utf-8.

- Поле `is_check_limit` может принимать следующие значения:

  0

    Не выполнять проверку лимитов цен опционов

  1

    Выполнять проверку лимитов цен опционов

- В поле `date_exp` задаётся дата истечения заявки в виде 'YYYYMMDD'. Если в качестве данного параметра передаётся пустая строка, то заявка считается обычной. При заданной дате заявка будет автоматически перевыставляться в следующую сессию, но - получая при этом новый номер и новое время. Таким образом получаются «многодневные» заявки. Время их жизни – до истечения даты. Заявки с истекшей датой будут автоматически сниматься после завершения вечерней сессии (если она есть в этот день), уже ночью. При перевыставлении делаются проверки на наличие инструмента, клиента, достаточности средств. Допустимый диапазон даты: >= сегодняшнего дня, <= одного года вперед.

- Параметр заявки `dont_check_money` принимает следующие значения:

  - 0 - проверять обеспечение на уровне клиентского раздела

  - 1 - не проверять обеспечение на уровне клиентского раздела

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

- Выставление признака `ncc_request` означает, что заявка является запросом к НКЦ на заключение сделок с участником торгов. Используется для урегулирования неисполненных обязательств участника торгов перед участником клиринга, в том числе, в случае недостаточности обеспечения участника торгов. Запрос может подаваться только участником клиринга, не являющимся одновременно участником торгов, и только с логинов уровня РФ и БФ.

- Поле `compliance_id` может принимать следующие значения:

  " " (пробел или пустая строка)

    Не заполнено/Не задано

  M

    Ручной ввод

  S

    В результате срабатывания условного поручения (стоп-лосс)

  R

    В результате работы алгоритма-робота

  A

    В результате алгоритма автоследования

  D

    Закрытие позиции в результате не исполненного MarginCall

  Обращаем внимание, что параметр `compliance_id` не влияет на заключение сделки, не проходит никакой проверки на допустимые значения и без изменений отображается в шлюзе (FORTS_REFDATA_REPL:orders_log/multileg_orders_log, FORTS_USERORDERBOOK_REPL:orders) и передается в отчеты Регулятора. Исправить его постфактум невозможно.

### Метод IcebergDelOrder - Удаление айсберг-заявок

Тип сообщения: 464

Тип ответного сообщения: 182

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

Таблица 155. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
broker_code | c4 | "" | Код брокерской фирмы
order_id | i8 |  | Код заявки для удаления
isin_id | i4 |  | Уникальный числовой идентификатор инструмента
ncc_request | i1 | 0 | Признак запроса к НКЦ на заключение сделок с Участником торгов.

Таблица 156. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения
amount | i4 |  | Количество единиц инструмента в удалённой заявке

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

Примечания:

- Код возврата = 14 (Не найдена заявка для удаления) означает, что такой заявки в очереди (уже) нет. Возможно, номер неправильный и ее сегодня вообще не было. Нет смысла повторно (а тем более многократно) посылать удаление с тем же номером. Особенно это актуально для автоматических систем.

- Выставление признака `ncc_request` означает, что удаляется запрос в НКЦ на заключение сделок с участником торгов. Удалять запросы может только участник клиринга, не являющийся одновременно участником торгов, и только с логинов уровня РФ и БФ.

### Метод IcebergMoveOrder - Изменение айсберг-заявок

Тип сообщения: 477

Тип ответного сообщения: 181

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

Таблица 157. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
broker_code | c4 | "" | Код брокерской фирмы
order_id | i8 |  | Идентификатор изменяемой заявки
isin_id | i4 |  | Уникальный числовой идентификатор инструмента
price | c17 |  | Новая цена заявки
ext_id | i4 |  | Новый внешний номер заявки
ncc_request | i1 | 0 | Признак запроса к НКЦ на заключение сделок с участником торгов.
is_check_limit | i4 | 0 | Признак проверки ценовых коридоров по опционным заявкам
compliance_id | c1 | " " | Способ ввода заявки

Таблица 158. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения
order_id | i8 |  | Новый идентификатор заявки

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

Примечания:

- Поле `is_check_limit` может принимать следующие значения:

  0

    Не выполнять проверку лимитов цен опционов

  1

    Выполнять проверку лимитов цен опционов

- Выставление признака `ncc_request` означает, что изменяется "Запрос к НКЦ на заключение сделок с участником торгов". Изменять запросы может только участник клиринга, не являющийся одновременно участником торгов, и только с логинов уровня РФ и БФ.

- Поле `compliance_id` может принимать следующие значения:

  " " (пробел или пустая строка)

    Не заполнено/Не задано

  M

    Ручной ввод

  S

    В результате срабатывания условного поручения (стоп-лосс)

  R

    В результате работы алгоритма-робота

  A

    В результате алгоритма автоследования

  D

    Закрытие позиции в результате не исполненного MarginCall

  Обращаем внимание, что параметр `compliance_id` не влияет на заключение сделки, не проходит никакой проверки на допустимые значения и без изменений отображается в шлюзе (FORTS_REFDATA_REPL:orders_log/multileg_orders_log, FORTS_USERORDERBOOK_REPL:orders) и передается в отчеты Регулятора. Исправить его постфактум невозможно.

### Метод ChangeClientMoney - Изменение клиентских лимитов

Тип сообщения: 458

Тип ответного сообщения: 187

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

Таблица 159. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
broker_code | c4 | "" | Код брокерской фирмы
mode | u1 |  | Режим работы команды
code | c3 |  | Код клиентского счета
coeff_im | c17 | "" | Коэффициент клиентского ГО
is_auto_update_limit | i4 | -1 | Признак автоматической коррекции лимита на величину дохода при закачке после клиринга
check_limit | i4 | 1 | Флаг проверки на достаточность средств
limit_money | c17 | "" | Лимит денежных средств

Таблица 160. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
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, дает возможность при посылке команды не изменять значение параметра, которое пользователь ранее уже отправил в торговую систему.

### Метод ChangeBFMoney - Изменение лимитов БФ

Тип сообщения: 426

Тип ответного сообщения: 107

Процедура позволяет менять деньги по своим БФ. При этом, при увеличении счета БФ, недостающие деньги снимаются со счета самой РФ, а при уменьшении, деньги возвращаются на счет РФ.

Таблица 161. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
broker_code | c4 | "" | Код брокерской фирмы
mode | i4 |  | Режим работы команды
code | c2 |  | Код БФ
limit_money | c17 |  | Лимит денежных средств

Таблица 162. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

Примечания:

- Режим работы команды (поле `mode`):

  12

    Установить лимит равный `limit_money`

  13

    Изменить лимит `limit_money`

- Процедура доступна только тому логину шлюза от РФ, которому Администратор торгов проставил необходимые права.

### Метод OptChangeExpiration - Поручения на экспирацию опционов

Тип сообщения: 471

Тип ответного сообщения: 190

Подача поручений на досрочную экспирацию опционов, на отмену автоматической экспирации опционов.

Таблица 163. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
broker_code | c4 | "" | Код брокерской фирмы
mode | i4 |  | Режим работы команды
order_id | i8 |  | Номер поручения на экспирацию
code | c3 |  | Код клиента
isin | c25 |  | Код инструмента
amount | i8 | 0 | Экспирируемое количество

Таблица 164. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения
order_id | i8 |  | Номер поручения на экспирацию

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

Примечания:

- Режим работы команды (поле `mode`):

  11

    Удалить

  12

    Добавить/Обновить

- Для поручений на экспирацию ключевыми полями являются `isin` и `code`. Для одной комбинации "`isin` + `code`" нельзя подать более одного поручения на экспирацию.

- При добавлении нового поручения на экспирацию в поле `order_id` необходимо задавать "0". Следует помнить, что если в системе уже существует поручение с такими же "`isin` + `code`", то вместо добавления нового выполнится изменение существующего поручения.

- Операции "Delete" или "Update" поручений можно производить:

  - По order_id (`code` и `isin` не заданы).
  - По code + isin (`order_id`=0).

  - По order_id и code + isin. В этом случае после нахождения поручения по order_id, в нем проверяется соответствие `code` и `isin` присланным значениям.

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

### Метод FuturesExecutionRequest - Поручения на исполнение однодневных фьючерсов с автопролонгацией

Тип сообщения: 470

Тип ответного сообщения: 189

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

Таблица 165. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
broker_code | c4 | "" | Код брокерской фирмы
mode | i4 |  | Режим работы команды
order_id | i8 | 0 | Номер поручения на исполнение
code | c3 |  | Последние 3 символа клиентского кода
isin | c25 |  | Код фьючерса
amount | i8 |  | Количество контрактов к исполнению

Таблица 166. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения
order_id | i8 |  | Номер поручения на исполнение

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

Примечания:

- Режим работы команды (поле `mode`):

  11

    Удалить

  12

    Добавить/Обновить

- Для поручений на исполнение ключевыми полями являются `isin` и `code`. Для одной комбинации "`isin` + `code`" нельзя подать более одного поручения на исполнение.

- При добавлении нового поручения на исполнение в поле `order_id` необходимо задавать "0". Следует помнить, что если в системе уже существует поручение с такими же "`isin` + `code`", то вместо добавления нового выполнится изменение существующего поручения.

- Операции "Delete" или "Update" поручений можно производить:

  - По order_id (`code` и `isin` не заданы).
  - По code + isin (`order_id`=0).

  - По order_id и code + isin. В этом случае после нахождения поручения по order_id, в нем проверяется соответствие `code` и `isin` присланным значениям.

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

### Метод FutChangeClientProhibit - Изменение клиентских ограничений для фьючерсов

Тип сообщения: 469

Тип ответного сообщения: 115

Таблица 167. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
broker_code | c4 | "" | Код брокерской фирмы
mode | i4 |  | Режим работы команды
code | c3 |  | Код клиентского счета или '%%%' - по всем
base_contract_code | c25 |  | Код базового актива или '%' - по всем
isin | c25 |  | Код инструмента или '%' - по всем
state | i4 | 0 | Ограничение
state_mask | i4 | 3 | Маска для параметра state
client_priority | i4 | 0 | Клиентский приоритет

Таблица 168. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

Примечания:

- Поле `mode` определяет режим работы команды:

  11

    удалить

  12

    установить (update/insert)

- Поле `state` может принимать следующие значения:

  0

    Разрешены все операции. Используется для точечного разрешения в случае наличия более широкого запрета;

  1

    Запрет на открытие позиций;

  2

    Запрет на выставление любых заявок;

  3

    Запрет на открытие позиций на продажу;

  0x08

    Запрет брокера на подачу поручений на Экспирацию;

  0x10

    Запрет Главного трейдера РФ на подачу поручений на Экспирацию. Но ему самому - можно;

  0x20

    Запрет на запрос потока ликвидности без автоподтверждения (RFS);

  0x40

    Запрет на запрос потока ликвидности (RFS);

  0x80

    Запрет на заключения сделки при недостаточном количестве котировок (RFS);

  0x100

    Запрет на запрос потока ликвидности с ограничением времени жизни котировок (RFS).

- Битовая маска `state_mask` определяет те биты поля `state`, значения которых необходимо изменить в результате выполнения команды. Например, в существующем в системе запрете надо изменить только запрет по заявкам (0-3), не трогая остальные биты, в этом случае данный параметр должен устанавливаться = 3, и операция будет выполнена только над первыми 2-мя битами поля `state`.

- При задании конкретного инструмента в поле `isin` следует указывать код соответствующего БА в поле `base_contract_code`.

- Поле `client_priority` может принимать следующие значения:

  10

    низкий

  11

    средний

  12

    высокий

  Если в команде в поле `client_priority` указано значение "10", "11" или "12", то выставляется запрет с указанным пользовательский приоритетом. Если пользовательский приоритет не указан (значение "0"), то приоритет будет установлен автоматически, в соответствии с параметрами запрета.

### Метод OptChangeClientProhibit - Изменение клиентских ограничений для опционов

Тип сообщения: 468

Тип ответного сообщения: 117

Таблица 169. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
broker_code | c4 | "" | Код брокерской фирмы
mode | i4 |  | Режим работы команды
code | c3 |  | Код клиентского счета или '%%%' - по всем
base_contract_code | c25 |  | Код базового актива или '%' - по всем
isin | c25 |  | Код инструмента или '%' - по всем
state | i4 | 0 | Ограничение
state_mask | i4 | 8 | Маска для параметра state
client_priority | i4 | 0 | Клиентский приоритет

Таблица 170. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

Примечания:

- Режим работы команды (поле `mode`):

  11

    удалить

  12

    установить (update/insert)

- Поле `state` может принимать следующие значения:

  0

    Разрешены все операции. Используется для точечного разрешения в случае наличия более широкого запрета;

  1

    Запрет на открытие позиций;

  2

    Запрет на выставление любых заявок;

  3

    Запрет на открытие позиций на продажу;

  0x08

    Запрет брокера на подачу поручений на Экспирацию;

  0x10

    Запрет Главного трейдера РФ на подачу поручений на Экспирацию. Но ему самому - можно;

  0x20

    Запрет на запрос потока ликвидности без автоподтверждения (RFS);

  0x40

    Запрет на запрос потока ликвидности (RFS);

  0x80

    Запрет на заключения сделки при недостаточном количестве котировок (RFS);

  0x100

    Запрет на запрос потока ликвидности с ограничением времени жизни котировок (RFS).

- Битовая маска `state_mask` определяет те биты поля `state`, значения которых необходимо изменить в результате выполнения команды. Например, в существующим в системе запрете надо изменить только запрет по заявкам (0-3), не трогая остальные биты, в этом случае данный параметр должен устанавливаться = 3, и операция будет выполнена только над первыми 2-мя битами поля `state`.

- Ограничения по фьючерсам и опционам действуют независимо.

- Поле `client_priority` может принимать следующие значения:

  10

    низкий

  11

    средний

  12

    высокий

  Если в команде в поле `client_priority` указано значение "10", "11" или "12", то выставляется запрет с указанным пользовательский приоритетом. Если пользовательский приоритет не указан (значение "0"), то приоритет будет установлен автоматически, в соответствии с параметрами запрета.

### Метод ExchangeBFMoney - Перевод денежных средств между двумя БФ одного РК

Тип сообщения: 427

Тип ответного сообщения: 130

Процедура позволяет выполнять переводы средств между двумя различными БФ, принадлежащими одному РК.

Таблица 171. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
broker_code | c4 | "" | Код брокерской фирмы
mode | i4 |  | Режим работы команды
code_from | c2 |  | Код БФ для списания средств
code_to | c2 |  | Код БФ назначения
amount_money | c17 |  | Размер денежных средств для перевода

Таблица 172. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

Примечания:

- Режим работы команды (поле `mode`):

  1

    Перевод только в торгах

  3

    Перевод в торгах и клиринге

### Метод OptRecalcCS - Изменение центрального страйка

Тип сообщения: 422

Тип ответного сообщения: 132

Процедура позволяет произвести пересчет центрального страйка, по тем обязательствам маркет-мейкера, для которых выбран вариант пересчета ЦС «Смещение по запросу». Предназначена для маркет-мейкеров.

Таблица 173. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
broker_code | c4 | "" | Код брокерской фирмы
option_series_id | i4 |  | Идентификатор опционной серии

Таблица 174. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

### Метод TransferClientPosition - Перенос позиций между БФ

Тип сообщения: 430

Тип ответного сообщения: 173

Процедура позволяет переносить позиции между счетами своих БФ.

Таблица 175. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
broker_code | c4 | "" | Код брокерской фирмы
code_from | c7 |  | Код донора
code_to | c7 |  | Код реципиента
isin | c25 |  | Код инструмента
amount | i8 |  | Размер переносимой позиции

Таблица 176. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

Примечание:

  Процедура доступна только тому логину шлюза от РФ, которому Администратор торгов предоставил необходимые права.

  Запрещен перенос позиции клиента по инструменту с ограничениями по квалификации инвестора к клиенту, у которого нет признака квалифицированного инвестора.

### Метод OptChangeRiskParametersNextSession - Управление риск-параметрами опционов

Тип сообщения: 434

Тип ответного сообщения: 140

Процедура позволяет изменить риск-параметры опционов.

Таблица 177. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
broker_code | c4 | "" | Код брокерской фирмы
client_code | c3 |  | Код клиента
num_clr_2delivery | i4 | 0 | Количество клирингов, за которое включаются сценарии экспирации для расчета рисков по ближней неквартальной серии опционов для данного раздела
use_broker_num_clr_2delivery | i1 | 0 | Признак использования значения num_clr_2delivery, заданном на уровне брокера
exp_weight | c4 | 0 | Весовой коэффициент
use_broker_exp_weight | i1 | 0 | Признак использования значения exp_weight, заданном на уровне брокера
short_option_minimum_charge_ratio | c6 | "" | Индивидуальный коэффициент веса сценария SOMC

Таблица 178. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

Примечание:

  Процедура доступна только тому логину шлюза от РФ, которому Администратор торгов предоставил необходимые права.

### Метод ChangeBFParametersNextSession - Изменение параметров БФ Участником клиринга

Тип сообщения: 442

Тип ответного сообщения: 162

Процедура используется для изменения параметров БФ Участником клиринга. Процедура доступна исключительно для логина уровня РФ. Применение заданных параметров происходит в вечерний клиринг.

Таблица 179. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
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_on_withdrawal | i4 | -1 | Проверка достаточности обеспечения по БФ при вводе/выводе средств. 1 - проверять, 0 - нет.
limit_tied_to_money | i4 | -1 | Соответствие торгового лимита БФ сумме средств на разделах БФ. 1- поддерживать соответствие, 0 - независимый (виртуальный) лимит.
check_limit_for_orders | i4 | -1 | Проверка достаточности обеспечения по БФ при постановке заявок . 1 - проверять, 0 - нет.
no_fut_discount | i4 | -1 | Запрет использования скидки по фьючерсам для портфеля БФ. 1-запрет, 0 - нет.
ics_margin_type | i1 | -1 | Тип маржирования межконтрактных спредов. 3 - полунетто, 4 - нетто.

Таблица 180. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

Примечания:

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

- Значение -1, заданное в полях типа i4 и i1, дает возможность при посылке команды не изменять значение параметра, которое пользователь ранее уже отправил в торговую систему.

### Метод ChangeClientParameters - Изменение параметров на клиентских разделах

Тип сообщения: 443

Тип ответного сообщения: 178

Процедура используется для изменения параметров на клиентских разделах Участником клиринга. Процедура доступна логинам уровня РФ и БФ.

Таблица 181. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
broker_code | c4 | "" | Код брокерской фирмы
code | c3 |  | Код клиента
coeff_go | c17 | "" | Коэффициент клиентского ГО
no_fut_discount | i4 | -1 | Флаг запрета использования скидки по фьючерсам

Таблица 182. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

Примечания:

- Поле `coeff_go` может принимать значение от 0 до 10,00000.

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

- Значение -1, заданное в поле типа i4, дает возможность при посылке команды не изменять значение параметра, которое пользователь ранее уже отправил в торговую систему.

### Метод ChangeClientParametersNextSession - Изменение параметров на клиентских разделах в клиринг

Тип сообщения: 441

Тип ответного сообщения: 163

Процедура используется для изменения параметров на клиентских разделах Участником клиринга. Процедура доступна логинам уровня РФ и БФ.

Таблица 183. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
broker_code | c4 | "" | Код брокерской фирмы
code | c3 |  | Код клиента
calendar_spread_margin_type | i1 | -1 | Тип маржирования календарных спредов для клиента. 3 - полунетто, 4 - нетто
ics_margin_type | i1 | -1 | Тип маржирования межконтрактных спредов. 3 - полунетто, 4 - нетто.

Таблица 184. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

Примечания:

- Значение -1, заданное в поле типа i1, дает возможность при посылке команды не изменять значение параметра, которое пользователь ранее уже отправил в торговую систему.

### Метод ChangeBFClientDefaultParametersNextSession - Изменение на клиентских разделах параметров по умолчанию в клиринг

Тип сообщения: 402

Тип ответного сообщения: 602

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

Таблица 185. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
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-нет.

Таблица 186. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

Примечания:

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

- Значение -1, заданное в поле типа i4, дает возможность при посылке команды не изменять значение параметра, которое пользователь ранее уже отправил в торговую систему.

### Метод ChangeBFClientBaseContractParametersNextSession - Изменение параметров клиентов БФ по БА

Тип сообщения: 1057

Тип ответного сообщения: 1143

Процедура используется для изменения коэффициента ГО по базовому контракту для всех клиентов данной БФ. Процедура доступна логинам уровня РФ и БФ. Применение заданных параметров происходит в вечерний клиринг.

Таблица 187. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
broker_code | c4 | "" | Код брокерской фирмы
bf_code | c2 | "" | Код БФ, задаваемый клиентом
base_contract_code | c25 | "" | Код базового контракта
coeff_im | c17 | "" | Коэффициент ГО по базовому контракту для всех клиентов данной БФ

Таблица 188. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

Примечания:

- Поле `coeff_im` может принимать значение от 0 до 10,00000.

### Метод ChangeBFLimit - Изменение торговых лимитов БФ

Тип сообщения: 428

Тип ответного сообщения: 161

Процедура позволяет менять торговые лимиты по БФ.

Таблица 189. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
broker_code | c4 | "" | Код брокерской фирмы
mode | i4 |  | Режим работы команды
code | c2 |  | Код БФ
limit_money | c17 |  | Лимит денежных средств
check_limit | i4 |  | Флаг проверки на достаточность средств по БФ

Таблица 190. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

Примечания:

- Режим работы команды (поле `mode`):

  12

    Установить лимиты равные значению `limit_money`

  13

    Изменить лимиты на значение `limit_money`

- В параметре `check_limit` можно указать следующие значения:

  0

    Не выполнять проверку

  1

    Выполнять проверку

### Метод CODHeartbeat - Сообщение-хартбит для сервиса Cancel on Disconnect

Тип сообщения: 10000

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

Таблица 191. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
seq_number | i4 | 0 | Номер сообщения-хартбита (в текущей версии не используется)

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

Примечание:

  Требование посылать хартбиты распространяется только на пользователей, использующих сервис Cancel on Disconnect

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

  Вызов функции cg_pub_post с флагом CG_PUB_NEEDREPLY при отправке хартбита приведет к получению ошибки FORTS_MSG100 с кодом возврата: "10001 - Неизвестный тип сообщения".

### Метод SetSmaPreTradeCheck - Установка предварительной проверки для заявок SMA-логина

Тип сообщения: 406

Тип ответного сообщения: 166

Команда устанавливает режим предварительной проверки для заявок SMA-логина.

Таблица 192. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
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 | "" | Код клиента, участвующий в проверке (заполняется только для проверок 6 и 7)
value | c29 |  | Проверочное значение

Таблица 193. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения

Коды возврата команды:

0

  успех выполнения операции

Другое значение

  ошибка

Примечания:

- Процедура доступна только тому логину шлюза, которому Администратор торгов предоставил необходимые права.

- Поле `client_code_check` следует заполнять только для проверок 6 и 7. Для других проверок оно должно оставаться пустым.

- Расшифровка номеров проверки для поля `check_number`:

  Таблица 194. Номера проверки

  Номер проверки | Проверка | Поля
  --- | --- | ---
  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-логина.

Таблица 195. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
broker_code | c4 | "" | Код брокерской фирмы
check_id | i8 |  | Id предварительной проверки

Таблица 196. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения

Коды возврата команды:

0

  успех выполнения команды

другое значение

  ошибка

Примечание:

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

### Метод UserKillSwitch - Запрет торговых операций для логина

Тип сообщения: 408

Тип ответного сообщения: 168

Команда включает запрет торговых операций для логина.

Таблица 197. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
login | c20 |  | Логин участника торгов, для которого устанавливается запрет на торговые операции.
disable | i1 |  | Настройки запрета торговых операций для логина: 0 - торговые операции разрешены для логина 1 - торговые операции запрещены для логина.
cancel_orders | i1 | 0 | Настройки снятия заявок при запрете торговых операции для логина: 0 - ядро ТС не снимает заявки 1 - ядро ТС снимает заявки.

Таблица 198. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения
num_orders | i4 |  | Количество удаленных заявок

Коды возврата команды:

0

  успех выполнения команды

другое значение

  ошибка

Примечание:

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

  Выставление флага "снимать заявки" (cancel_orders = 1 ) возможно только при условии, когда поле disable =1.

### Метод SetBrokerFeeParamNextSession - Установка параметров для расчета брокерской комиссии

Тип сообщения: 453

Тип ответного сообщения: 183

Команда предназначена для добавления, изменения и удаления параметров, которые используются при расчете брокерской комиссии по сделкам клиентов. Параметры можно задать как для отдельного клиента, так и для всей брокерской фирмы. Параметры, заданные для БФ, используются при расчете для всех ее клиентов. Команда доступна только логину уровня РФ и БФ, которому Администратор торгов предоставил необходимые права. Заданные командой параметры применяются в следующую торговую сессию.

Таблица 199. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
broker_code | c4 |  | Код брокерской фирмы
mode | i4 |  | Режим работы команды
client_code | c3 | "" | Код клиента
lower_fee | c27 |  | Минимально возможная сумма брокерской комиссии за один контракт
upper_fee | c27 |  | Максимально возможная сумма брокерской комиссии за один контракт
multiplier | c27 |  | Мультипликатор к сумме биржевого и клирингового сбора
additive | c27 |  | Постоянная добавка за один контракт

Таблица 200. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
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) и будут удалены при смене торговой сессии.

### Метод DelOrdersByBFLimit - Запрос к НКЦ на проверку достаточности обеспечения по БФ

Тип сообщения: 419

Тип ответного сообщения: 172

Команда предназначена для снятия заявок участником клиринга в целях устранения необеспеченности позиций. В результате данного запроса в случае отрицательного Свободного лимита по БФ (FreeMoney < 0) снимаются все активные заявки клиентов данной БФ.

Таблица 201. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
broker_code | c4 |  | Код брокерской фирмы

Таблица 202. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения
num_orders | i4 |  | Количество снятых заявок

Коды возврата команды:

0

  успех выполнения команды

другое значение

  ошибка

Примечание:

  Команда доступна только логинам уровня РФ и БФ.

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

### Метод ChangePassword - Изменение пароля пользователя в торговой системе

Тип сообщения: 421

Тип ответного сообщения: 169

Команда предназначена для изменения пароля пользователя в торговой системе. Для посылки команды необходимо использовать специальный протокол p2mqpwd, который предоставляется в API CGate.

Таблица 203. Входящие параметры

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
old_pwd | c65 |  | Текущий пароль пользователя
new_pwd | c65 |  | Новый пароль пользователя

Таблица 204. Результат выполнения

Имя параметра | Тип | Значение по умолчанию | Описание
--- | --- | --- | ---
code | i4 |  | Код возврата
message | c255 |  | Текст сообщения

Коды возврата команды:

0

  успех выполнения команды

другое значение

  ошибка

Примечание:

  При возникновении ошибки пароль пользователя в системе не меняется.

## B. Типы данных платформы PLAZA II

PLAZA II | С++ | ODBC | Комментарий
--- | --- | --- | ---
u1 | UINT8 | SMALLINT | Целое число размером 1 байт.
u2 | UINT16 | INTEGER | Целое число размером 2 байта.
u4 | UINT32 | NUMERIC,10 | Целое число размером 4 байта.
u8 | UINT64 | NUMERIC,20 | Целое число размером 8 байт.
i1 | INT8 | SMALLINT | Целое число со знаком размером 1 байт.
i2 | INT16 | SMALLINT | Целое число со знаком размером 2 байта.
i4 | INT32 | INTEGER | Целое число со знаком размером 4 байта.
i8 | INT64 | BIGINT | Целое число со знаком размером 8 байт.
a | CHAR | VARCHAR,1 | Строка символов размером 1 байт.
cN | CHAR[N+1] | VARCHAR,N | Строка символов, оканчивающаяся нулевым символом.
dN.M sN.M | P2BCDII | NUMERIC,N,M | Десятичное число в двоичной кодировке с фиксированной точкой, где N — общее количество цифр в числе; M — количество цифр в дробной части.
t | P2TIME | TIMESTAMP | Дата и время.
f | DOUBLE | REAL | Число с плавающей точкой двойной точности размером 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 | Ошибка входной проверки актуальности данных, операция не может быть выполнена.
82 | Заявка Book-or-Cancel не может быть выставлена/переставлена, т.к. она приводит к немедленному исполнению.
85 | Приостановка торгов во всех режимах и по всем Фьючерсам, Календарным спредам и Однодневным фьючерсным контрактам с автопролонгацией данного БА.
90 | Приостановка торгов во всех режимах и по всем Опционам данного БА.
95 | Приостановка торгов в Анонимном режиме и по всем инструментам данного БА.
100 | Приостановка торгов в Анонимном режиме и по всем Фьючерсам, Календарным спредам и Однодневным фьючерсным контрактам данного БА.
105 | Приостановка торгов в Анонимном режиме и по всем Опционам данного БА.
110 | Приостановка торгов в Адресном режиме и по всем инструментам данного БА.
115 | Приостановка торгов в Адресном режиме и по всем Фьючерсам, Календарным спредам и Однодневным фьючерсным контрактам данного БА.
120 | Приостановка торгов в Адресном режиме и по всем Опционам данного БА.
125 | Приостановка торгов по Фондовой секции Срочного рынка Московской Биржи.
130 | Приостановка торгов по Товарной секции Срочного рынка Московской Биржи.
135 | Приостановка торгов по Денежной секции Срочного рынка Московской Биржи.
140 | Запрещено увеличение позиции по всем инструментам данного БА.
200 | Администратор производит изменение параметров расчёта ГО.
201 | Администратор производит изменение параметров расчёта ГО.
202 | Администратор производит изменение параметров расчёта ГО.
203 | Администратор производит изменение параметров расчёта ГО.
204 | Администратор производит изменение параметров расчёта ГО.
205 | Администратор производит изменение параметров расчёта ГО.
206 | Администратор производит изменение параметров расчёта ГО.
207 | Администратор производит изменение параметров расчёта ГО.
208 | Администратор производит изменение параметров расчёта ГО.
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 | Операция запрещена.
3002 | В котировке цена продажи должна быть больше цены покупки.
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 | Поручение на экспирацию не обработано. Запрещено подавать поручения на исполнение/отказ от исполнения по расчётным европейским опционам.
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 | Операция невозможна. Изменение лимитов разрешено между БФ на одном Расчётном коде.
4163 | Операция невозможна для БФ с виртуальным лимитом. Для перевода денежных средств подайте поручение в НКЦ.
4164 | Изменение параметров по клиентским разделам запрещено.
4165 | Операция доступна логинам уровня РФ.
4166 | Некорректная комбинация значений флагов.
4167 | Не найден Расчётный Код.
4169 | Операция доступна логинам уровня РФ или БФ.
4170 | Попытка доступа к счёту чужой БФ.
4171 | Попытка доступа к счёту чужого клиента.
4172 | У участника клиринга нет прав на выполнение команды.
4173 | У участника торгов нет прав на выполнение команды.
4174 | Заявка с датой окончания срока действия по Календарному спреду снята системой.
4175 | У участника клиринга установлена опция учитывать средства только на Расчётном коде.
4180 | Ошибка во входных параметрах: поле комментарий содержит недопустимые символы.
4200 | Поручение не подтверждено. Не подключен MASTER логин участника торгов.
4201 | Поручение не подтверждено. Превышено отклонение цены в поручении от текущей цены.
4202 | Поручение не подтверждено. Превышен максимальный объем поручения в контрактах.
4203 | Поручение не подтверждено. Запрещен адресный режим.
4204 | Поручение не подтверждено. Превышен максимальный объем поручения в рублях.
4205 | Поручение не подтверждено. Превышена максимальная разрешенная рублевая сумма поручений за торговый день.
4206 | Поручение не подтверждено. Превышена максимальная разрешенная позиция в контрактах на покупку.
4207 | Поручение не подтверждено. Превышена максимальная разрешенная позиция в контрактах на продажу.
4208 | Поручение не подтверждено. Для указанного SMA логина превышено количество одновременно установленных ограничений на размер позиции по различным клиринговым разделам.
4220 | Для пользователя установлен запрет на совершение торговых операций.
4221 | Операция запрещена при совпадении участника клиринга и участника торгов в одном лице.
4222 | У участника клиринга нет прав на выполнение операций с заявками.
4223 | У участника торгов нет прав на отправку запроса НКЦ.
4224 | У активных мастер логинов нет прав на совершение этой операции.
4225 | В отношении Участника клиринга проводится ликвидационный неттинг, запрещено выполнение любых операций.
4226 | Для БФ запрещены торговые операции в утреннюю сессию, кроме операций снятия заявок.
4227 | Должен быть признак квалифицированного инвестора для совершения сделки.
4230 | На брокерской фирме достаточно обеспечения, заявки сняты не будут.
4258 | Адресные айсберг-заявки запрещены.
4259 | Перемещение айсберг-заявок парами запрещено.
4260 | Размер видимой части айсберг-заявки меньше минимально допустимого значения.
4261 | Размер видимой части айсберг-заявки больше размера айсберг-заявки.
4262 | Размер случайной надбавки больше максимально допустимого значения.
4264 | Размер случайной надбавки меньше нуля.
4266 | На РК установлен режим блокировки Администратора торговой системы.
4268 | Перемещение айсберг-заявок возможно только по цене.
4269 | В адресной заявке нельзя указывать дату истечения заявки.
4280 | Ошибка во входных параметрах: не задан параметр "Код клиента".
4281 | Ошибка во входных параметрах: недопустимое значение параметра "Тип запрета".
4282 | Ошибка во входных параметрах: для параметра "Режим работы" = 12 не может задаваться "Маска запретов" = 0.
4283 | Ошибка во входных параметрах: недопустимое значение параметра "Приоритет".
4284 | Невозможно установить запрет. Запрет с такими параметрами уже существует.
4285 | Для БФ установлен запрет подачи заявок в дополнительную сессию выходного дня.
4300 | Перестановка заявок запрещена в аукционе открытия.
4301 | Инструмент недопустим в аукционе открытия.
4302 | FOK и IOC заявки запрещены в аукционе открытия.
4303 | Адресные заявки запрещены в аукционе открытия.
4304 | Найдена кросс-заявка в аукционе открытия.
4305 | BOC заявки запрещены в аукционе открытия.
5052 | Поручение на исполнение вечного фьючерса не обработано. В существующем поручении с присланным номером другие: "код клиента" и/или "инструмент".
5053 | Поручение на исполнение вечного фьючерса не обработано. Идет пром. клиринг. Удалять поручения нельзя.
5054 | Поручение на исполнение вечного фьючерса не обработано. Идет пром. клиринг. Изменять поручения нельзя.
5055 | Поручение на исполнение вечного фьючерса не обработано. Не найдено поручение по номеру для удаления/изменения.
5061 | Поручение на исполнение вечного фьючерса не обработано. Время ввода поручений окончилось.
5062 | Поручение на исполнение вечного фьючерса не обработано. Нет такого клиентского счета.
5063 | Поручение на исполнение вечного фьючерса не обработано. Не найдено поручение для удаления.
5064 | Поручение на исполнение вечного фьючерса не обработано. Нет прав на выполнение операции.
5065 | Поручение на исполнение вечного фьючерса не обработано. Не найден инструмент.
5069 | Поручение на исполнение вечного фьючерса не обработана. Ошибка при выполнении операции.
5071 | Поручение на исполнение вечного фьючерса не обработано. Недопустимое значение кол-во фьючерсов для исполнения.
5072 | Поручение на исполнение вечного фьючерса не обработано. Ещё не пришло время подачи поручений.
5073 | Поручение на исполнение вечного фьючерса не обработано. Недопустимый инструмент.
10000 | Системная ошибка при обработке сообщения.
10001 | Неизвестный тип сообщения.
10004 | Недопустимый тип сообщения.
10005 | Превышен размер MQ-адреса.
10006 | Ошибка при парсинге сообщения.