Files
Place-Order-Trading-Bot/README_GUI.md
T

431 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🖥️ 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