재무 함수

재무 함수 (Financial functions)

재무 계산에 쓰는 함수 모음이에요. 내부수익률(IRR), 순현재가치(NPV)처럼 현금 흐름의 수익성과 가치를 계산하는 데 사용해요.

출처: 문서

본문

참고: 아래 문서는 system.functions 시스템 테이블에서 생성된 내용이에요.

financialInternalRateOfReturn

Introduced in: v25.7.0

일정한 간격으로 발생하는 현금 흐름 시리즈의 내부수익률(IRR, Internal Rate of Return)을 계산해요. IRR은 순현재가치(NPV)가 0이 되는 할인율이에요.

IRR은 다음 방정식을 풀려고 해요:

구문 (Syntax)

financialInternalRateOfReturn(cashflows[, guess])

인자 (Arguments)

  • cashflows — 현금 흐름의 배열이에요. 각 값은 지급(음수 값) 또는 수입(양수 값)을 나타내요. Array(Int8/16/32/64) 또는 Array(Float*)
  • [, guess] — 내부수익률에 대한 초기 추정값(상수 값)으로 선택 사항이에요 (기본값 0.1). Float*

반환 값 (Returned value)

내부수익률을 반환하거나, 계산이 수렴하지 못하거나 입력 배열이 비어 있거나 요소가 하나뿐이거나, 모든 현금 흐름이 0이거나 다른 계산 오류가 발생하면 NaN을 반환해요. Float64

예시 (Examples)

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

불규칙한 간격으로 발생하는 현금 흐름 시리즈의 확장 내부수익률(XIRR, Extended Internal Rate of Return)을 계산해요. XIRR은 모든 현금 흐름의 순현재가치(NPV)가 0이 되는 할인율이에요.

XIRR은 다음 방정식(ACT_365F 기준 예시)을 풀려고 해요:

배열은 날짜 기준 오름차순으로 정렬되어야 해요. 날짜는 고유해야 해요.

구문 (Syntax)

financialInternalRateOfReturnExtended(cashflow, date [, guess, daycount])

인자 (Arguments)

  • cashflow — 두 번째 인자의 날짜에 대응하는 현금 흐름의 배열이에요. Array(Int8/16/32/64) 또는 Array(Float*)
  • date — 현금 흐름에 대응하는, 정렬된 고유 날짜의 배열이에요. Array(Date) 또는 Array(Date32)
  • [, guess] — 선택 사항이에요. XIRR 계산을 위한 초기 추정값(상수 값)이에요. Float*
  • [, daycount] — 날짜 수 세는 방식(day count convention)으로 선택 사항이에요 (기본값 'ACT_365F'). 지원 값:
  • 'ACT_365F' - Actual/365 Fixed: 두 날짜 사이의 실제 일수를 365로 나눠요
  • 'ACT_365_25' - Actual/365.25: 두 날짜 사이의 실제 일수를 365.25로 나눠요 String

반환 값 (Returned value)

XIRR 값을 반환해요. 계산을 수행할 수 없으면 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

Introduced in: v25.7.0

각 현금 흐름 사이의 시간 간격이 동일하다고 가정하고, 현금 흐름 시리즈의 순현재가치(NPV, Net Present Value)를 계산해요.

기본 변형(start_from_zero = true):

Excel 호환 변형(start_from_zero = false):

구문 (Syntax)

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 호환)부터 시작할지 나타내는 선택적인 불리언 인자예요. 기본값: 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

Introduced in: v25.7.0

불규칙한 간격으로 발생하는 현금 흐름 시리즈의 확장 순현재가치(XNPV, Extended Net Present Value)를 계산해요. XNPV는 현재 가치를 계산할 때 각 현금 흐름의 구체적인 시점을 고려해요.

ACT_365F에 대한 XNPV 방정식:

배열은 날짜 기준 오름차순으로 정렬되어야 해요. 날짜는 고유해야 해요.

참고: 이 함수는 비결정적이에요. 같은 인자에 대해 다른 결과를 반환할 수 있어요.

구문 (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' (기본값) — Actual/365 Fixed, 'ACT_365_25' — Actual/365.25. String

반환 값 (Returned value)

순현재가치를 Float64 값으로 반환해요. Float64

예시 (Examples)

기본 사용 (Basic usage)

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

다른 날짜 수 세는 방식 사용 (Using different day count convention)

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
  • ClickHouse의 재무 함수 동영상

더 알아보기 (Learn more)

  • ClickHouse 함수 목록 전체는 함수 개요를 참고해요.