Довідник з конфігурації

Повне пояснення полів конфігурації

Торговий бот ByNinja використовує декілька конфігураційних модулів для розділення відповідальності між виконанням торгів, підключенням до біржі та комунікацією в Telegram.

Система конфігурації розроблена як легка та файлова, що дозволяє легке розгортання, швидке редагування та передбачувану поведінку при запуску.


Конфігурація Telegram

Модуль конфігурації Telegram містить усі параметри, необхідні для зв'язку з Telegram Bot API та TCP інтеграції.

TELEGRAM_BOT_TOKEN

Code
TELEGRAM_BOT_TOKEN = "your_telegram_bot_token"

Токен Telegram бота використовується для аутентифікації з Telegram Bot API.

Цей токен генерується через BotFather у Telegram та унікально ідентифікує екземпляр бота.

Обов'язки:

  • Аутентифікує API запити
  • Дозволяє відправку сповіщень
  • Дозволяє отримувати команди користувача
  • Надає доступ до функцій Telegram бота

Важливо:

  • Ніколи не публікуйте токен публічно
  • Ніколи не додавайте його в публічні репозиторії
  • Ставтеся до нього як до приватного ключа

TELEGRAM_CHAT_ID

Code
TELEGRAM_CHAT_ID = "your_private_telegram_chat_id"

Приватний ID чату Telegram, куди доставляються сповіщення та торгові оповіщення.

Бот використовує цей ID, щоб обмежити зв'язок лише з авторизованим власником.

Обов'язки:

  • Скеровує сповіщення та оповіщення
  • Обмежує несанкціонований доступ
  • Дозволяє виконання приватних команд

Типове використання:

  • Особисті торгові сповіщення
  • Віддалене управління ботом
  • Моніторинг виконання торгів

TCP_SERVER_PORT

Code
TCP_SERVER_PORT = 55110

Визначає TCP порт, який використовується для зв'язку між Telegram сервером і торговим ботом.

Обидві програми повинні використовувати однакове значення порту.

Обов'язки:

  • TCP транспорт повідомлень
  • Маршрутизація віддалених команд
  • Пересилання логів у реальному часі

Важливо:

  • Порт має бути доступний у системі
  • Правила фаєрволу можуть потребувати налаштування
  • Обидва процеси повинні мати однакову конфігурацію

Конфігурація Binance

Модуль конфігурації Binance містить облікові дані для аутентифікації на біржі та налаштування торгового зв'язку.

BINANCE_API_KEY

Code
BINANCE_API_KEY = "your_binance_api_key"

Публічний API ключ, згенерований з акаунту Binance.

Використовується для аутентифікації запитів до сервісів Binance.

Обов'язки:

  • Доступ до ринкових даних
  • Дозволи на розміщення ордерів
  • Доступ до інформації про акаунт

Рекомендації з безпеки:

  • Увімкніть обмеження по IP, якщо можливо
  • Використовуйте дозволи лише для торгівлі
  • Уникайте увімкнення дозволів на зняття коштів

BINANCE_API_SECRET

Code
BINANCE_API_SECRET = "your_binance_api_secret"

Приватний API секрет у парі з Binance API ключем.

Використовується для підпису запитів та перевірки аутентифікації.

Важливо:

  • Повинен залишатися суворо приватним
  • Ніколи не публікуйте
  • Ніколи не надсилайте через логи або скріншоти

TCP_SERVER_PORT

Code
TCP_SERVER_PORT = 55110

Визначає порт TCP комунікації, який використовується TCP клієнтом торгового бота.

Це значення має збігатися з конфігурацією Telegram сервера.


Конфігурація Торгівлі

Модуль конфігурації торгівлі визначає розподіл капіталу, торгові пари, поведінку стратегії та управління ризиками портфеля.

INITIAL_CAPITAL

Code
INITIAL_CAPITAL = 1000.0

Визначає віртуальний або відстежуваний стартовий капітал для торгової системи.

Використовується для:

  • Розрахунку продуктивності
  • Розрахунку просадок
  • Відстеження експозиції портфеля
  • Статистики управління ризиками

Значення виражено в USDT.

TRADING_PAIRS

