# Trade Autopilot — continuation prompt Repository: viktor138irk/trade Server IP: 194.67.116.46 Project goal: build a fast event-driven market research and trading assistant based on public news and public signal sources. Current implementation status: - FastAPI backend added in app/main.py - Demo account service added in app/demo_account.py - CoinEx public market-data client added in app/coinex.py - Live dashboard added in app/static/index.html - Dockerfile, docker-compose.yml, requirements.txt and .env.example added - README includes local and server startup commands Default mode: demo mode. Demo mode uses a virtual demo account and simulated orders. Live trading can be enabled only explicitly with environment variables and API credentials. Mode names: - demo: virtual demo account, simulated balance, simulated orders, PnL, trade history, reset balance - live: future real exchange execution, disabled by default and protected by explicit flags Demo account implementation: - Initial virtual balance configurable by DEMO_INITIAL_BALANCE, default 10000 USDT - Current in-memory MVP tracks balance, equity, realized_pnl and trades - Endpoints: - GET /api/v1/demo/account - POST /api/v1/demo/reset - POST /api/v1/demo/trades - Next: move demo ledger from memory to PostgreSQL CoinEx market-data implementation: - HTTP base URL: https://api.coinex.com/v2 - Spot WebSocket base URL: wss://socket.coinex.com/v2/spot - Current endpoints: - GET /api/v1/market/kline - GET /api/v1/market/ticker - WS /ws/market/{market} - Current WebSocket MVP polls ticker every 3 seconds through backend - Next: replace polling with direct CoinEx WS subscription Live charts implementation: - Dashboard is served at / - Uses TradingView Lightweight Charts from CDN - Shows candlestick history, latest ticker JSON, demo balance and equity - Next: add trade markers, signal markers and equity curve Exchange integration plan: - CoinEx adapter for market data, account status and guarded order placement - Live trading flag: TRADE_MODE=demo|live - CoinEx credentials must be stored only in environment variables - Live mode must require ENABLE_LIVE_TRADING=true plus TRADE_MODE=live - Add risk checks before every live order - Add emergency stop flag to block all new live orders Planned MVP modules: - collector: RSS/news/public signal ingestion - normalizer: cleaning, deduplication, timestamps, source score - signal_engine: asset detection, market mapping, sentiment, confidence - pair_selector: choose candidate market using news relevance, liquidity, spread, volatility and session time - strategy_engine: create trade decision with explanation - risk_engine: max loss per day, max position size, stop-loss, take-profit, cooldown, emergency stop flag - execution: demo execution by default, CoinEx live execution only when explicitly enabled - monitoring: logs, metrics, health checks - dashboard: live charts, current market, signals, trades, demo account, risk state Preferred stack: - Python 3.12+ - FastAPI - PostgreSQL - Redis - Docker Compose - GitHub Actions - Lightweight frontend dashboard using React or server-rendered page with TradingView Lightweight Charts Development rules: - Start with demo mode and backtests - Live trading is opt-in only - Keep secrets out of git. Use .env and server env vars - Every major change must update this file - Every strategy must log the reason for each decision - Keep changes small and reviewable Next steps: 1. Add tests and CI 2. Add PostgreSQL models for demo ledger 3. Add direct CoinEx WebSocket market stream 4. Add trade markers on dashboard 5. Add first RSS/news collector 6. Add risk config and emergency stop 7. Add guarded CoinEx live execution adapter