Wie man einen Trading-Roboter in MetaTrader 5 schreibt
راهنمای جامع و عملی برای نوشتن، تست و استقرار ربات‌های معاملاتی در MetaTrader 5 با استفاده از زبان MQL5.

Wie man einen Trading-Roboter in MetaTrader 5 schreibt

In diesem Artikel zeigen wir Ihnen, wie Sie Expert Advisors (EAs) in MetaTrader 5 mit der Programmiersprache MQL5 schreiben, testen und bereitstellen. Wir geben Ihnen außerdem praktische Tipps zu Sicherheit und Performance.
0 Aktien
0
0
0
0

 

Wissen Sie, wie man einen Trading-Roboter in MetaTrader 5 schreibt und ihn mit hoher Stabilität betreibt?

Diese Schritt-für-Schritt-Anleitung hilft Ihnen, sich mit der Umgebung vertraut zu machen. MetaTrader 5 und Programmiersprache MQL5 Es behandelt das Schreiben, Testen und Bereitstellen eines Expert Advisors (EA). Außerdem enthält es praktische Tipps für den 24/7-Betrieb auf einem VPS/Cloud-Server, die Wahl eines Standorts mit dem niedrigsten Ping, Sicherheit und Überwachung, um sicherzustellen, dass Ihr Roboter in einer realen Umgebung stabil und mit geringer Latenz läuft.

 

Technische Einführung in MetaTrader 5 und MQL5

MetaTrader 5 (MT5) Es handelt sich um eine fortschrittliche Plattform, die MQL5 Sie dient als Programmiersprache zum Schreiben von Expert Advisors (EAs), Indikatoren und Skripten. Struktur MQL5 Es ähnelt C++ und der Klasse CTrade Es dient zum Versenden von Aufträgen und zur Abwicklung von Transaktionen.

Voraussetzungen: Installation MetaTrader 5/MetaEditor, Zugriff auf den Datenfeed des Brokers oder ein Demo-/Echtgeldkonto, und in der Serverumgebung wird die Verwendung eines VPS mit niedrigem Ping und hoher Verfügbarkeit empfohlen.

 

Grundstruktur eines EA in MQL5

Ein einfacher Expert Advisor (EA) umfasst folgende Hauptfunktionen:

  • OnInit(): zur Initialisierung
  • OnDeinit()Zur Reinigung
  • OnTick()Eine Funktion, die bei jedem Preistick ausgeführt wird.
#include <Trade\Trade.mqh>
CTrade trade;

int OnInit() {
  // initialization
  return INIT_SUCCEEDED;
}

void OnDeinit(const int reason) {
  // cleanup resources
}

void OnTick() {
  // trading logic
}

 

Aufträge senden und Positionen verwalten

In MQL5 Aus der Klasse CTrade Dient zur Auftragserteilung. Das folgende Beispiel zeigt einen einfachen Marktkauf und gibt eine mögliche Fehlermeldung aus.

double lot = 0.1;
if(trade.Buy(lot, _Symbol)) {
  Print("BUY executed");
} else {
  Print("Error Buy: ", GetLastError());
}

Um eine Position zu schließen, können Sie das Ticket nehmen und die Methode verwenden. Position schließen Verwenden:

ulong ticket = PositionGetTicket(0);
if(trade.PositionClose(ticket)) {
  Print("Position closed");
}

 

Praktisches Beispiel – Cross Moving Average Robot

Logik: Kaufen Sie, wenn der schnelle gleitende Durchschnitt den langsamen Durchschnitt von unten nach oben kreuzt; verkaufen Sie umgekehrt, wenn der schnelle gleitende Durchschnitt den langsamen Durchschnitt von unten nach oben kreuzt. Dieses einfache Beispiel kann durch Risikomanagement, Stop-Loss/Take-Profit, Trailing-Stop und Marktzeitfilter ergänzt werden.

input int FastPeriod = 10;
input int SlowPeriod = 50;
double FastMA, SlowMA;

int OnInit() {
  return INIT_SUCCEEDED;
}

