Ordermagicnumber Mt4 Forex


MetaTrader 4 - Beispiele MagicNumber: quotMagicquot Identifier des Ordens 1. Preamble In 3 war das Management von offenen Positionen eher zeitaufwendig. Den Händlern stand ein ziemlich begrenztes Werkzeug zur Verfügung, um mit der Liste der offenen und geschlossenen Positionen zu arbeiten. Das Problem der Unterscheidung zwischen eigenen und jemandem elses Positionen wurde auf sehr komplizierte Weise gelöst. In 4 hat sich die Situation kardinal verändert. Jetzt kann Trader eine Vielzahl von Funktionen nutzen und alle offenen Positionen vollständig verwalten und Aufträge platzieren und Zugang zu Informationen über alle geschlossenen Positionen erhalten. Ein spezieller Parameter namens MagicNumber wurde hinzugefügt, um Aufträge zu identifizieren. Dies ist der Parameter, den unser Artikel behandeln wird. 2. Was ist MagicNumber int OrderSend (Stringsymbol, int cmd, doppelte Lautstärke, doppelter Preis, int Schlupf, doppelter Stoploss, doppelter Takeprofit, String KommentarNULL, int magic0. Datetime expiration0, color arrowcolorCLRNONE) Magie - Magie bestellen. Kann als benutzerdefinierte Kennung verwendet werden. Wenn ein Auftrag eingelegt wird (eine Position wird geöffnet), kann man ihm eine eindeutige Nummer zuordnen. Diese Zahl wird folglich verwendet, um die obige Reihenfolge von anderen zu unterscheiden. Es gibt keine Verwendung (oder sogar Möglichkeit), diese Funktion beim Trading manuell anzuwenden, aber es ist wirklich unexpendable beim Handel mit einem Experten (automatisierte Handel). Beispiel 1: Ein menschlicher Händler und ein Experte werden gleichzeitig im Client-Terminal gehandelt. Aufgabe: Der Experte muss nach seinem Algorithmus handeln und darf nichts mit manuell geöffneten Positionen ausführen. Lösung: Der Experte muss der Position, die geöffnet wird, eine eindeutige, nicht null MagicNumber zuweisen. In Zukunft muss es nur Positionen verwalten, deren MagicNumber gleich dem Preset ist. Beispiel 2: Zwei Experten mit unterschiedlichen Algorithmen handeln gleichzeitig im Client-Terminal. Aufgabe: Der Experte muss nur ihre Aufträge verwalten. Lösung: Jeder Experte muss seine eindeutige Nicht-Null-MagicNumber verwenden, wenn er Positionen öffnet. In Zukunft müssen sie nur Positionen verwalten, deren MagicNumber gleich dem voreingestellten ist. Beispiel 3: Mehrere Experten, ein menschlicher Händler und ein assistierender Experte, der einen nicht standardmäßigen Trailing Stop realisiert, arbeiten gleichzeitig im Client-Terminal. Aufgabe: Handelsexperten müssen nach ihren Algorithmen arbeiten und dürfen nichts mit manuell geöffneten Positionen ausführen. Der assistierende Experte, der Trailing Stop realisiert, kann nur Positionen ändern, die manuell geöffnet werden, aber nicht die, die von anderen Experten geöffnet wurden. Lösung: Die Handelsexperten müssen einzigartige MagicNumbers verwenden und nur ihre Positionen verwalten. Der assistierende Experte muss nur jene Positionen ändern, die MagicNumber gleich 0 haben. Alle drei Beispiele sind ziemlich realistisch, und die Benutzer könnten wahrscheinlich solche Probleme für sich selbst gesetzt haben. In allen drei Fällen wird die MagicNumber verwendet, um sie zu lösen. Dieser Weg ist nicht der Einzigartige, sondern der Einfachste. 3. Realisierung Jetzt lass uns die spezifische Aufgabe lösen: einen Experten erstellen, der nur mit eigenen Positionen arbeiten konnte, ohne auf offene Positionen manuell oder von anderen Experten zu achten. Lassen Sie uns zuerst einen einfachen Experten schreiben, für den das Signal, um eine Position zu öffnen, sein wird, wenn der MACD-Indikator auf Nulllinie trifft. Der Experte wird so aussehen: Lasst uns es dem Diagramm anhängen und sehen, wie es funktioniert: Alles ist in Ordnung, aber hier ist ein Problem. Wenn wir während des Expertenbetriebes eine Stellung eröffnen, wird er diese Position als eigenständig betrachten und entsprechend handeln. Das ist nicht das, was wir wollen. Wir werden unseren Sachverständigen so modifizieren, dass er nur seine eigenen Positionen verwaltet: Fügen Sie die externe Variable namens ExpertID hinzu, die zum Ändern der MagicNumber-Werte für vom Experten eröffnete Positionen verwendet werden soll Nachdem die Position durch die OrderSelect () - Funktion ausgewählt wurde, Fügen Sie hinzu, ob die MagicNumber des ausgewählten Auftrags mit der der ExpertID-Variablen übereinstimmt. Wir schreiben den Wert der ExpertID anstelle von 0 in das MagicNumber-Feld während der Positionsöffnung. Unter Berücksichtigung der obigen Änderungen wird der Code wie folgt angezeigt: Nun, wann Der Experte arbeitet, kann der Benutzer die Positionen manuell öffnen. Der Experte wird sie nicht anfassen. 4. Mehrere identische Experten auf verschiedenen Charts eines Symbols Es gibt Fälle, in denen die gleiche EA auf den Charts des gleichen Symbols handeln muss, aber mit verschiedenen Zeitrahmen, zum Beispiel. Wenn wir versuchen, unseren Experten dem Chart EURUSD, H1 und dem EURUSD, M30, zuzuordnen, werden sie sich gegenseitig stören: Jeder wird die offene Position als seine Position betrachten und sie nach eigenem Ermessen ändern. Dieses Problem kann durch die Zuordnung einer anderen ExpertID zum anderen Experten gelöst werden. Aber das ist nicht sehr bequem. Wenn es viele Experten gibt, kann man sich nur unter ihren IDs verwickeln. Wir können dieses Problem mit dem Diagramm Zeitraum als MagicNumber. Wie sollen wir es tun Wenn wir die Chartperiode nur der ExpertID hinzufügen, ist es möglich, dass 2 verschiedene Experten auf 2 verschiedenen Charts die gleiche MagicNumber erzeugen. So werden wir besser ExpertID um 10 multiplizieren und die Chartperiode (seinen Code von 1 bis 9, um genau zu sein) am Ende. Es wird so etwas aussehen: Jetzt fügen Sie diesen Code der Experten init () - Funktion hinzu und ersetzen Sie ExpertID mit MagicNumber überall. Die endgültige Version der EA sieht so aus: In diesem Aussehen kann der Experte auf mehreren Charts mit unterschiedlichen Perioden verwendet werden. Der ExpertID-Variablenwert wird sich nur ändern, wenn es notwendig ist, zwei Experten auf Diagrammen des gleichen Symbols und Zeitraums zu starten (zB EURUSD H1 und EURUSD H4), aber das geschieht sehr selten. Ähnlich, mit dem oben genannten Code, kann der Benutzer seine EAs verbessern und ihnen beibringen, ihre Positionen von den fremden zu unterscheiden. Warnung: Alle Rechte an diesen Materialien sind von MQL5 Ltd. vorbehalten. Kopieren oder Nachdrucken dieser Materialien ganz oder teilweise ist verboten. MetaTrader Magic Number Eine magische Zahl wird verwendet, um einen Handel zu identifizieren. Wenn ein Handel von einem Experten-Berater eröffnet wird, kann eine magische Zahl mit dem Handel verbunden sein. OrderSend hat viele Parameter, einer von ihnen heißt Magie. Wenn Ihr Expert Advisor die OrderSend-Funktion zum Öffnen einer Bestellung verwendet, setzen Sie den magischen Parameter auf eine eindeutige Nummer, die Sie später verwenden können, um den Handel zu identifizieren. Hier ist die eigentliche Definition von OrderSend direkt aus der MetaEditor-Hilfedatei: Stringsymbol, int cmd, doppeltes Volumen, doppelter Preis, int Schlupf, doppelter Stoploss, doppelter Takeprofit, String commentNULL, int magic 0, datetime expiration0, color arrowcolorCLRNONE) Farbe von Der Öffnungspfeil auf dem Diagramm. Wenn der Parameter fehlt oder der CLRNONE-Wert-Öffnungspfeil nicht auf dem Diagramm gezeichnet ist. Hinweis: Siehe die 8220magic08221 in der Funktionsdefinition Dies bedeutet, dass der magische Parameter optional ist: er muss nicht definiert werden. Darüber hinaus, wenn es nicht definiert ist, wird es den Wert von 0. Übrigens, Trades geöffnet manuell (nicht von einem EA) haben immer einen magischen Zahlenwert von 0. Dies ist gut zu wissen, Henne schreiben Sie Ihre Expert Advisor. Was ist der Zweck, einen Handel mit einer magischen Zahl zu identifizieren Der Hauptzweck des Markierens deines Handels mit einer magischen Zahl ist, so dass du den Handel auf der Grundlage der Umstände, unter denen es geöffnet wurde, verwalten kann. Angenommen, Sie haben diese Situation: Sie führen 2 Expert Advisors: eine auf einer EURUSD 1-Stunden-Chart und die andere auf einem EURUSD 15-Minuten-Chart. Ein EA ist ein Scalping EA und das andere ist ein Trend-nach EA. Jeder dieser EAs hat 1 offenen Handel. Du willst wahrscheinlich den Ausstieg dieser Trades anders machen. Abgesehen von der Standard-Stoploss und Takeprofit-Ausfahrt, können Sie einen Loft-Stop auf einem Trade und einem Kanal-Stop auf der anderen führen. In diesem Fall ist es nicht ausreichend, den Handel durch sein Währungspaar zu identifizieren, da beide Trades EURUSD Trades sind. Hier kommt die magische Zahl herein. Wenn eine einzigartige Zauberzahl verwendet wurde, als diese Trades geöffnet wurden, kann man nun dazu dienen, zu identifizieren, was EA den Handel eröffnete. Zum Beispiel könnte die Scalping EA eine magische Zahl von 100 verwenden, und die Trend-nach EA kann eine magische Zahl von 200 verwenden. Wie man die Magic-Nummer eines Open Trade bekommt Es gibt eine MMS-Funktion namens OrderMagicNumber, die die Magie bekommen wird Nummer eines Handels. Aber es wird nicht so aufgeregt. Die Funktion OrderMagicNumber muss in einer Auftragsauswahlschleife ausgeführt werden. Die MMS-Funktion OrderSelect wird zur Auswahl eines Handels verwendet. Nachdem ein Trade ausgewählt wurde, wird die OrderMagicNumber-Funktion verwendet, um die magische Zahl zu erhalten. Typischerweise wird die MMS-Funktion OrdersTotal verwendet, um alle offenen Trades für das Konto zu durchlaufen. Hier ist ein MQL-Code-Beispiel: int totalOrdersTotal () int mymagic für (int pos0poslttotalpos) if (OrderSelect (pos, SELECTBYPOS) false) fortsetzen mymagic OrderMagicNumber () (Don8217t Sorge, dieser Code get8217s einfacher zu arbeiten, nachdem you8217ve getan es über Tausende Mal Übrigens wird diese gleiche Technik verwendet, um fast alle Informationen über einen Handel zu erhalten: Stoppen, Stau, offene Zeit, offener Preis, etc. (Auch die Handelsgeschichte eines Kontos kann auf die gleiche Weise abgefragt werden Alle die gleichen Informationen über geschlossene Trades) Also so, wo man eine Trade8217s Magic-Nummer bekommen kann, kannst du einen bestimmten Trade-Exit auf der Grundlage der magischen Nummer ausführen. Du kannst dies mit der Grund-If-then-Logik machen: wenn mymagic gleich ist 100 einen nachlaufenden Stopp ausführen, wenn mymagic gleich 200 ist ein Kanalstopp unter Verwendung von Magic Numbers in VTS In VTS wird mit jedem System eine Eingangsvariable namens MagicNumber erstellt. Die MagicNumber Variable ist im VTS Input Manager definiert und konfiguriert. Die MagicNumber Variable Erscheint auf der Registerkarte Eingabe, wenn Sie die EA starten, so dass sie bei jedem Start der EA eingestellt werden kann. Der Standardwert des magischen Parameters für alle OrderSend-Funktionen in VTS ist die Variable MagicNumber Beachten Sie, dass die OrderSend-Funktion in VTS von der benutzerfreundlichen VTS-Funktion fnOpenOrder aufgerufen wird. Wenn Sie also eine einfache EA in VTS erstellen, die die Funktion fnOpenOrder verwendet und Sie die Standardwerte verwenden, hat you8217ll eine EA, die Trades mit der magischen Nummer öffnet, die im Eingabefenster angezeigt wird, wenn Sie die EA starten. Siehe diesen Link für ein Beispiel des EA-Eingabefensters und des VTS Input Manager-Fensters. Hier ist ein Bild des magischen Parameters auf der VTS fnOpenOrder Funktionskonfiguration. Beachten Sie, dass es auf der erweiterten Registerkarte steht: Magic Number Parameter auf fnOpenOrder (OrderSened) Da Sie den magischen Parameter auf die VTS fnOpenOrder Funktion auf einen beliebigen Wert einstellen können, ist nicht nur die MagicNumber Variable die Fähigkeit, eine magische Zahl innerhalb von VTS zu nutzen flexibel. Sie haben vielleicht den Kommentarparameter bemerkt. Der Kommentarparameter von OrderSend wird verwendet, um einem Text einen Textkommentar hinzuzufügen. (Anmerkung: Sie müssen vorsichtig sein, wenn Sie den Kommentarwert verwenden möchten, um einen Handel zu identifizieren, da der Wert vom Makler geändert werden kann. Tatsächlich wird er jederzeit geändert, wenn der Handel geändert wird). Wie auch immer, es kann sehr praktisch sein, die magische Nummer eines Handels in der MetaTrader-Plattform zu sehen. So setzt VTS standardmäßig den Namen der EA und die magische Zahl in den Kommentarparameter. Auf diese Weise können Sie visuell sehen, wie Ihre Trades in der MT-Plattform eröffnet wurden. Hier ist ein Bild von einem offenen Handel auf der Registerkarte Handel: Der Name der EA, die diesen EURUSD-Handel eröffnet hat, ist 8220system38221, und die magische Zahl ist 123456. Hier ist ein Bild eines geschlossenen Handels auf der Registerkarte Account History: Beachten Sie, dass die Kommentarfeld wurde vom Makler geändert: Sie haben den Text 8220tp8221 hinzugefügt. Übrigens, wenn du das Kommentarfeld in deiner MetaTrader-Plattform sehe, kannst du mit der rechten Maustaste auf die Spalten klicken und es hinzufügen. So erhalten Sie die Magic-Nummer eines Handels mit VTS Das fnGetOrderInfo generiert den gesamten MQL-Code für die Auftragsauswahlschleife und gibt den angeforderten Wert zurück.

Comments