und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5
- Ansichten:
- 20
- Rating:
- Veröffentlicht:
- Aktualisiert:
-
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Modify_Orders.mqh ist für die Verwaltung von Positionen und Aufträgen in MetaTrader 5 bestimmt
Zweck
Ändern_Aufträge.mqh bietet zwei leistungsstarke Funktionen zur Verwaltung von offenen Positionen und schwebenden Aufträgen in Expert Advisors und Indikatoren auf der MetaTrader 5-Plattform. Sie wurde entwickelt, um Routineoperationen zur Änderung von Stop Loss, Take Profit Levels und Orderpreisen zu automatisieren.
Hauptmerkmale:
-
Modifikation von Stop Loss und Take Profit für offene Positionen
-
Änderung der Preise für schwebende Aufträge
-
Flexible Filterung nach Positionstypen, Profitabilität und Symbolen
-
Unterstützung für verschiedene Arten der Wertberechnung (in Pips oder absoluten Preisen).
Aufbau
Modify_Position() Funktion
Entwickelt, um Stop-Loss- und Take-Profit-Niveaus offener Positionen zu ändern.
void Modify_Position( string tp_and_sl, // "SL" oder "TP" - was wir ändern. string price_and_value, // "Wert" oder "Preis" - Art des Wertes string type_position, // Filter nach Positionsart double price_tp_and_sl, // Zu setzender Wert string symb, // Symbol für das Handelsinstrument long magicNumber // Experte für magische Zahlen. );
Parameter der Positionsfilterung:
| Parameter typ_position | Beschreibung |
|---|---|
| "Alle" | Alle Positionen |
| "Alle Gewinn" | Nur profitable Positionen |
| "Alle Verluste" | Nur Verlustpositionen |
| "Kaufen" | Nur Kauf-Positionen |
| "Gewinn kaufen" | Nur profitable Buy-Positionen |
| "Buy Verlust | Nur verlustbringende Buy-Positionen |
| "Verkaufen" | Nur Verkaufspositionen |
| "Sell Profit" | Nur profitable Verkaufspositionen |
| "Verlust verkaufen" | Nur verlorene Verkaufspositionen |
Beispiele für die Verwendung:
// SL auf 1000 Punkte für alle Positionen setzen Modify_Position("SL", "Value", "All", 1000, _Symbol, 0); // TP auf 1,2345 für profitable Kaufpositionen setzen Modify_Position("TP", "Price", "Buy Profit", 1.2345, _Symbol, 12345); // SL auf 500 Punkte für unrentable Verkaufspositionen setzen Modify_Position("SL", "Value", "Sell Loss", 500, "EURUSD", 98765);
Modify_Order() Funktion
Entwickelt, um schwebende Aufträge (Stop- und Limit-Aufträge) zu ändern.
void Modify_Order( string tp_sl_price, // "Preis", "SL" oder "TP". string type_order, // Auftragsart für die Filterung double price_tp_sl_price, // Eine neue Bedeutung. string symb, // Symbol für das Handelsinstrument long magicNumber // Experte für magische Zahlen. );
Unterstützte Ordertypen:
-
"Buy Stop" - schwebende Buy Stop-Order
-
" Buy Limit" - schwebende Buy-Limit-Order.
-
"Sell Stop" - ausstehende Sell Stop-Order.
-
"Sell Limit" - ausstehende Sell Limit-Order.
Beispiele für die Verwendung:
// Ändern Sie den Preis der Buy Stop Order Modify_Order("Price", "Buy Stop", 1.2345, _Symbol, 0); // Stop Loss für Sell Limit Order setzen Modify_Order("SL", "Sell Limit", 1.2350, "GBPUSD", 12345); // Take Profit für Buy Limit Order ändern Modify_Order("TP", "Buy Limit", 1.2300, "EURUSD", 98765);
Arbeitsweise
Modify_Position Algorithmus:
-
Durchsuchen aller offenen Positionen in umgekehrter Reihenfolge
-
Filterung der Positionen nach Symbol und Magic Number
-
Überprüfung zusätzlicher Bedingungen ( Positionstyp, Profitabilität)
-
Berechnung der neuen SL/TP-Werte :
-
Für den Modus "Wert" : Preis ± (Wert × Punkt)
-
Für den "Price" -Modus : direkte Wertzuweisung
-
-
Absenden des Änderungsbefehls über OrderSend()
Algorithmus Modify_Order:
-
Zählt alle ausstehenden Aufträge auf
-
Filterung nach Symbol, Magic Number und Ordertyp
-
Modifikation des angegebenen Parameters ( Preis, SL oder TP)
-
Speichern der unveränderten Parameter
-
Senden des Änderungsbefehls
Merkmale der Implementierung
Sicherheit und Zuverlässigkeit:
-
Doppelte Überprüfung der Ordertypen - durch String-Parameter und realen Typ aus dem System
-
Komplexe Filterung - stellt sicher, dass nur Zielpositionen/Aufträge betroffen sind
-
Beibehaltung der unveränderten Parameter - wenn SL geändert wird, bleibt TP erhalten und umgekehrt
Mathematische Berechnungen:
FürKaufpositionen:
-
Stop Loss: Aktueller Kurs - (Wert × Punkt)
-
Take Profit: Aktueller Kurs + (Wert × Punkt)
FürVerkaufspositionen:
-
Stop Loss: Aktueller Kurs + (Wert × Punkt)
-
Take Profit: Aktueller Kurs - (Wert × Punkt)
Empfehlungen zur Verwendung
Für Handelsexperten:
#include <Modify_Order.mqh> // In der Funktion OnTick() oder nach Bedingung: if(Условие_для_трейлинга) { // SL zum Preis ziehen, wenn er sich in die gewünschte Richtung bewegt Modify_Position("SL", "Value", "All Profit", 500, _Symbol, ExpertMagic); }
Für manuelle Skripte:
// Skript für schnelle SL auf allen Positionen void OnStart() { Modify_Position("SL", "Value", "All", 1000, _Symbol, 0); }
Optimale Parameter:
-
Zeitrahmen: beliebig (die Funktionen sind unabhängig vom Zeitrahmen)
-
Instrumente: beliebige Währungspaare, Metalle, Indizes.
-
Magische Zahl: es wird empfohlen, für jeden Expert Advisor eindeutige Werte zu verwenden.
Vorteile der Bibliothek
-
Vielseitigkeit - funktioniert mit allen Handelsinstrumenten
-
Flexibilität - 18 verschiedene Modi der Positionsfilterung
-
Benutzerfreundlichkeit - intuitive Schnittstelle
-
Zuverlässigkeit - umfassende Prüfungen vor der Änderung
-
Effizienz - minimaler Aufwand an Rechenressourcen
Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/68540
nGewinn- und Verlustpositionen
Gewinn/Verlust-Rechner für Positionen (offene Aufträge)
nAbschließende Befehle
Funktion zum Schließen von Positionen und Löschen von Aufträgen
Sideways Martingale
Martingale-Trend-Detektor verwenden onnx AI
VR Breakdown Level - Handelsstrategie auf Basis des Ausbruchs über das vorherige High oder unter das vorherige Low
Einfache Handelsstrategie auf Basis des Ausbruchs über vorherige High- oder Low-Level
