規約(コンベンション)
emrgex における計算は、3つの独立した、世界共通で認知された軸によって定義されます。独自コードは一切ありません。複利計算方式、デイカウント、クーポン計算式をそれぞれ独立に、市場の誰もが識別できる名称の中から選択します。
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 | 株式 / ファンド基準価額のパススルー:value = 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 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 | クーポンが期間の長さに連動するマネーマーケット債および現地市場債 |
この2つは ACT/ACT.ICMA および 30E/360(レギュラー期間がちょうど 1/f になる)の下では一致し、実日数ベースのデイカウント(ACT/365、ACT/360、ACT/ACT.ISDA)の下では乖離します。クォートごとの options.coupon_type は、ホワットイフ分析のために商品の設定を上書きします。
calculation_code — グローバル識別子
すべての商品は calculation_code を公開します。これは2つの主要な軸を結合したもので、<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 は通常、3つの事柄を同時に駆動します。商品が軸ごとに異なるベースを必要とする場合は、それぞれを個別に上書きします。各項目は任意であり、未指定の場合は 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 の形式を返します。