Convenções
Um cálculo no emrgex é definido por três eixos independentes e reconhecidos globalmente — não há códigos proprietários. Você escolhe a capitalização, a contagem de dias e a fórmula do cupom de forma independente, cada uma a partir de um nome que qualquer participante do mercado consegue identificar.
1. rate_type — base de capitalização / cotação
Como o rendimento capitaliza ao descontar.
rate_type | Significado | Desconto |
|---|---|---|
NOMINAL | taxa nominal capitalizada frequency×/ano (YTM de mercado) | (1 + y/f)^(-f·t) |
EFFECTIVE | taxa efetiva anual | (1 + y)^(-t) |
AT_MATURITY | desconto simples de mercado monetário (T-bills / Letras) | 1 / (1 + y·t) |
PRICE_QUANTITY | repasse de NAV de ações / fundos: valor = preço × quantidade (sem desconto; sem day_count) | — |
2. day_count — convenção de fração de ano (FpML / ISDA)
Como o tempo é medido, nomeado conforme a taxonomia FpML / ISDA 2006 §4.16.
| Nome | Observações |
|---|---|
ACT/ACT.ISDA | ISDA §4.16(b), dividido na fronteira do ano |
ACT/ACT.ICMA | ISDA §4.16(c) / ICMA Rule 251; um período regular se reduz a 1/f |
ACT/ACT.ISMA | apelido de ICMA |
ACT/ACT.AFB | AFB 1994 |
ACT/360 | mercado monetário |
ACT/365.FIXED | |
ACT/365L | denominador ciente de anos bissextos |
ACT/364 | |
30/360 | US / Bond Basis |
30E/360 | Eurobond |
30E/360.ISDA | + regra de vencimento em fevereiro |
30/360.GERMAN | apelido de 30E/360.ISDA |
1/1 | degenerado, para completude do FpML |
BUS/252 | Brasil B3 / ANBIMA: dias úteis / 252, usando o calendário de feriados ANBIMA embutido. Bit-exact em relação ao Tesouro Direto LTN / NTN-F |
ACT/ACT.DRMH | base do governo da República Dominicana (Ministerio de Hacienda): dias reais / dias reais na janela de 12 meses que termina na data de pagamento. Verificado em relação às bases publicadas pelo emissor |
3. coupon_type — como o valor do cupom é calculado
coupon_type | Cupom por período | Usado para |
|---|---|---|
FIXED (padrão) | coupon_rate / frequency × outstanding | títulos convencionais de taxa fixa (Treasuries, corporativos, Eurobonds) |
ACCRUAL | coupon_rate × yearFraction(day_count) × outstanding | títulos de mercado monetário e de mercado local cujo cupom acompanha a duração do período |
Os dois coincidem sob ACT/ACT.ICMA e 30E/360 (um período regular é exatamente 1/f) e
divergem sob contagens de dias reais (ACT/365, ACT/360, ACT/ACT.ISDA). Um
options.coupon_type por cotação sobrepõe a configuração do instrumento para análise de cenários.
calculation_code — o identificador global
Todo instrumento expõe um calculation_code: a junção de seus dois eixos principais,
<day_count>|<rate_type>. Ele é derivado da convenção, nunca uma entrada que a sobreponha.
ACT/ACT.ISDA|NOMINAL ACT/360|AT_MATURITY 30E/360|EFFECTIVE PRICE_QUANTITY
PRICE_QUANTITY não tem contagem de dias, então seu código é apenas PRICE_QUANTITY.
Matriz de combinação
Os eixos são ortogonais — qualquer rate_type combina com qualquer 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 |
Regras de validade: NOMINAL / EFFECTIVE exigem uma frequency positiva; AT_MATURITY e
PRICE_QUANTITY forçam a frequency a 1; PRICE_QUANTITY não recebe day_count; toda outra
combinação exige um day_count válido.
Contagens de dias desacopladas (avançado)
day_count normalmente controla três coisas ao mesmo tempo. Quando um instrumento precisa de bases diferentes por
eixo, sobreponha-as individualmente — cada uma é opcional e recai sobre day_count:
| Campo | Eixo que controla |
|---|---|
accrual_day_count | juros acumulados (coupon corrido) |
coupon_day_count | o valor do cupom ACCRUAL |
discount_day_count | o expoente de tempo de desconto t (valor presente) |
Por exemplo, os títulos ACT/ACT do governo dominicano acumulam juros sobre a base 365/366 do emissor mas descontam
sobre períodos de mercado/ICMA — modelados como day_count: ACT/ACT.DRMH com
discount_day_count: ACT/ACT.ICMA.
Descubra o que é suportado
curl https://calc.dev.emrgex.com/v1/admin/conventions
Retorna todos os rate_type e day_count com uma descrição, além do formato do calculation_code.