void OnTick() {
  FastMA = iMA(_Symbol, PERIOD_M1, FastPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);
  SlowMA = iMA(_Symbol, PERIOD_M1, SlowPeriod, 0, MODE_SMA, PRICE_CLOSE, 0);

  double prevFast = iMA(_Symbol, PERIOD_M1, FastPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);
  double prevSlow = iMA(_Symbol, PERIOD_M1, SlowPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);

  if(prevFast < prevSlow && FastMA > SlowMA) {
    trade.Buy(0.1, _Symbol);
  } else if(prevFast > prevSlow && FastMA < SlowMA) {
    trade.Sell(0.1, _Symbol);
  }
}

 

Installation und Betrieb von MetaTrader 5 auf einem Server (VPS / Cloud)

Für den 24/7-Betrieb von Bots empfiehlt sich die Verwendung eines VPS oder Cloud-Servers. Zwei gängige Vorgehensweisen:

  • Windows Server (Häufiger Vorschlag für MT5)
  • Linux + Wine (Um die Kosten zu reduzieren, sind manche Versionen möglicherweise inkompatibel.)

 

Windows VPS – Empfohlene Einstellungen

Empfohlene Tipps für Windows Server:

  • Installation Windows Server 2019/2022
  • RDP aktivieren mit Netzwerkbasierte Authentifizierung
  • Installation MetaTrader 5 Und MetaEditor
  • Automatische Updates manuell verwalten, um unerwünschte Neustarts zu verhindern.

 

Linux + Wine — Beispielbefehle (Ubuntu)

Wenn Sie MT5 unter Linux ausführen möchten, können Ihnen die folgenden Beispielbefehle den Einstieg erleichtern. Einige Broker oder Plugins können unter Wine Probleme verursachen; gründliche Tests werden daher empfohlen.

sudo apt update && sudo apt install -y wine winetricks xvfb xrdp
# create a dedicated mt5 user
sudo useradd -m mt5user
sudo passwd mt5user
# run mt5 installer under the user with a virtual framebuffer
sudo -u mt5user xvfb-run wine mt5setup.exe

 

RDP-Sicherheit und sicherer Zugriff

Zum Schutz des Serverzugriffs wird Folgendes empfohlen:

  • Ändern Sie den Standard-RDP-PortAktivieren Sie NLA und verwenden Sie einen VPN- oder SSH-Tunnel für die RDP-Verbindung.
  • Zugriff mit Firewall beschränken und gültige IPs auf die Whitelist setzen
  • Installation fail2ban Zum Schutz vor roher Gewalt
sudo ufw allow from 203.0.113.0/24 to any port 3389 proto tcp
sudo ufw enable

 

Testen, Optimieren und Einsetzen von Robotern

Strategietester MT5 bietet Funktionen für Backtesting, Optimierung und Forward-Testing. Sie können genetische Algorithmen verwenden, um Parameter zu optimieren und hochwertige Daten (Tickdaten) zu nutzen.

  • Verwenden Sie echte Tickdaten, um Ergebnisse zu erhalten, die der Realität möglichst nahekommen.
  • Testen Sie die Anwendung mindestens einige Wochen lang auf einem VPS und einem Demo-Konto, bevor Sie sie auf einem Live-Konto einsetzen.

 

Risikobewertungsmethoden

Methoden, die Sie zur Messung von Risiko und Nachhaltigkeit verwenden sollten:

  • Vorwärtsanalyse: Testen in unterschiedlichen Intervallen, um Überanpassung zu vermeiden.
  • Monte Carlo: Zur Messung der Stabilität durch Simulation von Änderungen in der Transaktionsausführung.
  • Kennzahlen überprüfen: CAGR, Sharpe-Ratio, maximaler Drawdown, Profitfaktor.

 

CI/CD und automatisierte Bereitstellung

Für die Verwaltung des EA-Codes und die automatisierte Bereitstellung können Sie GitLab oder GitHub verwenden und einen Runner auf Ihrem VPS einrichten, um den Prozess des Kompilierens und Übertragens der EX5-Datei zu automatisieren.

Beispielskript zum Kopieren der Datei EX5 in den Terminalordner:

# copy the compiled EA to MetaTrader 5 Experts folder
cp MyEA.ex5 "/home/mt5user/.wine/drive_c/Program Files/MetaTrader 5/MQL5/Experts/"
# restart terminal or signal reload

