Модернизация и оптимизация торгового бота BingX.

Заказчик: AI | Опубликовано: 27.01.2026

Модернизация системы автоматизированной обработки сигналов и оптимизация отказоустойчивости торгового бота BingX. Доработка бота, предназначенного для мониторинга Telegram-каналов, извлечения торговых сигналов из сообщений и автоматического парсинга и исполнения этих сделок на бирже BingX. Язык программирования: Python 3.10.11Предмет доработки: Модулиsignal_parser.py,tb3.py, а также расширение функционала веб-интерфейса и переход на демо-счета BingX VST. ВажноНеобходим человек именно с опытом работы с BingXПредварительно необходимо протестировать весь функционал на примерах сигналов с платных Telegram-каналов и 6-ти бесплатных (каналы я предоставлю) бота выявить ошибки и исправить их не уменьшая функционалРазделы и пункты, приведенные ниже, являются перечнем основных ошибок и необходимых доработок. Обработка торговых сигналов Необходимо доработать: Обработка текста:Нормализация текста сигналаЗамена синонимов на стандартные термины Исправление числовых аномалий:Восстановление десятичных точек: Исправить баг, при котором0.01210превращается в1210. Регулярное выражение должно корректно обрабатывать и точку, и запятую, не удаляя их. Необходимо конвертация запятых в точкиИсправление ошибок в исходном сигнале отсутствие 0 или разделительных знаковЧистка текста: Удаление мусора, лишних пробелов внутри чисел (например,10. 5→10.5) и нормализация эмодзи.Обработка процентов: Извлечение процентов распределения объема (например,TP1: 30%). Валидация диапазона 0–100%.Извлечение целей с указанием процентов (TP1: 52000 - 30%)Разделение цены и процентаИзвлечение процентных значенийОбработка различных форматов записи (50%, 50 %)Конвертация в десятичную дробьВалидация корректности числового формата Исправление инвертированной логикиАлгоритм жесткой валидации:Для LONG: Проверка условияStop Loss < Entry < TP1 < TP2 < TP3.Для SHORT: Проверка условияStop Loss > Entry > TP1 > TP2 > TP3.Действие при ошибке: Если уровни перепутаны (например, SL выше Entry при Long), бот автоматически меняет направление (если это логично) SLSL по умолчанию: Если в тексте нет SL, устанавливать его программно на -5% от цены входа. Если расчетный SL из текста >5%, менять на 5% от цены входа. Прочее: Старые некорректные позиции не закрываются правильно и блокируют новыеСнятие лимитов: Исправить логику, при которой бот игнорирует монеты с низкой капитализацией (мелкие монеты), если они проходят по ликвидности.Исправить открытие позиций по рыночной цене вместо EntryНеобходимо дописатьСделать патерны более адаптивными, ускорить время обработки сигналовФильтрация сообщений (убрать шум, бот должен игнорировать всё кроме сигналов Объединение сообщений: Реализовать «окно ожидания» (buffer) 2–5 секунд. Ввести временное окно (buffer) 3–5 секунд. Если от одного канала приходят сообщения подряд (Ticker -> Entry -> TP -> SL), они объединяются в один торговый объект до начала парсинга. (LONG #AUCTION 7.77 SET TP 1 7.88 SET TP 2 8.20 SET SL 7.20) Если указан диапазон (например, 4252 - 4248) или список точек(Entry Price:1) 4252 2) 4248):Лимитный ордер: Выставляется по средней цене ((4252+4248)/2).Мониторинг: Если цена не достигла средней, но начала уходить в сторону профита, бот переключается на Market Order, пока текущая цена не отклонилась от максимальной более чем на 0.7% от границ диапазона.База данных (Persistence)Бот должен сохранять состояние открытых сделок в БД (aiosqlite). Если свет выключится или бот перезагрузится, он должен «вспомнить» все открытые позиции и продолжать их вести.Блок «Отказоустойчивость»Проблема 16 часов. После данного периода работы бот начинает зависать и пропускать сигналы.Необходимо сделать что-то подобное :Log Rotation: Ограничить размер файла ЛОГ.txt (например, 50 МБ). При достижении лимита — создавать новый. Это уберет тормоза при чтении гигантских файлов.Watchdog Task: Фоновая задача, которая проверяет «здоровье» бота каждые 60 секунд. Если бот не отвечает — авто-перезагрузка.Garbage Collection: Принудительная очистка памяти (gc.collect()) раз в 6 часов.Resource Cleanup: Каждые 6 часов принудительный вызов gc.collect() и очистка кэша старых сигналов в памяти.ОтчётностьДублировать все важные действия (открытие сделки, закрытие по TP/SL, ошибки валидации) в личный Telegram канал владельца. Три режима торговли (UI-selectable)Необходимо сделать 3 варианта торговли и отразить их в веб интерфейсе с настройками % и шага TS Название режимаРаспределение объемаМеханикаMode 1: SafetyTP1 (60%) + Trailing (40%)При достижении TP1 закрывается 60%. На остаток включается Trailing Stop.Mode 2: ClassicTP1 (70%) + TP2 (30%)Фиксированный выход по двум целям.Mode 3: Pro-TrendTP1 + TP2 → TrailingЗакрытие TP1. При достижении TP2 позиция не закрывается, а переходит в режим Trailing Stop с шагом 1% который следует за ценой до момента разворота.(Трейлинг-стоп должен активироваться только после того, как цена коснулась уровня TP2) Веб-интерфейс и АналитикаНеобходимо доработатьПеренести все торговые константы из кода в UI и сделать их функциональными (на данный момент работает только изменение демо счёта)Необходимо дописатьВкладка СтатистикиРеализовать дашборд с фильтрацией за неделю:Таблица:Дата|Канал|Пара|Направление|Итог (USDT/%).График: Кривая доходности (Equity curve).Топ каналов: Рейтинг источников по винрейту. Демо-режим (BingX VST Integration)Переход на реальный Demo-APIТекущая внутренняя «бумажная» торговля должна быть заменена на работу с BingX VST (Virtual Trading).Бот должен использовать официальные эндпоинты BingX для демо-счетов, чтобы учитывать реальные комиссии, проскальзывания и лимиты биржи.Разделение логов: Сделки на демо и реале должны помечаться в базе данных разными флагами для раздельной статистики.После перехода на Demo-API проворить режим валидации реальной торговли на ошибки (он прописан в основном коде) Финансовая валидация (Financial Readiness)Проверка состояния «кошелька» и ограничений биржи:Доступная маржа: Проверка, что на счету достаточно USDT с учетом выбранного плеча (Leverage).Минимальный лот: Соответствие объема позиции минимальным требованиям биржи (например, на BingX нельзя открыть позицию меньше 2–5 USDT).Резервный баланс: Бот должен оставлять неприкосновенный остаток (Buffer) для оплаты комиссий или поддержания других позиций. Рыночная валидация (Market Context)Проверка «здоровья» рынка в реальном времени:Глубина стакана (Liquidity Check): Анализ Orderbook. Хватит ли ликвидности, чтобы исполнить ваш ордер без огромного проскальзывания (Slippage)?Проверка спреда: Если разница между ценой покупки (Ask) и продажи (Bid) аномально велика, вход в сделку становится слишком дорогим.Статус API: Проверка пинга до биржи и наличия ограничений (Rate Limits) на аккаунте. Риск-менеджмент (Safety Layer)Финальные ограничения перед нажатием кнопки «Купить»:Лимит экспозиции (Total Exposure): Не превышает ли сумма всех открытых сделок допустимый процент от общего депозита (например, не более 50% в рынке одновременно).Лимит на одну монету: Ограничение на максимальный объем в одной паре, чтобы избежать катастрофических убытков при дампе конкретного актива.Валидация плеча: Проверка, разрешено ли выбранное плечо (например, 50х) для данного уровня аккаунта и данной монеты.P.S.: После каждого раздела необходим отчёт в зависимости от исправлений и функционала это может быть лог или видео экрана.