financialInternalRateOfReturn
Добавленный в: v25.7.0
Вычисляет внутреннюю норму доходности (IRR) для серии денежных потоков, возникающих через равные промежутки времени. IRR — это ставка дисконтирования, при которой чистая приведённая стоимость (NPV) равна нулю.
IRR находится из следующего уравнения:
\sum_{i=0}^n \frac{cashflow_i}{(1 + irr)^i} = 0Синтаксис
financialInternalRateOfReturn(cashflows[, guess])Аргументы
cashflows— Массив денежных потоков. Каждое значение представляет собой выплату (отрицательное значение) или поступление (положительное значение).Array(Int8/16/32/64)илиArray(Float*)[, guess]— Необязательное начальное приближение (постоянное значение) для внутренней нормы доходности (по умолчанию 0.1).Float*
Возвращаемое значение
Возвращает внутреннюю норму доходности или NaN, если вычисление не сходится, входной массив пуст или содержит только один элемент, все денежные потоки равны нулю или возникают другие ошибки вычисления. Float64
Примеры
simple_example
SELECT financialInternalRateOfReturn([-100, 39, 59, 55, 20])0.2809484211599611простой_пример_с_подбором
SELECT financialInternalRateOfReturn([-100, 39, 59, 55, 20], 0.1)0.2809484211599611financialInternalRateOfReturnExtended
Добавленный в: v25.7.0
Вычисляет расширенную внутреннюю норму доходности (XIRR) для серии денежных потоков, возникающих через нерегулярные интервалы. XIRR — это ставка дисконтирования, при которой чистая приведённая стоимость (NPV) всех денежных потоков равна нулю.
XIRR решает следующее уравнение (пример для ACT_365F):
\sum_{i=0}^n \frac{cashflow_i}{(1 + rate)^{(date_i - date_0)/365}} = 0Массивы должны быть отсортированы по дате в порядке возрастания. Даты должны быть уникальными.
Синтаксис
financialInternalRateOfReturnExtended(cashflow, date [, guess, daycount])Аргументы
cashflow— Массив денежных потоков, соответствующих датам во втором параметре.Array(Int8/16/32/64)илиArray(Float*)date— Отсортированный массив уникальных дат, соответствующих денежным потокам.Array(Date)илиArray(Date32)[, guess]— Необязательный. Начальное приближение (константное значение) для вычисления XIRR.Float*[, daycount]— Необязательное соглашение о подсчёте дней (по умолчанию ‘ACT_365F’). Поддерживаемые значения:- ‘ACT_365F’ - Actual/365 Fixed: фактическое количество дней между датами, делённое на 365
- ‘ACT_365_25’ - Actual/365.25: фактическое количество дней между датами, делённое на 365.25
String
Возвращаемое значение
Возвращает значение XIRR. Если вычисление невозможно выполнить, возвращает NaN. Float64
Примеры
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.6342972615260243simple_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.6342972615260243simple_example_daycount
SELECT round(financialInternalRateOfReturnExtended([100000, -110000], [toDate('2020-01-01'), toDate('2021-01-01')], 0.1, 'ACT_365_25'), 6) AS xirr_365_250.099785financialNetPresentValue
Добавленный в: v25.7.0
Вычисляет чистую приведённую стоимость (NPV) серии денежных потоков, предполагая равные временные интервалы между денежными потоками.
Вариант по умолчанию (start_from_zero = true):
\sum_{i=0}^{N-1} \frac{values_i}{(1 + rate)^i}Вариант, совместимый с Excel (start_from_zero = false):
\sum_{i=1}^{N} \frac{values_i}{(1 + rate)^i}Синтаксис
financialNetPresentValue(rate, cashflows[, start_from_zero])Аргументы
rate— Ставка дисконтирования, которую нужно применить.Float*cashflows— Массив денежных потоков. Каждое значение представляет собой выплату (отрицательное значение) или доход (положительное значение).Array(Int8/16/32/64)илиArray(Float*)[, start_from_zero]— Необязательный логический параметр, указывающий, следует ли начинать вычисление NPV с периода0(true) или с периода1(false, совместимо с Excel). По умолчанию: true.Bool
Возвращаемое значение
Возвращает чистую приведенную стоимость в виде значения Float64. Float64
Примеры
default_calculation
SELECT financialNetPresentValue(0.08, [-40000., 5000., 8000., 12000., 30000.])3065.2226681795255excel_compatible_calculation
SELECT financialNetPresentValue(0.08, [-40000., 5000., 8000., 12000., 30000.], false)2838.1691372032656financialNetPresentValueExtended
Добавленный в: v25.7.0
Вычисляет расширенную чистую приведённую стоимость (XNPV) для серии денежных потоков, возникающих через нерегулярные интервалы. XNPV учитывает конкретное время каждого денежного потока при вычислении приведённой стоимости.
XNPV equation for ACT_365F:
XNPV=\sum_{i=1}^n \frac{cashflow_i}{(1 + rate)^{(date_i - date_0)/365}}Массивы должны быть отсортированы по дате в порядке возрастания. Даты должны быть уникальными.
Syntax
financialNetPresentValueExtended(rate, cashflows, dates[, daycount])Аргументы
rate— Ставка дисконтирования.Float*cashflows— Массив денежных потоков. Каждое значение представляет платёж (отрицательное значение) или доход (положительное значение). Должен содержать хотя бы одно положительное и одно отрицательное значение.Array(Int8/16/32/64)илиArray(Float*)dates— Массив дат, соответствующих каждому денежному потоку. Должен иметь тот же размер, что и массив cashflows.Array(Date)илиArray(Date32)[, daycount]— Необязательное соглашение о подсчёте дней. Поддерживаемые значения:'ACT_365F'(по умолчанию) — Actual/365 Fixed,'ACT_365_25'— Actual/365.25.String
Возвращаемое значение
Возвращает чистую приведённую стоимость в виде значения Float64. Float64
Примеры
Базовое использование
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Использование другого соглашения о подсчёте дней
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