Теги и формулы для расчёта курсов валют

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

Список всех доступных тегов:

Тег
Краткое описание

[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?