Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Funções financeiras

financialInternalRateOfReturn

Introduzido em: v25.7.0

Calcula a Taxa Interna de Retorno (IRR) para uma série de fluxos de caixa que ocorrem em intervalos regulares. A IRR é a taxa de desconto para a qual o Valor Presente Líquido (VPL) é igual a zero.

A IRR busca resolver a seguinte equação:

\sum_{i=0}^n \frac{cashflow_i}{(1 + irr)^i} = 0

Sintaxe

financialInternalRateOfReturn(cashflows[, guess])

Argumentos

  • cashflows — Array de fluxos de caixa. Cada valor representa um pagamento (valor negativo) ou uma entrada (valor positivo). Array(Int8/16/32/64) ou Array(Float*)
  • [, guess] — Estimativa inicial opcional (valor constante) para a taxa interna de retorno (padrão: 0.1). Float*

Valor retornado

Retorna a taxa interna de retorno ou NaN se o cálculo não convergir, se o array de entrada estiver vazio ou contiver apenas um elemento, se todos os fluxos de caixa forem zero ou se ocorrerem outros erros de cálculo. Float64

Exemplos

simple_example

SELECT financialInternalRateOfReturn([-100, 39, 59, 55, 20])
0.2809484211599611

simple_example_with_guess

SELECT financialInternalRateOfReturn([-100, 39, 59, 55, 20], 0.1)
0.2809484211599611

financialInternalRateOfReturnExtended

Introduzido em: v25.7.0

Calcula a Taxa Interna de Retorno Estendida (XIRR) para uma série de fluxos de caixa que ocorrem em intervalos irregulares. O XIRR é a taxa de desconto na qual o valor presente líquido (VPL) de todos os fluxos de caixa é igual a zero.

O XIRR tenta resolver a seguinte equação (exemplo para ACT_365F):

\sum_{i=0}^n \frac{cashflow_i}{(1 + rate)^{(date_i - date_0)/365}} = 0

Os arrays devem estar ordenados por data em ordem crescente. As datas devem ser únicas.

Syntax

financialInternalRateOfReturnExtended(cashflow, date [, guess, daycount])

Arguments

  • cashflow — Um array de fluxos de caixa correspondentes às datas no segundo parâmetro. Array(Int8/16/32/64) ou Array(Float*)
  • date — Um array ordenado de datas únicas correspondentes aos fluxos de caixa. Array(Date) ou Array(Date32)
  • [, guess] — Opcional. Estimativa inicial (valor constante) para o cálculo do XIRR. Float*
  • [, daycount] — Convenção de contagem de dias opcional (padrão: ‘ACT_365F’). Valores suportados:
  • ‘ACT_365F’ - Actual/365 Fixed: Usa o número real de dias entre as datas dividido por 365
  • ‘ACT_365_25’ - Actual/365.25: Usa o número real de dias entre as datas dividido por 365,25 String

Returned value

Retorna o valor do XIRR. Se o cálculo não puder ser realizado, retorna NaN. Float64

Examples

simple_example

SELECT financialInternalRateOfReturnExtended([-10000, 5750, 4250, 3250], [toDate('2020-01-01'), toDate('2020-03-01'), toDate('2020-10-30'), toDate('2021-02-15')])
0.6342972615260243

simple_example_with_guess

SELECT financialInternalRateOfReturnExtended([-10000, 5750, 4250, 3250], [toDate('2020-01-01'), toDate('2020-03-01'), toDate('2020-10-30'), toDate('2021-02-15')], 0.5)
0.6342972615260243

simple_example_daycount

SELECT round(financialInternalRateOfReturnExtended([100000, -110000], [toDate('2020-01-01'), toDate('2021-01-01')], 0.1, 'ACT_365_25'), 6) AS xirr_365_25
0.099785

financialNetPresentValue

Introduzido em: v25.7.0

Calcula o Valor Presente Líquido (VPL) de uma série de fluxos de caixa, considerando intervalos de tempo iguais entre os fluxos de caixa.

Variante padrão (start_from_zero = true):

\sum_{i=0}^{N-1} \frac{values_i}{(1 + rate)^i}

Variante compatível com o Excel (start_from_zero = false):

\sum_{i=1}^{N} \frac{values_i}{(1 + rate)^i}

Sintaxe

financialNetPresentValue(rate, cashflows[, start_from_zero])

Argumentos

  • rate — A taxa de desconto a ser aplicada. Float*
  • cashflows — Array de fluxos de caixa. Cada valor representa um pagamento (valor negativo) ou uma entrada (valor positivo). Array(Int8/16/32/64) ou Array(Float*)
  • [, start_from_zero] — Parâmetro booleano opcional que indica se o cálculo do VPL deve começar no período 0 (true) ou no período 1 (false, compatível com o Excel). Padrão: true. Bool

Valor retornado

Retorna o valor presente líquido como um valor do tipo Float64. Float64

Exemplos

default_calculation

SELECT financialNetPresentValue(0.08, [-40000., 5000., 8000., 12000., 30000.])
3065.2226681795255

cálculo_compatível_com_excel

SELECT financialNetPresentValue(0.08, [-40000., 5000., 8000., 12000., 30000.], false)
2838.1691372032656

financialNetPresentValueExtended

Introduced in: v25.7.0

Calculates the Extended Valor Presente Líquido (XNPV) for a series of fluxo de caixa occurring at irregular intervals. XNPV considers the specific timing of each fluxo de caixa when calculating present value.

XNPV equation for ACT_365F:

XNPV=\sum_{i=1}^n \frac{cashflow_i}{(1 + rate)^{(date_i - date_0)/365}}

Arrays should be sorted by date in ascending order. Dates need to be unique.

Syntax

financialNetPresentValueExtended(rate, cashflows, dates[, daycount])

Arguments

  • rate — The taxa de desconto to apply. Float*
  • cashflows — Array of fluxo de caixa. Each value represents a payment (negative value) or entrada (positive value). Must contain at least one positive and one negative value. Array(Int8/16/32/64) or Array(Float*)
  • dates — Array of dates corresponding to each fluxo de caixa. Must have the same size as cashflows array. Array(Date) or Array(Date32)
  • [, daycount] — Optional convenção de contagem de dias. Supported values: 'ACT_365F' (default) — Actual/365 Fixed, 'ACT_365_25' — Actual/365.25. String

Returned value

Returns the valor presente líquido as a Float64 value. Float64

Examples

Basic usage

SELECT financialNetPresentValueExtended(0.1, [-10000., 5750., 4250., 3250.], [toDate('2020-01-01'), toDate('2020-03-01'), toDate('2020-10-30'), toDate('2021-02-15')])
2506.579458169746

Using different convenção de contagem de dias

SELECT financialNetPresentValueExtended(0.1, [-10000., 5750., 4250., 3250.], [toDate('2020-01-01'), toDate('2020-03-01'), toDate('2020-10-30'), toDate('2021-02-15')], 'ACT_365_25')
2507.067268742502
Navigation