본문으로 바로가기
본문으로 바로가기

금융 함수

참고

아래 문서는 system.functions 시스템 테이블을 기반으로 생성되었습니다

financialInternalRateOfReturn

도입된 버전: v25.7

일정한 간격으로 발생하는 일련의 현금 흐름에 대한 내부수익률(Internal Rate of Return, IRR)을 계산합니다. IRR은 순현재가치(Net Present Value, NPV)가 0이 되도록 하는 할인율입니다.

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*

반환 값

내부 수익률을 반환하며, 계산이 수렴하지 않거나, 입력 배열이 비어 있거나 요소가 하나뿐이거나, 모든 현금 흐름이 0이거나, 기타 계산 오류가 발생한 경우 NaN을 반환합니다. Float64

예시

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

Introduced in: v25.7

Calculates the Extended Internal Rate of Return (XIRR) for a series of cash flows occurring at irregular intervals. XIRR is the discount rate at which the net present value (NPV) of all cash flows equals zero.

XIRR attempts to solve the following equation (example for ACT_365F):

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

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

Syntax

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

Returned value

Returns the XIRR value. If the calculation cannot be performed, it returns 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

도입 버전: v25.7

각 현금 흐름 사이의 시간 간격이 동일하다고 가정하고, 일련의 현금 흐름에 대한 순현재가치(Net Present Value, 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])

인수(Arguments)

  • rate — 적용할 할인율입니다. Float*
  • cashflows — 현금흐름 배열입니다. 각 값은 지출(음수 값) 또는 수입(양수 값)을 나타냅니다. Array(Int8/16/32/64) 또는 Array(Float*)
  • [, start_from_zero] — NPV 계산을 기간 0(true)에서 시작할지, 기간 1(false, Excel과 호환)에서 시작할지 나타내는 선택적 불리언(boolean) 매개변수입니다. 기본값: true. Bool

반환 값(Returned value)

NPV(순현재가치)를 Float64 값으로 반환합니다. Float64

예시(Examples)

default_calculation

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

excel_compatible_calculation

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

financialNetPresentValueExtended

도입 버전: v25.7

불규칙한 간격으로 발생하는 일련의 현금 흐름에 대한 확장 순현재가치(Extended Net Present Value, 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' (기본값) — 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