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

## Формулы для резерва <a href="#delaem_y_valyut_odinakovii_rezerv_rezerv" id="delaem_y_valyut_odinakovii_rezerv_rezerv"></a>

С помощью шорткодов можно настраивать общий резерв для нескольких валют, выполнять конвертацию резерва в другие валюты (например, из USD в BTC) и многое другое.

Перейдите в **"Модули" → "Модули"** и включите модуль **"Формула для резерва"**, если он выключен.

### Список доступных шорткодов <a href="#spisok-dostupnykh-shortkodov" id="spisok-dostupnykh-shortkodov"></a>

* **corresXX** — сумма корректировок резерва валюты.
* **excursum\_giveXX** — сумма резерва заявок по валюте "**Отдаю"**.
* **excursum\_getXX** — сумма резерва заявок по валюте "**Получаю"**.
* **excursum\_autoXX** — сумма резерва заявок по валюте "**Получаю**" со статусами заявок из настроек в разделе "**Настройки обменника"&#x20;*****→*****&#x20;"Настройки резерва"**.
* **cfilereserve\_ZZ** — значение резерва валюты для строки ZZ из файла с резервом для парсинга.
* **dfilereserve\_ZZ** — значение резерва направления обмена для строки ZZ из файла с резервом для парсинга.
* **payoutsXX** — сумма партнерских выплат по валюте.

{% hint style="warning" %}
Если партнёрская программа для направления обмена была выключена, то для параметра **payoutsXX** будут нулевые значения
{% endhint %}

* **\[parser\_binance\_btcusdt]** — курс из раздела "**Парсеры 2.0"&#x20;*****→*****&#x20;"Курсы источников"**.\
  В данном разделе шорткод имеет вид **\[binance\_btcusdt]**, но при использовании его в формуле для резерва, требует добавить в шорткод приставку **parser\_**, чтобы шорткод имел такой вид **\[*****parser\_*****binance\_btcusdt]**.\
  Аналогичное правило распространяется на шорткоды для пользовательского коэффициента.

**XX** — ID валюты, который отображается в панели управления сайтом в разделе "**Валюты**". Можно указывать несколько ID через запятую.

**ZZ** — номер строки в файле с резервами для парсинга. Можно указывать несколько ID через запятую.

<figure><img src="https://2722984412-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fm9kqZXsNykrN6VyxxXBO%2Fuploads%2FLcRDZqj1mr6KF7T7g2M1%2FScreenshot_27.png?alt=media&#x26;token=840d5521-2a75-4cc0-b5d3-2d9fc7809ef7" alt="" width="375"><figcaption></figcaption></figure>

## Пример: привязка резерва одной валюты к другой

Рассмотрим пример, с помощью которого покажем как привязать резерв валюты "Монобанк" к резерву "Приват24".

1. В панели управления в разделе "**Валюты**" узнаем ID валют для "Приват24" (ID 5) и "Монобанк" (ID 47):

<figure><img src="https://2722984412-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fm9kqZXsNykrN6VyxxXBO%2Fuploads%2F2vxayvvjfY0XlJIFOwB3%2FScreenshot_28.png?alt=media&#x26;token=69d1cfad-a304-4349-acfa-93a4c0b39d73" alt="" width="563"><figcaption></figcaption></figure>

2. Перейдем к редактированию валют "Приват24" и "Монобанк". В настройках обеих валют для параметра "**Резерв валют**" выберем опцию "**По формуле**".
3. В появившемся ниже поле "**Формула для резерва**" укажем следующую формулу в настройках обеих валют:

<figure><img src="https://2722984412-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fm9kqZXsNykrN6VyxxXBO%2Fuploads%2FEKbpy716s588HTtlzvOk%2FScreenshot_29.png?alt=media&#x26;token=bbe3df74-35bc-4820-8b1a-3a7c49d7c385" alt="" width="563"><figcaption></figcaption></figure>

Усложним рассматриваемый пример: привяжем резерв валют "Монобанк" (ID 47) и "Ощадбанк" (ID 23) к резерву "Приват24" (ID 5). Тогда для всех трех валют нужно добавить задать следующий формулу:

<figure><img src="https://2722984412-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fm9kqZXsNykrN6VyxxXBO%2Fuploads%2FtfZYh5QcT3fhuHOTJnrF%2FScreenshot_30.png?alt=media&#x26;token=e4febef0-7543-44b0-aa1d-bdc582cc58e7" alt=""><figcaption></figcaption></figure>

4. В панели управления сайтом в разделе "**Модули"&#x20;*****→*****&#x20;"Модули"** активируйте модуль "**Ссылка для обновления резерва валюты (по Cron)**", если он был деактивирован. В разделе "**Валюты**" для валют "Монобанк", "Ощадбанк" и "Приват24" появится кнопка "**Ссылка**". Для каждой валюты из примера нажмите на данную кнопку и скопируйте адрес открывшейся страницы.

