Skip to content

tnickel/MqlTradeMonitor

Repository files navigation

MQL Trade Monitor

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


Ueber dieses Projekt

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.


Highlights & technische Staerken

Durchdachte Systemarchitektur

  • 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.

Intelligentes Echtzeit-Monitoring

  • 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.

Umfassendes Security-Konzept

  • 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.

Professionelles Web-Dashboard

  • 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.

Robuster MQL5 Client

  • 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.

Smart-Home & Benachrichtigungen

  • 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.

Architektur-Uebersicht

  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     |
                                    +---------------------------+

Feature-Uebersicht

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

Technologie-Stack im Detail

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
E-Mail Spring Boot Starter Mail SMTP-basiertes Alerting
Client MQL5 (MetaTrader 5) Nativer Trading-Plattform-Client
Build Maven Dependency-Management und Build-Automatisierung

Datenbankschema

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

Screenshots & Benutzeroberflaeche

Dashboard Uebersicht mit Live-Status und Report-Kacheln
Alle Screenshots anzeigen (Klick zum Erweitern)

Dashboard & Startseite

Overview

Account Details & tiefgehende Analyse

AccountDetail1 AccountDetail2 AccountDetail3 AccountDetailEquityDetail

Mobile Drawdown Monitor

DrawdownMonitor

Admin Bereich & Konfiguration

AdminArea OverviewInAdminconsole

Sync-Check & Logging

SyncCheck

Tagesreport Generierung

Tagesreport

Integration & MetaTrader

Metatrader5 integration HomeyIntegration login

Installation & Schnellstart

Server

# Build
cd server
mvn clean package

# Start
java -jar target/trade-monitor-server-0.12.0.jar

# Dashboard oeffnen
# http://localhost:8080

MetaTrader 5 Client

  1. TradeMonitorClient.mq5 nach MQL5/Experts/ kopieren und im MetaEditor kompilieren (F7).
  2. In MT5 unter Extras > Optionen > Experten die Server-URL http://localhost:8080 erlauben.
  3. EA auf einen Chart ziehen, "Auto-Trading" aktivieren — fertig.

Der Account registriert sich automatisch und erscheint innerhalb von Sekunden im Dashboard.


Projektstruktur

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

Ausfuehrliche Dokumentation

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

Eingesetzte Software-Engineering Praktiken

  • 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

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors