Files
trade/project.sw
T

91 строка
3.6 KiB
XML

# 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