<figure><img src="https://2722984412-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fm9kqZXsNykrN6VyxxXBO%2Fuploads%2FerCRVhx6m7YcC6jSdX7K%2FScreenshot_31.png?alt=media&#x26;token=779f67ee-d4b4-477d-bc7a-bd0a82f80793" alt=""><figcaption></figcaption></figure>

5. Каждую скопированную ссылку добавьте в планировщик задач (cron) на сервере. Ссылку можно запускать каждую минуту. Пример команды для планировщика задач в Unix-формате для панели управления ISP Manager:

<figure><img src="https://2722984412-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fm9kqZXsNykrN6VyxxXBO%2Fuploads%2FhAiLwEeIOhzl291Y42mm%2FScreenshot_32.png?alt=media&#x26;token=8b91ff1d-777e-4d4d-ac8d-8a6d5fa3829c" alt=""><figcaption></figcaption></figure>

где **ХХ** — ID валюты.

{% hint style="info" %}
Для каждого сервера команда из примера может иметь другой вид. Изменения касаются части команды `/usr/bin/wget -t 1 -O —`. Правильную команду вы можете уточнить у технической поддержки своего хостинга.
{% endhint %}

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

## Пример: единый резерв для нескольких валют (используем резерв, вычисляемый по заявкам)

К примеру, у нас есть 4 валюты. Их ID равны **5, 42, 47, 61**. Наша задача сделать так, чтобы у всех валют стал одинаковый резерв.

Нужно определиться, какая из валют будет основной. В нашем случае, пусть это будет валюта с **ID 47.**

Формула будет следующая:

**\[сумма корректировок резервов валют с нашими ID 5,42,47,61]** + **\[сумма «отдаю для резерва» из заявок, где валюта отдаю ID 5,42,47,61] (**&#x44D;то то, что наш сайт получил по заявкам) - **\[сумма «получаю для резерва» из заявок, где валюта получаю ID 5,42,47,61] (**&#x44D;то то, что наш сайт отдал по заявкам) - **\[выплаты партнёрских средств валют с нашими ID 5,42,47,61]**

Таким образом, для основной валюты (**ID 47**), мы создаем формулу:

**\[corres5,42,47,61] + \[excursum\_give5,42,47,61] – \[excursum\_get5,42,47,61] – \[payouts5,42,47,61]**

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

Чтобы при обновлении резерва основной валюты (ID 47), такое же значение становилось и у других валют, нам нужно в поле "**Связать резерв с резервом валюты ID**" указать значение:

**5,42,61**

Теперь, когда будут происходить действия с валютой **ID 47,** будет происходить следующее:

* просчитается резерв по формуле
* значение формулы будет записано в связанные валюты

Это почти то, что нам нужно. Но что делать, когда происходят действия с другими валютами? Как нам обновить резерв основной валюты **ID 47**?

Для этого в настройках каждой валюты мы выберем следующее:

"**Резерв валют**" брать из "**поля для резерва**". Чтобы экономить ресурсы нашего сервера и не высчитывать значение. Оно всё равно будет затерто.

В поле "**Связать резерв с резервом валюты ID**" указываем значение:

**rc47**

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

* используем значение из поля и указываем его в нашей валюте
* обновляем резерв для валюты с **ID 47** по формуле
* срабатывает привязка в настройках валюты с **ID 47**, которая обновляет всем полям свое значение резерва.

## Пример: создание одинакового резерва у валют (используем резерв, получаемый от автовыплаты) <a href="#delaem_y_valyut_odinakovii_rezerv_rezerv" id="delaem_y_valyut_odinakovii_rezerv_rezerv"></a>

К примеру, у нас есть 4 валюты. Их ID равны **5, 42, 47, 61**. Наша задача сделать так, чтобы у всех валют стал одинаковый резерв.

Нужно определиться, какая из валют будет основной. В нашем случае, пусть это будет валюта с **ID 47**.

Формула у нас будет следующая:

**\[шорткод\_автовыплаты]** - **\[сумма "получаю для резерва" из заявок, где валюта получаю ID 5,42,47,61 (**&#x44D;то то, что наш сайт отдал по заявкам) - **\[выплаты партнёрских средств валют с нашими ID 5,42,47,61]**

Таким образом, для основной валюты с **ID 47**, мы создаем формулу:

**\[шорткод\_автовыплаты] – \[excursum\_auto5,42,47,61] – \[payouts5,42,47,61]**

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

Чтобы при обновлении резерва основной валюты, такое же значение становилось и у других валют, нам нужно в поле "**Связать резерв с резервом валюты ID**" указать значение:

**5,42,61**

Теперь, когда будут происходить действия с валютой с **ID 47**, будет происходить следующее:

* просчитается резерв по формуле
* значение формулы будет записано в связанные валюты

Это почти то, что нам нужно. Но что делать, когда происходят действия с другими валютами? Как нам обновить резерв основной валюты с **ID47**?

Для этого в настройках каждой валюты мы выберем следующее:

"**Резерв валют**" брать из "**поля для резерва**". Чтобы экономить ресурсы нашего сервера и не высчитывать значение (оно всё равно будет затерто).

В поле "**Связать резерв с резервом валюты ID**" указываем значение:

**rc47**

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

* используем значение из поля и указываем его в нашей валюте
* обновляем резерв для валюты с **ID 47** по формуле
* срабатывает привязка в настройках валюты с **ID 47**, которая обновляет всем полям свое значение резерва.

## Пример: создание одинакового резерва у валют (используем резерв, получаемый от автовыплаты) с конвертацией в другие валюты

В этом примере мы используем USDT как основную валюту, значение резерва для неё получаем от мерчанта, для остальных валют используем конвертацию резерва из USDT

Основная валюта:\
**USDT TRC (368)**\
Валюты для приема значения резерва основной валюты:\
**BTC (348),**\
**DOGE (362),**\
**ETH (355),**\
**SOL (404)**\
\
Настройка резервов:\
**USDT TRC (368)**\
**резерв**: по формуле\
**формула резерва**: \[usdttrc\_westwallet] - \[excursum\_auto368] - (\[excursum\_auto348] \* \[parser\_usdtbtc]) - (\[excursum\_auto362] \* \[parser\_usdtdoge]) - (\[excursum\_auto355] \* \[parser\_usdteth]) - (\[excursum\_auto404] \* \[parser\_usdtsol])

{% hint style="info" %}
Разберем формулу:\
\&#xNAN;**\[usdttrc\_westwallet]** - резерв, получаемый от мерчанта (шорткод в настройках мерчанта)

<img src="/files/pED0RIy4hHg2aWTfAdcS" alt="" data-size="original">

**\[excursum\_auto368], \[excursum\_auto348], \[excursum\_auto362], \[excursum\_auto355], \[excursum\_auto404] -** шорткоды, которые суммируют значения "Получаю для резерва" всех обменов, в которых указанные валюты в "Получаю"

**\[parser\_usdtbtc], \[parser\_usdtdoge], \[parser\_usdteth], \[parser\_usdtsol] -** шорткоды парсера из раздела "**Парсеры 2.0"** ➔ "**Источники курсов**". Для корректного использования шорткода необходимо подставить **parser\_** к самому шорткоду парсера (**parser\_usdtbtc).**
{% endhint %}

**связать с резервом**: 348, 362, 355, 404

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

BTC (348)\
**резерв**: по формуле\
**формула резерва**: (\[usdttrc\_westwallet] - \[excursum\_auto368] - (\[excursum\_auto348] \* \[parser\_usdtbtc]) - (\[excursum\_auto362] \* \[parser\_usdtdoge]) - (\[excursum\_auto355] \* \[parser\_usdteth]) - (\[excursum\_auto404] \* \[parser\_usdtsol])) / \[parser\_usdtbtc]\
**связать с резервом**: rc368

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

DOGE (362)\
**резерв**: по формуле\
**формула резерва**: (\[usdttrc\_westwallet] - \[excursum\_auto368] - (\[excursum\_auto348] \* \[parser\_usdtbtc]) - (\[excursum\_auto362] \* \[parser\_usdtdoge]) - (\[excursum\_auto355] \* \[parser\_usdteth]) - (\[excursum\_auto404] \* \[parser\_usdtsol])) / \[parser\_usdtdoge]\
**связать с резервом**: rc368

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

ETH (355)\
**резерв**: по формуле\
**формула резерва**: (\[usdttrc\_westwallet] - \[excursum\_auto368] - (\[excursum\_auto348] \* \[parser\_usdtbtc]) - (\[excursum\_auto362] \* \[parser\_usdtdoge]) - (\[excursum\_auto355] \* \[parser\_usdteth]) - (\[excursum\_auto404] \* \[parser\_usdtsol])) / \[parser\_usdteth]\
**связать с резервом**: rc368

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

SOL (404)\
**резерв**: по формуле\
**формула резерва**: (\[usdttrc\_westwallet] - \[excursum\_auto368] - (\[excursum\_auto348] \* \[parser\_usdtbtc]) - (\[excursum\_auto362] \* \[parser\_usdtdoge]) - (\[excursum\_auto355] \* \[parser\_usdteth]) - (\[excursum\_auto404] \* \[parser\_usdtsol])) / \[parser\_usdtsol]\
**связать с резервом**: rc368

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


---

# Agent Instructions: 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:

```
GET https://premium.gitbook.io/main/osnovnye-nastroiki/valyuty-i-napravleniya-obmena/rezervy-valyut/rezerv-ot-drugoi-valyuty/primery-nastroiki-slozhnogo-rezerva-s-ispolzovaniem-formul.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
