Теги и формулы для расчёта курсов валют
Эта инструкция содержит полное описание всех доступных тегов, с помощью которых вы можете формировать простые и сложные формулы для расчета курсов. Каждый тег позволяет выполнять специфические задачи: создавать условия, вычислять средние значения, выбирать оптимальный курс, учитывать комиссии и многое другое.
Список всех доступных тегов:
[set]
Создание переменных для повторного использования.
[system-1]
Простое условие (тернарный оператор).
[if], [elseif], [else]
Сложные многоуровневые условия.
[avg]
Средний курс из нескольких источников.
[min], [max]
Минимальное или максимальное значение из источников.
[diff_percent]
Процентная разница между двумя курсами.
[round]
Округление значений до указанной точности.
[spread]
Расчёт спреда между ценами покупки и продажи.
[filter]
Применение операций (ceil, floor, abs) к значениям.
[threshold]
Выбор значений по заданным порогам курса.
[fees]
Расчёт комиссии или процентной части от курса.
[limit]
Ограничение курса заданными пределами.
[confidence]
Средневзвешенный курс с учётом доверия к источникам.
[ratio]
Соотношение одного курса к другому.
[fallback]
Резервный курс при недоступности основного.
[combine]
Комбинация курсов разных источников с весами.
[currency_convert]
Автоматическая конвертация валютных пар
[inverse]
Обратный курс
[markup]
Добавление наценки (маржи)
[discount]
Автоматическая скидка (понижение курса)
[latest_rate]
Самый свежий курс
[priority_rate]
Приоритетный выбор курса
[best_rate]
Выбор лучшего (самого высокого) курса
[worst_rate]
Выбор худшего (самого низкого) курса
Использование формул с коэффициентами
Для удобства и упрощения расчётов вы можете использовать все перечисленные теги формул совместно с модулем «Коэффициенты».
Создавайте готовые шаблоны формул и коэффициенты один раз, а затем легко применяйте их в расчётах по названию (алиасу). Это избавит вас от необходимости каждый раз вводить сложные формулы вручную и значительно упростит управление курсами.
Пример использования:

Допустим, вы создали коэффициент (шаблон формулы) под названием margin_test
:
[fees][btc_usdt_bid],0.5%[/fees]

