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

Формулы для резерва

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

В панели управления сайтом в разделе "Модули" "Модули" активируйте модуль "Формула для резерва", если он деактивирован.

Список доступных шорткодов

  • corresXX — сумма корректировок резерва валюты.

  • excursum_giveXX — сумма резерва заявок по валюте "Отдаю".

  • excursum_getXX — сумма резерва заявок по валюте "Получаю".

  • excursum_autoXX — сумма резерва заявок по валюте Получаю со статусами заявок из настроек в разделе "Настройки обменника" "Настройки резерва".

  • cfilereserve_ZZ — значение резерва валюты для строки ZZ из файла с резервом для парсинга.

  • dfilereserve_ZZ — значение резерва направления обмена для строки ZZ из файла с резервом для парсинга.

  • payoutsXX — сумма партнерских выплат по валюте.

  • [parser_binance_btcusdt] — курс из раздела "Парсеры 2.0" "Курсы источников". В данном разделе шорткод имеет вид [binance_btcusdt], но при использовании его в формуле для резерва, требует добавить в шорткод приставку parser_, чтобы шорткод имел такой вид [parser_binance_btcusdt]. Аналогичное правило распространяется на шорткоды для пользовательского коэффициента.

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

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

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

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

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

  1. Перейдем к редактированию валют "Приват24" и "Монобанк". В настройках обеих валют для параметра "Резерв валют" выберем опцию "По формуле".

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

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

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

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

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

Для каждого сервера команда из примера может иметь другой вид. Изменения касаются части команды /usr/bin/wget -t 1 -O —. Правильную команду вы можете уточнить у технической поддержки своего хостинга.

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

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

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

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

[сумма корректировок резервов валют с нашими ID 5,42,47,61] + [сумма «отдаю для резерва» из заявок, где валюта отдаю ID 5,42,47,61] – это то, что наш сайт получил по заявкам. - [сумма «получаю для резерва» из заявок, где валюта получаю ID 5,42,47,61] – это то, что наш сайт отдал по заявкам. - [выплаты партнёрских средств валют с нашими 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, которая обновляет всем полям свое значение резерва.

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

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

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

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

[шорткод_автовыплаты] - [сумма «получаю для резерва» из заявок, где валюта получаю ID 5,42,47,61] – это то, что наш сайт отдал по заявкам. - [выплаты партнёрских средств валют с нашими 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])

Разберем формулу: [usdttrc_westwallet] - резерв, получаемый от мерчанта (шорткод в настройках мерчанта)

[excursum_auto368], [excursum_auto348], [excursum_auto362], [excursum_auto355], [excursum_auto404] - шорткод, который суммирует значения "Получаю для резерва" всех обменов, в которых указанные валюты в "Получаю"

[parser_usdtbtc], [parser_usdtdoge], [parser_usdteth], [parser_usdtsol] - шорткод парсера из раздела "Парсеры 2.0 - Источники курсов". Для корректного использования шорткода необходимо подставить parser_ к самому шорткоду парсера (parser_ + usdtbtc)

связать с резервом: rc348,rc362,rc355,rc404

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

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

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

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

Last updated