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’ - 实际/365 固定:使用日期间的实际天数除以 365
- ‘ACT_365_25’ - 实际/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) ,并假定每笔现金流之间的时间间隔相等。
默认 Variant (start_from_zero = true) :
\sum_{i=0}^{N-1} \frac{values_i}{(1 + rate)^i}与 Excel 兼容的 Variant (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 兼容计算
SELECT financialNetPresentValue(0.08, [-40000., 5000., 8000., 12000., 30000.], false)2838.1691372032656financialNetPresentValueExtended
Introduced in: 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])Arguments
rate— 要应用的折现率。Float*cashflows— 现金流数组。每个值表示付款(负值)或收入(正值)。必须至少包含一个正值和一个负值。Array(Int8/16/32/64)或Array(Float*)dates— 与每笔现金流对应的日期数组。必须与 cashflows 数组大小相同。Array(Date)或Array(Date32)[, daycount]— 可选的日计数惯例。支持的值:'ACT_365F'(默认)— 实际/365 固定,'ACT_365_25'— 实际/365.25。String
Returned value
以 Float64 值返回净现值。Float64
Examples
基本用法
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