Теперь вы можете просто указать его в расчёте так: [index_margin-test]
Подробное описание тегов условий и переменных
Тег [set] — Переменные
Тег позволяет создать переменную и сохранить в неё любое значение или результат расчета формулы. После создания переменную можно использовать многократно в последующих формулах.
Синтаксис:
[set]variable=value[/set]
Простой пример:
[set]margin=0.005[/set]
[btc_usdt_bid] + [margin]
Курс BTC/USDT + 0.005
Пример с расчетом внутри:
[set]avg_rate=[avg][binance],[bybit],[rapira][/avg][/set]
[avg_rate]
[avg_rate] - Средний курс трех источников
Сложный пример использования:
[set]threshold_rate=[threshold][btc_usdt_bid],50000:0.005,60000:0.01[/threshold][/set]
[if][btc_usdt_bid] > [threshold_rate]
[btc_usdt_bid] - [threshold_rate]
[else]
[btc_usdt_bid] + [threshold_rate]
[/if]
Сначала создаётся переменная threshold_rate на основе порогов. Далее курс увеличивается или уменьшается, в зависимости от условия.
Тег [system-1] — Простое условие (тернарный оператор)
Тег [system-1] позволяет быстро проверить условие и вернуть одно из двух значений.
Синтаксис:
[system-1] условие ? значение_если_да : значение_если_нет [/system-1]
Простой пример:
[system-1][btc_usdt_bid]>60000 ? 60000 : [btc_usdt_bid][/system-1]
Если курс выше 60000, возвращает 60000, иначе текущий курс.
Расширенный пример с двумя курсами:
[system-1]([binance]-[bybit])/[binance] <= 0.005 ? [bybit] : [binance][/system-1]
Если разница между Binance и Bybit меньше 0.5%, используем курс Bybit, иначе Binance.
Сложный пример с несколькими источниками:
[system-1]
([competitor1]-[competitor2])/[competitor1]<=0.005 ? [competitor2] :
([competitor2]-[competitor3])/[competitor2]<=0.005 ? [competitor3] :
[competitor1]
[/system-1]
Проверка разницы между тремя источниками по очереди и выбор курса с минимальной разницей (до 0.5%).
Теги [if], [elseif], [else] — Сложные условия
Эти теги используются, чтобы создавать многоуровневые логические условия.
Подходит для детального управления логикой расчета курсов.
Синтаксис:
[if]условие результат[/if]
[if]условие результат [else]результат[/if]
[if]условие результат [elseif]условие результат [else]результат[/if]
Простой пример:
[if][btc_usdt_bid]>60000
60000
[else]
[btc_usdt_bid]
[/if]
Если курс выше 60000, возвращает 60000, иначе текущий курс.
Средней сложности пример:
[if][btc_usdt_bid]>70000
70000
[elseif][btc_usdt_bid]>60000
65000
[else]
60000
[/if]
Многоуровневое условие, три варианта итогового значения.
Сложный пример с вложенными формулами:
[if][diff_percent][binance],[bybit][/diff_percent]<=0.5
[combine][binance]:0.5,[bybit]:0.5[/combine]
[elseif][ratio][btc_usdt_bid],[eth_usdt_bid][/ratio]>15
[limit][btc_usdt_bid],50000,60000[/limit]
[else]
[fallback][binance],[bybit][/fallback]
[/if]
Условие с проверкой разницы курсов, соотношения валют и использованием резервного источника.
Сложный пример с переменной и несколькими условиями:
[set]margin=0.005[/set]
[if][btc_usdt_bid]>65000
[fees][btc_usdt_bid],[margin]%[/fees]
[elseif][btc_usdt_bid]>60000
[btc_usdt_bid] * (1 - [margin])
[else]
[btc_usdt_bid] * (1 + [margin])
[/if]
Сначала устанавливается маржа. Затем:
Если курс выше 65000, применяется комиссия (0.005%).
Если от 60000 до 65000 — курс снижается на маржу (0.5%).
Если ниже 60000 — курс увеличивается на маржу (0.5%).
Тег [avg] — Средний курс из нескольких источников
Тег [avg] вычисляет среднее значение курсов из заданных источников.
Полезен при необходимости получить сбалансированный курс из нескольких бирж.
Синтаксис:
[avg][source1],[source2],[source3][/avg]
Простой пример:
[avg][binance],[bybit][/avg]
Среднее значение между курсами Binance и Bybit
Расширенный пример с несколькими источниками:
[avg][binance],[bybit],[rapira],[competitor1][/avg]
Средний курс четырёх источников
Сложный пример использования в условии:
[set]avg_rate=[avg][binance],[bybit],[rapira][/avg][/set]
[if][binance]>[avg_rate]
[binance]
[else]
[avg_rate]
[/if]
Если разница между источниками небольшая, возвращает средний курс, иначе курс Binance.
Теги [min] и [max] — Минимальное или максимальное значение
Эти теги позволяют выбрать самое низкое (min) или самое высокое (max) значение курса из нескольких источников.
Синтаксис:
[min][source1],[source2],[source3][/min]
[max][source1],[source2],[source3][/max]
Простой пример для [min]:
[min][binance],[bybit],[rapira][/min]
Минимальный курс из трех источников
Простой пример для [max]:
[max][binance],[bybit],[rapira][/max]
Максимальный курс из трех источников
Средний по сложности пример:
[set]lowest_rate=[min][binance],[bybit],[rapira][/min][/set]
[lowest_rate] * 1.01
Минимальный курс + 1%
Сложный пример с условием:
[if][btc_usdt_bid] > [max][binance],[bybit],[rapira][/max]
[max][binance],[bybit],[rapira][/max]
[else]
[btc_usdt_bid]
[/if]
Если текущий курс выше максимального из источников, берёт максимальный, иначе текущий курс
Тег [diff_percent] — Процентная разница между курсами
Позволяет вычислить процентную разницу между двумя указанными курсами.
Полезен для проверки близости или расхождения курсов.
Синтаксис:
[diff_percent][source1],[source2][/diff_percent]
Простой пример:
[diff_percent][binance],[bybit][/diff_percent]
Процентная разница между Binance и Bybit
Средний по сложности пример с условием:
[system-1][diff_percent][binance],[bybit][/diff_percent] <= 1 ? [avg][binance],[bybit][/avg] : [binance][/system-1]
Если разница меньше или равна 1%, берём средний курс, иначе Binance
Сложный пример с несколькими источниками и условиями:
[if][diff_percent][binance],[bybit][/diff_percent]<=0.5
[combine][binance]:0.6,[bybit]:0.4[/combine]
[elseif][diff_percent][binance],[rapira][/diff_percent]<=1
[combine][binance]:0.7,[rapira]:0.3[/combine]
[else]
[binance]
[/if]
В зависимости от процентной разницы, используется комбинация источников или основной источник
Тег [round] — Округление значений
Тег [round] округляет значение до заданного количества знаков после запятой.
Синтаксис:
[round]precision,value[/round]
precision — количество знаков после запятой.
value — значение, которое нужно округлить.
Простой пример:
[round]2,[btc_usdt_bid][/round]
Округляет текущий курс до двух знаков после запятой
Средний пример с дополнительным расчётом:
[round]3,[avg][binance],[bybit][/avg]*1.01[/round]
Округляет средний курс, увеличенный на 1%, до трёх знаков
Сложный пример с условием и округлением:
[round]4,[if][btc_usdt_bid]>70000
[btc_usdt_bid]*0.995
[else]
[btc_usdt_bid]*1.005
[/if][/round]
Если курс выше 70000, округляет значение с уменьшением на 0.5%, иначе с увеличением на 0.5%
Тег [spread] — Расчёт спреда между покупкой и продажей
Тег [spread] вычисляет процентную разницу (спред) между ценой продажи (ask) и ценой покупки (bid).
Используется для быстрого анализа разницы между ценами покупки и продажи валюты.
Синтаксис:
[spread][bid],[ask][/spread]
Простой пример:
[spread][binance_bid],[binance_ask][/spread]
Спред на Binance
Средний пример с переменными:
[set]market_spread=[spread][binance_bid],[bybit_ask][/spread][/set]
[market_spread]
[market_spread] - Полученный спред
Сложный пример с условием:
[if][spread][binance_bid],[bybit_ask][/spread]<=0.5
[combine][binance_bid]:0.5,[bybit_ask]:0.5[/combine]
[else]
[min][binance_bid],[bybit_bid][/min]
[/if]
Если спред меньше или равен 0.5%, используется среднее значение, иначе минимальный bid.
Тег [filter] — Применение операций (ceil, floor, abs)
Тег [filter] позволяет применять стандартные операции округления вверх (ceil), вниз (floor) и взятие модуля (abs).
Синтаксис:
[filter]value|operation[/filter]
Операции:
ceil — округление вверх.
floor — округление вниз.
abs — модуль числа (убирает минус).
Простой пример с ceil:
[filter]49.2|ceil[/filter]
Вернёт 50
Простой пример с floor:
[filter]49.8|floor[/filter]
Вернёт 49
Простой пример с abs:
[filter]-120|abs[/filter]
Вернёт 120
Средний пример с формулой внутри:
[filter][btc_usdt_bid]*1.02|ceil[/filter]
Курс увеличивается на 2% и округляется вверх.
Сложный пример с условием:
[if][btc_usdt_bid]>70000
[filter][btc_usdt_bid]*0.995|floor[/filter]
[else]
[filter][btc_usdt_bid]*1.005|ceil[/filter]
[/if]
Если курс выше 70000, снижается на 0.5% и округляется вниз, иначе увеличивается на 0.5% и округляется вверх.
Тег [threshold] — Выбор значений по заданным порогам курса
Позволяет задать значения, которые будут возвращаться при достижении указанных порогов курса.
Синтаксис:
[threshold][value],threshold1:result1,threshold2:result2[/threshold]
Простой пример:
[threshold][btc_usdt_bid],50000:0.01,60000:0.015[/threshold]
До 50000 вернёт 0.01, до 60000 — 0.015, иначе последнее значение (0.015).
Средний пример с переменной:
[set]margin=[threshold][btc_usdt_bid],50000:0.005,60000:0.01[/threshold][/set]
[btc_usdt_bid] * (1 + [margin])
Курс с маржой по заданному порогу.
Сложный пример с несколькими условиями:
[if][btc_usdt_bid]<50000
[btc_usdt_bid] + [threshold][btc_usdt_bid],50000:100,60000:200[/threshold]
[elseif][btc_usdt_bid]<60000
[btc_usdt_bid] + [threshold][btc_usdt_bid],50000:150,60000:250[/threshold]
[else]
[btc_usdt_bid] + 300
[/if]
Курс увеличивается на разное значение в зависимости от текущего уровня.
Тег [fees] — Расчёт комиссии или процентной части от курса
Используется для расчёта комиссий или процентных частей от курса.
Синтаксис:
[fees][value],percent%[/fees]
Простой пример:
[fees][btc_usdt_bid],0.5%[/fees]
Считает 0.5% от текущего курса.
Средний пример с переменной:
[set]fee_percent=0.3[/set]
[fees][btc_usdt_bid],[fee_percent]%[/fees]
Комиссия от курса, заданная переменной.
Сложный пример с условиями:
[if][btc_usdt_bid]>60000
[fees][btc_usdt_bid],0.7%[/fees]
[elseif][btc_usdt_bid]>50000
[fees][btc_usdt_bid],0.5%[/fees]
[else]
[fees][btc_usdt_bid],0.3%[/fees]
[/if]
Комиссия зависит от уровня текущего курса.
Тег [limit] — Ограничение курса заданными пределами
Ограничивает курс минимальным и максимальным значением.
Синтаксис:
[limit][value],min,max[/limit]
Простой пример:
[limit][btc_usdt_bid],45000,60000[/limit]
Если курс ниже 45000, вернёт 45000, выше 60000 — вернёт 60000, иначе текущий курс.
Средний пример с расчётом внутри:
[limit][btc_usdt_bid]*1.02,45000,60000[/limit]
Курс увеличивается на 2% и ограничивается пределами.
Сложный пример с несколькими условиями:
[limit]
[if][btc_usdt_bid]>55000
[btc_usdt_bid]*0.995
[else]
[btc_usdt_bid]*1.005
[/if],
50000,
60000
[/limit]
В зависимости от уровня курс изменяется и сразу же ограничивается заданным диапазоном.
Тег [confidence] — Средневзвешенный курс с учётом доверия к источникам
Тег [confidence] позволяет вычислить курс, учитывая коэффициенты доверия к каждому источнику. Чем выше доверие (ближе к 1), тем сильнее влияние источника на итоговый курс.
Синтаксис:
[confidence][source1]:weight1,[source2]:weight2[/confidence]
weight — коэффициент доверия (от 0 до 1).
Простой пример:
[confidence][binance]:0.9,[bybit]:0.8[/confidence]
Курс Binance имеет большее влияние на результат.
Средний пример с несколькими источниками:
[confidence][binance]:0.9,[bybit]:0.7,[rapira]:0.6[/confidence]
Средневзвешенный курс с учётом разных уровней доверия.
Сложный пример с условием:
[if][diff_percent][binance],[bybit][/diff_percent]<=0.5
[confidence][binance]:0.95,[bybit]:0.85[/confidence]
[else]
[confidence][binance]:0.6,[bybit]:0.4[/confidence]
[/if]
При небольшой разнице доверие выше, при большой — ниже.
Тег [ratio] — Соотношение одного курса к другому
Позволяет вычислить отношение одного курса к другому. Используется для анализа корреляции между двумя валютами или активами.
Синтаксис:
[ratio][source1],[source2][/ratio]
Простой пример:
[ratio][btc_usdt_bid],[eth_usdt_bid][/ratio]
Показывает, во сколько раз курс BTC выше ETH.
Средний пример с округлением:
[round]2,[ratio][btc_usdt_bid],[eth_usdt_bid][/ratio][/round]
Округляет соотношение до 2 знаков после запятой.
Сложный пример с условием:
[if][ratio][btc_usdt_bid],[eth_usdt_bid][/ratio]>15
[btc_usdt_bid]*0.99
[else]
[btc_usdt_bid]*1.01
[/if]
Если BTC дороже ETH больше чем в 15 раз, курс снижается на 1%, иначе увеличивается на 1%.
Тег [fallback] — Резервный курс при недоступности основного
Позволяет автоматически использовать резервный источник курса, если основной источник недоступен (равен 0 или пуст).
Синтаксис:
[fallback][primary_source],[backup_source][/fallback]
Простой пример:
[fallback][binance],[bybit][/fallback]
Если курс Binance недоступен, берёт курс Bybit.
Средний пример с несколькими резервами:
[fallback][binance],[bybit],[rapira][/fallback]
Если Binance недоступен, берёт Bybit, если и он недоступен — Rapira.
Сложный пример с условиями:
[set]fallback_rate=[fallback][binance],[bybit][/fallback][/set]
[if][fallback_rate]>0
[fallback_rate]
[else]
[rapira]
[/if]
Если основной и резервный источники недоступны, используется третий источник.
Тег [combine] — Комбинация курсов разных источников с весами
Позволяет объединить несколько курсов в один с указанными коэффициентами влияния (весами). Общая сумма весов обычно равна 1.
Синтаксис:
[combine][source1]:weight1,[source2]:weight2[/combine]
Вес (weight) — доля влияния курса источника.
Простой пример:
[combine][binance]:0.7,[bybit]:0.3[/combine]
Курс Binance влияет на 70%, Bybit на 30%.
Средний пример с несколькими источниками:
[combine][binance]:0.5,[bybit]:0.3,[rapira]:0.2[/combine]
Комбинация трех источников с разными весами.
Сложный пример с условиями и весами:
[if][diff_percent][binance],[bybit][/diff_percent]<=0.5
[combine][binance]:0.5,[bybit]:0.5[/combine]
[elseif][diff_percent][binance],[rapira][/diff_percent]<=1
[combine][binance]:0.6,[rapira]:0.4[/combine]
[else]
[combine][binance]:0.8,[bybit]:0.1,[rapira]:0.1[/combine]
[/if]
Вес источников зависит от процента расхождения между ними.
Тег [currency_convert] — Автоматическая конвертация валютных пар
Тег [currency_convert] предназначен для быстрой и удобной автоматической конвертации курса из одной валютной пары в другую. Он позволяет избавиться от сложных многоступенчатых расчётов, делая формулу простой и читаемой.
Тег автоматически перемножает указанные валютные пары, вычисляя итоговый курс.
Синтаксис:
[currency_convert][валютная_пара_1],[валютная_пара_2][/currency_convert]
Простые примеры:
[currency_convert][btc-usdt],[usd-rub][/currency_convert]
Конвертация BTC в рубли через USD:
[currency_convert][eth-usdt],[usd-rub][/currency_convert]
Конвертация ETH в рубли через USD:
Средней сложности пример:
[currency_convert][rub-usd],[usd-btc][/currency_convert]
Расчёт обратного курса (RUB → BTC):
Сложный пример с дополнительными коэффициентами и маржой:
[currency_convert][btc-usdt],[usd-rub][/currency_convert] * 99%
Конвертация BTC-USDT в RUB с учётом комиссии 1%:
[currency_convert][avg][competitor1_btc-usdt],[competitor2_btc-usdt][/avg],[usd-rub][/currency_convert] * 98.5%
Комбинированный расчёт курса с несколькими источниками и конвертацией.
Тег [inverse] — Обратный курс
Тег автоматически вычисляет обратное значение курса (1 разделить на текущий курс).
Синтаксис:
[inverse][курс][/inverse]
Простой пример:
[inverse][usd-rub][/inverse]
Аналогично: 1 / [usd-rub]
Сложный пример с округлением:
[round]4,[inverse][btc-usdt][/inverse][/round]
Обратный курс BTC-USDT с округлением до 4 знаков
Тег [markup] — Добавление наценки (маржи)
Тег автоматически увеличивает курс на заданную процентную наценку.
Синтаксис:
[markup][курс],процент%[/markup]
Простой пример (наценка 2%):
[markup][btc-usdt],2%[/markup]
Курс BTC-USDT с увеличением на 2%
Сложный пример с конвертацией:
[markup][currency_convert][btc-usdt],[usd-rub][/currency_convert],1.5%[/markup]
Курс BTC-RUB с конвертацией и наценкой 1.5%
Тег [discount] — Автоматическая скидка (понижение курса)
Тег автоматически снижает курс на заданный процент скидки.
Синтаксис:
[discount][курс],процент%[/discount]
Простой пример (скидка 0.5%):
[discount][btc-usdt],0.5%[/discount]
Курс BTC-USDT с уменьшением на 0.5%
Сложный пример с дополнительными условиями:
[if][btc-usdt]>60000
[discount][btc-usdt],1%[/discount]
[else]
[btc-usdt]
[/if]
Скидка 1% если курс выше 60000, иначе без скидки
Тег [latest_rate] — Самый свежий курс
Тег выбирает и возвращает первый доступный курс из нескольких источников, который не равен нулю и считается наиболее актуальным.
Синтаксис:
[latest_rate][источник1],[источник2],[источник3][/latest_rate]
Простой пример (два источника):
[latest_rate][binance_btc-usdt],[bybit_btc-usdt][/latest_rate]
Вернёт курс из Binance, если он доступен, иначе из Bybit
Сложный пример с дополнительными расчётами:
[markup][latest_rate][competitor1_btc-usdt],[competitor2_btc-usdt],[rapira_btc-usdt][/latest_rate],0.5%[/markup]
Берёт последний доступный курс из 3 источников и добавляет наценку 0.5%
Тег [priority_rate] — Приоритетный выбор курса
Тег позволяет получить курс из списка источников по приоритету: если первый источник недоступен (равен 0), автоматически берётся следующий и так далее.
Синтаксис:
[priority_rate][источник1],[источник2],[источник3][/priority_rate]
Простой пример:
[priority_rate][binance_btc-usdt],[bybit_btc-usdt][/priority_rate]
Если Binance недоступен, берёт курс с Bybit.
Расширенный пример с несколькими источниками:
[priority_rate][binance_btc-usdt],[bybit_btc-usdt],[rapira_btc-usdt][/priority_rate]
Последовательный выбор курса: Binance → Bybit → Rapira.
Тег [best_rate] — Выбор лучшего (самого высокого) курса
Тег автоматически возвращает наивысший (выгодный) курс из списка доступных источников.
Синтаксис:
[best_rate][источник1],[источник2],[источник3][/best_rate]
Простой пример:
[best_rate][binance_btc-usdt],[bybit_btc-usdt][/best_rate]
Вернёт максимальный курс BTC-USDT среди Binance и Bybit.
Расширенный пример с комиссией:
[markup][best_rate][competitor1],[competitor2],[rapira][/best_rate],1%[/markup]
Добавит маржу 1% к лучшему курсу из трёх источников.
Тег [worst_rate] — Выбор худшего (самого низкого) курса
Тег автоматически возвращает наименьший (менее выгодный) курс из списка доступных источников.
Синтаксис:
[worst_rate][источник1],[источник2],[источник3][/worst_rate]
Простой пример:
[worst_rate][binance_btc-usdt],[bybit_btc-usdt][/worst_rate]
Вернёт минимальный курс BTC-USDT среди Binance и Bybit.
Расширенный пример с скидкой:
[discount][worst_rate][competitor1],[competitor2],[rapira][/worst_rate],0.5%[/discount]
Применит скидку 0.5% к наименьшему курсу из указанных источников.
Last updated
Was this helpful?