Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Telegram!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Bibliotheken

CExecutionSafety - Ping + Execution Latency Guard for MQL5 EAs - Bibliothek für den MetaTrader 5

Ansichten:
26
Rating:
(2)
Veröffentlicht:
MQL5 Freelance Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Überblick

CExecutionSafety ist eine leichtgewichtige MQL5-Include-Klasse, die Expert Advisors vor der Ausführung von Trades unter schlechten Netzwerk- oder Ausführungsbedingungen schützen soll.
Sie misst zwei Latenzkomponenten, den Live-Terminal-Ping und die reale Wanduhr-Ausführungsverzögerung, und blockiert Handelsversuche, wenn ihr kombinierter Wert einen konfigurierbaren Schwellenwert überschreitet.

Das Problem, das es löst

Die meisten EAs werden unabhängig von den Netzwerkbedingungen blind ausgeführt. Eine Spitze im Ping oder eine Ausführungsverzögerung auf der Brokerseite während einer kritischen Order kann zu Slippage, Requotes oder fehlgeschlagenen Fills führen.
CExecutionSafety führt ein Pre-Trade Safety Gate ein, das die Ausführung verhindert, wenn die Bedingungen verschlechtert sind.

Wie es funktioniert

Die Klasse verwendet zwei Datenquellen:

  • TERMINAL_PING_LAST: liest den letzten von MetaTerminal aufgezeichneten Ping (in Millisekunden)
  • RecordExecDelay(): akzeptiert eine Wanduhrmessung, die Sie um jede CTrade-Operation wickeln

Diese beiden Werte werden addiert und mit dem von Ihnen konfigurierten Schwellenwert verglichen. Wenn die kombinierte Latenzzeit den Schwellenwert überschreitet, gibt CheckExecutionSafety() den Wert false zurück und gibt einen Diagnoseprotokolleintrag aus.
Abbildung 1: Terminal_Ping_Last

Schutz vor Verbindungsabbruch

Wenn das Terminal keinen Serverkontakt hat, gibt TERMINAL_PING_LAST -1 zurück. Die Klasse erkennt dies und gibt automatisch den Wert false zurück, um Handelsversuche auf einem nicht verbundenen Terminal zu verhindern.

Beispiel für die Integration

Binden Sie die Datei ein und instanziieren Sie die Klasse in Ihrem EA:

#include <DeeFX/CExecutionSafety.mqh> CExecutionSafety safety; int OnInit() { safety.Init(150); // 150ms combined threshold return INIT_SUCCEEDED; } void OnTick() { if(!safety.CheckExecutionSafety()) return; ulong t0 = GetTickCount64(); trade.PositionClose(ticket); safety.RecordExecDelay(GetTickCount64() - t0); }

Zugriffsfunktionen

Die folgenden schreibgeschützten Zugriffsfunktionen sind für die Dashboard-Anzeige oder externe Logik verfügbar:

  • GetPingMs(): aktueller Terminal-Ping in ms
  • GetExecDelayMs(): letzte aufgezeichnete Ausführungsverzögerung in ms
  • GetCombinedMs(): Ping + Ausführungsverzögerung kombiniert (gibt 9999 zurück, wenn die Verbindung unterbrochen wurde)
  • HasExecSample(): true, wenn mindestens eine Messung aufgezeichnet wurde
  • GetThresholdMs(): konfigurierte Sicherheitsschwelle

Änderungsliste

  • v1.0 - Erste Freigabe
  • v1.1 - Guard-Makro umbenannt. %I64u-Formatspezifizierer durch (String-)Casts ersetzt
  • v1.2 - Init() Rückgabetyp geändert void → bool. Status wird bei einem erneuten Aufruf zurückgesetzt, um veraltete Samples zu verhindern

Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/70033

POC Market Levels_styled POC Market Levels_styled

185 POC bars with center and optional profile chart. Double-clicking the POC line extends it to the end of the current period. Selected POCs are retained when switching timeframes.

Combine Multi Timeframe Trends into one trend using MA. Combine Multi Timeframe Trends into one trend using MA.

Kombinieren Sie Trends mit mehreren Zeitrahmen zu einem Trend mit MA.

Accumulation/Distribution Accumulation/Distribution

Der Accumulation/Distribution Indikator wird aus Änderung von Preis und Volumen bestimmt.

Accelerator Oszillator (AC) Accelerator Oszillator (AC)

Der Acceleration/Deceleration Indikator (AC) misst die Beschleunigung und Verlangsamung des aktuellen Marktimpulses, der Kraft der Kursbewegung.