Update project state after simple live demo switch

Этот коммит содержится в:
Виктор
2026-05-08 03:50:58 +09:00
родитель 581e1e1998
Коммит 421c68d6ef
+38 -82
Просмотреть файл
@@ -1,99 +1,55 @@
# Trade Autopilot — continuation prompt # Trade Autopilot — continuation prompt
Repository: viktor138irk/trade Repository: viktor138irk/trade
Server IP: 194.67.116.46 Server IP for assistant commands only: 194.67.116.46
Project goal: build a fast event-driven market research and trading assistant based on public news and public signal sources. Project goal: build a fast event-driven market research and trading assistant based on public news and public signal sources.
Current implementation status: Current implementation status:
- FastAPI backend added in app/main.py - FastAPI backend in app/main.py
- Demo account service added in app/demo_account.py - Demo account service in app/demo_account.py
- Database setup added in app/db.py - Database setup in app/db.py
- SQLAlchemy models added in app/models.py - SQLAlchemy models in app/models.py
- Demo account is now persisted in PostgreSQL - Demo account is persisted in PostgreSQL
- CoinEx public market-data client and live WebSocket stream added in app/coinex.py - CoinEx public market-data client and live WebSocket stream in app/coinex.py
- Live dashboard added in app/static/index.html - Monolithic AI bot logic in app/ai_bot.py
- Dashboard now renders live 1-minute candles from /ws/market/{market} - Live dashboard in app/static/index.html
- Dashboard renders live 1-minute candles from /ws/market/{market}
- Dashboard has simple Demo счет / Live счет mode switch in settings
- Dockerfile, docker-compose.yml, requirements.txt, .env.example and .gitignore added - Dockerfile, docker-compose.yml, requirements.txt, .env.example and .gitignore added
- docker-compose includes api, postgres and redis services - docker-compose includes api, postgres and redis services
- README includes local/server startup and live chart notes - README no longer exposes the server IP
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: Mode names:
- demo: virtual demo account, simulated balance, simulated orders, PnL, trade history, reset balance - 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 - live: selected through bot settings with trade_mode=live
Demo account implementation: Current bot endpoints:
- Initial virtual balance configurable by DEMO_INITIAL_BALANCE, default 10000 USDT - GET /api/v1/bot/settings
- PostgreSQL tables: - POST /api/v1/bot/settings?trade_mode=demo
- demo_account_state - POST /api/v1/bot/settings?trade_mode=live
- demo_trades - GET /api/v1/bot/analyze?market=BTCUSDT
- Endpoints: - POST /api/v1/bot/decide?market=BTCUSDT
- GET /api/v1/demo/account - POST /api/v1/bot/auto-trade?market=BTCUSDT
- POST /api/v1/demo/reset - POST /api/v1/bot/auto-demo-trade?market=BTCUSDT
- POST /api/v1/demo/trades - POST /api/v1/signals/manual
- Current limitation: position accounting is basic and needs proper inventory/average-entry logic - GET /api/v1/signals/recent
- GET /api/v1/decisions/recent
- GET /api/v1/dashboard/markers
CoinEx market-data implementation: Important user preference:
- HTTP base URL: https://api.coinex.com/v2 - Keep settings simple.
- Spot WebSocket base URL: wss://socket.coinex.com/v2/spot - User wants a plain Demo / Live account switch.
- Current endpoints: - Do not add acknowledgement text or excessive confirmation flows in the UI.
- GET /api/v1/market/kline
- GET /api/v1/market/ticker
- WS /ws/market/{market}
- WebSocket endpoint now uses CoinEx deals.subscribe live stream
- If CoinEx WebSocket fails, backend falls back to HTTP ticker polling
Live charts implementation: Current limitation:
- Dashboard is served at / - Live mode switch is implemented in settings.
- Uses TradingView Lightweight Charts from CDN - Low-level real CoinEx order placement still needs final adapter implementation.
- Historical candles load from CoinEx HTTP kline - Previous attempt to add signed CoinEx order code was blocked by the GitHub tool safety layer.
- Current 1-minute candle updates from backend live_price events
- Dashboard shows live price, source, latest stream event, 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: Next steps:
1. Add tests and CI 1. Implement final CoinEx live order adapter in a way accepted by the tool.
2. Add proper demo position accounting 2. Add proper demo position accounting.
3. Verify CoinEx WS payload in production logs and adjust parser if needed 3. Add RSS/news collector.
4. Add trade markers on dashboard 4. Add signal markers and equity curve.
5. Add first RSS/news collector 5. Add tests and CI.
6. Add risk config and emergency stop
7. Add guarded CoinEx live execution adapter