Code
TRADING_PAIRS = [
    "AVAXUSDT",
    "LINKUSDT",
    "DOTUSDT",
    "XRPUSDT",
    "ATOMUSDT"
]

Список криптовалютних символів, що моніторяться та торгуються системою.

Кожен символ також повинен існувати у словнику TRADING_PARAMETERS .

Обов'язки:

  • Визначає активні торгові ринки
  • Контролює підписку на символи
  • Дозволяє виконання стратегії для кожного символу

Порада: Використовуйте редактор коду

Для зручнішого редагування конфігураційних файлів ми рекомендуємо використовувати професійний редактор коду, наприклад Visual Studio Code.

Download VS Code ↗

Довідник торгових параметрів

Кожна торгова пара містить незалежний профіль конфігурації стратегії.

Цей дизайн дозволяє кожному ринку використовувати власні параметри волатильності, тренду та ризику.

lot_size

Code
"lot_size": 0.5

Мінімальний обсяг ордера для торгової пари.

Значення має відповідати вимогам біржі Binance до розміру лоту.

Мета:

  • Запобігає недійсним розмірам ордерів
  • Забезпечує сумісність з біржею
  • Контролює мінімальну точність торгівлі

position_size

Code
"position_size": 18.0

Максимальний розподіл капіталу в USDT для одного входу в угоду.

Мета:

  • Контролює експозицію позиції
  • Обмежує ризик на угоду
  • Запобігає надмірному розподілу

Вищі значення збільшують:

  • Потенційний прибуток
  • Потенційний збиток
  • Експозицію портфеля

take_profit_percent

Code
"take_profit_percent": 2.81

Цільовий відсоток прибутку відносно ціни входу.

Коли ринок досягає цього рівня, бот закриває позицію з прибутком.

Мета:

  • Фіксує прибуток
  • Визначає ціль винагороди
  • Стандартизує виходи

Приклад:

  • Вхід при 100 USDT
  • Тейк-профіт на 2.81%
  • Цільовий вихід = 102.81 USDT

stop_loss_percent

Code
"stop_loss_percent": 1.41

Максимально допустимий відсоток збитку нижче ціни входу.

Позиція автоматично закривається, якщо ринок рухається проти угоди.

Мета:

  • Обмежує ризик зниження
  • Захищає торговий капітал
  • Запобігає великим просадкам

Приклад:

  • Вхід при 100 USDT
  • Стоп-лос на 1.41%
  • Вихід при 98.59 USDT

trail_activation_percent

Code
"trail_activation_percent": 1.3

Поріг прибутку, необхідний перед активацією системи трейлінг-стопу.

До активації:

  • Використовується стандартний стоп-лос

Після активації:

  • Починається динамічний трейлінг-захист

Мета:

  • Захищає прибуткові угоди
  • Дозволяє прибуткам зростати
  • Зменшує передчасні виходи

trail_distance_percent

Code
"trail_distance_percent": 0.8

Відстань між поточним максимумом ринку та рівнем трейлінг-стопу.

Мета:

  • Захищає нереалізований прибуток
  • Дозволяє природний рух ринку
  • Створює динамічні виходи

Менші значення:

  • Жорсткіший захист
  • Швидші виходи
  • Більш чутлива поведінка

Більші значення:

  • Більше гнучкості
  • Більша тривалість угоди
  • Підвищена толерантність до відкатів

trail_tight_distance_percent

Code
"trail_tight_distance_percent": 0.5

Щільніша відстань трейлінг-стопу використовується в умовах сильного опору або розвороту.

Мета:

  • Агресивний захист прибутку
  • Швидші виходи з угод біля опору
  • Зменшена віддача прибутку

min_ema200_3m_slope

Code
"min_ema200_3m_slope": -0.008

Мінімально допустимий нахил 3-хвилинного індикатора EMA200.

Використовується як фільтр тренду на вищому таймфреймі.

Мета:

  • Уникає торгівлі під час сильних низхідних трендів
  • Фільтрує слабку ринкову структуру
  • Покращує вирівнювання за трендом

min_ema20_1m_slope

Code
"min_ema20_1m_slope": 0.01

Мінімальний нахил, необхідний для 1-хвилинного індикатора EMA20.

