Interpolador
Classe interpoladora para interpolação de taxas de juros.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dias_uteis
|
ArrayLike
|
Sequência de dias úteis (DU) conhecidos. |
required |
taxas
|
ArrayLike
|
Sequência de taxas de juros conhecidas. |
required |
metodo
|
Literal['flat_forward', 'linear']
|
Método de interpolação a usar. Opções: "flat_forward" ou "linear". |
required |
extrapolar
|
bool
|
Controla apenas o comportamento na ponta longa (DU acima do maior vértice conhecido). Se True, retorna a última taxa conhecida; se False (padrão), retorna NaN. A ponta curta (DU abaixo do menor vértice) sempre retorna a primeira taxa conhecida, independentemente desta flag. |
False
|
Notes
- Esta classe usa convenção de 252 dias úteis por ano.
- Instâncias desta classe são imutáveis. Para modificar as configurações de interpolação, crie uma nova instância.
Examples:
Interpolação linear:
Interpolação flat forward:
Se extrapolação estiver habilitada, a última taxa conhecida é usada:
>>> fforward_extrap = Interpolador(dus, txs, "flat_forward", extrapolar=True)
>>> print(fforward_extrap(100))
0.055
Source code in pyield/interpolador.py
linear(du, k)
Realiza interpolação de taxa de juros usando o método linear.
A taxa interpolada é dada pela fórmula: y = y1 + (x - x1) * (y2 - y1) / (x2 - x1)
Onde: - (x, y) é o ponto a ser interpolado (du, tx_interpolada). - (x1, y1) é o ponto conhecido anterior (du_j, tx_j). - (x2, y2) é o próximo ponto conhecido (du_k, tx_k).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
du
|
int
|
Número de dias úteis (DU) para os quais a taxa será interpolada. |
required |
k
|
int
|
O índice tal que dus[k-1] < du < dus[k]. |
required |
Returns:
| Type | Description |
|---|---|
float
|
Taxa de juros interpolada em forma decimal. |
Source code in pyield/interpolador.py
flat_forward(du, k)
Realiza interpolação de taxa de juros usando o método flat forward.
Este método calcula a taxa de juros interpolada para um dado número de
dias úteis (du) usando a metodologia flat forward, baseada em dois
pontos conhecidos: o ponto atual (k) e o ponto anterior (j).
Assumindo taxas de juros em forma decimal, a taxa interpolada é calculada. O tempo é medido em anos baseado em 252 dias úteis por ano.
Definindo os fatores simples:
- fⱼ = 1 + txⱼ
- fₖ = 1 + txₖ
A taxa interpolada é dada pela fórmula:
Onde os fatores usados na fórmula são definidos como:
- Fⱼ = fⱼ^auⱼ é o fator acumulado no ponto j.
- Fₖ = fₖ^auₖ é o fator acumulado no ponto k.
- fₜ = (au - auⱼ)/(auₖ - auⱼ) é o fator de tempo.
E as variáveis são definidas como:
- au = du/252 é o tempo em anos para o ponto interpolado. du
é o número de dias úteis para o ponto interpolado (entrada deste método).
- k é o índice do ponto conhecido atual.
- auₖ = duₖ/252 é o tempo em anos do ponto k.
- txₖ é a taxa de juros (decimal) no ponto k.
- j é o índice do ponto conhecido anterior (k - 1).
- auⱼ = duⱼ/252 é o tempo em anos do ponto j.
- txⱼ é a taxa de juros (decimal) no ponto j.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
du
|
int
|
Número de dias úteis (DU) para os quais a taxa será interpolada. |
required |
k
|
int
|
Índice tal que |
required |
Returns:
| Type | Description |
|---|---|
float
|
Taxa de juros interpolada em forma decimal. |
Source code in pyield/interpolador.py
interpolar(du)
Interpola a taxa para um único dia útil.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
du
|
int
|
DU escalar inteiro para interpolação. |
required |
Returns:
| Type | Description |
|---|---|
float
|
Taxa interpolada como float. Retorna |
float
|
for negativo ou estiver acima do maior vértice conhecido com |
float
|
|
float
|
a primeira taxa conhecida. |
Raises:
| Type | Description |
|---|---|
TypeError
|
Se |