Оглавление |
---|
Структура параметров сделки РЕПО
Прежде, чем настраивать загрузку, разберёмся, какие данные содержит сделка РЕПО и что они означают.
Финансовая составляющая сделки РЕПО описывается следующими величинами:
- Количество бумаг, участвующих в сделке
- Дата открытия и дата завершения сделки
- Сумма сделки и сумма выкупа — полная сумма по первой и по второй части сделки соответственно
- Получатель купонных выплат — если во время сделки происходит выплата купонов или амортизаций по бумагам
Кроме этих основных параметров, по каждой части сделки , как это принято для сделок с ценными бумагами, рассчитываются:
- НКД — на основании даты, количества бумаг и традиций расчёта НКД для данного финансового инструмента
- Чистая стоимость = полная стоимость - НКД
- Цена — рассчитывается из чистой стоимости, количества бумаг и курса сделки (если валюта сделки отличается от той, в которой номинированы бумаги)
Также широко используются следующие величины, характеризующие сделку в целом:
- Ставка — связывает первую и вторую части РЕПО
- Уровень обеспечения — отношение суммы сделки к рыночной стоимости бумаг, которые в ней участвуют, рыночная цена и цена покупки/продажи бумаг — параметры связаны между собой, любой из них может быть рассчитан по двум другим.
С более полным описанием этих и других параметров сделки РЕПО можно ознакомиться в статье Сделки:РЕПО
Обычно, при загрузке сделки из внешней системы, пользователь преследует такие цели:
- Данные в Навигаторе о параметрах сделки должны отображаться такие же, как и во внешней системе — чтобы всё было красиво
- Загруженная сделка должна иметь корректный экономический смысл с точки зрения внутренней логики Навигатора — чтобы можно было пользоваться отчётами и производить досрочные погашения
К сожалению, добиться выполнения обоих пунктов не всегда просто.
Несмотря на то, что за описанными параметрами всегда стоят одни и те же идеи, реализация этих идей в различных системах существенно отличается. Поэтому для правильной загрузки нужно в Навигаторе корректно настроить параметры загрузки и глобальные параметры, которые используются в расчётах.
Как это сделать — описано в следующем разделе.
Настройка параметров загрузки
В этом параграфе описаны моменты, на которые стоит обратить внимание именно при загрузке сделок РЕПО. Как настроить параметры загрузки, общие для РЕПО и для обычных сделок с ценными бумагами, можно прочитать в статье Директивы и по указанным там ссылкам.
Справочник инструментов
В расчетах по сделке используются сведения о финансовом инструменте, которые считаются общеизвестными. Если в Навигаторе инструмент настроен некорректно, то возможны ошибки, как при загрузке, так и в работе отчетов.
Особенно рекомендуем обратить внимание на настройки купонов и расчет НКД. Сумма НКД, рассчитанная биржей, должна совпадать с НКД, который рассчитывает Навигатор.
Валюта сделки
В большинстве случаев данные с биржи указания на валюту не содержат, и сделка загружается с валютой, в которой номинирована бумага. Чтобы проверить, есть ли такие данные для конкретной сделки, можно посмотреть, заполнено ли в SEC_BROKER_DEALS поле PAYMENT_CURRENCY.
Если поле не заполнено, а валюта сделки отличается от валюты номинала — например, для сделок секции внебиржевого РЕПО с еврооблигациями на ММВБ — нужно установить валюту в cправочнике кодов для соответствующего кода. Приоритеты при определении валюты такие: сначала анализируется поле из сделки, потом поле из кода, а если и оно не заполнено — подставляется валюта номинала инструмента.
Для корректного расчёта цены в сделках с валютой, отличной от валюты номинала инструмента, нужен правильный курс сделки (в SEC_BROKER_DEALS поле PRICE_RATE). Обычно, данные о курсе не передаются — в этом случае подставляется курс с площадки, установленной в качестве источника курса при загрузке Репо в дополнительных атрибутах торговой системы. Если источник курса не указан, используется курс Национального Банка на дату сделки .
Получатель купонов
В Навигаторе сделки РЕПО всегда загружаются с параметрами: "получатель купонов = покупатель", "инвестировать купоны", так как все биржевые сделки производятся на этих условиях. Кроме того, в Навигаторе — так же, как, например, в Bloomberg — сумма выкупа сразу рассчитывается с учётом выплаты купонов эмитентом.
Такая логика расчётов конфликтует с логикой ММВБ, которая в момент заключения рассчитывает параметры сделки без учёта купонных выплат (т. е. расчёт: получатель купонов — продавец) и производит пересчёт в момент выплаты от эмитента. Поэтому, если загрузить с ММВБ без изменений все параметры сделки, внутри которой производится купонная выплата, сделка окажется неправильной с точки зрения внутренней логики Навигатора.
(с учетом глубины поиска котировок). Если в справочнике Навигатора отсутствует искомая котировка, курс рассчитывается из параметров первой части сделки (отношение суммы платежа первой части сделки к расчетной стоимости бумаг в валюте цены инструмента).
Получатель купонов
При загрузке в Навигатор сделки Репо, переходящей через купонную выплату, параметр Получатель купонов определяется из настройки режима торгов, на котором заключена сделка.
По умолчанию сделка регистрируется с параметром "получатель купонов - продавец".Для того чтобы не приходилось править сделки вручную, можно включить системный параметр SEC_REPO_MICEX_RECALC. Тогда для сделок с купонными выплатами данные от ММВБ по второй части будут игнорироваться. Вместо этого расчёт всех параметров выкупа будет производиться в Навигаторе.
Как получатель купонов относится к расчётам по сделке можно узнать из статьи Пример расчёта параметров сделки РЕПО.
Точность цены и пересчёт суммы
По внутренней логике Навигатора : Параметры "сумма", "чистая стоимость", "цена" и "точность" параметры Сумма, Чистая стоимость, Цена и Точность всегда связаны соотношениями:
- Сумма = НКД + чистая Чистая стоимость
- Чистая стоимость = цена Цена * количество Количество бумаг * номинал Номинал ( * курсКурс)
- Цена округляется до точности, которая указывается в сделке.
Эта логика одинакова и при заведении сделки в интерфейсе, и при загрузке. Подробное описание того, как это работает на практике, можно посмотреть в статье Пример расчёта параметров сделки РЕПО.
В большинстве случаев данные от биржи согласуются с этими соотношениями при корректной точности цены. Но, например для режима торгов ММВБ «РЕПО с Банком России», второе соотношение иногда нарушается, а для секции «Внебиржевое РЕПО» часть данных отсутствует. При загрузке сделок с этих секций все параметры будут пересчитаны цена будет пересчитана в соответствии с логикой Навигатора, данные о цене и чистой стоимости могут расходиться с данными от биржи.
В любом случае, для корректной загрузки сделки нужно, чтобы в сделку проставлялась правильная точность цены. Она определяется настройками режима торгов. Если признак Округлять цены в сделках отключен, то при загрузке будет проставляться максимальная точность (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 и пересчёт вызван выплатой купона на периоде сделки - тогда параметры по второй части будут отличаться от данных биржи. Смотрим расчёт в статье Пример расчёта параметров сделки РЕПО
- В случае обнаружения ошибки в расчётах, проверяем корректность всех параметров первой части, указанную в сделке точность цены, данные по инструменту из справочника.