Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Funciones financieras

financialInternalRateOfReturn

Introducido en: v25.7.0

Calcula la tasa interna de retorno (TIR) para una serie de flujos de caja que se producen a intervalos regulares. La TIR es la tasa de descuento para la que el valor actual neto (VAN) es igual a cero.

La TIR busca resolver la siguiente ecuación:

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

Sintaxis

financialInternalRateOfReturn(cashflows[, guess])

Argumentos

  • cashflows — Array de flujos de caja. Cada valor representa un pago (valor negativo) o un ingreso (valor positivo). Array(Int8/16/32/64) o Array(Float*)
  • [, guess] — Estimación inicial opcional (valor constante) de la tasa interna de retorno (valor predeterminado: 0.1). Float*

Valor devuelto

Devuelve la tasa interna de retorno o NaN si el cálculo no converge, el array de entrada está vacío o solo tiene un elemento, todos los flujos de caja son cero o se producen otros errores de cálculo. Float64

Ejemplos

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

Introducido en: v25.7.0

Calcula la Tasa Interna de Retorno Extendida (XIRR) para una serie de flujos de caja que ocurren en intervalos irregulares. XIRR es la tasa de descuento a la que el valor actual neto (VPN) de todos los flujos de caja es igual a cero.

XIRR intenta resolver la siguiente ecuación (ejemplo para ACT_365F):

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

Los arrays deben estar ordenados por fecha en orden ascendente. Las fechas deben ser únicas.

Sintaxis

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

Argumentos

  • cashflow — Un array de flujos de caja correspondientes a las fechas del segundo parámetro. Array(Int8/16/32/64) o Array(Float*)
  • date — Un array ordenado de fechas únicas correspondientes a los flujos de caja. Array(Date) o Array(Date32)
  • [, guess] — Opcional. Estimación inicial (valor constante) para el cálculo de XIRR. Float*
  • [, daycount] — Convención de conteo de días opcional (por defecto ‘ACT_365F’). Valores admitidos:
  • ‘ACT_365F’ - Real/365 Fijo: utiliza el número real de días entre fechas dividido entre 365
  • ‘ACT_365_25’ - Real/365.25: utiliza el número real de días entre fechas dividido entre 365.25 String

Valor devuelto

Devuelve el valor XIRR. Si el cálculo no puede realizarse, devuelve NaN. Float64

Ejemplos

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

Introducido en: v25.7.0

Calcula el valor actual neto (VAN) de una serie de flujos de caja, con intervalos de tiempo iguales entre cada flujo de caja.

Variante predeterminada (start_from_zero = true):

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

Variante compatible con Excel (start_from_zero = false):

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

Sintaxis

financialNetPresentValue(rate, cashflows[, start_from_zero])

Argumentos

  • rate — La tasa de descuento que se aplica. Float*
  • cashflows — Array de flujos de caja. Cada valor representa un pago (valor negativo) o un ingreso (valor positivo). Array(Int8/16/32/64) o Array(Float*)
  • [, start_from_zero] — Parámetro booleano opcional que indica si el cálculo del NPV debe comenzar en el período 0 (true) o en el período 1 (false, compatible con Excel). Valor predeterminado: true. Bool

Valor devuelto

Devuelve el valor actual neto como un valor de tipo Float64. Float64

Ejemplos

default_calculation

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

cálculo_compatible_con_Excel

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

financialNetPresentValueExtended

Introducido en: v25.7.0

Calcula el valor actual neto Extendido (XNPV) para una serie de flujos de caja que ocurren a intervalos irregulares. XNPV tiene en cuenta el momento exacto de cada flujo de caja al calcular el valor presente.

Ecuación XNPV para ACT_365F:

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

Los arrays deben estar ordenados por fecha en orden ascendente. Las fechas deben ser únicas.

Sintaxis

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

Argumentos

  • rate — La tasa de descuento a aplicar. Float*
  • cashflows — Array de flujos de caja. Cada valor representa un pago (valor negativo) o un ingreso (valor positivo). Debe contener al menos un valor positivo y uno negativo. Array(Int8/16/32/64) o Array(Float*)
  • dates — Array de fechas correspondientes a cada flujo de caja. Debe tener el mismo tamaño que el array de cashflows. Array(Date) o Array(Date32)
  • [, daycount] — Convención de conteo de días opcional. Valores admitidos: 'ACT_365F' (predeterminado) — Real/365 fijo, 'ACT_365_25' — Real/365.25. String

Valor devuelto

Devuelve el valor actual neto como un valor Float64. Float64

Ejemplos

Uso básico

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

Uso de una convención de conteo de días diferente

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