> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/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)`](/docs/reference/data-types/array) أو [`Array(Float*)`](/docs/reference/data-types/array)
* `[, guess]` — قيمة تخمين أولية اختيارية (قيمة ثابتة) لمعدل العائد الداخلي (القيمة الافتراضية 0.1). [`Float*`](/docs/reference/data-types/float)

**القيمة المُعادة**

يُرجع معدل العائد الداخلي أو `NaN` إذا تعذّر تقارب الحساب، أو كانت مصفوفة الإدخال فارغة أو تحتوي على عنصر واحد فقط، أو كانت جميع التدفقات النقدية صفراً، أو حدثت أخطاء حسابية أخرى. [`Float64`](/docs/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
```

**simple\_example\_with\_guess**

```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
$$

يجب أن تكون المصفوفات مرتَّبة بحسب التاريخ تصاعديًا، وأن تكون التواريخ فريدة.

**Syntax**

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

**Arguments**

* `cashflow` — مصفوفة من التدفقات النقدية المقابلة للتواريخ في المعامل الثاني. [`Array(Int8/16/32/64)`](/docs/reference/data-types/array) أو [`Array(Float*)`](/docs/reference/data-types/array)
* `date` — مصفوفة مرتَّبة من التواريخ الفريدة المقابلة للتدفقات النقدية. [`Array(Date)`](/docs/reference/data-types/array) أو [`Array(Date32)`](/docs/reference/data-types/array)
* `[, guess]` — اختياري. التخمين الأولي (قيمة ثابتة) لحساب XIRR. [`Float*`](/docs/reference/data-types/float)
* `[, daycount]` —
  اصطلاح احتساب الأيام اختياري (القيمة الافتراضية 'ACT\_365F'). القيم المدعومة:
* 'ACT\_365F' - فعلي/365 ثابت: يستخدم العدد الفعلي للأيام بين التواريخ مقسومًا على 365
* 'ACT\_365\_25' - فعلي/365.25: يستخدم العدد الفعلي للأيام بين التواريخ مقسومًا على 365.25
  [`String`](/docs/reference/data-types/string)

**Returned value**

يُعيد قيمة XIRR. إذا تعذَّر إجراء الحساب، أعاد NaN. [`Float64`](/docs/reference/data-types/float)

**Examples**

**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*`](/docs/reference/data-types/float)
* `cashflows` — مصفوفة من التدفقات النقدية. تمثل كل قيمة دفعة (قيمة سالبة) أو دخلاً (قيمة موجبة). [`Array(Int8/16/32/64)`](/docs/reference/data-types/array) أو [`Array(Float*)`](/docs/reference/data-types/array)
* `[, start_from_zero]` — معلمة منطقية اختيارية تشير إلى ما إذا كان يجب بدء حساب NPV من الفترة `0` (true) أو من الفترة `1` (false، متوافق مع Excel). القيمة الافتراضية: true. [`Bool`](/docs/reference/data-types/boolean)

**القيمة المُعادة**

يعيد صافي القيمة الحالية بوصفها قيمة Float64. [`Float64`](/docs/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>

Introduced in: v25.7.0

تحسب دالة صافي القيمة الحالية الممتدة (XNPV) لسلسلة من التدفقات النقدية التي تحدث بفترات غير منتظمة. تأخذ XNPV في الاعتبار توقيت كل تدفق نقدي عند حساب القيمة الحالية.

معادلة XNPV للمعيار `ACT_365F`:

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

يجب أن تكون المصفوفات مرتبة حسب التاريخ بترتيب تصاعدي. يجب أن تكون التواريخ فريدة.

<Note>
  هذه الدالة غير حتمية: قد تُرجع نتائج مختلفة لنفس الوسائط.
</Note>

**Syntax**

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

**Arguments**

* `rate` — معدل الخصم الذي يُطبق. [`Float*`](/docs/reference/data-types/float)
* `cashflows` — مصفوفة التدفقات النقدية. تمثل كل قيمة دفعة (قيمة سالبة) أو دخل (قيمة موجبة). يجب أن تحتوي على قيمة موجبة واحدة على الأقل وقيمة سالبة واحدة على الأقل. [`Array(Int8/16/32/64)`](/docs/reference/data-types/array) or [`Array(Float*)`](/docs/reference/data-types/array)
* `dates` — مصفوفة التواريخ المقابلة لكل تدفق نقدي. يجب أن يكون حجمها مساويًا لمصفوفة التدفقات النقدية. [`Array(Date)`](/docs/reference/data-types/array) or [`Array(Date32)`](/docs/reference/data-types/array)
* `[, daycount]` — اصطلاح اختياري لاحتساب الأيام. القيم المدعومة: `'ACT_365F'` (الافتراضي) — Actual/365 Fixed، `'ACT_365_25'` — Actual/365.25. [`String`](/docs/reference/data-types/string)

**Returned value**

تعيد صافي القيمة الحالية كقيمة Float64. [`Float64`](/docs/reference/data-types/float)

**Examples**

**Basic usage**

```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
```

**Using different day count convention**

```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)
