재무 함수
재무 함수 (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
관련 자료 (Related resources)
- ClickHouse의 재무 함수 동영상
더 알아보기 (Learn more)
- ClickHouse 함수 목록 전체는 함수 개요를 참고해요.