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

11 KiB
Raw Blame History

🖥️ 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

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

python trading_bot_gui.py

Option 2: Als ausführbare Datei (Windows)

# 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!)

# Im GUI einfach Checkboxen an/abwählen
 Asian   = True/False
 London  = True/False
 Overlap = True/False
 NY      = True/False

Confidence Threshold

# Slider: 50 - 90
Empfohlen: 70

Drawdown Protection

Limits sind hardcoded in drawdown_protection.py:

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

# 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:

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