Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление

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

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

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

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

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

  • НКД — на основании даты, количества бумаг и традиций расчёта НКД для данного финансового инструмента
  • Чистая стоимость = полная стоимость - НКД
  • Цена — рассчитывается из чистой стоимости, количества бумаг и курса сделки (если валюта сделки отличается от той, в которой номинированы бумаги)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В Навигаторе сделки РЕПО всегда загружаются с параметрами: "получатель купонов = покупатель", "инвестировать купоны", так как все биржевые сделки производятся на этих условиях. Кроме того, в Навигаторе — так же, как, например, в Bloomberg — сумма выкупа сразу рассчитывается с учётом выплаты купонов эмитентом.

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

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

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

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

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

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

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

Блок кода
languagesql
titleСкрипт изменения доп.атрибута
collapsetrue
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 (не округлять, все параметры пересчитываются из суммы).
  • Для режимов торгов Московской Биржи со сделками РЕПО с Центральным Контрагентом следует снимать признак Округлять цены в сделках.

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

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

Проверяем версию приложения:
  • Для загрузки из системы Quik нужна 6.4.0 патч 6 (и выше);
  • В остальных случаях — загрузка через схему KIP — нужна 6.4.0 патч 7, плюс адаптер NavXL 5.11.10 (и выше).

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

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

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