21 KiB
Master Roadmap — Dzentra Bot
Цель проекта
Создать Telegram-бота для:
- ручной торговли;
- мониторинга рынка;
- автоторговли;
- аналитики;
- управления стратегиями.
Stage 01 — Bootstrap / Foundation
✔ app bootstrap
✔ config layer
✔ logging
✔ router bootstrap
✔ DB bootstrap
✅ Статус: завершён
Stage 02 — System / Diagnostics
✔ system screen
✔ exchange health
✔ DB health
✔ runtime info
✔ error rendering
✅ Статус: завершён
Stage 03 — Exchange Integration
✔ mock exchange
✔ time handling
✔ exchangeInfo
✔ private auth
✔ account + portfolio
✔ market live polling
⚠ websocket research / fallback polling
✅ Статус: завершён (fallback mode)
Stage 04 — Storage / Journal
✔ storage foundation
✔ event log
✔ repositories
✔ UI integration
✔ journal management
✅ Статус: завершён
Stage 05 — Trading UI / Draft / Validation
✔ order draft flow
✔ interactive builder
✔ validation
✔ runtime mode helpers
✔ UI unification
✔ quantity normalization
✅ Статус: завершён
Stage 06 — Journal / Navigation / Settings
✔ journal UI
✔ navigation improvements
✔ settings screen
✔ system info
✅ Статус: завершён
Stage 07 — Auto Trading
07.1 — Skeleton UI
✔ экран автоторговли
✔ state machine
07.2 — Real settings
✔ стратегия
✔ риск
✔ символ
✔ leverage (default x2)
07.3 — Analysis Cycle
✔ run_cycle()
✔ mock signals
✔ live updates
07.3.1 — Background Runner
✔ asyncio loop
07.3.2 — Live Screens
✔ market
✔ portfolio
✔ journal
07.3.3 — Multi Live
✔ multi-screen
✔ duplicate protection
07.3.4 — Monitoring redesign
✔ новый экран мониторинга
07.3.5 — WebSocket probe
✔ ws skeleton
⚠ fallback REST polling
07.4 — Strategy Plugin Architecture
07.4.1
✔ BaseStrategy
✔ SignalResult
07.4.2
✔ Strategy Registry
07.4.3 — Trend Strategy
✔ signal generation
✔ repeat confirmation logic
✔ confidence scoring
✔ UI integration
07.4.3.1 — UI Optimization ✅
✔ compact auto screen
✔ state-based rendering (OFF / RUNNING / OBSERVING)
✔ minimal trading layout
✔ duplicate info removal
07.4.3.2 — Engine Decoupling (NEXT) ✅
✔ split analysis / UI refresh
✔ fast price polling (1s)
✔ slow UI updates (event-driven / 60s)
✔ anti-flood protection
07.4.3.3 — Paper Position & Execution Engine ✅
- добавлен ExecutionEngine
- реализованы paper-позиции (LONG / SHORT)
- интеграция с AutoTradeService
- синхронизация с UI
- логирование paper execution
- EventBus события (paper_position_opened)
Stage 07.4.3.4 — Telegram Strong Signal Alerts ✅
- EventBus-driven уведомления
- Фильтрация READY сигналов
- Поддержка BUY / SELL
- Анти-спам (deduplication)
- Интеграция с Journal
- Runner полностью управляет Telegram-уведомлениями
Stage 07.4.3.5 — Debug Commands & Test Mode ✅
- DEBUG_ENABLED env flag
- debug_force_signal API
- instant EventBus processing
- Telegram debug commands
- state inspection (/debug_state)
- journal logging for debug actions
- full pipeline testing without market dependency
Stage 07.4.3.6 - Smart Alert Throttling ✅
- cooldown для Telegram сигналов
- suppression повторных BUY/SELL
- journal logging suppressed событий
- не влияет на execution pipeline
07.4.3.7 — Alert priority & UX improvements ✅
- priority levels: HIGH / MEDIUM / LOW
- improved Telegram alert layout
- normalized symbol & leverage formatting
- compatible with cooldown & suppression
- extended debug_signal parameters
07.4.3.8 — Telegram Execution Alerts ✅
- Telegram alerts for paper position opened
- Telegram alerts for paper position closed
- Entry / Exit / Size / PnL rendering
- readable USD formatting
- signal alerts separated from execution alerts
07.4.3.9 — Position flip flow ✅
- instant LONG ↔ SHORT reversal (FLIP)
- new EventBus event: paper_position_flipped
- unified execution alert for flip
- improved execution realism (no idle gap)
07.4.3.10 — Auto UI Refactor & Live Screen ✅
- разделение auto.py → main.py + ui.py
- единый render-пайплайн через AutoTradeRunner
- live-обновление экрана без дублирования сообщений
- компактный UI: Signal / Decision / Position / PnL
- отображение Position Risk и Est. Size
- унификация форматирования (USD / price / leverage)
- защита от лишних edit (message is not modified)
07.4.3.11 — Risk Settings UI & UX ✅
- отдельный экран Risk Settings (SL / TP / Max Loss)
- FSM-ввод значений (проценты и USD)
- inline-редактирование (без новых сообщений)
- временные статусы (auto-clear через ~2.5 сек)
- защита от race condition (убран “скачок” экранов)
- reset risk controls (все параметры → off)
- интеграция в Auto screen (Controls строка)
- интеграция в Settings (Risk Controls summary)
- единая навигация: Auto ↔ Settings ↔ Risk
- UX-подсказки и валидация ввода
07.4.3.12 — Real Risk Engine (execution-level) ✅
- risk checks внутри ExecutionEngine
- SL / TP / ML закрывают позицию
- forced close с risk_reason
- интеграция в основной цикл автоторговли
- Telegram execution alerts с причиной риска
- единая точка принятия решений (execution layer)
07.4.3.13 — Risk-Based Position Sizing & Margin Protection ✅
- risk-based position sizing через SL distance
- размер позиции теперь рассчитывается от Risk %
- execution-level margin validation
- защита от oversized positions
- max reserved balance limit
- execution block reason state
- блокировка ENTRY / FLIP при превышении margin limit
- compact mobile UI redesign
- новый формат SL / TP / ML
- compact position rendering
- estimated margin preview
- max reserved preview
- execution blocked status в UI
- улучшенный mobile formatting
- SL стал обязательным для risk-engine sizing
- risk_percent теперь реально влияет на размер позиции
- flip теперь проходит через margin protection
07.4.3.14 — Auto UI, Realistic Pricing & Debug Live Tools ✅
- redesigned RUNNING auto-trading UI
- HOLD / BUY / SELL / READY state separation
- compact signal rendering with real duration
- confidence hidden for HOLD state
- direction-aware LONG / SHORT UI blocks
- compact active position rendering
- removed zero-value UI noise without position
- realistic bid / ask pricing in auto UI
- realistic bid / ask execution pricing
- TREND strategy switched to mid-price analysis
- corrected own funds / margin calculations
- safer size rounding for margin protection
- signal_started_at support for real-time duration tracking
- improved auto screen refresh handling
- live UI refresh diagnostics in AutoTradeRunner
- new debug UI-state commands
- new paper execution debug commands
- automatic flip direction detection
- live paper execution monitoring commands
- integration testing flow for SL / TP / ML
- integration testing flow for execution alerts
- preparation for isolated debug runtime architecture
07.4.3.15 — Isolated Debug Runtime & Debug Auto Screen ✅
- isolated DebugTradeState
- isolated DebugPositionState
- isolated DebugTradeService
- isolated DebugExecutionEngine
- isolated DebugTradeRunner
- separate
/debug_auto_screen - separate debug auto UI
- debug commands no longer mutate AutoTradeService
- debug execution no longer mutates ExecutionEngine._position
- debug runner no longer uses AutoTradeRunner
/debug_livedisabled as production-runtime injector- legacy debug commands redirected to isolated debug runtime
- debug LONG / SHORT / FLIP / CLOSE sandbox flow
- debug Start / Stop / Reset controls
- debug PnL live refresh
- debug margin / reserved rendering
- debug bid / ask execution pricing
- fresh REST snapshot support for debug execution
- debug_auto router added
- ordinary 🤖 Автоторговля screen remains unchanged by debug commands
- preparation for production execution pricing layer
07.4.3.16 — Production Execution Pricing Layer
- added isolated runtime market caches
- separated AUTO and DEBUG websocket pricing
- added execution snapshot layer
- added freshness-aware execution pricing
- implemented websocket-first market sourcing
- added REST fallback pricing pipeline
- fixed signal timer reset after START
- removed shared market cache collisions
- stabilized AUTO/DEBUG UI market rendering
07.4.3.17 — Unified Active Screen Lifecycle
- внедрён единый lifecycle основных экранов
- реализовано автоматическое закрытие предыдущего экрана
- устранено накопление Telegram UI-экранов
- унифицировано поведение всех основных экранов
- разделены UI lifecycle и background runtime
- сохранена фоновая работа AutoTradeRunner
- сохранена фоновая работа DebugTradeRunner
- стабилизирована работа live-экранов
- подготовлена архитектура для Telegram push-уведомлений
- подготовлена база для runtime event notifications
07.4.3.18.1 — Runtime Event Skeleton Architecture
- добавлен слой runtime_events
- добавлен слой notifications
- создана модель RuntimeEvent
- создана модель NotificationMessage
- добавлен RuntimeEventPublisher
- добавлен NotificationService skeleton
- добавлен TelegramNotificationChannel
- добавлен NotificationTargetRegistry
- добавлена базовая дедупликация уведомлений
- добавлены шаблоны signal/execution notifications
- зарегистрирован Telegram bot в notification target registry
- зарегистрирован default chat из AUTO/DEBUG runners
- исправлен circular import в package init файлах
- подготовлена архитектура для переноса strong signal alerts
07.4.3.18.2 ✅ Runtime Notification Migration
- strong signal alerts migrated to RuntimeEvent pipeline
- execution alerts migrated to RuntimeEvent pipeline
- detached Telegram delivery
- centralized notification logging
- runtime notification dedupe
- live runtime validation on real paper execution
- auto screen independence from notifications
07.4.3.19 — Strategy Audit & Signal Quality Layer
- audit SCALP false flip behavior
- add position-aware signal handling
- prevent weak/medium signal flips
- add min hold time before flip
- add flip cooldown
- add spread/slippage buffer
- classify signals as ENTRY / HOLD / EXIT / FLIP
- tune SCALP thresholds
07.4.3.19.1 - Position-aware Flip Protection
- добавлена проверка confidence перед flip
- добавлено подтверждение flip по количеству повторов сигнала
- добавлена минимальная длительность удержания позиции перед flip
- добавлена защита от flip в убыточной позиции без сильного сигнала
- реализована блокировка flip через RuntimeEvent logging
- добавлен dedupe для повторяющихся событий flip-блокировки через _last_flip_block_key
- синхронизировано execution-state после ENTRY / FLIP / CLOSE
- исправлена очистка ghost-позиций после forced exit
- стабилизирован lifecycle paper execution во время ночного runtime-тестирования
07.4.3.19.2 — Journal Noise Reduction & Position-aware Signal Logg
Снижение шума журнала и position-aware signal logging ✅
- отключено журналирование auto_screen_refresh_skipped
- отключено журналирование auto_screen_refreshed
- сохранено журналирование ошибок refresh-цикла
- добавлено подавление сигналов, совпадающих с открытой позицией
- добавлен throttled summary auto_position_aligned_signal_suppressed
- снижено количество повторных strong signal уведомлений
- сохранена обработка противоположных сигналов как reversal / flip candidates
- подготовлена база для Signal Intent Layer в следующем этапе
07.4.3.19.3 ✅ Strategy Noise Filter & Signal Intent Layer
- убрано журналирование одиночных BUY / SELL без серии
- HOLD-серии переведены с repeat-count на duration формат
- добавлен формат 🟡 HOLD 5м 36с завершён сигналом SELL
- добавлен signal_intent в payload сигналов
- добавлены intent-типы ENTRY_CANDIDATE, REVERSAL_CANDIDATE, REINFORCE_POSITION, HOLD_MARKET, NOISE
- добавлена position-aware интерпретация сигналов
- добавлено отдельное событие готового сигнала
- подготовлена база для стандартизации журнала в 07.4.3.19.4
07.4.3.19.4 ✅ Journal Runtime Standardization & Export Layer
- унифицированы execution event_type
- удалены legacy paper_* события
- execution logging переведён в единый human-readable стиль
- унифицированы market runtime events
- стандартизирован export logging
- добавлены account-aware export filename
- добавлены [DEMO]/[LIVE] runtime prefixes
- унифицированы risk-control journal events
- централизован EVENT_TITLES mapping
- журнал подготовлен к filters/search layer
07.4.4
07.4.4.1.1 ✅ Market State Human UI + HOLD Lifecycle Fix
- добавлено короткое human-readable отображение состояния рынка
- технические market_state значения скрыты из основного Auto UI
- убраны
trend=...иvolatility=...из Telegram-экрана - убран timeframe анализа из основного UI как лишняя техническая деталь
- добавлены UI-состояния
📈 Рынок · Рост,📉 Рынок · Падение,🟰 Рынок · Флэт,⚠️ Рынок · Волатильность,⏳ Рынок · Анализ - подтверждена работа REST klines как основы аналитики рынка
- Market State Engine переведён на анализ свечей OHLCV
- добавлены EMA20 / EMA50 для определения направления тренда
- добавлен ATR для оценки волатильности рынка
- добавлен RSI в аналитический payload
- TREND-стратегия стала market-aware и использует состояние рынка как фильтр входа
- market analysis синхронизируется в AutoTradeState
- исправлен баг ложного завершения
HOLD → HOLD - HOLD summary теперь пишется только при реальной смене сигнала
- этап подготовил основу для Market State Journal Events и BTC/ETH Relative Strength Layer
07.4.4.1.2 ✅ Market State Journal Events
- добавлено journal logging изменений состояния рынка
- реализован market-state transition tracking
- добавлены market_state_changed события
- добавлены market_trend_changed события
- добавлены market_volatility_changed события
- market-analysis интегрирован в auto runtime
- устранён spam logging market-analysis циклов
- реализовано logging только при реальной смене состояния
- добавлены human-readable market messages
- убраны raw enum/state значения из UI-журнала
- журнал переведён на explainable market-analysis стиль
- добавлена фиксация отсутствия выраженного направления рынка
- подготовлена база для market analytics layer
- подготовлена база для future AI market commentary
- журнал подготовлен к market filters/search layer
07.4.4.1.3 ✅ Journal Runtime Cleanup & Event Titles Layer
- унифицирована модель журнала: event_type / заголовок / сообщение
- заголовки событий сокращены до понятных сущностей
- подготовлен общий EVENT_TITLES mapping для journal UI и export layer
- убрано дублирование market_state_changed и market_trend_changed
- market_trend_changed исключён из обычного журналирования
- market trend сохранён в payload для аналитики и debug
- market-analysis сообщения приведены к единому формату
- Auto UI wording уточнён: падение заменено на нисходящий тренд
- сообщения настроек автоторговли приведены к короткому стилю
- символы активов очищены в journal messages: BTC вместо BTC/USD_LEVERAGE
- risk-control logging стал показывать SL / TP / ML в одном сообщении
- notification logging унифицирован через notification_sent / notification_error
- из market runtime сообщений убран лишний [AUTO]
- CSV / XLSX export очищен от эмодзи
- журнал подготовлен к централизованному event_titles.py и future filters/search layer
07.4.4.1.4 ✅ Entry Decision Diagnostics Layer
- добавлен диагностический слой причин не входа в позицию
- AutoTradeState расширен entry_block_reason и entry_block_message
- TrendStrategy начала передавать причины HOLD в payload
- добавлены entry_block_reason к market filter / live data / weak impulse сценариям
- AutoTradeService синхронизирует entry diagnostics в runtime state
- добавлено событие entry_blocked для журнала
- журнал пишет причины не входа только при изменении причины
- добавлена защита от spam logging одинаковых HOLD-причин
- Auto UI показывает строку Вход в позицию · причина
- strategy diagnostics отделены от execution diagnostics
- execution UI приведён к human-readable стилю
- добавлен EVENT_TITLES mapping для entry_blocked
- подготовлена база для анализа частоты причин отказа от входа
- подготовлена база для adaptive thresholds и настройки чувствительности стратегии
07.4.5
⏳ Scalping Strategy
07.3.6 — Signal Engine
⏳ реальные сигналы
07.3.7 — Execution Engine
⏳ исполнение ордеров
07.3.8 — Analytics
⏳ статистика торговли
🟡 Статус: в работе
Stage 08 — Analytics / Reports
⏳ отчёты
⏳ pnl
⏳ winrate
⏳ drawdown
⚪ Статус: не начат
Stage 09 — Production Readiness
⏳ deployment
⏳ monitoring
⏳ alerts
⏳ backups
⚪ Статус: не начат
Текущий статус проекта
👉 Завершён: 07.4.3.1
👉 Следующий шаг: 07.4.3.2 — Engine Decoupling + Price Polling