FIBRA - Fixed Income Brazil. Government and Corporate Bonds Pricing.
O módulo permite precificar títulos públicos federais e corporativos do Brasil.
Com o Fibra é possível calcular o preço dos seguintes títulos (bonds available):
- NTN-B: Nota do Tesouro Nacional Série B.
- NTN-F: Nota do Tesouro Nacional Série F.
- LTN: Letra do Tesouro Nacional.
- Percentual CDI.
- DI Spread.
- IPCA Spread.
No jupyter notebook comece por (start with jupyter notebook):
%run ../docs/fibra.py
bond = Bond(date="2021-03-29", maturity="2050-08-15", ytm=4.3023, coupon=6, freq=2)bond.schedule()
| Date |
|---|
| 2021-08-16 |
| 2022-02-15 |
| 2022-08-15 |
| 2023-02-15 |
| 2023-08-15 |
| 2024-02-15 |
| 2024-08-15 |
| 2025-02-17 |
| 2025-08-15 |
| 2026-02-18 |
bond.cashflow()
| Date | Days | Years | Cash Flows | PV of Cash Flows |
|---|---|---|---|---|
| 2021-08-16 | 97 | 0.384921 | 2.9563 | 2.908753 |
| 2022-02-15 | 224 | 0.888889 | 2.9563 | 2.847654 |
| 2022-08-15 | 348 | 1.380952 | 2.9563 | 2.789238 |
| 2023-02-15 | 476 | 1.888889 | 2.9563 | 2.730193 |
| 2023-08-15 | 599 | 2.376984 | 2.9563 | 2.674633 |
| 2024-02-15 | 723 | 2.869048 | 2.9563 | 2.619766 |
| 2024-08-15 | 850 | 3.373016 | 2.9563 | 2.564738 |
| 2025-02-17 | 979 | 3.884921 | 2.9563 | 2.510026 |
| 2025-08-15 | 1102 | 4.373016 | 2.9563 | 2.458946 |
bond.des()
| Days | |
|---|---|
| Convention | BUS/252 |
| Frequency | Semi-annual |
| Current date | 2021-03-29 |
| Maturity date | 2050-08-15 |
| Last coupon date | 2021-02-15 |
| Next coupon date | 2021-08-16 |
| Days to next coupon | 97 |
| Remaining payments | 59 |
| Term to maturity | 29.29 |
| Coupon rate | 6.00 |
| Coupon value | 2.9563 |
| Nominal value | 100.00 |
| Price | 128.544273 |
| Yield to matutity | 4.3023 |
| Current yield | 4.6677 |
| Duration | 15.8254 |
| Modified Duration | 15.1726 |
| DV01 | 0.195 |
| Convexity | 341.0802 |
| Sensibility | -13.4672 |
- DATA: Data de referência para o cálculo do preço do ativo.
- VNE: Valor Nominal de Emissão.
- VNA: Valor Nominal Atualizado na data de referência.
- PU: Preço Unitário do título ao Par (marcado na curva).
- TAXA: Taxa indicativa (taxa de mercado) da ANBIMA.
- FREQ: Frequência de pagamentos (1: Anual, 2: Semestral, 3: Trimestral, etc).
DATA_natura = DATA_REF
VNE_natura = 10000
VNA_natura = 10000
PU_natura = 10170.808970
TAXA_natura = 0.7883
FREQ_natura = 2
Calendário de eventos (The events calendar - dictionary object):
cal_natura = {"2021-09-27": 1}Declare a classe DebentureSpread (Declare class DebentureSpread):
natura = DebentureSpread(date=DATA_natura, maturity="2021-09-25", vne=VNE_natura, vna=VNA_natura, pu=PU_natura,
issue_spread=1.75, market_spread=TAXA_natura, freq=FREQ_natura, redemption=cal_natura,
yield_curve_file=YIELD_CURVE_PATH)natura.des()
| Debenture DI Spread | |
|---|---|
| Convention | DI Spread |
| Frequency | Semi-annual |
| Date | 2021-03-18 |
| Maturity | 2021-09-25 |
| Last payment date | 2020-09-25 |
| Next payment date | 2021-03-25 |
| Days to next payment | 5 |
| Remaining payments | 2 |
| Term to maturity | 0.53 |
| VNE | 10000.000000 |
| VNA | 10000.000000 |
| PU Par | 10170.808970 |
| Price | 10221.045950 |
| Price/Par ratio | 100.49% |
| Issue rate | 1.7500% |
| Market rate | 0.7883% |
| Duration | 0.52 |
natura.cashflow()
| Date | Days | DI | VNA | Interests | Redemptions | Payments | PV of Cash Flows |
|---|---|---|---|---|---|---|---|
| 2021-03-25 | 5 | 2.645583 | 10000.0 | 179.583171 | 0.0 | 179.583171 | 179.462193 |
| 2021-09-27 | 133 | 3.974169 | 10000.0 | 292.831916 | 10000.0 | 10292.831916 | 10041.583758 |
Veja alguns exemplos de uso em Bonds.ipynb e Debentures.ipynb.
See more in Bonds.ipynb and Debentures.ipynb.