跳转到主要内容
以下文档由 system.functions 系统表生成

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*
返回值 返回内部收益率;如果计算无法收敛、输入数组为空或仅包含一个元素、所有现金流均为零,或发生其他计算错误,则返回 NaNFloat64 示例 simple_example
Query
SELECT financialInternalRateOfReturn([-100, 39, 59, 55, 20])
Response
0.2809484211599611
带估算的简单示例
Query
SELECT financialInternalRateOfReturn([-100, 39, 59, 55, 20], 0.1)
Response
0.2809484211599611

financialInternalRateOfReturnExtended

引入版本:v25.7.0 计算一系列发生在不规则时间间隔上的现金流的扩展内部收益率(XIRR)。XIRR 是使所有现金流的净现值(NPV)等于零的折现率。 XIRR 尝试求解以下方程(以 ACT_365F 为例): i=0ncashflowi(1+rate)(dateidate0)/365=0\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
Query
SELECT financialInternalRateOfReturnExtended([-10000, 5750, 4250, 3250], [toDate('2020-01-01'), toDate('2020-03-01'), toDate('2020-10-30'), toDate('2021-02-15')])
Response
0.6342972615260243
simple_example_with_guess
Query
SELECT financialInternalRateOfReturnExtended([-10000, 5750, 4250, 3250], [toDate('2020-01-01'), toDate('2020-03-01'), toDate('2020-10-30'), toDate('2021-02-15')], 0.5)
Response
0.6342972615260243
simple_example_daycount
Query
SELECT round(financialInternalRateOfReturnExtended([100000, -110000], [toDate('2020-01-01'), toDate('2021-01-01')], 0.1, 'ACT_365_25'), 6) AS xirr_365_25
Response
0.099785

financialNetPresentValue

引入版本: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
Query
SELECT financialNetPresentValue(0.08, [-40000., 5000., 8000., 12000., 30000.])
Response
3065.2226681795255
Excel 兼容计算
Query
SELECT financialNetPresentValue(0.08, [-40000., 5000., 8000., 12000., 30000.], false)
Response
2838.1691372032656

financialNetPresentValueExtended

引入版本:v25.7.0 计算一系列发生在不规则时间间隔上的现金流的扩展净现值(XNPV)。XNPV 在计算现值时会考虑每笔现金流的具体发生时间。 ACT_365F 的 XNPV 计算公式: XNPV=i=1ncashflowi(1+rate)(dateidate0)/365XNPV=\sum_{i=1}^n \frac{cashflow_i}{(1 + rate)^{(date_i - date_0)/365}} 数组应按日期升序排列,且日期不得重复。 语法
financialNetPresentValueExtended(rate, cashflows, dates[, daycount])
参数
  • 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
返回值 以 Float64 类型返回净现值。Float64 示例 基本用法
Query
SELECT financialNetPresentValueExtended(0.1, [-10000., 5750., 4250., 3250.], [toDate('2020-01-01'), toDate('2020-03-01'), toDate('2020-10-30'), toDate('2021-02-15')])
Response
2506.579458169746
使用不同的日计数惯例
Query
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')
Response
2507.067268742502
最后修改于 2026年6月10日