82eca84230
Live trading optimizations (cumulative: $2,807 net, 81.8% WR, Sharpe 3.97): - #28B: Smart breakeven locks profit at entry + 0.5x ATR instead of fixed $2 - #31B: H1 Price vs EMA20 filter — BUY only when H1 bullish, SELL only when bearish Backtests #26-#32 (7 scripts testing sell improvement, regime-aware entry, confluence scoring, dynamic RR, multi-TF H1, and ML exit optimizer). Winners: #28B (+$229), #31B (+$343). Failed: #26, #27, #29, #30, #32. Also includes: web dashboard redesign, Docker setup, startup scripts. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
256 lines
6.3 KiB
Markdown
256 lines
6.3 KiB
Markdown
# Dashboard Integration with Existing Docker Setup
|
|
|
|
## 🎯 Overview
|
|
|
|
Dashboard dan API telah diintegrasikan ke dalam Docker setup yang **sudah ada**. Database PostgreSQL yang sudah running **TIDAK AKAN DIGANGGU**.
|
|
|
|
## ✅ Existing Setup (Tidak Berubah)
|
|
|
|
Yang sudah jalan dan **tetap aman**:
|
|
- ✅ `trading_bot_db` - PostgreSQL database
|
|
- ✅ `trading_bot_network` - Docker network
|
|
- ✅ Database schema dengan 7 tables (trades, signals, dll)
|
|
- ✅ Volume `postgres_data` untuk persistence
|
|
|
|
## 🆕 New Services Added
|
|
|
|
Layanan baru yang ditambahkan:
|
|
1. **trading-api** - FastAPI backend untuk dashboard
|
|
2. **dashboard** - Next.js web interface
|
|
3. **pgadmin** - Database management (optional)
|
|
|
|
## 🚀 Quick Start
|
|
|
|
### Option 1: Gunakan Helper Script (Recommended)
|
|
|
|
```cmd
|
|
# Tambahkan dashboard ke setup yang sudah ada
|
|
docker-add-dashboard.bat
|
|
```
|
|
|
|
Script ini akan:
|
|
1. Check database yang sudah running
|
|
2. Build API & Dashboard services
|
|
3. Start kedua services baru
|
|
4. Connect ke database & network yang sudah ada
|
|
|
|
### Option 2: Manual Docker Compose
|
|
|
|
```cmd
|
|
# Build hanya services baru
|
|
docker-compose build trading-api dashboard
|
|
|
|
# Start hanya services baru
|
|
docker-compose up -d trading-api dashboard
|
|
```
|
|
|
|
## 📊 Access Points
|
|
|
|
Setelah services running:
|
|
- **Dashboard:** http://localhost:3000
|
|
- **API:** http://localhost:8000
|
|
- **API Docs:** http://localhost:8000/docs
|
|
- **Database:** localhost:5432 (sudah running)
|
|
|
|
## 🔧 Service Management
|
|
|
|
### Check Status
|
|
```cmd
|
|
# Lihat status semua services
|
|
docker-status.bat
|
|
|
|
# Atau manual
|
|
docker-compose ps
|
|
```
|
|
|
|
### View Logs
|
|
```cmd
|
|
# Logs dashboard
|
|
docker-compose logs -f dashboard
|
|
|
|
# Logs API
|
|
docker-compose logs -f trading-api
|
|
|
|
# Logs database
|
|
docker-compose logs -f postgres
|
|
```
|
|
|
|
### Restart Services
|
|
```cmd
|
|
# Restart hanya dashboard
|
|
docker-compose restart dashboard
|
|
|
|
# Restart hanya API
|
|
docker-compose restart trading-api
|
|
|
|
# Restart semua (termasuk database)
|
|
docker-compose restart
|
|
```
|
|
|
|
### Remove Dashboard (Keep Database)
|
|
```cmd
|
|
# Hapus dashboard tapi tetap keep database
|
|
docker-remove-dashboard.bat
|
|
|
|
# Atau manual
|
|
docker-compose stop trading-api dashboard
|
|
docker-compose rm -f trading-api dashboard
|
|
```
|
|
|
|
## 🔗 Service Architecture
|
|
|
|
```
|
|
┌─────────────────────────────────────────────┐
|
|
│ trading_bot_network │
|
|
├─────────────────────────────────────────────┤
|
|
│ │
|
|
│ 📊 Dashboard (NEW) │
|
|
│ Port: 3000 │
|
|
│ └─> http://trading-api:8000 │
|
|
│ │
|
|
│ 🔌 Trading API (NEW) │
|
|
│ Port: 8000 │
|
|
│ └─> postgres:5432 │
|
|
│ │
|
|
│ 🗄️ PostgreSQL (EXISTING - NO CHANGE) │
|
|
│ Port: 5432 │
|
|
│ Status: Already Running │
|
|
│ Volume: postgres_data │
|
|
│ │
|
|
└─────────────────────────────────────────────┘
|
|
```
|
|
|
|
## 📝 Environment Variables
|
|
|
|
Edit `.env` untuk konfigurasi:
|
|
|
|
```env
|
|
# MT5 (Required for API)
|
|
MT5_LOGIN=your_login
|
|
MT5_PASSWORD=your_password
|
|
MT5_SERVER=your_server
|
|
MT5_PATH=C:/Program Files/MetaTrader 5/terminal64.exe
|
|
|
|
# Trading
|
|
SYMBOL=XAUUSD
|
|
CAPITAL=10000
|
|
|
|
# Database (Already configured)
|
|
DB_USER=trading_bot
|
|
DB_PASSWORD=trading_bot_2026
|
|
DB_NAME=trading_db
|
|
|
|
# Ports
|
|
API_PORT=8000
|
|
DASHBOARD_PORT=3000
|
|
DB_PORT=5432
|
|
```
|
|
|
|
## 🐛 Troubleshooting
|
|
|
|
### Dashboard tidak bisa connect ke API
|
|
|
|
**Check API health:**
|
|
```cmd
|
|
curl http://localhost:8000/api/health
|
|
```
|
|
|
|
**View API logs:**
|
|
```cmd
|
|
docker-compose logs -f trading-api
|
|
```
|
|
|
|
### API tidak bisa connect ke database
|
|
|
|
**Check database:**
|
|
```cmd
|
|
docker exec trading_bot_db pg_isready -U trading_bot
|
|
```
|
|
|
|
**Check network:**
|
|
```cmd
|
|
docker network inspect trading_bot_network
|
|
```
|
|
|
|
### Port conflict
|
|
|
|
Edit `.env` untuk ganti port:
|
|
```env
|
|
API_PORT=8001
|
|
DASHBOARD_PORT=3001
|
|
```
|
|
|
|
Then restart:
|
|
```cmd
|
|
docker-compose down trading-api dashboard
|
|
docker-compose up -d trading-api dashboard
|
|
```
|
|
|
|
## 💾 Data Persistence
|
|
|
|
**Database data tetap aman:**
|
|
- Volume `postgres_data` tetap ada
|
|
- Hapus container tidak hapus data
|
|
- Data tersimpan di Docker volume
|
|
|
|
**Check volume:**
|
|
```cmd
|
|
docker volume ls | findstr postgres
|
|
docker volume inspect trading_bot_postgres_data
|
|
```
|
|
|
|
## 🔄 Updates
|
|
|
|
**Update code dan rebuild:**
|
|
```cmd
|
|
# Pull latest code
|
|
git pull
|
|
|
|
# Rebuild services baru
|
|
docker-compose build trading-api dashboard
|
|
|
|
# Restart
|
|
docker-compose up -d trading-api dashboard
|
|
```
|
|
|
|
**Database tidak perlu rebuild** karena schema sudah ada.
|
|
|
|
## ⚠️ Important Notes
|
|
|
|
1. **Database tidak boleh dihapus** - Data trades ada di sini
|
|
2. **Jangan run `docker-compose down -v`** - Ini akan hapus volumes
|
|
3. **Untuk stop semua:** `docker-compose stop` (data aman)
|
|
4. **Untuk restart:** `docker-compose restart` atau `docker-compose up -d`
|
|
|
|
## 📚 Files Structure
|
|
|
|
```
|
|
xaubot-ai/
|
|
├── docker-compose.yml # Main orchestration (UPDATED)
|
|
├── Dockerfile # API image (NEW)
|
|
├── .env # Environment config
|
|
├── .dockerignore # Build exclusions
|
|
├── docker-add-dashboard.bat # Add dashboard script (NEW)
|
|
├── docker-remove-dashboard.bat # Remove dashboard script (NEW)
|
|
├── docker-status.bat # Status check script (NEW)
|
|
├── docker/
|
|
│ └── init-db/
|
|
│ └── 01-schema.sql # Database schema (EXISTING)
|
|
└── web-dashboard/
|
|
├── Dockerfile # Dashboard image (NEW)
|
|
└── .dockerignore # Build exclusions
|
|
```
|
|
|
|
## 🎯 Summary
|
|
|
|
✅ **Database tetap jalan** - Tidak ada perubahan
|
|
✅ **Services baru ditambahkan** - API & Dashboard
|
|
✅ **Data aman** - Volume persistence
|
|
✅ **Easy management** - Helper scripts
|
|
✅ **Independent** - Bisa start/stop tanpa ganggu database
|
|
|
|
---
|
|
|
|
**Integration completed:** Feb 6, 2026
|
|
**Status:** Dashboard integrated with existing Docker setup ✨
|