Структура параметров сделки РЕПО

Прежде, чем настраивать загрузку, разберёмся, какие данные содержит сделка РЕПО и что они означают.

Финансовая составляющая сделки РЕПО описывается следующими величинами:

  1. Количество бумаг, участвующих в сделке
  2. Дата открытия и дата завершения сделки
  3. Сумма сделки и сумма выкупа — полная сумма по первой и по второй части сделки соответственно
  4. Получатель купонных выплат — если во время сделки происходит выплата купонов или амортизаций по бумагам

Кроме этих основных параметров, по каждой части сделки рассчитываются:

  • НКД — на основании даты, количества бумаг и традиций расчёта НКД для данного финансового инструмента
  • Чистая стоимость = полная стоимость - НКД
  • Ставка — связывает первую и вторую части РЕПО
  • Уровень обеспечения, рыночная цена и цена покупки/продажи бумаг — параметры связаны между собой, любой из них может быть рассчитан по двум другим.

С более полным описанием этих и других параметров сделки РЕПО можно ознакомиться в статье Сделка РЕПО

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

  • Данные в Навигаторе о параметрах сделки должны отображаться такие же, как и во внешней системе — чтобы всё было красиво
  • Загруженная сделка должна иметь корректный экономический смысл с точки зрения внутренней логики Навигатора — чтобы можно было пользоваться отчётами и производить досрочные погашения

К сожалению, добиться выполнения обоих пунктов не всегда просто.

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

Как это сделать — описано в следующем разделе.

Настройка параметров загрузки

В этом параграфе описаны моменты, на которые стоит обратить внимание именно при загрузке сделок РЕПО. Как настроить параметры загрузки, общие для РЕПО и для обычных сделок с ценными бумагами, можно прочитать в статье Директивы и по указанным там ссылкам.

Справочник инструментов

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

Особенно рекомендуем обратить внимание на настройки купонов и расчет НКД. Сумма НКД, рассчитанная биржей, должна совпадать с НКД, который рассчитывает Навигатор.

Валюта сделки

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

Если поле не заполнено, а валюта сделки отличается от валюты номинала — например, для сделок секции внебиржевого РЕПО с еврооблигациями на ММВБ — нужно установить валюту в cправочнике кодов для соответствующего кода. Приоритеты при определении валюты такие: сначала анализируется поле из сделки, потом поле из кода, а если и оно не заполнено — подставляется валюта номинала инструмента.

Для корректного расчёта цены в сделках с валютой, отличной от валюты номинала инструмента, нужен правильный курс сделки (в SEC_BROKER_DEALS поле PRICE_RATE). Обычно, данные о курсе не передаются — в этом случае подставляется курс с площадки, установленной в качестве источника курса при загрузке Репо в дополнительных атрибутах торговой системы. Если источник курса не указан, используется курс Национального Банка на дату сделки (с учетом глубины поиска котировок). Если в справочнике Навигатора отсутствует искомая котировка, курс рассчитывается из параметров первой части сделки (отношение суммы платежа первой части сделки к расчетной стоимости бумаг в валюте цены инструмента).

Получатель купонов

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

Как получатель купонов относится к расчётам по сделке можно узнать из статьи Пример расчёта параметров сделки РЕПО.

Возможность досрочного завершения сделки

При загрузке сделок по умолчанию им не проставляется признак возможности досрочного завершения. Для автоматической установки этого признака с версии 6.4.13 добавлен доп.атрибут в режимы торгов. Сделки Репо с режимов, у которых этот атрибут True загружаются с возможностью досрочного завершения, а если значение False - без такой возможности. Следующий скрипт может использоваться для изменения значения доп.атрибута.

Скрипт изменения доп.атрибута
declare
    vTradeModeName      varchar2(128);
    vTradingModeId        number;
begin
    vTradeModeName := '&TradeModeCode';
    select id
        into vTradingModeId
    from resman.trd_pl_sect_tenders_mode
    where code = vTradeModeName;
    resman.pkg_attrib.save_attrib(pobject_alias=>'TRADECLASS'/*varchar2*/
                                                           ,pobject_id=>vTradingModeId/*number*/
                                                           ,pattrib_alias=>'PRESCHEDULE_DEAL_ENABLE'/*varchar2*/
                                                           ,pattrib_value=>'&Value');
end;


Точность цены и пересчёт суммы

По внутренней логике Навигатора параметры Сумма, Чистая стоимость, Цена и Точность всегда связаны соотношениями:

  1. Сумма = НКД + Чистая стоимость
  2. Чистая стоимость = Цена * Количество бумаг * Номинал ( * Курс)
  3. Цена округляется до точности, которая указывается в сделке.

Эта логика одинакова и при заведении сделки в интерфейсе, и при загрузке. Подробное описание того, как это работает на практике, можно посмотреть в статье Пример расчёта параметров сделки РЕПО.

В большинстве случаев данные от биржи согласуются с этими соотношениями при корректной точности цены. Но, например для режима торгов ММВБ «РЕПО с Банком России», второе соотношение иногда нарушается, а для секции «Внебиржевое РЕПО» часть данных отсутствует. При загрузке сделок с этих секций цена будет пересчитана в соответствии с логикой Навигатора, данные о цене могут расходиться с данными от биржи.

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

Рекомендуемые настройки

  • Для всех облигаций, которые торгуются на Московской Бирже, указать Точность цены = 4.
  • Для каждой акции установить принятую на ММВБ точность цены по этой акции.
  • Для секций ММВБ «РЕПО с облигациями», «РЕПО с акциями» и пр., по которым производится пересчёт суммы сделки из округлённой цены, установить признак Округлять цены в сделках = True.
  • Для Bloomberg и секций ММВБ «РЕПО с Банком России» и «Внебиржевое РЕПО» установить признак Округлять цены в сделках = False (не округлять, все параметры пересчитываются из суммы).
  • Для режимов торгов Московской Биржи со сделками РЕПО с Центральным Контрагентом следует снимать признак Округлять цены в сделках.

Диагностика ошибок

Не удаётся настроить загрузку сделок с режимов торгов «РЕПО с Банком России» и «Внебиржевое РЕПО»

  • Проверяем, что при загрузке сделок в таблице resman.sec_broker_deals корректно заполняется поле TRADE_VALUE_FULL – полная сумма по первой части сделки. При загрузке из Quik для этого требуется настроить передачу соответствующего параметра в поле quik.trades.TRADE_VALUE_FULL. При загрузке из KIP поле должно заполняться автоматически значением из kip.store_deals.REPOVALUE.
  • Проверяем, что для соответствующего режима торгов снят признак "Округлять цены в сделках".
  • В кодах устанавливаем валюту цены и валюту платежа RUB.
  • После этого, при корректном справочнике инструментов, сделки должны загружаться правильно.

Параметр передаётся, но при загрузке некорректно пересчитывается

  • Проверяем, что в sec_broker_deals параметр передаётся корректно
  • Определяем, чем был вызван пересчёт.
  • Если производится пересчёт цены из стоимости - проверяем, что точность цены указана достаточная, текущий номинал инструмента и валюта сделки определяются корректно.
  • В случае обнаружения ошибки в расчётах, проверяем корректность всех параметров первой части, указанную в сделке точность цены, данные по инструменту из справочника.
  • Нет меток