> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-fix-nav-issues.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Документация по финансовым функциям

# Финансовые функции

<Note>
  Приведённая ниже документация сгенерирована на основе системной таблицы `system.functions`
</Note>

{/*AUTOGENERATED_START*/}

<div id="financialInternalRateOfReturn">
  ## financialInternalRateOfReturn
</div>

Добавленный в: v25.7.0

Вычисляет внутреннюю норму доходности (IRR) для серии денежных потоков, возникающих через равные промежутки времени.
IRR — это ставка дисконтирования, при которой чистая приведённая стоимость (NPV) равна нулю.

IRR находится из следующего уравнения:

$$
\sum&#95;{i=0}^n \frac{cashflow_i}{(1 + irr)^i} = 0
$$

**Синтаксис**

```sql theme={null}
financialInternalRateOfReturn(cashflows[, guess])
```

**Аргументы**

* `cashflows` — Массив денежных потоков. Каждое значение представляет собой выплату (отрицательное значение) или поступление (положительное значение). [`Array(Int8/16/32/64)`](/reference/data-types/array) или [`Array(Float*)`](/reference/data-types/array)
* `[, guess]` — Необязательное начальное приближение (постоянное значение) для внутренней нормы доходности (по умолчанию 0.1). [`Float*`](/reference/data-types/float)

**Возвращаемое значение**

Возвращает внутреннюю норму доходности или `NaN`, если вычисление не сходится, входной массив пуст или содержит только один элемент, все денежные потоки равны нулю или возникают другие ошибки вычисления. [`Float64`](/reference/data-types/float)

**Примеры**

**simple\_example**

```sql title=Query theme={null}
SELECT financialInternalRateOfReturn([-100, 39, 59, 55, 20])
```

```response title=Response theme={null}
0.2809484211599611
```

**простой\_пример\_с\_подбором**

```sql title=Query theme={null}
SELECT financialInternalRateOfReturn([-100, 39, 59, 55, 20], 0.1)
```

```response title=Response theme={null}
0.2809484211599611
```

<h2 id="financialInternalRateOfReturnExtended">
  financialInternalRateOfReturnExtended
</h2>

Добавленный в: v25.7.0

Вычисляет расширенную внутреннюю норму доходности (XIRR) для серии денежных потоков, возникающих через нерегулярные интервалы. XIRR — это ставка дисконтирования, при которой чистая приведённая стоимость (NPV) всех денежных потоков равна нулю.

XIRR решает следующее уравнение (пример для `ACT_365F`):

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

Массивы должны быть отсортированы по дате в порядке возрастания. Даты должны быть уникальными.

**Синтаксис**

```sql theme={null}
financialInternalRateOfReturnExtended(cashflow, date [, guess, daycount])
```

**Аргументы**

* `cashflow` — Массив денежных потоков, соответствующих датам во втором параметре. [`Array(Int8/16/32/64)`](/reference/data-types/array) или [`Array(Float*)`](/reference/data-types/array)
* `date` — Отсортированный массив уникальных дат, соответствующих денежным потокам. [`Array(Date)`](/reference/data-types/array) или [`Array(Date32)`](/reference/data-types/array)
* `[, guess]` — Необязательный. Начальное приближение (константное значение) для вычисления XIRR. [`Float*`](/reference/data-types/float)
* `[, daycount]` —
  Необязательное соглашение о подсчёте дней (по умолчанию 'ACT\_365F'). Поддерживаемые значения:
* 'ACT\_365F' - Actual/365 Fixed: фактическое количество дней между датами, делённое на 365
* 'ACT\_365\_25' - Actual/365.25: фактическое количество дней между датами, делённое на 365.25
  [`String`](/reference/data-types/string)

**Возвращаемое значение**

Возвращает значение XIRR. Если вычисление невозможно выполнить, возвращает NaN. [`Float64`](/reference/data-types/float)

**Примеры**

**simple\_example**

```sql title=Query theme={null}
SELECT financialInternalRateOfReturnExtended([-10000, 5750, 4250, 3250], [toDate('2020-01-01'), toDate('2020-03-01'), toDate('2020-10-30'), toDate('2021-02-15')])
```

```response title=Response theme={null}
0.6342972615260243
```

**simple\_example\_with\_guess**

```sql title=Query theme={null}
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 title=Response theme={null}
0.6342972615260243
```

**simple\_example\_daycount**

