Перейти к содержимому

Система, которая держит курсы обменника рядом с нужной позицией.

iEXRates собирает предложения BestChange, рассчитывает итоговые курсы по вашим правилам, следит за конкурентами, публикует TXT-файлы и показывает оператору, почему курс получился именно таким.

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

Стоимость—
  • Защита позиции

    топ-1, топ-2, топ-3 и конкретные конкуренты

  • Формулы курса

    теги, комиссии, шаги, округление и preview

  • TXT-файлы

    отдельный файл под каждый профиль

  • Go-ядро

    быстрое обновление больших списков

Главная идея

Это не таблица курсов, а рабочий центр управления рынком BestChange

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

Направления и города

Для наличных направлений город становится частью пары и TXT-кода, чтобы курс не смешивался с другими городами.

Фильтры офферов

Можно учитывать резерв, лимиты, метки обменников, black list, свой обменник и нулевые значения.

Слежка за обменником

Система умеет ориентироваться на конкретного конкурента и автоматически вставать выше или ниже него.

направлений можно вести через серверную пагинацию и batch-обновления
100k+
BestChange отдельно, внешние источники отдельно — в одной админке
2
живое состояние обновлений, инциденты, логи и свежесть TXT
24/7

Что входит

Основные возможности iEXRates

Профиль BestChange

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

  • API URL и зеркала общие, с пингом и приоритетом
  • ключи хранятся в базе и управляются из админки
  • каждый профиль получает отдельный TXT-файл

Пример работы

Как владелец настраивает направление

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

  1. Выбирается пара

    Например, BTC на наличные RUB, с обязательным городом Москва.

  2. Задаётся цель

    Позиция #2, быть выше выбранного обменника или брать среднее по топ-10.

  3. Применяются правила

    Фильтры, резерв, лимиты, black list, комиссия, округление и защита от резких скачков.

  4. Публикуется TXT

    Готовый код вида BTC-CASHRUB_MSK попадает в файл профиля и доступен сайту.

Формулы

Формулы как отдельный продукт внутри системы

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

пример правила

Предпросмотр формулы

[pos:3]
+ step_to_competitor
− 0.15%
Позиция
#3
Конкурент
Обменник

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

Слежка и комиссии

Курс можно вести за конкретным обменником, выше него или ниже

Для каждого направления можно выбрать обменник-ориентир, режим “встать выше” или “встать ниже”, минимальный шаг, лимит изменения, комиссию и fallback, если нужный конкурент исчез из выдачи.

пример правила

Ориентир
Обменник · #3
Действие
встать выше на шаг
Комиссия
−0.15%

Слежка за выбранным обменником

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

Встать выше или ниже

Можно настроить курс так, чтобы он постоянно был чуть выше выбранного конкурента или аккуратно ниже него.

Защита от скачков

Лимит изменения и антискачок не дают курсу резко уйти из-за случайного оффера или временной ошибки рынка.

Комиссии и поправки

Для курса можно задать +1, -1, +1%, -1%, /5, /5% или свою формулу, чтобы сразу учитывать маржу и расходы.

Фильтры по условиям

Правила могут учитывать позиции, резерв, лимиты, метки обменников, город и чёрные списки.

Понятный расчёт

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

Аналитика

Видно, что обновилось, где задержка и почему курс изменился

Операционный центр показывает скорость обновления, свежесть TXT, состояние очередей, ошибки API, историю расчётов и качество каждого направления.

Скорость обновления

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

История и графики

Можно смотреть итоговый курс, raw rate, позицию, spread между местами и поведение конкурентов.

Инциденты

Проблема оформляется как понятная карточка: где упало, что было с ключом, URL, направлением и TXT.

Права и доступ

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

Быстрое ядро

Обновление построено как конвейер, а не как один тяжёлый запрос

Go-ядро разделяет работу на этапы: справочники, проверка направлений, получение офферов, расчёт, защита позиции и генерация файлов. Это снижает задержки и позволяет масштабировать систему на тысячи пар.

  1. dictionary.sync

    Справочники

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

  2. presence.scan

    Проверка направлений

    Система может сначала проверить, какие пары реально существуют, чтобы не грузить лишние курсы.

  3. rates.fetch

    Получение офферов

    URL/key pool, лимиты, повторы, кеш снимков и fallback помогают выдерживать нестабильность API.

  4. rates.calculate

    Расчёт курса

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

  5. guard.apply

    Защита позиции

    Проверяется целевая позиция, конкурент, минимальный шаг и допустимое изменение.

  6. txt.generate

    Генерация файлов

    TXT пересобирается только при изменениях, поэтому публикация остаётся быстрой.

Дополнительные источники

BestChange остаётся основой, но курсы можно расширять внешними источниками

Для Binance, Bybit, WhiteBIT, Heleket, файловых и ручных курсов предусмотрены отдельные профили, собственные коды, комиссии, TXT-файлы и серверная пагинация.

  • binance[binance_usdt-btc]
  • bybit[bybit_usdt-btc]
  • whitebit[whitebit_usdt-btc]
  • heleket[heleket_usdt-btc]
  • manual[manual_usdt-btc]

готовый курс, обратный 1/курс или своя комиссия

Полезные материалы

Подготовьтесь к подключению

Инструкции и помощь с настройкой вашего продукта.

Подключение и настройка

Инструкции по настройке и подключению к iEXExchanger.

Под капотом

На чём построен iEXRates

iEXRates разделён на админку, API и отдельное Go-ядро. Админка не обращается к BestChange напрямую: она работает с готовыми данными из PostgreSQL, Redis и журналов, а обновление курсов выполняет серверный конвейер.

Frontend

Админка оператора

React/Vite SPA с i18n, TanStack Query, серверными таблицами, виртуальными списками и живыми операционными разделами.

  • React + TanStack Query

    кеш запросов, обновления без перезагрузки и стабильная работа экранов

  • TanStack Table + Virtual

    пагинация, фильтры и виртуальные списки для тысяч записей

  • Tailwind CSS + Vite

    быстрая сборка и адаптивный интерфейс админки

  • TypeScript strict

    строгая типизация форм, API-контрактов и состояния интерфейса

Backend

API, воркеры и очереди

NestJS 11 объединяет admin API, public API, настройки профилей, права доступа, scheduler, очередь задач и события для админки.

  • NestJS 11

    единый API для профилей, направлений, логов, доступа и источников

  • PostgreSQL + Prisma ORM

    основная база, строгие модели и миграции схемы

  • Redis

    горячий кеш, live-состояние, блокировки и быстрые снимки

  • ClickHouse

    быстрые журналы, история обновлений и аналитика событий

Infra

Self-hosted развёртывание

iEXRates разворачивается как отдельный серверный продукт: Go-ядро, Docker Compose, Nginx, PostgreSQL, Redis, ClickHouse и публичная выдача TXT-файлов.

  • Go

    worker pool, batch-обновления, rate limit и атомарная генерация файлов

  • Docker Compose

    единый запуск админки, API, engine, PostgreSQL, Redis, ClickHouse и Nginx

  • Nginx

    проксирование API и публичная выдача TXT-файлов

  • Debian 12 / Ubuntu 22.04

    рекомендованная база для установки на сервер

Готово для обменника

iEXRates закрывает всю цепочку: от BestChange до готового курса на сайте

Подключение настраивается под ваш обменник: профили, API-ключи, зеркала, направления, формулы, стратегия позиции, TXT-файлы, дополнительные источники и аналитика обновлений.

Только для клиентов iEXExchanger

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

Стоимость—