431 lines
11 KiB
Markdown
431 lines
11 KiB
Markdown
# 🖥️ Trading Bot GUI - Desktop Application
|
||
|
||
## Überblick
|
||
|
||
Eine professionelle **Tkinter Desktop-Anwendung** für den Trading Bot V1.9.
|
||
|
||
### Features
|
||
|
||
✅ **MT5 Connection Management**
|
||
- One-Click MT5 Verbindung
|
||
- Live Account Status
|
||
- Balance Anzeige
|
||
|
||
✅ **Bot Controls**
|
||
- Start/Stop Bot mit einem Klick
|
||
- Live Bot Status
|
||
- Session Filter Konfiguration
|
||
|
||
✅ **Real-time Monitoring**
|
||
- Current Session Display
|
||
- Adaptive Interval Anzeige
|
||
- Position Count
|
||
- Daily P/L
|
||
|
||
✅ **Drawdown Protection Status**
|
||
- Live Loss Limits
|
||
- Consecutive Loss Counter
|
||
- Trading Status (Allowed/Paused)
|
||
|
||
✅ **Manual Controls**
|
||
- Status Check
|
||
- Position Check
|
||
- Close All Positions (mit Confirmation)
|
||
|
||
✅ **Activity Log**
|
||
- Live Event-Log
|
||
- Color-coded Messages
|
||
- Scrollable History
|
||
|
||
---
|
||
|
||
## Installation
|
||
|
||
### Voraussetzungen
|
||
|
||
```bash
|
||
pip install tkinter # (meist bereits mit Python installiert)
|
||
pip install MetaTrader5
|
||
pip install pandas
|
||
pip install pandas-ta
|
||
pip install apscheduler
|
||
pip install pytz
|
||
```
|
||
|
||
### Projekt-Struktur
|
||
|
||
```
|
||
placeorder/
|
||
├── trading_bot_gui.py # 🖥️ Tkinter GUI (NEU!)
|
||
├── adaptive_rhythm_manager.py # Adaptive Intervals (NEU!)
|
||
├── execute_trade.py # Trade Execution (NEU!)
|
||
│
|
||
├── infrastructure_patch.py # Infrastructure
|
||
├── trading_database.py # Database
|
||
├── telegram_notifier.py # Telegram
|
||
├── position_monitor.py # Position Monitor
|
||
├── session_filter_patch.py # Session Filter
|
||
├── drawdown_protection.py # Drawdown Protection
|
||
│
|
||
└── trading_bot.db # SQLite Database
|
||
```
|
||
|
||
---
|
||
|
||
## 🚀 Starten der GUI
|
||
|
||
### Option 1: Direkt starten
|
||
|
||
```bash
|
||
python trading_bot_gui.py
|
||
```
|
||
|
||
### Option 2: Als ausführbare Datei (Windows)
|
||
|
||
```bash
|
||
# Mit PyInstaller:
|
||
pip install pyinstaller
|
||
|
||
pyinstaller --onefile --windowed \
|
||
--name "TradingBot" \
|
||
--icon=icon.ico \
|
||
trading_bot_gui.py
|
||
```
|
||
|
||
Dann findest du `TradingBot.exe` im `dist/` Ordner.
|
||
|
||
---
|
||
|
||
## 📖 Bedienungsanleitung
|
||
|
||
### 1️⃣ MT5 Verbindung herstellen
|
||
|
||
1. Klicke auf **"Connect to MT5"**
|
||
2. Warte bis Status **"✅ Connected"** angezeigt wird
|
||
3. Account-Info wird angezeigt
|
||
|
||
### 2️⃣ Bot starten
|
||
|
||
1. Stelle sicher MT5 ist verbunden
|
||
2. Klicke auf **"▶️ Start Bot"**
|
||
3. Bot Status ändert sich zu **"✅ Bot Running"**
|
||
4. Trading beginnt automatisch
|
||
|
||
### 3️⃣ Session Filter anpassen
|
||
|
||
**Während der Laufzeit änderbar!**
|
||
|
||
- ☑️ **Asian**: An/Aus
|
||
- ☑️ **London**: An/Aus
|
||
- ☑️ **Overlap**: An/Aus
|
||
- ☑️ **NY**: An/Aus
|
||
|
||
**Confidence Threshold:**
|
||
- Slider: 50% - 90%
|
||
- Empfohlen: 70% (aktuell)
|
||
|
||
### 4️⃣ Status überwachen
|
||
|
||
**Trading Status Panel zeigt:**
|
||
- 📊 Current Session (Asian/London/NY/Overlap)
|
||
- ⏱️ Adaptive Interval (5/15/30 min)
|
||
- 📈 Open Positions (0/1)
|
||
- 💰 Daily P/L
|
||
|
||
**Drawdown Protection Panel:**
|
||
- ✅/🛑 Trading Status
|
||
- Daily Loss: $X / $100
|
||
- Consecutive Losses: X / 5
|
||
|
||
### 5️⃣ Manuelle Kontrollen
|
||
|
||
**Check Status:**
|
||
- Aktualisiert alle Anzeigen
|
||
- Prüft Drawdown Protection
|
||
- Zeigt aktuelle Metriken
|
||
|
||
**Check Positions:**
|
||
- Zeigt alle offenen Positionen im Log
|
||
- Ticket, Typ, P/L
|
||
|
||
**Close All Positions:**
|
||
- ⚠️ Schließt ALLE Positionen!
|
||
- Confirmation-Dialog
|
||
- Nur für Notfälle!
|
||
|
||
### 6️⃣ Activity Log
|
||
|
||
**Alle Events werden geloggt:**
|
||
- ✅ Success Messages (grün)
|
||
- ℹ️ Info Messages
|
||
- ⚠️ Warnings
|
||
- ❌ Errors (rot)
|
||
|
||
**Clear Log:**
|
||
- Klick auf "🗑️ Clear Log" um Log zu leeren
|
||
|
||
### 7️⃣ Bot stoppen
|
||
|
||
1. Klicke auf **"⏹️ Stop Bot"**
|
||
2. Scheduler wird gestoppt
|
||
3. Offene Positionen bleiben **bestehen**!
|
||
4. Bot Status ändert sich zu **"⏸️ Bot Stopped"**
|
||
|
||
---
|
||
|
||
## ⚙️ Konfiguration
|
||
|
||
### Session Filter (Live änderbar!)
|
||
|
||
```python
|
||
# Im GUI einfach Checkboxen an/abwählen
|
||
✅ Asian = True/False
|
||
✅ London = True/False
|
||
✅ Overlap = True/False
|
||
✅ NY = True/False
|
||
```
|
||
|
||
### Confidence Threshold
|
||
|
||
```python
|
||
# Slider: 50 - 90
|
||
Empfohlen: 70
|
||
```
|
||
|
||
### Drawdown Protection
|
||
|
||
**Limits sind hardcoded in `drawdown_protection.py`:**
|
||
|
||
```python
|
||
max_daily_loss = 100 # $100/Tag
|
||
max_weekly_loss = 300 # $300/Woche
|
||
max_monthly_loss = 800 # $800/Monat
|
||
max_consecutive_losses = 5 # 5 Verluste in Folge
|
||
cooldown_hours = 24 # 24h Pause
|
||
```
|
||
|
||
**Zum Ändern:**
|
||
- Öffne `drawdown_protection.py`
|
||
- Passe `create_protected_trading_check()` an (Zeile 294-302)
|
||
|
||
---
|
||
|
||
## 🎨 GUI Layout
|
||
|
||
```
|
||
┌────────────────────────────────────────────────────────────────┐
|
||
│ 🤖 Trading Bot V1.9 - Control Center │
|
||
├─────────────────────┬──────────────────────────────────────────┤
|
||
│ 📡 MT5 Connection │ 📈 Trading Status │
|
||
│ ✅ Connected │ Session: NY │
|
||
│ Account: 10800246 │ Interval: 15 min │
|
||
│ Balance: $7166.38 │ Positions: 0/1 │
|
||
│ │ Daily P/L: $0.00 │
|
||
├─────────────────────┼──────────────────────────────────────────┤
|
||
│ 🤖 Bot Controls │ 📋 Activity Log │
|
||
│ ✅ Bot Running │ [00:15:23] INFO: Bot started │
|
||
│ [▶️ Start] │ [00:15:45] INFO: Connected to MT5 │
|
||
│ [⏹️ Stop] │ [00:16:12] INFO: Position opened │
|
||
│ │ ... │
|
||
├─────────────────────┤ [🗑️ Clear Log] │
|
||
│ 📊 Session Filter │ │
|
||
│ ☑ Asian │ │
|
||
│ ☐ London │ │
|
||
│ ☐ Overlap │ │
|
||
│ ☑ NY │ │
|
||
│ Confidence: 70% │ │
|
||
│ [═══════70═══] │ │
|
||
├─────────────────────┤ │
|
||
│ 🛡️ Drawdown Protect │ │
|
||
│ ✅ Trading Allowed │ │
|
||
│ Daily: $0/$100 │ │
|
||
│ Consecutive: 0/5 │ │
|
||
├─────────────────────┤ │
|
||
│ 🎮 Manual Controls │ │
|
||
│ [📊 Check Status] │ │
|
||
│ [🔄 Check Pos] │ │
|
||
│ [❌ Close All] │ │
|
||
└─────────────────────┴──────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## 🛡️ Sicherheitshinweise
|
||
|
||
### ⚠️ WICHTIG:
|
||
|
||
1. **Close All Positions** nur in Notfällen!
|
||
- Confirmation-Dialog wird angezeigt
|
||
- Schließt wirklich ALLE Positionen
|
||
|
||
2. **Bot Stop** beendet nur den Scheduler
|
||
- Offene Positionen bleiben bestehen
|
||
- Position Monitor läuft weiter bis GUI geschlossen wird
|
||
|
||
3. **Session Filter Änderungen** wirken sofort
|
||
- Bot übernimmt neue Config im nächsten Interval
|
||
- Keine Bestätigung nötig
|
||
|
||
4. **Drawdown Protection** arbeitet automatisch
|
||
- Pausiert Trading bei Limit-Überschreitung
|
||
- Telegram Notification wird gesendet
|
||
- Auto-Resume nach Cooldown
|
||
|
||
---
|
||
|
||
## 🐛 Troubleshooting
|
||
|
||
### Problem: "MT5 initialization failed"
|
||
|
||
**Lösung:**
|
||
- MetaTrader 5 muss laufen
|
||
- Algo-Trading muss aktiviert sein (Tools → Options → Expert Advisors)
|
||
|
||
### Problem: "Bot starting error: execute_trade_v2_adaptive not found"
|
||
|
||
**Lösung:**
|
||
- `execute_trade.py` ist ein Placeholder
|
||
- Du musst die komplette Trade-Logik aus dem Notebook extrahieren
|
||
- Siehe Abschnitt "Vollständige Integration" unten
|
||
|
||
### Problem: GUI friert ein
|
||
|
||
**Lösung:**
|
||
- Alle langen Operationen laufen in Threads
|
||
- Wenn GUI einfriert: Force-Close und neu starten
|
||
- Check Log für Fehler
|
||
|
||
### Problem: Drawdown Status nicht sichtbar
|
||
|
||
**Lösung:**
|
||
- Bot muss gestartet sein
|
||
- Klick auf "Check Status" um zu aktualisieren
|
||
|
||
---
|
||
|
||
## 🔧 Vollständige Integration (TODO)
|
||
|
||
**Die GUI ist aktuell ein Framework!**
|
||
|
||
Um voll funktionsfähig zu sein, musst du noch folgendes tun:
|
||
|
||
### 1. Trade Execution Module vervollständigen
|
||
|
||
Extrahiere aus Notebook:
|
||
- `extended_top_down_v2_adaptive()`
|
||
- `check_existing_positions()`
|
||
- `market_order()`
|
||
- `check_risk_limits()`
|
||
- Alle Helper Functions
|
||
|
||
### 2. Market Analysis Module erstellen
|
||
|
||
```python
|
||
# market_analysis.py
|
||
def detect_market_regime(df, lookback=50):
|
||
# ... aus Notebook
|
||
|
||
def get_enhanced_trend(timeframe, lookback, symbol):
|
||
# ... aus Notebook
|
||
```
|
||
|
||
### 3. Imports anpassen
|
||
|
||
In `trading_bot_gui.py`:
|
||
|
||
```python
|
||
from execute_trade import (
|
||
execute_trade_v2_adaptive,
|
||
check_existing_positions,
|
||
close_existing_positions
|
||
)
|
||
from market_analysis import (
|
||
extended_top_down_v2_adaptive,
|
||
detect_market_regime
|
||
)
|
||
```
|
||
|
||
---
|
||
|
||
## 💡 Vorteile der GUI
|
||
|
||
### vs. Jupyter Notebook:
|
||
|
||
✅ **Benutzerfreundlichkeit**
|
||
- Keine Code-Kenntnisse nötig zum Bedienen
|
||
- Buttons statt Code ausführen
|
||
- Live Status-Anzeige
|
||
|
||
✅ **Stabilität**
|
||
- Keine Kernel-Crashes
|
||
- Thread-safe Operations
|
||
- Exception Handling
|
||
|
||
✅ **Deployment**
|
||
- Als .exe für Windows
|
||
- Keine Jupyter Installation nötig
|
||
- Standalone-App
|
||
|
||
### vs. Web Dashboard:
|
||
|
||
✅ **Kontrolle**
|
||
- Start/Stop Bot direkt
|
||
- Session Config ändern
|
||
- Direkte MT5-Verbindung
|
||
|
||
✅ **Lokal**
|
||
- Keine Server nötig
|
||
- Läuft auf Windows-PC
|
||
- Kein Port-Forwarding
|
||
|
||
### Kombination empfohlen:
|
||
|
||
```
|
||
Desktop PC:
|
||
└── trading_bot_gui.py # Kontrolle + Monitoring
|
||
|
||
VPS:
|
||
└── trading_bot_service.py # 24/7 Trading
|
||
└── trading_dashboard.py # Web Monitoring
|
||
```
|
||
|
||
---
|
||
|
||
## 📈 Nächste Schritte
|
||
|
||
1. **Trade Execution vervollständigen**
|
||
- Module aus Notebook extrahieren
|
||
- Alle Dependencies auflösen
|
||
|
||
2. **Testing**
|
||
- GUI auf Demo-Account testen
|
||
- Alle Buttons durchklicken
|
||
- Error-Handling prüfen
|
||
|
||
3. **Deployment**
|
||
- PyInstaller .exe erstellen
|
||
- Icon hinzufügen
|
||
- Installer erstellen (NSIS)
|
||
|
||
4. **Enhancement**
|
||
- Live Charts integrieren (matplotlib)
|
||
- Trade History Tabelle
|
||
- Performance Metrics
|
||
|
||
---
|
||
|
||
## 📞 Support
|
||
|
||
Bei Problemen:
|
||
1. Check Activity Log für Errors
|
||
2. Check `trading_bot.db` (SQLite Browser)
|
||
3. Check Telegram Bot Messages
|
||
|
||
---
|
||
|
||
**Status:** 🟡 Framework Ready - Trade Execution TODO
|
||
|
||
**Version:** V1.9 GUI
|
||
|
||
**Last Updated:** 2025-12-06
|