```sql title=Query theme={null}
SELECT round(financialInternalRateOfReturnExtended([100000, -110000], [toDate('2020-01-01'), toDate('2021-01-01')], 0.1, 'ACT_365_25'), 6) AS xirr_365_25
```

```response title=Response theme={null}
0.099785
```

<div id="financialNetPresentValue">
  ## financialNetPresentValue
</div>

Добавленный в: v25.7.0

Вычисляет чистую приведённую стоимость (NPV) серии денежных потоков, предполагая равные временные интервалы между денежными потоками.

Вариант по умолчанию (`start_from_zero` = true):

$$
\sum&#95;{i=0}^{N-1} \frac{values_i}{(1 + rate)^i}
$$

Вариант, совместимый с Excel (`start_from_zero` = false):

$$
\sum&#95;{i=1}^{N} \frac{values_i}{(1 + rate)^i}
$$

**Синтаксис**

```sql theme={null}
financialNetPresentValue(rate, cashflows[, start_from_zero])
```

**Аргументы**

* `rate` — Ставка дисконтирования, которую нужно применить. [`Float*`](/reference/data-types/float)
* `cashflows` — Массив денежных потоков. Каждое значение представляет собой выплату (отрицательное значение) или доход (положительное значение). [`Array(Int8/16/32/64)`](/reference/data-types/array) или [`Array(Float*)`](/reference/data-types/array)
* `[, start_from_zero]` — Необязательный логический параметр, указывающий, следует ли начинать вычисление NPV с периода `0` (true) или с периода `1` (false, совместимо с Excel). По умолчанию: true. [`Bool`](/reference/data-types/boolean)

**Возвращаемое значение**

Возвращает чистую приведенную стоимость в виде значения Float64. [`Float64`](/reference/data-types/float)

**Примеры**

**default\_calculation**

```sql title=Query theme={null}
SELECT financialNetPresentValue(0.08, [-40000., 5000., 8000., 12000., 30000.])
```

```response title=Response theme={null}
3065.2226681795255
```

**excel\_compatible\_calculation**

```sql title=Query theme={null}
SELECT financialNetPresentValue(0.08, [-40000., 5000., 8000., 12000., 30000.], false)
```

```response title=Response theme={null}
2838.1691372032656
```

<h2 id="financialNetPresentValueExtended">
  financialNetPresentValueExtended
</h2>

Добавленный в: v25.7.0

Вычисляет расширенную чистую приведённую стоимость (XNPV) для серии денежных потоков, возникающих через неравные промежутки времени. XNPV учитывает точный момент времени каждого денежного потока при расчёте приведённой стоимости.

Уравнение XNPV для `ACT_365F`:

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

Массивы должны быть отсортированы по дате в порядке возрастания. Даты должны быть уникальными.

**Syntax**

```sql theme={null}
financialNetPresentValueExtended(rate, cashflows, dates[, daycount])
```

**Аргументы**

* `rate` — Применяемая ставка дисконтирования. [`Float*`](/reference/data-types/float)
* `cashflows` — Массив денежных потоков. Каждое значение представляет платёж (отрицательное значение) или доход (положительное значение). Должен содержать хотя бы одно положительное и одно отрицательное значение. [`Array(Int8/16/32/64)`](/reference/data-types/array) или [`Array(Float*)`](/reference/data-types/array)
* `dates` — Массив дат, соответствующих каждому денежному потоку. Должен совпадать по размеру с массивом cashflows. [`Array(Date)`](/reference/data-types/array) или [`Array(Date32)`](/reference/data-types/array)
* `[, daycount]` — Необязательное соглашение о подсчёте дней. Поддерживаемые значения: `'ACT_365F'` (по умолчанию) — Actual/365 Fixed, `'ACT_365_25'` — Actual/365.25. [`String`](/reference/data-types/string)

**Возвращаемое значение**

Возвращает чистую приведённую стоимость в виде значения Float64. [`Float64`](/reference/data-types/float)

**Примеры**

**Базовое использование**

```sql title=Query theme={null}
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 title=Response theme={null}
2506.579458169746
```

**Использование другого соглашения о подсчёте дней**

```sql title=Query theme={null}
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 title=Response theme={null}
2507.067268742502
```

<div id="related-resources">
  ## Связанные ресурсы
</div>

* [Видео о финансовых функциях ClickHouse](https://www.youtube.com/watch?v=BePLPVa0w_o)
