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

금융 함수

참고

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

financialInternalRateOfReturn

도입 버전: v25.7.0

일정한 간격으로 발생하는 일련의 현금 흐름에 대한 내부수익률(IRR, Internal Rate of Return)을 계산합니다. IRR은 순현재가치(NPV, Net Present Value)가 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

도입 버전: v25.7.0

불규칙한 간격으로 발생하는 일련의 현금 흐름에 대한 확장 내부 수익률(XIRR)을 계산합니다. XIRR은 모든 현금 흐름의 순현재가치(NPV)가 0이 되는 할인율입니다.

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' - 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.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.0

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

순현재가치를 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.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] — 선택적 일수 계산 방식(Day Count Convention). 지원 값: '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