Professionelle Echtzeit-Monitoring-Plattform fuer MetaTrader 5 Trading-Konten
Full-Stack Eigenentwicklung — von der Architektur ueber das Backend bis zum interaktiven Frontend.
| Backend | Java 17 • Spring Boot 3.2 • Spring Security • Spring Data JPA • H2 Database |
| Frontend | Thymeleaf SSR • Chart.js • Vanilla JS • CSS Custom Properties (Dark Mode) |
| Client | MQL5 Expert Advisor • HTTP REST • Stateful Reconnect-Logik |
| Security | BCrypt • RBAC • Brute-Force-Schutz • Rate-Limiting • CSP • HSTS |
| Architektur | Controller-Service-Repository • In-Memory Cache • Scheduled Tasks • Event-Driven Alerts |
Dieses Projekt ist eine vollstaendig eigenstaendig konzipierte und entwickelte Monitoring-Plattform, die den gesamten Software-Lebenszyklus abdeckt: Von der initialen Anforderungsanalyse ueber die Systemarchitektur, die Backend- und Frontend-Implementierung bis hin zum Deployment und laufenden Betrieb.
Die Plattform ueberwacht in Echtzeit mehrere MetaTrader 5 Trading-Konten, aggregiert Performance-Daten, erkennt automatisch Anomalien und alarmiert bei kritischen Zustaenden ueber multiple Kanaele (Web-Dashboard, E-Mail, Smart-Home-Integration).
Das System laeuft produktiv und ueberwacht taeglich reale Trading-Konten.
- Zwei-Komponenten-Design: Klare Trennung zwischen Datenerfassung (MQL5 Expert Advisor) und Datenverarbeitung (Spring Boot Backend) ueber eine definierte REST-API.
- In-Memory Cache mit DB-Backing: Accounts werden fuer minimale Dashboard-Latenz im Speicher gehalten und asynchron in der H2-Datenbank persistiert.
- Striktes Controller-Service-Repository Pattern: Saubere Schichtenarchitektur mit entkoppelter Geschaeftslogik fuer hohe Wartbarkeit und Testbarkeit.
- Multi-Account-Ueberwachung: Beliebig viele MetaTrader-Terminals senden parallel Daten an einen zentralen Server.
- Trade-Synchronisation (REAL vs. DEMO): Automatischer Abgleich offener Trades zwischen Echtgeld- und Demo-Konten mit zweistufigem Matching-Algorithmus (Strict Match + Fallback Match).
- Open-Profit-Alarm-System: Konfigurierbares Schwellwert-Monitoring (absolut und prozentual) mit Latch-Logik zur Vermeidung von Alarm-Fluten.
- Slippage- & Delay-Analyse: Automatisierte Auswertung von Ausfuehrungsdifferenzen beim Copy-Trading.
- Spring Security mit BCrypt-Passwort-Hashing und rollenbasierter Zugriffskontrolle (RBAC).
- IP-basierter Brute-Force-Schutz mit konfigurierbaren Schwellwerten und automatischer Sperrung.
- Rate-Limiting (Sliding Window, per IP) zum Schutz vor Ueberlastung.
- Security-Headers: Content-Security-Policy, HSTS, X-Frame-Options, XSS-Protection.
- Audit-Logging: Lueckenlose Protokollierung von Logins, Requests und Client-Aktionen.
- Alle Sicherheitsparameter live konfigurierbar ueber das Admin-Panel — kein Neustart noetig.
- Dynamisches Kachel-Layout mit Drag & Drop, Sektionsverwaltung und persistentem Layout.
- Interaktive Charts: Ueberlagerte Balance/Equity-Kurven, Magic-Number-Profit-Kurven, Tages-/Wochen-/Monatsreports.
- Responsive Design: Dedizierte Mobile-Ansicht fuer Drawdown-Monitoring unterwegs.
- Dark Mode als Standard mit durchgaengigem CSS-Custom-Properties-Theming.
- Ausfallsichere Kommunikation: Automatische Reconnects mit Exponential-Backoff, Heartbeat-Watchdog, State-Persistenz ueber GlobalVariables.
- Intelligenter Tick-Mode: Automatische Umschaltung auf hochaufloesende Ueberwachung bei kritischem Drawdown.
- Inkrementelle Synchronisation: Deltabasierte Updates minimieren Datenverkehr und Serv-Last.
- E-Mail-Alerting: SMTP-Integration mit konfigurierbarem Rate-Limit (taegliches Maximum).
- Homey-Webhook-Anbindung: Sirenen-Alarm ueber Smart-Home bei kritischen Trading-Situationen.
- Multi-Channel: Alarme werden parallel ueber Dashboard-Banner, E-Mail und Smart-Home ausgeloest.
MetaTrader 5 Terminal(s) Spring Boot Server
+-----------------------+ +---------------------------+
| MQL5 Expert Advisor | REST | Controller Layer |
| - Trade Monitoring | -------> | - ApiController |
| - Heartbeat | HTTP | - DashboardController |
| - History Export | POST | - AdminController |
| - Auto-Reconnect | | - SecurityController |
+-----------------------+ +---------------------------+
| Service Layer |
| - AccountManager (Cache) |
| - TradeSyncService |
| - OpenProfitAlarmService |
| - TradeComparisonService |
| - EmailService |
| - HomeyService |
+---------------------------+
| Persistence Layer |
| - Spring Data JPA |
| - H2 File Database |
| - 11 Entity Tables |
+---------------------------+
|
+---------------------------+
| Web Dashboard |
| - Thymeleaf SSR |
| - Chart.js |
| - Responsive Dark UI |
+---------------------------+
| Bereich | Features |
|---|---|
| Dashboard | Dynamische Kacheln, Drag & Drop, Sektionen, Report-Charts, Live-Status-Indikatoren |
| Account-Analyse | Balance/Equity-Overlay-Chart, Performance pro Strategie, Drawdown-Berechnung, Historien-Filter |
| Trade-Sync | Automatischer REAL/DEMO-Abgleich, zweistufiges Matching, Sync-Ausnahmen, Alarm bei Diskrepanzen |
| Copy-Trade-Analyse | Slippage-Messung, Delay-Berechnung, Trade-Matching ueber Zeitfenster |
| Alarm-System | Open-Profit-Schwellwerte (absolut/prozentual), E-Mail, Smart-Home-Sirene, Dashboard-Banner |
| Security | RBAC, BCrypt, Brute-Force-Schutz, Rate-Limiting, CSP, HSTS, Audit-Logs |
| Admin-Panel | Benutzerverwaltung, DB-Statistiken, Magic-Number-Mapping, Live-Konfiguration aller Parameter |
| Berichte | Tages-/Wochen-/Monatsreports mit aggregierten Profit-Charts |
| Mobile | Responsive Drawdown-Monitor fuer unterwegs |
| Integration | MetaTrader 5 EA, SMTP E-Mail, Homey Smart-Home Webhook |
| Schicht | Technologie | Einsatzzweck |
|---|---|---|
| Runtime | Java 17 | Basis-Plattform |
| Framework | Spring Boot 3.2 | Web-Framework, Dependency Injection, Auto-Configuration |
| Security | Spring Security 6 | Authentifizierung, Autorisierung, CSRF, Session-Management |
| ORM | Spring Data JPA / Hibernate | Objekt-relationales Mapping, Repository-Pattern |
| Datenbank | H2 (File-basiert) | Embedded, wartungsfrei, Zero-Config |
| Templating | Thymeleaf + Thymeleaf-Extras-SpringSecurity | Server-Side Rendering mit Security-Integration |
| Charts | Chart.js | Interaktive Echtzeit-Diagramme |
| Serialisierung | Jackson (inkl. JSR-310) | JSON-Verarbeitung mit Java-Time-Support |
| Spring Boot Starter Mail | SMTP-basiertes Alerting | |
| Client | MQL5 (MetaTrader 5) | Nativer Trading-Plattform-Client |
| Build | Maven | Dependency-Management und Build-Automatisierung |
11 relationale Tabellen, automatisch verwaltet durch JPA (ddl-auto=update):
| Tabelle | Zweck | Besonderheit |
|---|---|---|
accounts |
Account-Stammdaten, Metriken, Alarm-Konfig | Typ DEMO/REAL, pro-Account Alarm-Schwellwerte |
equity_snapshots |
Equity-Zeitreihe fuer Charts | Rate-limitiert (1x/Min), Auto-Cleanup >90 Tage |
closed_trades |
Trade-Historie | Duplikat-Erkennung (accountId + ticket) |
open_trades |
Aktuelle Positionen | Vollstaendiger Ersatz bei jedem Update |
users |
Benutzerverwaltung | BCrypt-Hash, RBAC, Account-Berechtigungen |
dashboard_sections |
Layout-Persistenz | Drag & Drop Reihenfolge |
magic_mappings |
Strategie-Bezeichnungen | Magic Number zu lesbarem Namen |
global_config |
Dynamische Konfiguration | Key-Value Store, alle Security/Alert-Parameter |
login_logs |
Authentifizierungs-Audit | Erfolg/Fehlschlag, IP, Zeitstempel |
request_logs |
HTTP-Audit | Neue IPs, User-Agent, Status-Code |
client_logs |
Client-Aktions-Audit | Register, Update, Heartbeat pro Account |
# Build
cd server
mvn clean package
# Start
java -jar target/trade-monitor-server-0.12.0.jar
# Dashboard oeffnen
# http://localhost:8080TradeMonitorClient.mq5nachMQL5/Experts/kopieren und im MetaEditor kompilieren (F7).- In MT5 unter Extras > Optionen > Experten die Server-URL
http://localhost:8080erlauben. - EA auf einen Chart ziehen, "Auto-Trading" aktivieren — fertig.
Der Account registriert sich automatisch und erscheint innerhalb von Sekunden im Dashboard.
MqlTradeMonitor/
+-- server/ # Spring Boot Backend
| +-- pom.xml # Maven Build-Konfiguration
| +-- src/main/java/de/trademonitor/
| | +-- controller/ # 5 REST/Web Controller
| | +-- service/ # 11 Services (Geschaeftslogik)
| | +-- entity/ # 11 JPA Entities
| | +-- repository/ # 11 Spring Data Repositories
| | +-- dto/ # 9 Data Transfer Objects
| | +-- model/ # 3 In-Memory Domain Models
| | +-- security/ # Authentication & Authorization
| | +-- config/ # Security Filter & Events
| +-- src/main/resources/
| +-- templates/ # 12 Thymeleaf Templates
| +-- static/ # CSS, JavaScript
| +-- application.properties # Spring-Konfiguration
+-- mql5/
| +-- TradeMonitorClient.mq5 # MQL5 Expert Advisor
+-- Doku/ # Ausfuehrliche Dokumentation
+-- Projektbeschreibung.md # Technische Projektdokumentation
+-- Benutzerdokumentation.md # Benutzerhandbuch
+-- API-Referenz.md # Vollstaendige API-Dokumentation
+-- Sicherheit.md # Security-Dokumentation
+-- Entwickler.md # Entwickler-Guide
Im Ordner Doku/ finden Sie detaillierte Dokumentation:
| Dokument | Inhalt |
|---|---|
| Projektbeschreibung | Architektur, alle Komponenten, Datenbankschema, Konfiguration |
| Benutzerdokumentation | Vollstaendiges Benutzerhandbuch mit allen Features |
| API-Referenz | Alle REST-Endpunkte mit Request/Response-Beispielen |
| Sicherheit | Security-Konzept, Brute-Force, Rate-Limiting, Headers, Audit |
| Entwickler | Architektur-Patterns, Datenmodell, Algorithmen, Konventionen |
- Clean Architecture: Strikte Schichtentrennung (Controller / Service / Repository)
- Domain-Driven Design: Fachlich geschnittene Services mit klaren Verantwortlichkeiten
- Defensive Programmierung: Duplikat-Erkennung, Rate-Limiting, Latch-Logik, Graceful Degradation
- Security by Design: Mehrschichtiges Sicherheitskonzept (Authentication, Authorization, Input Validation, Audit)
- Configuration as Code: Dynamische Konfiguration via Admin-Panel, keine hartcodierten Werte
- Responsive Design: Mobile-First Ansatz fuer kritische Monitoring-Views
- Zero-Config Deployment: Embedded Database, selbstregistrierende Clients, Auto-Schema-Migration












