> For the complete documentation index, see [llms.txt](https://docs.iexexchanger.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.iexexchanger.com/guide/kursy/formuly.md).

# Формулы

Модуль **«Курсы по формуле»** позволяет создавать собственные курсы на основе данных из других источников системы.

Формула может использовать:

* курсы из источников;
* курсы конкурентов;
* курсы из файлов;
* курсы BestChange;
* коэффициенты;
* другие формулы.

После создания формула автоматически пересчитывается при обновлении курсов и может использоваться в направлениях обмена так же, как обычный курс.

Например, если необходимо получить курс **BTC - RUB**, а источник предоставляет только **BTC - USDT** и **USD - RUB**, вы можете создать собственную формулу и автоматически рассчитывать итоговый курс.

## Когда использовать курсы по формуле

Используйте данный раздел, если:

* необходимого курса нет в источнике;
* нужно объединить данные из нескольких источников;
* требуется добавить собственную наценку или скидку;
* необходимо использовать запасной источник курса;
* требуется создать сложный расчёт по собственным правилам.

## Создание новой формулы

Для создания новой формулы перейдите в раздел: **«Парсер курсов» — «Курсы по формуле»**

<figure><img src="/files/6RqojhYPI5hgpQr4H85s" alt=""><figcaption></figcaption></figure>

и нажмите кнопку **«Добавить формулу».**

В открывшемся окне необходимо заполнить следующие поля:

<figure><img src="/files/P1Rgiazr9lfVgf5q3wzJ" alt="" width="375"><figcaption></figcaption></figure>

{% stepper %}
{% step %}

### Название

Укажите понятное название формулы.

Например:

* BTC - EUR
* USDT - BTC
* BTC - USD через ByBit
* Средний курс BTC

В дальнейшем данное название будет отображаться при выборе формулы в направлениях обмена, настройках системы и других связанных разделах. Рекомендуется использовать понятные и уникальные названия, чтобы в дальнейшем было легко определить назначение формулы.
{% endstep %}

{% step %}

### Формула

Укажите выражение, которое необходимо вычислять.

Для расчёта используются специальные теги курсов.

Например: `[binance_btc-usdt_ask] * [russiancentralbank_usd-rub]`

Каждый тег представляет собой текущий курс из определённого источника.

Система автоматически подставляет актуальные значения и выполняет расчёт.
{% endstep %}

{% step %}

### Знаки после запятой

Определяет точность хранения результата.

Для большинства криптовалют рекомендуется использовать от 8 до 10 знаков после запятой.
{% endstep %}

{% step %}

### Статус

Если формула включена, она будет автоматически участвовать в обновлениях и пересчётах.
{% endstep %}
{% endstepper %}

***

## Проверка формулы

Во время создания или редактирования система автоматически показывает:

* результат формулы;
* используемые теги;
* текущие значения тегов;
* возможные ошибки вычисления.

Это позволяет сразу убедиться в правильности расчёта до сохранения.

## Использование тегов

Формулы работают на основе специальных тегов.

Примеры:

```
[rapira_btc-usdt_ask]
[cryptocash_usdt-btc]
[bestchange_sberrub_usdttrc20_7]
```

Каждый тег содержит актуальное значение курса из соответствующего раздела системы.

Получить теги можно из:

* Курсов из источников;
* Курсов конкурентов;
* Курсов из файла;
* BestChange API;
* Коэффициентов.

## Математические операции

В формулах поддерживаются стандартные операции:

```
+
-
*
/
()
```

Примеры:

```
[rapira_btc-usdt_ask] * [russiancentralbank_usd-rub]
```

```
([source1] + [source2]) / 2
```

```
1 / [rapira_btc-usdt_ask]
```

## Практические примеры

{% stepper %}
{% step %}

### BTC - RUB через USDT

Если источник предоставляет:

* BTC - USDT
* USD - RUB

то получить курс BTC - RUB можно следующим образом:

```
[rapira_btc-usdt_ask] * [russiancentralbank_usd-rub]
```

{% endstep %}

{% step %}

### Обратный курс RUB - BTC

Чтобы узнать количество BTC за один рубль:

```
1 / ([rapira_btc-usdt_ask] * [russiancentralbank_usd-rub])
```

{% endstep %}

{% step %}

### Среднее значение нескольких источников

Для получения среднего курса:

```
([source_1] + [source_2]) / 2
```

{% endstep %}

{% step %}

### Добавление наценки

Чтобы увеличить курс на 2%:

```
[rapira_btc-usdt_ask] + 2%
```

{% endstep %}

{% step %}

### Уменьшение курса на 1.5%

```
[rapira_btc-usdt_ask] - 1.5%
```

{% endstep %}
{% endstepper %}

## Коэффициенты

Коэффициенты позволяют хранить значения или целые формулы отдельно от основных курсов.

Они используются для:

* упрощения длинных формул;
* повторного использования одних и тех же расчётов;
* хранения постоянных значений;
* быстрого изменения логики расчёта.

Для управления коэффициентами нажмите кнопку **«Коэффициенты».**

<figure><img src="/files/rb3WSK4wkVtyUhQ8PXV5" alt=""><figcaption></figcaption></figure>

{% stepper %}
{% step %}

### Значение индекса

Используется для хранения фиксированного значения.

Например: `85.50`

После создания система автоматически сгенерирует код: `[index_usd-rate]`

Такой коэффициент можно использовать в любой формуле.

Пример: `[rapira_btc-usdt_ask] * [index_usd-rate]`
{% endstep %}

{% step %}

### Шаблон формулы

Используется для хранения целой формулы.

Например: `[rapira_btc-usdt_ask] * [russiancentralbank_usd-rub]`

После создания система сформирует тег: `[index_btc-rub]`

Теперь вместо длинного выражения можно использовать: `[index_btc-rub]`&#x20;

Это делает формулы значительно проще и удобнее для поддержки.
{% endstep %}
{% endstepper %}

## Правила составления формул

Чтобы формулы работали корректно, соблюдайте несколько правил.

{% stepper %}
{% step %}

### Используйте правильные теги курсов

Коды курсов необходимо указывать без изменений и обязательно в квадратных скобках.

<mark style="color:$success;">**Правильно:**</mark> `[binance_btc-usdt]`

<mark style="color:red;">**Неправильно:**</mark> `binance_btc-usdt`

Если тег указан с ошибкой, система не сможет корректно получить значение курса.
{% endstep %}

{% step %}

### Используйте корректные числа

В формулах можно использовать целые и дробные числа.

Примеры:

* 1
* 1.5
* 100.25

Не используйте лишние символы, пробелы внутри чисел или некорректный формат записи.
{% endstep %}

{% step %}

### Правильно указывайте математические операции

Поддерживаются основные математические операции:

* сложение: +
* вычитание: -
* умножение: \*\*\*\*\*
* деление: /

Пример:

```
[binance_btc-usdt] * [coinmarketcap_usdt-rub]
```

{% endstep %}

{% step %}

### Используйте скобки для сложных расчётов

Если формула состоит из нескольких действий, используйте круглые скобки, чтобы явно указать порядок расчёта.

Пример:

```
([source_1] + [source_2]) / 2
```

Такой подход помогает избежать ошибок и делает формулу понятнее.
{% endstep %}

{% step %}

### Не допускайте деления на ноль

Перед сохранением формулы убедитесь, что в выражении нет деления на значение, которое может быть равно нулю.

Например, если тег временно не получил курс, его значение может быть недоступно или равно 0.

В таких случаях рекомендуется использовать запасной источник курса или более простую формулу.
{% endstep %}
{% endstepper %}

***

## Привязка формулы к направлению обмена

После создания формулу можно использовать в направлениях обмена.

Перейдите в раздел:

**«Основное» — «Направления обмена» — «Список направлений»**

<figure><img src="/files/I0ThtL4EwuanYhWAw7kb" alt=""><figcaption></figcaption></figure>

Откройте необходимое направление и перейдите в раздел: **«Обмен» — «Курс обмена»**

<figure><img src="/files/Jl6YqauZDgUVUKBy4uBI" alt=""><figcaption></figcaption></figure>

В поле **«Курс по формуле»** выберите ранее созданную формулу.

После выбора нажмите кнопку **«Сохранить».**

С этого момента направление будет автоматически использовать результат выбранной формулы.

При каждом обновлении курсов система автоматически пересчитает формулу и обновит направление обмена.

## Привязка формулы к направлению обмена

После создания формулы в разделе **«Парсер курсов» — «Курсы по формуле»** её можно использовать в направлениях обмена.

Данная возможность позволяет автоматически рассчитывать курс направления на основе созданной вами формулы. При изменении курсов, используемых внутри формулы, система автоматически выполнит перерасчёт и обновит направление обмена без необходимости ручного вмешательства.

Например, если формула рассчитывает курс BTC - RUB через данные Rapira и Центрального банка РФ, то после обновления исходных курсов направление автоматически получит новое значение.

{% stepper %}
{% step %}

### Переход к настройке направления

Перейдите в раздел: **«Основное» — «Направления обмена» — «Список направлений»**

<figure><img src="/files/1JRwaI5hB9lZW5WrBFTz" alt=""><figcaption></figcaption></figure>

Найдите необходимое направление обмена и нажмите кнопку «Изменить».

Например:

* Tether ERC20 USDT - Bitcoin BTC
* T-Банк RUB - Bitcoin BTC
* Tron TRX - Tether ERC20 USDT
  {% endstep %}

{% step %}

### Настройка курса обмена

После открытия направления перейдите в раздел: **«Обмен» — «Курс обмена»**

<figure><img src="/files/WQTxfhNX3vMTrlPT7XJG" alt=""><figcaption></figcaption></figure>

На данной странице доступны все способы получения курса:

* Курс из источников
* Ручной курс обмена
* Курс по формуле
* Курс обмена из файла
* Курс конкурента

Для использования формулы необходимо заполнить поле **«Курс по формуле».**
{% endstep %}

{% step %}

### Выбор формулы

Нажмите на поле **«Курс по формуле».**

Откроется список всех формул, ранее созданных в разделе **«Парсер курсов» — «Курсы по формуле».**

Если формул много, воспользуйтесь строкой поиска и начните вводить название необходимой формулы.

Рекомендуется использовать понятные названия формул, чтобы их было легко найти при настройке направлений обмена.
{% endstep %}

{% step %}

### Сохранение настроек

После выбора необходимой формулы нажмите кнопку «Сохранить» в верхней части страницы.

С этого момента направление начнёт использовать результат выбранной формулы для расчёта курса обмена.

Дополнительных действий не требуется.
{% endstep %}
{% endstepper %}

***

## Частые вопросы:

<details>

<summary>Что делать, если формула не рассчитывается?</summary>

Если формула не рассчитывается или работает некорректно, выполните следующие действия:

* **Проверьте корректность написания кодов:**

  Коды должны быть указаны точно так же, как отображаются в разделах источников.
* **Убедитесь в доступности используемых курсов:**

  Проверьте, что все курсы, указанные в формуле, существуют и находятся в статусе «Включен».
* **Проверьте формулу на наличие ошибок:**

  Исключите возможность деления на ноль или других математических ошибок.
* **Убедитесь в активации формулы:**

  Статус формулы должен быть установлен в положение «Включен».

После выполнения этих шагов формула должна начать корректно рассчитываться.

</details>

<details>

<summary>Можно использовать данные из разных разделов одновременно?</summary>

Да, это возможно. Для этого просто укажите соответствующие коды из разных разделов прямо в формуле. Система автоматически рассчитает курс, используя указанные вами данные.

Пример формулы с разными источниками данных:

```
[binance_btc-usdt]*[competitor_usdt-rub]
```

Таким образом вы можете легко комбинировать данные из любых доступных разделов («Курсы из источников», «Курсы конкурентов», «Курсы из файла» и т.д.) в одной формуле.

</details>

<details>

<summary>Какую максимальную точность можно использовать?</summary>

Вы можете использовать до **18** знаков после запятой.

Это позволяет максимально точно и корректно рассчитывать курсы валют и криптовалют, особенно актуально для операций с криптовалютами и крупными суммами.

Рекомендуем задавать точность от **8** до **18** знаков в зависимости от ваших задач.

</details>

<details>

<summary>Что делать, если формула временно не нужна?</summary>

Если вам необходимо временно приостановить работу формулы без её удаления:

* Перейдите в раздел с формулами и найдите нужную.
* Переключите её статус на **«Отключен»**.

Формула перестанет рассчитываться и влиять на курсы, но останется доступной для последующего использования.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.iexexchanger.com/guide/kursy/formuly.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
