Соглашения
Расчёт в emrgex определяется тремя независимыми, общепризнанными осями — никаких проприетарных кодов здесь нет. Вы выбираете способ начисления (компаундирование), правило подсчёта дней и формулу купона независимо друг от друга, каждый раз — по имени, которое опознает любой участник рынка.
1. rate_type — база компаундирования / котирования
Как доходность компаундируется при дисконтировании.
rate_type | Значение | Дисконтирование |
|---|---|---|
NOMINAL | номинальная ставка, компаундируемая frequency×/год (рыночная YTM) | (1 + y/f)^(-f·t) |
EFFECTIVE | эффективная годовая ставка | (1 + y)^(-t) |
AT_MATURITY | простой денежно-рыночный дисконт (краткосрочные облигации / Letras) | 1 / (1 + y·t) |
PRICE_QUANTITY | прямая передача стоимости акции / СЧА фонда: стоимость = цена × количество (без дисконтирования; без day_count) | — |
2. day_count — соглашение о доле года (FpML / ISDA)
Как измеряется время, по таксономии FpML / ISDA 2006 §4.16.
| Название | Примечания |
|---|---|
ACT/ACT.ISDA | ISDA §4.16(b), с разбиением на границе года |
ACT/ACT.ICMA | ISDA §4.16(c) / Правило ICMA 251; регулярный период сворачивается в 1/f |
ACT/ACT.ISMA | синоним ICMA |
ACT/ACT.AFB | AFB 1994 |
ACT/360 | денежный рынок |
ACT/365.FIXED | |
ACT/365L | знаменатель с учётом високосного года |
ACT/364 | |
30/360 | US / Bond Basis |
30E/360 | Eurobond |
30E/360.ISDA | + правило для февральского погашения |
30/360.GERMAN | синоним 30E/360.ISDA |
1/1 | вырожденное, для полноты FpML |
BUS/252 | Бразилия B3 / ANBIMA: рабочие дни / 252, с использованием встроенного календаря праздников ANBIMA. Бит-в-бит совпадает с Tesouro Direto LTN / NTN-F |
ACT/ACT.DRMH | база государственных бумаг Доминиканской Республики (Ministerio de Hacienda): фактические дни / фактические дни в 12-месячном окне, заканчивающемся датой платежа. Сверено с опубликованными базами эмитента |
3. coupon_type — как рассчитывается сумма купона
coupon_type | Купон за период | Применяется для |
|---|---|---|
FIXED (по умолчанию) | coupon_rate / frequency × outstanding | классических облигаций с фиксированной ставкой (казначейские, корпоративные, еврооблигации) |
ACCRUAL | coupon_rate × yearFraction(day_count) × outstanding | денежно-рыночных и локальных облигаций, чей купон следует длине периода |
Оба варианта совпадают при ACT/ACT.ICMA и 30E/360 (регулярный период в точности равен 1/f) и расходятся при базах с фактическим подсчётом дней (ACT/365, ACT/360, ACT/ACT.ISDA). Параметр options.coupon_type на уровне отдельного запроса переопределяет настройку инструмента для сценарного («что если») анализа.
calculation_code — глобальный идентификатор
Каждый инструмент предоставляет calculation_code: соединение двух его главных осей, <day_count>|<rate_type>. Он выводится из соглашения и никогда не является входным параметром, который его переопределяет.
ACT/ACT.ISDA|NOMINAL ACT/360|AT_MATURITY 30E/360|EFFECTIVE PRICE_QUANTITY
У PRICE_QUANTITY нет правила подсчёта дней, поэтому его код — просто PRICE_QUANTITY.
Матрица комбинаций
Оси ортогональны — любой rate_type сочетается с любым day_count:
| rate_type | day_count | calculation_code |
|---|---|---|
| NOMINAL | ACT/ACT.ICMA | ACT/ACT.ICMA|NOMINAL |
| NOMINAL | 30E/360 | 30E/360|NOMINAL |
| EFFECTIVE | ACT/365.FIXED | ACT/365.FIXED|EFFECTIVE |
| AT_MATURITY | ACT/360 | ACT/360|AT_MATURITY |
Правила допустимости: NOMINAL / EFFECTIVE требуют положительной frequency; AT_MATURITY и PRICE_QUANTITY принудительно устанавливают frequency равной 1; PRICE_QUANTITY не принимает day_count; любая другая комбинация требует корректного day_count.
Развязанные правила подсчёта дней (для продвинутых)
day_count обычно задаёт сразу три вещи. Когда инструменту нужны разные базы по разным осям, переопределите их по отдельности — каждое поле необязательно и при отсутствии откатывается к day_count:
| Поле | Ось, которой оно управляет |
|---|---|
accrual_day_count | накопленный купонный доход (coupon corrido) |
coupon_day_count | сумма купона при ACCRUAL |
discount_day_count | показатель степени времени дисконтирования t (приведённая стоимость) |
Например, доминиканские государственные облигации ACT/ACT начисляют накопленный доход по базе эмитента 365/366, но дисконтируют по рыночным / ICMA периодам — это моделируется как day_count: ACT/ACT.DRMH с discount_day_count: ACT/ACT.ICMA.
Узнайте, что поддерживается
curl https://calc.dev.emrgex.com/v1/admin/conventions
Возвращает каждый rate_type и day_count с описанием, а также формат calculation_code.