Використовується для підтвердження короткострокового імпульсу.

Мета:

  • Виявляє прискорення вгору
  • Підтверджує бичачий імпульс
  • Фільтрує плоскі ринкові умови

min_ema50_1m_slope

Code
"min_ema50_1m_slope": 0.005

Мінімальний нахил, необхідний для 1-хвилинного індикатора EMA50.

Діє як додаткове підтвердження тренду.

Мета:

  • Підтверджує середньостроковий напрямок
  • Зменшує хибні сигнали
  • Покращує якість входу

volume_spike_coeff

Code
"volume_spike_coeff": 1.2

Необхідний множник обсягу відносно середнього обсягу.

Бот відкриває угоди, лише якщо поточний обсяг перевищує налаштований поріг.

Мета:

  • Виявляє сильну участь ринку
  • Уникає входів з низькою ліквідністю
  • Підтверджує силу пробою

Приклад:

  • Середній обсяг = 1000
  • Коефіцієнт = 1.2
  • Необхідний обсяг = 1200+

max_candle_size

Code
"max_candle_size": 0.8

Максимально допустимий відсоток розміру свічки перед блокуванням входу.

Мета:

  • Уникає входів після завеликих свічок
  • Запобігає гонитві за надмірно розтягнутими рухами
  • Зменшує входи через FOMO

min_ema50_ema200_distance

Code
"min_ema50_ema200_distance": 0.06

Мінімальна відсоткова відстань, необхідна між EMA50 та EMA200.

Мета:

  • Підтверджує поділ ринкового тренду
  • Фільтрує слабкі тренди
  • Перевіряє структуру тренду

Вищі значення відстані зазвичай вказують на сильніші тренди.

min_ema20_ema50_distance

Code
"min_ema20_ema50_distance": 0.10

Мінімальна відстань, необхідна між індикаторами EMA20 та EMA50.

Мета:

  • Підтверджує силу короткострокового імпульсу
  • Фільтрує слабкі входи
  • Покращує якість сигналу

Довідник параметрів ризику

Система управління ризиками захищає як окремі символи, так і весь портфель.

max_portfolio_exposure

Code
"max_portfolio_exposure": 90.0

Максимальний відсоток капіталу портфеля, який може бути одночасно виділений на відкриті позиції.

Мета:

  • Запобігає надмірній експозиції
  • Підтримує резервну ліквідність
  • Зменшує системний ризик

max_consecutive_losses

Code
"max_consecutive_losses": 10

Максимальна кількість поспіль збиткових угод, дозволена перед тим, як торгівля призупиниться для символу.

Мета:

  • Виявляє нестабільні ринкові умови
  • Запобігає емоційній логіці переторговки
  • Обмежує періоди деградації стратегії

max_daily_drawdown_per_symbol

Code
"max_daily_drawdown_per_symbol": 3.0

Максимально допустимий відсоток денного збитку для окремої торгової пари.

Якщо перевищено:

  • Торгівля для символу тимчасово зупиняється

Мета:

  • Обмежує шкоду, специфічну для символу
  • Запобігає повторним збиткам на нестабільних ринках

max_total_drawdown_per_symbol

Code
"max_total_drawdown_per_symbol": 6.0

Максимально допустимий відсоток сукупного збитку для торгової пари за всі сесії.

Мета:

  • Виявляє символи, що стабільно не приносять прибутку
  • Запобігає довгостроковій ерозії капіталу

max_daily_drawdown

Code
"max_daily_drawdown": 5.0

Максимально допустимий відсоток денного збитку портфеля.

Якщо перевищено:

  • Уся торгова діяльність призупиняється

Мета:

  • Захищає портфель під час екстремальних ринкових умов
  • Обмежує катастрофічні щоденні збитки

max_total_drawdown

Code
"max_total_drawdown": 10.0

Максимальна сукупна просадка портфеля за весь життєвий цикл торгівлі.

Мета:

  • Діє як фінальний механізм захисту капіталу
  • Запобігає повному збою стратегії
  • Забезпечує довгострокову дисципліну ризиків

Після досягнення:

  • Торгові операції повинні залишатися вимкненими до проведення ручної перевірки.