Напрямки та міста
Для готівки місто стає частиною пари і TXT-коду, щоб курс не змішувався з іншими містами.
iEXRates збирає пропозиції BestChange, розраховує підсумкові курси за вашими правилами, стежить за конкурентами, публікує TXT-файли та показує оператору, чому курс вийшов саме таким.
Модуль створений для обмінників, яким важливо не просто отримати курс із BestChange, а керувати позицією, маржею, комісіями, містами, винятками, формулами та швидкістю оновлення на великій кількості напрямків.
Проєкт підключається до чинної ліцензії iEXExchanger та працює як додатковий модуль до основної платформи.
У відео показана логіка адмінки: профілі, напрямки, формули, контроль позиції, файли TXT, аналітика оновлень і робочі екрани оператора.
Адміністратор задає профіль, напрямки та правила. Далі система сама оновлює довідники, перевіряє доступні пари, отримує оффери, застосовує формули, захищає позицію та готує файли видачі для сайту обмінника.
Для готівки місто стає частиною пари і TXT-коду, щоб курс не змішувався з іншими містами.
Можна враховувати резерв, ліміти, мітки обмінників, black list, свій обмінник та нульові значення.
Система вміє орієнтуватися на конкретного конкурента і автоматично вставати вище чи нижче за нього.
Єдине налаштування мови, типу курсу, інтервалу, таймууту, позиції за замовчуванням, свого обмінника та публікації TXT.
Напрямки можна додавати по одному або масово, групувати, фільтрувати, змінювати позиції та кроки відразу за вибраними умовами.
У деталях видно базовий оффер, позицію, обмінник, формулу, крок, комісію, обмеження та підсумкове значення для видачі.
Формула показує доступні теги, пояснює кожен крок розрахунку та дозволяє перевірити результат до збереження. Це зручно, коли курс має враховувати не одну позицію, а кілька умов одразу.
Найкращий курс, конкретна позиція, діапазон позицій, середнє по кількох місцях, свій обмінник чи конкурент.
Теги вставляють із підказок, а preview показує результат до застосування до напрямку.
Можна обмежити максимальний стрибок, мінімальний резерв, позицію та поведінку, якщо даних немає.
Підтримуються +1, -1, +1%, -1%, поділ, формульні поправки та окремі правила для зовнішніх джерел.
Для кожного напряму можна вибрати обмінник-орієнтир, режим "встати вище" або "встати нижче", мінімальний крок, ліміт зміни, комісію та fallback, якщо потрібний конкурент зник з видачі.
Напрямок може орієнтуватися як на позицію, а й у конкретний обмінник з видачі BestChange.
Можна налаштувати курс так, щоб він постійно був трохи вищим за обраний конкурент або акуратно нижчий за нього.
Ліміт зміни та антистрибок не дають курсу різко піти через випадковий оффер або тимчасову помилку ринку.
Для курсу можна задати +1, -1, +1%, -1%, /5, /5% або свою формулу, щоб одразу враховувати маржу та витрати.
Правила можуть враховувати позиції, резерв, ліміти, позначки обмінників, місто та чорні списки.
Trace показує, який оффер обраний, який крок застосований, де спрацювала комісія і чому результат потрапив до TXT.
Одного разу задаються правила, далі iEXRates сам отримує ринок, вибирає коректний оффер, застосовує захист та публікує підсумковий курс.
Наприклад, BTC на готівку RUB, з обов'язковим містом Москва.
Позиція #2, бути вищою за обраний обмінник або брати середнє по топ-10.
Фільтри, резерв, ліміти, black list, комісія, округлення та захист від різких стрибків.
Готовий код виду BTC-CASHRUB_MSK потрапляє у файл профілю та доступний сайту.
Go-ядро поділяє роботу на етапи: довідники, перевірка напрямків, отримання офферів, розрахунок, захист позиції та генерація файлів. Це знижує затримки та дозволяє масштабувати систему на тисячі пар.
Валюти, міста, обмінники та мітки оновлюються на сервері та використовуються з локального сховища.
Система може спочатку перевірити, які пари реально існують, щоб не завантажувати зайві курси.
URL/key pool, ліміти, повтори, кеш знімків та fallback допомагають витримувати нестабільність API.
Формули, позиції, комісії, кроки та обмеження збираються в один зрозумілий підсумковий курс.
Перевіряється цільова позиція, конкурент, мінімальний крок та допустима зміна.
TXT перезбирається лише за змін, тому публікація залишається швидкою.
Якщо курс не оновився, оператор бачить, що саме сталося: дзеркало BestChange не відповіло, ключ уперся в ліміт, напрямок застарів, TXT не встиг зібратися або формула дала заборонений результат.
Показується тривалість оновлення, кількість успішних пар, неоновлені напрямки та швидкість за секунду.
Можна дивитися підсумковий курс, raw rate, позицію, spread між місцями та поведінку конкурентів.
Проблема оформляється як зрозуміла картка: де впало, що було з ключем, URL, напрямом та TXT.
Вхід за ключами, групи прав, користувачі та журнал дій допомагають безпечно працювати команді.
Операційний центр показує швидкість оновлення, свіжість TXT, стан черг, помилки API, історію розрахунків та якість кожного напряму.
Для Binance, Bybit, WhiteBIT, Heleket, файлових та ручних курсів передбачені окремі профілі, власні коди, комісії, TXT-файли та серверна пагінація.
iEXRates розділений на адмінку, API та окреме Go-ядро. Адмінка не звертається до BestChange безпосередньо: вона працює з готовими даними з PostgreSQL, Redis та журналів, а оновлення курсів виконує серверний конвеєр.
React/Vite SPA з i18n, TanStack Query, серверними таблицями, віртуальними списками та живими операційними розділами.
NestJS 11 об'єднує admin API, public API, налаштування профілів, права доступу, scheduler, черга завдань та події для адмінки.
iEXRates розгортається як окремий серверний продукт: Go-ядро, Docker Compose, Nginx, PostgreSQL, Redis, ClickHouse та публічна видача TXT-файлів.
Підключення налаштовується під ваш обмінник: профілі, API-ключі, дзеркала, напрямки, формули, стратегія позиції, TXT-файли, додаткові джерела та аналітика оновлень.