APIs oder ZeroMQ können auch verwendet werden, um zwischen einem Python-Dienst und MT5 zu kommunizieren und KI/ML-Daten an den EA zu übermitteln.

 

Standortwahl und Konfiguration eines VPS für Trader

Für Trader sind Ping/Latenz und Netzwerkstabilität entscheidend. Die Standortwahl sollte sich nach der Nähe zu den Servern des Brokers oder dem Zielmarkt richten.

 

Vergleich der wichtigsten Standorte

  • London/Manchester/Frankfurt/AmsterdamIdeal für europäische Broker und europäische ECN-Märkte.
  • New York/WashingtonGeeignet für amerikanische Broker und schnelle Ausführung am New Yorker Markt.
  • Singapur/Tokio/HongkongBietet niedrige Ping-Zeiten für Broker und asiatische Märkte.
  • Bewährte Vorgehensweise: Ermitteln Sie die Broker-IP oder AS und wählen Sie das Rechenzentrum mit dem kürzesten BGP-Pfad.

Unser Unternehmen verfügt über mehr als 85 Standorte weltweit Bietet die Möglichkeit, das dem Broker-Server nächstgelegene Rechenzentrum auszuwählen.

 

Empfohlene VPS-Konfiguration für den Handel

  • CPU: 2-4 Kerne mit festen Beinen und hohen Taktraten.
  • RAM: 4-8 GB für Standardversionen; 8-16 GB für rechenintensive EAs.
  • LagerungNVMe-SSD für schnelle E/A.
  • Netzwerk: 1 Gbit/s oder höher; feste Latenz und Ports mit BGP und Anti-DDoS.
  • Funktionen: Snapshots, automatische Backups, Überwachung rund um die Uhr, Anti-DDoS-Server und zuverlässige Service-Level-Vereinbarung (SLA).

Für KI-basierte Strategien oder umfangreiche Analysen benötigen Sie möglicherweise einen Server mit GPUs, um ML-Modelle auszuführen und anschließend Signale an MT5 zu senden.

 

Sicherheit, Überwachung und praktische Tipps

 

System- und Netzwerkschutz

  • Aktivieren Sie die lokale Firewall (Windows-Firewall oder ufw/iptables).
  • Verwenden Sie ein VPN oder eine IP-Whitelist für den RDP-Zugriff.
  • Installieren Sie Antivirensoftware und Dateiintegritätsüberwachung für den Ordner MQL5.

 

Überwachung und Alarmierung

Einrichtung eines Überwachungsdienstes (z.B. Prometheus + Grafana) ist wichtig, um die CPU, den Speicher, das Netzwerk und den Zustand des MT5-Terminals zu überprüfen.

Es wird empfohlen, im Falle eines Verbindungsverlusts oder eines kritischen Fehlers eine Benachrichtigung per E-Mail/Slack/Telegram zu versenden.

 

Verhindern von Rutschen und Abprallen

  • Wählen Sie einen VPS mit niedrigerem Ping und einem Standort in der Nähe des Brokers.
  • Verwendung von Markt- vs. Limit-Orders und deren Einstellung Maximaler Schlupf In den EA- oder MetaTrader-Einstellungen.
  • Aktivieren Sie die automatische Wiederverbindung im Expert Advisor, um den Verlust von Trades im Falle einer Verbindungsunterbrechung zu verhindern.

 

Zusammenfassung und technischer Vorschlag

Dieser Leitfaden behandelt die Grundlagen. MQL5 Es wurden die Themen Testen, Optimierung und Bereitstellung auf VPS besprochen sowie praktische Tipps zur Sicherheit und zur Wahl des richtigen Standorts.

Wenn Sie einen Server benötigen mit Mehr als 85 Standorte weltweitEgal ob Sie Anti-DDoS-Server, NVMe- und BGP-Netzwerke benötigen oder GPUs für KI-Strategien brauchen, unser Support-Team steht Ihnen rund um die Uhr zur Verfügung, um Ihnen die am besten geeignete Konfiguration basierend auf Ihrem Broker und Ihrer Strategie zu empfehlen.

 

Häufig gestellte Fragen

Das könnte Ihnen auch gefallen