Pending Order Grid EA MT4
- Utilitys
- Francisco Manuel Vicente Berardo
- Version: 1.6
- Aktualisiert: 5 Oktober 2024
- Aktivierungen: 20
Das Pending Order Grid ist ein Multi-Symbol Multi-Timeframe Expert Advisor, der eine Multi-Strategie-Implementierung auf Basis von Pending Order Grids ermöglicht.
Allgemeine Beschreibung
Das Pending Order Grid ermöglicht die Durchführung einer benutzerdefinierten Strategie durch die Erstellung von Pending Order Grids. Der Expert Advisor platziert Pending Orders eines bestimmten Typs (Buy Limit, Sell Limit, Buy Stop oder Sell Stop) auf äquidistanten Kursniveaus, um jedes Raster zu bilden. Der Benutzer kann verschiedene Raster gleichzeitig einrichten - es ist lediglich erforderlich, den EA in mehreren Chart-Fenstern des/der gewünschten Symbols/Symbole anzulegen.
Für den Start und Stopp eines Gitters kann zwischen zwei Modi gewählt werden: Preis oder Zeit. Abhängig von den gewählten Modi beginnt der Handelsroboter nur dann mit der Platzierung von Pending Orders, wenn der aktuelle Kurs "nahe" dem ersten Zielkurs (Startkurs) liegt oder die Startzeit erreicht ist, und stoppt die Platzierung, wenn der letzte Zielkurs den Stoppkurs überschreitet oder die Stoppzeit erreicht ist, wobei Startkurs, Startzeit, Stoppkurs und Stoppzeit Eingabeparameter sind.
Die Platzierung einer schwebenden Order wird durch ein Preisintervall geregelt, dessen Grenzen bei den Abständen Stop Level und Stop Level + Extra Level zum Zielpreis der Order liegen, wobei Extra Level ein Eingabeparameter ist. Jedes Mal, wenn neue Notierungen verfügbar sind und der Preis des Symbols in diesem Intervall liegt, wird die Pending Order platziert. Der Zielpreis der nächsten Order ergibt sich einfach aus demvorherigen Preis ,der mit dem Eingabeparameter Price Level addiert (Sell Limit oder Buy Stop) oder subtrahiert (Buy Limit oder Sell Stop) wird.
Eine Ausnahme von dervorherigen Prozedur besteht, wenn die erste schwebende Order des Rasters durch die Startzeit ausgelöst wird.In diesem Fall versucht der Handelsroboter, die Ordersofortim Abstand des Stop Levels zu platzieren .Im Falle einer Ablehnung durch den Handelsserver fügt er 1 Pip zumvorherigen Abstand hinzuund versucht erneut, die Order zu platzieren. Dieser Vorgang wird so lange wiederholt, bis der Abstand Stop Level + Extra Level erreicht ist.
Die maximale Anzahl von gleichzeitig ausstehenden Aufträgen, die vom EA platziert werden können, wird durch den Ausdruck angegeben:
- Ceil ( (Stop Level + Extra Level) / Price Level ), für Price Level > 0,
wobei Ceil die übliche mathematische Funktiondarstellt.Der Ausdruck kann die folgenden Werte annehmen:
- 1 für Preisniveau ≥ Stop Level + Extra Level,
- 2 für (Stop Level + Extra Level)/2 ≤ Price Level < Stop Level + Extra Level,
- 3/more für Preisniveau < (Stop Level + Extra Level)/2.
Risikomanagement
Das Volumen, das für die Platzierung einer Pending-Order verwendet wird, wird zwischen einer festen und einer variablen Losgröße gewählt, die jeweils über die Eingabeparameter Volumen und Freie Marge % verfügbar sind. Wenn auf dem Konto nicht genügend Geld für das gewählte Volumen vorhanden ist, wird dennoch eine Anfrage zur Platzierung der Order an den Handelsserver gesendet. Der Zweck besteht darin, die entsprechende Positionseröffnung zu ermöglichen, wenn die freie Marge bis zum Erreichen des Zielpreises ausreichend ansteigt. Dieser Anstieg könnte auf eine Kontoeinlage oder einen Positionsgewinn zwischen der Platzierung und der Auslösung der Pending Order zurückzuführen sein.
Eingabeparameter
PENDING-ORDER-RASTER
- Startpreis: Preis, der verwendet wird, um den Start des Rasters zu definieren.
- Startzeit: Zeit, die verwendet wird, um den Start des Gitters zu definieren.
- Stop Preis: Preis, der verwendet wird, um den Stop des Grids zu definieren.
- Stop-Zeit: Zeit, die verwendet wird, um den Stop des Grids zu definieren.
- Preisniveau: Abstand zwischen schwebenden Aufträgen desselben Typs (Pips).
- Extra Level: Abstand zum Stop-Level, der wiederum ein Abstand zum Zielpreis ist. Beide stellen die Grenzen des Preisintervalls dar, in dem der Preis des Symbols für die Platzierung der Pending Order liegen muss (Pips).
PLATZIERUNG VON PENDING ORDERS
- Magische Zahl: Die Kennung des Expert Advisors.
- Typ: Typ der Pending Order, die zur Bildung des Rasters verwendet wird.
- Volumen: Losgröße pro Geschäft (Lots).
- Freie Marge %: Prozentsatz der freien Kontomarge, der zur Berechnung der Losgröße des aktuellen Geschäfts verwendet wird (%).
- Stop-Loss: Abstand zum Zielkurs der schwebenden Order für die Platzierung eines Stop Loss (Pips).
- Gewinnmitnahme: Abstand zum Zielpreis der schwebenden Order, um einen Take Profit zu platzieren (Pips).
- Abweichung: Maximal zulässige Abweichung vom gewünschten Preis (Pips).
- Verfallszeit: Gültigkeitsdauer der Order.
- Kommentar: Textnachricht, die im Chart-Fenster (an das der EA angehängt ist) nach einer (Neu-)Initialisierung des EA, in der Objektliste nach dem Erstellen einer horizontalen/vertikalen Linie (an jedem der Rasterlimits) oder dem Platzieren einer schwebenden Order und in den Registerkarten Handel oder Kontohistorie des Terminal-Fensters nach dem Platzieren einer schwebenden Order angezeigt wird (es sind nur 31 Zeichen zulässig).
ÄNDERUNG DER POSITION
- Trailing Stop - SL: Abstand zum Marktpreis für die Platzierung eines Stop Loss nach einer günstigen Kursbewegung (Pips).
- Trailing Start - SL: Abstand vom Eröffnungskurs der Position, der erreicht werden muss, damit die Funktion "Trailing Stop - SL" aktiviert wird (Pips).
- Trailing Step - SL: Abstand von dem Preis, bei dem die vorherige Stop-Loss-Änderung stattgefunden hat, der erreicht werden muss, bevor ein neuer Stop-Loss gesetzt wird (Pips).
- Trailing Stop - TP: Abstand vom Marktpreis für die Platzierung eines Take Profits nach einer ungünstigen Kursbewegung (Pips).
- Trailing Start - TP: Abstand vom Eröffnungskurs der Position, der für die Aktivierung der Funktion "Trailing Stop - TP" erreicht werden muss (Pips).
- Trailing Step - TP: Abstand von dem Kurs, bei dem die vorherige Take-Profit-Änderung stattgefunden hat, der erreicht werden muss, bevor ein neuer Take-Profit platziert wird (Pips).
OPTIMIERUNGSKRITERIUM
- Mathematischer Ausdruck: Mathematischer Ausdruck, der zur Berechnung eines benutzerdefinierten statistischen Parameters zur Sortierung der Optimierungsergebnisse verwendet wird (siehe Abschnitt Optimierungskriterium weiter unten).
Einige der verfügbaren Parameter akzeptieren Werte, die zubestimmten Optionenführen.
- Startkurs oder Stoppkurs: Ein null/negativer Wert bedeutet, dass die Funktion des Parameters inaktiv ist.
- Startzeit oder Stoppzeit: Ein Wert vor der aktuellen Zeit bedeutet, dass die Funktion des Parameters inaktiv ist.
- Preisniveau: Ein Nullwert bedeutet, dass der Zielpreis für alle schwebenden Aufträge konstant ist.
- Extra Level: Ein Nullwert bedeutet, dass der Preis des Symbols genau auf dem Stop-Level-Abstand vom Zielpreis liegen muss, damit die Pending Order platziert werden kann.
- Volumen: Ein Wert, der niedriger ist als das vom Broker zugelassene Mindestvolumen, wird in diesen letzten Wert umgerechnet. Ein Wert, der höher ist als das maximal verfügbare Volumen der freien Marge, wird in diese Leiste umgerechnet.
- Freie Marge %: Ein Wert, dessen Volumen das vom Makler zugelassene Mindestvolumen nicht erreicht, wird in diese Leiste umgerechnet. Ein Wert, dessen Volumen das maximal verfügbare Volumen durch die freie Marge überschreitet, wird in diese Leiste umgerechnet.
- Stop Loss, Take Profit, Trailing Stop - SL oder Trailing Stop - TP: Ein Nullwert bedeutet, dass die Funktion des Parameters inaktiv ist. Jeder Wert zwischen 0 und dem Stop Level wird in diese Leiste umgerechnet.
- Trailing Start - SL oder Trailing Start - TP: Ein Nullwert bedeutet die sofortige Aktivierung der Funktion "Trailing Stop - SL" bzw. "Trailing Stop - TP".
- Trailing Start - SL: Der Spread-Wert bedeutet die Aktivierung der Funktion "Trailing Stop - SL" bei Break-Even, obwohl dies nicht garantiert ist. Die Werte Spread + "Trailing Stop - SL" bedeuten die Aktivierung der Funktion "Trailing Stop - SL" bei einem Gewinn, bei dem die Gewinnschwelle garantiert ist.
- Trailing Step - SL oder Trailing Step - TP: Ein Nullwert bedeutet, dass die Funktion "Trailing Stop - SL" bzw. "Trailing Stop - TP" kontinuierlich arbeitet.
Die Eingabeparameter, die die Grenzen des Rasters definieren, müssen einigen Regeln folgen.
- Es müssen sowohl der Start als auch der Stop des Rasters ausgewählt werden, jeweils zwischen einem Preis oder einer Zeit.
- Es kann jede beliebige Kombination zwischen Start und Stop des Rasters verwendet werden:Startpreis + Stoppreis,Startpreis + Stopzeit,Startzeit + Stoppreis und Startzeit + Stopzeit.
- Der Startkurs kann den Stoppkurs im Raster der Sell Limit- oder Buy Stop-Orders nicht überschreiten.
- Der Stoppkurs kann den Startkurs im Raster der Kauflimit- oder Verkaufsstopp-Aufträge nicht überschreiten.
- Die Startzeit kann die Stopzeit in keinem der Raster für schwebende Aufträge überschreiten.
Optimierungskriterium
Der Expert Advisor ermöglicht die Erstellung und Verwendung eines neuen statistischen Parameters (neben den bereits vorhandenen) zur Sortierung der Optimierungsergebnisse. Dieser benutzerdefinierte statistische Parameter ergibt sich aus einem mathematischen Ausdruck, der nach dem Testen berechnet wird. Der Ausdruck muss die Syntaxregeln und die Rangfolge einhalten und aus den folgenden Elementen bestehen:
- Ganzzahlige und reelle Zahlen.
- Statistische Parameter.
- Mathematische Operatoren für Addition (+), Subtraktion (-), Multiplikation (*), Division (/) und Potenzierung (^).
- Mathematische und trigonometrische Funktionen.
- Gekrümmte Klammern (()) zur Festlegung der Rangfolge und zur Aufnahme der Argumente der Funktion(en).
- Punkt (.) als Dezimalpunkt und Komma (,) als Trennzeichen für die Argumente der Funktion.
Die statistischen Parameter werden verwendet, indem nach dem Begriff "STAT"die jeweilige(n) Kennung(en) mit dem/den Anfangsbuchstaben geschrieben wird/werden. Falls es zwei Kennungen mit dem/den gleichen Anfangsbuchstaben gibt, muss auch "1" oder "2" hinzugefügt werden, je nach der Reihenfolge, in der beide in der Liste erscheinen. Zum Beispiel wären "STAT_PROFIT" und "STAT_MAX_CONLOSS_TRADES" jeweils "P" und "MCT2". Liste der Identifikatoren ohne "STAT_", deren Anfangsbuchstaben "1" oder "2 " erfordern:
CONPROFITMAX (C1), CONPROFITMAX_TRADES (CT1), MAX_CONWINS (MC1), MAX_CONPROFIT_TRADES (MCT1), CONLOSSMAX (C2), CONLOSSMAX_TRADES (CT2), MAX_CONLOSSES (MC2), MAX_CONLOSS_TRADES (MCT2), EQUITYDD_PERCENT (EP1), EXPECTED_PAYOFF (EP2), LOSS_TRADES (LT1), LONG_TRADES (LT2).
Die mathematischen/trigonometrischen Funktionen werden verwendet, indem manden entsprechenden Namen hinter "Math" und ein oder zwei Argumente in Klammernschreibt, im letzteren Fall durch ein Komma getrennt.Zum Beispiel wären "MathLog10()" und "MathPow()" "Log10(Argument)" bzw. "Pow(Argument1,Argument2)". Liste der Namen, die den verfügbaren Funktionen entsprechen:
Abs,Arccos,Arcsin, Arctan, Ceil, Cos, Exp, Floor, Log, Log10, Max, Min, Mod, Pow, Rand, Round, Sin, Sqrt, Tan.
Hinweis: "MathRand()" wird nur mit "GetTickCount()" als Argument von "MathSrand()" ausgeführt,es wirdohne etwas in Klammern verwendet - einfach "Rand()"schreiben.
Außerdem hat der Ausdruck die folgenden Eigenschaften:
- Die wissenschaftlichen, technischen und E-Notationen sind erlaubt.
- Die Multiplikation muss explizit angegeben werden (durch das entsprechende Symbol).
- Das System unterscheidet nicht zwischen Groß- und Kleinschreibung.
- Das Leerzeichen ( ) ist erlaubt und hat keinen Einfluss auf die Berechnung des Ausdrucks.
- Der Eingabeausdruck ist auf 511 Zeichen begrenzt.
Beispiele für eine Zahlendarstellung mit verschiedenen Notationen: "0.0000325" (dezimal), "3.25*10^-5" (wissenschaftlich), "32.5*10^-6" (technisch) und "32.5E-6" (E).
WICHTIG! Der EA prüft nicht, ob der eingegebene Ausdruck alle Anforderungen erfüllt, d.h. ob er den Syntax-/Standardregeln gehorcht, daher führt jede Verletzung dieser Regeln zu einem unzuverlässigen Ergebnis.
Angezeigte Informationen
Der Expert Advisorverfügt über eine große Anzahl von Meldungen, die den Benutzer über Fehler und Änderungen der Bedingungen informieren, die während des Betriebs auftreten können. Die Meldungen werden über die Funktion "Alert" (durch ein Pop-up-Fenster) angezeigt und enthalten folgende Informationen:
- Die Warnung, dass ein Eingabeparameter falsch gesetzt wurde.
- Die Information, dass das Konto nicht genug Geld für das gewählte Volumen hat (siehe Abschnitt Risikomanagement oben).
- Die Information, dass die Anzahl der vom Broker zugelassenen Aufträge erreicht wurde.
- Der vorherige und der aktuelle Wert des Stop Levels des Symbols, wenn dieses aktualisiert wird.
- Die Beschreibung der Trade Server Return Codes.
- Die Notierungen des Symbols (unmittelbar) vor dem Zustandekommen der Handelsanfrage, gefolgt von den Notierungen des Symbols (unmittelbar) nach der Entscheidung des Handelsservers.
- Die Beschreibung derRuntime Errors.
- Die Standardfunktion in der Include-Datei, bei der der Laufzeitfehler festgestellt wurde (nur für den Programmierer relevant).
- DieBeschreibungderUninitialization Reason Codes.
Hinweis: Einige Elemente der Liste werden gleichzeitig angezeigt (in derselben Textzeile):5 und 6; 7 und 8.
Während des Betriebs des EA werden die angezeigten Meldungen nach Art des Auftretens gruppiert (bezogen auf jedes Listenelement, außer 1, 6 und 8) und gezählt. Unmittelbar vor dem Entladen des EA wird eine abschließende Meldungangezeigt, die die Gruppen mit den jeweiligen Zählungen (wenn diese > 0 waren)enthält.
Nach der (Neu-)Initialisierungdes EA werden im Diagramm zwei Referenzlinien an den Grenzen des Gitters (Start und Stopp) angezeigt. Jede Linie ist horizontal/vertikal, wenn die Grenze des Rasters der Preis bzw. die Zeit ist. Beide Linien sind blau/rot, wenn der Typ der schwebenden Order des Gitters Kauf/Verkauf ist. Tipp: Bewegen Sie den Mauszeiger über eine dieser Linien, um den Objektnamen ("Buy/Sell Limit/Stop - Start/Stop Price/Time")und die Beschreibung (den Eingabeparameter Comment) zu sehen.Hinweis: Die Eigenschaften eines grafischen Objekts können in der Liste Objects bearbeitet werden.
Nach der Prüfung/Optimierung des EA wird das Ergebnis des mathematischen Ausdrucks, der in den Eingabeparameter Math Expression eingegeben wurde, in den Registerkarten Journal/Optimierungsergebnisse des Tester-Fensters angezeigt. Nach dem Testen des EA werden die Werte der verfügbarenstatistischen Parameterauch auf der Registerkarte Journal angezeigt.
Beobachtungen
In einigenFällen kann die Quotierungssitzung früher beginnen oder später enden als die entsprechende Handelssitzung (z. B. mit einem Unterschied von fünf Minuten). Während des Zeitintervalls, in dem die Börsensitzung geöffnet, die Handelssitzung aber noch/bereits geschlossen ist,beginnt der Expert Advisormit der Verarbeitung der verfügbaren Ticks bzw. setzt diese fort. Wenn die vorliegenden Bedingungen die Handelskriterien des EA erfüllen, wird eine Handelsanfrage gebildet und an den Server gesendet. Der Handel wird jedochnicht erfolgreich sein , und es wird eine Fehlermeldung angezeigt:"market is closed".
In Zeiten hoher Aktivität kann die Entscheidung des Handelsservers, ob eine Handelsanfrage ausgeführt oder abgelehnt wird, erhebliche Verzögerungen aufweisen. Einige Daten, die in der an den Server gesendeten Anfrage verwendet werden, können fehlerhaft sein, was zur Ablehnung des Auftrags führt. Wenn der Server eine Anfrage prüft und die Notierungen des Symbols aktualisiert werden, können drei Fälle auftreten:
- Platzierung einer schwebenden Order - der Zielpreis der schwebenden Order wird zu einem falschen Abstand.
- Eröffnung/Änderungeiner Position - das beabsichtigte Stop-Loss- oder Take-Profit-Niveau der Position wird zu einem falschen Abstand.
- Änderung derPosition - dasvorherige Niveau des Stop Loss oder Take Profit der Positionwird auf den Schlusskurs der Position gesetzt.
Die Notierungen des Symbols, die im sechsten Element der Liste im Abschnitt "Angezeigte Informationen" erwähnt werden, sind hier besonders nützlich (da sich die Erstnotierungen in der Regel von den Letztnotierungen unterscheiden). Eine sorgfältige Analyse dieser Kurse und die Kenntnis der Auswirkungen, die bestimmte Kursänderungen auf die Bewertung der Anfrage haben, ermöglicht es, den Grund für das Auftreten dieser Fälle zu verstehen. Um zu vermeiden, dass die Anfrage vom Handelsserver wegen "ungültiger Stops" abgelehnt wird (Fälle 1 und 2), sollten die verwendeten Kurse/Levels das Stop-Level des Symbols um einige Pips überschreiten.
Die Eingabeparameter Start Price, Start Time, Stop Price, Stop Time oder Type haben im Programm einen besonderen Status. Jedes Mal, wenn einer davon geändert wird, geschehen zwei Dinge: Der EA beendet das aktuelle Raster und überprüft die Bedingungen, um ein neues zu erstellen. Wenn alle Start-/Stop-Werte diese Prüfung bestehen, beginnt der EA ein neues Raster. Wenn jedoch mindestens ein Wert nicht erfüllt wird, fährt der EA nicht mit dem neuen Raster fort und beendet seine Operation.
Eine Buy/Sell-Position wird zum Ask/Bid-Kurs eröffnet und zum Bid/Ask-Kurs geschlossen. Da die Stop-Orders der Position (Stop Loss und Take Profit) zu diesem letzten Preis ausgelöst werden, werden sie bei einer Pending Order aus dem Zielpreis der Order -/+ dem aktuellen Spread (Ask - Bid) berechnet.
Wenn Sie eine Pending Order platzieren,darfdie Gültigkeitsdauernichtweniger als10 Minuten betragen . Während der Erstellung eines Grid platziert der Expert AdvisorkeinePending Orders, wenn die aktuelle Zeit die Expiration Time minus10 Minutenüberschreitet (wenn die Gültigkeitsdauer zuvor ausgewählt wurde).
Fazit
Das Pending Order Grid ist ein hilfreiches und effizientes Toolfür die automatische Erstellung von Pending Order Grids, insbesondere wenn die Grids aus einergroßen Anzahl von Orders bestehen, und ermöglicht eine einfache und intuitive Einstellung der zu bildenden Grids.
