컨벤션
emrgex의 계산은 상호 독립적이며 전 세계적으로 통용되는 세 가지 축으로 정의됩니다. 독자적인 코드 같은 것은 없습니다. 복리 방식, 일수 계산 방식, 쿠폰 산식을 각각 독립적으로 선택하며, 각 항목은 시장 참여자라면 누구나 식별할 수 있는 명칭으로 지정합니다.
1. rate_type — 복리 / 호가 기준
할인 시 수익률이 어떻게 복리로 적용되는지를 나타냅니다.
rate_type | 의미 | 할인 방식 |
|---|---|---|
NOMINAL | 연 frequency회 복리로 적용되는 명목금리 (시장 관행상의 YTM) | (1 + y/f)^(-f·t) |
EFFECTIVE | 실효연이율 | (1 + y)^(-t) |
AT_MATURITY | 단기금융시장의 단리 할인 (T-bill / Letras) | 1 / (1 + y·t) |
PRICE_QUANTITY | 주식 / 펀드 NAV 직접 산출: 가치 = 가격 × 수량 (할인 없음; 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 Rule 251; 정상 기간은 1/f로 단순화됨 |
ACT/ACT.ISMA | ICMA의 별칭 |
ACT/ACT.AFB | AFB 1994 |
ACT/360 | 단기금융시장 |
ACT/365.FIXED | |
ACT/365L | 윤년을 반영한 분모 |
ACT/364 | |
30/360 | 미국식 / Bond Basis |
30E/360 | 유로본드 |
30E/360.ISDA | + 2월 만기 규칙 |
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은 what-if 분석을 위해 상품에 설정된 값을 덮어씁니다.
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 형식도 함께 제공합니다.