Архітектура бота

Огляд системи
Торгова платформа ByNinja побудована як розподілена багатопроцесорна система, яка відокремлює виконання торгівлі від взаємодії з користувачем.
Архітектура складається з двох незалежних застосунків:
- •Торговий бот — відповідає за аналіз ринку, виконання стратегії, управління ризиками та обробку ордерів.
- •Сервер управління Telegram — відповідає за сповіщення, віддалене управління та обробку команд через Telegram.
Обидва сервіси спілкуються через легкий власний рівень TCP, що дозволяє їм працювати незалежно, залишаючись синхронізованими в реальному часі.
Це розділення покращує стабільність, масштабованість та ізоляцію помилок. Навіть якщо сервіс Telegram стає недоступним, торгове ядро може продовжувати працювати без перерв.
Архітектура процесів
Система використовує процесно-орієнтований дизайн, де кожен компонент має свою чітку відповідальність.
Торговий процес
Торговий процес керує:
- •Інтеграцією з API біржі
- •Моніторингом ринку
- •Виконанням стратегії
- •Управлінням ризиками
- •Обробкою позицій
- •Внутрішнім логуванням
Торгове ядро працює безперервно і приймає команди віддаленого управління через клієнтське з'єднання TCP.
Процес Telegram
Процес Telegram обробляє:
- •Комунікацію з Telegram Bot API
- •Обробку команд користувача
- •Сповіщення та алерти
- •Управління сервером TCP
Цей процес діє як міст між користувачем і торговим ядром.
Незалежне виконання
Обидва застосунки запускаються окремо і працюють як незалежні процеси:
python3 -c "from trading.main import main; main()"python3 -c "from telegram.main import main; main()"Оскільки обидва сервіси ізольовані, кожен процес можна перезапускати, оновлювати або налагоджувати незалежно, не впливаючи на іншу підсистему.
TCP комунікація
Комунікаційний рівень базується на власному TCP-протоколі, розробленому для низького навантаження та взаємодії в реальному часі.
Потік комунікації
Telegram User
↓
Telegram Bot
↓
TCP Server
↓
Trading Bot TCP Client
↓
Trading EngineЗворотний потік використовується для логів, попереджень та оновлень статусу.
Структура повідомлень
Всі повідомлення передаються у форматі JSON з фіксованою довжиною заголовка:
{
"tag": "command",
"message": "starttrading",
"timestamp": 1750000000
}Підтримувані функції
TCP-рівень включає:
- •Логіку автоматичного перепідключення
- •Фонові воркери відправки/отримання
- •Потокобезпечні черги повідомлень
- •Обробку безпечного завершення роботи
- •Маршрутизацію повідомлень за типом
- •Постійний моніторинг з'єднання
Система команд
Архітектура підтримує такі віддалені команди як:
- •Запуск / зупинка торгівлі
- •Увімкнення або вимкнення покупок
- •Увімкнення або вимкнення продажів
- •Примусові дії купівлі / продажу
- •Отримання статистики
- •Моніторинг стану системи
Команди можуть бути глобальними або для конкретного символу.
Багатопроцесорний дизайн
Платформа дотримується багатопроцесорної архітектури замість монолітного дизайну.
Переваги
Ізоляція
Збій у підсистемі Telegram не зупиняє торгові операції.
Масштабованість
У майбутньому кожен сервіс може бути розгорнутий на різних машинах або контейнерах.
Зручність обслуговування
Кодова база розділена на логічні компоненти з чіткою відповідальністю.
Надійність
Перепідключення TCP та фонові воркери допомагають підтримувати стабільний зв'язок навіть під час тимчасових збоїв мережі.
Паралельне виконання
Торгові операції, опитування Telegram, TCP-комунікація та логування працюють паралельно в окремих потоках.
Внутрішня модель паралелізму
Усередині кожного процесу система використовує багатопотоковість для асинхронних операцій.
Потоки торгового застосунку
- •Потік виконання торгів
- •Потік TCP-комунікації
- •Потік пересилання логів
- •Фонові воркери моніторингу
Потоки Telegram застосунку
- •Потік опитування Telegram
- •Потік TCP-сервера
- •Воркери пересилання повідомлень
Цей дизайн гарантує, що мережеві операції ніколи не блокуватимуть саме торгове ядро.