Saturday 18 November 2017

Forex Fehler 130


Wie zu schlagen Ordersend Fehler 130 in MetaTrader 4.By beliebte Nachfrage, bewährte Strategien auf, wie man jeden Algorithmischen Trader s schlimmsten Albtraum zu schlagen Fehler 130.Wo kommt dieser Fehler aus Was bedeutet es für Ihre Expert Advisor Wie können Sie den Teil von finden Ihr Code, der den Fehler verursacht Wir packen all dies und mehr. Um beginnen, eine formale Definition von unserem Freund, MQL4 Documentation. That s Recht Das ist alles, was Sie bekommen von MetaQuotes Und der Rest Go figure. Ordersend Fehler 130 wird kurz erwähnt In anderen Abschnitten der Dokumentation Allerdings gibt es keine gründliche Anleitung, was Invalid Stops tatsächlich bedeutet und wie man damit umgehen kann, vielleicht das häufigste Problem in Forex-Programmierung. Aber keine Sorge Das ist der Grund, warum ich diesen Artikel geschrieben habe Durch diese zusammen. Der stille Killer. So hast du deinen kompetenten Berater gestartet und nichts passiert Nein KAUFEN Bestellungen, keine SELL Bestellungen, keine ausstehenden Bestellungen, nicht einmal Fehlermeldungen in den Protokollen Nur Schweigen Sie entscheiden, ein paar Stunden Tage Wochen warten, und nichts Wirklich ändert sich die Charts nach oben und unten, aber du siehst keinen Gewinn Das kann für immer gehen. Der wahre Grund ist einfach, dass du tatsächlich ERRINVALIDSTOPS bekommst, was der richtige Fachbegriff für das Problem ist, aber du kannst es nicht sehen Denn 130 ist ein stiller Mörder Ein kaltblütiger Mörder deines Gehirns und innerer Ruhe. Es gibt keine Möglichkeit, diesen Fehler durch fachkundige Beraterprotokolle oder sogar Terminalprotokolle abzuholen. Der einzige Weg, ihn zu fangen, ist, indem du die richtigen fehlersicheren Mechanismen hineinbringst Code Hier ein Beispiel, das du dich an deinen Code anpassen kannst. Was wir hier machen, nimmt die Ticketnummer und das OrderSend kehrt zurück und prüft, ob es kleiner als Null ist. Wenn ja, dann ist das ein Signal von MetaTrader 4 und sagt uns, dass es da war Ein Problem mit der Anforderung. Der Fehlercode wird dann auf den Bildschirm mit Alert und die integrierte GetLastError-Funktion ausgedruckt Dieser Code gibt ein Pop-up-Fenster wie in das Bild oben an der Spitze dieses Artikels. Hinweis können Sie verwenden Drucken anstelle von Alert, um die Nachricht direkt an das EA-Protokoll zu verteilen, anstatt es auf dem Bildschirm anzuzeigen. Core of Ordersend Error 130.Invalid Stops ist der richtige Name für den Schuldigen, mit dem wir uns heute beschäftigen So was ungültig hält in MetaTrader 4 Eigentlich bedeutet. Für eine Marktbestellung KAUFEN oder VERKAUFEN ungültige Anschläge bedeutet, dass die von Ihnen angeforderten StopLoss und / TakeProfit nicht für Ihre Bestellung eingestellt werden konnten. Da eine Anfrage nicht nur teilweise erfüllt werden kann, wurde die Bestellung überhaupt nicht ausgeführt. Für eine Ausstehende Bestellung KAUFEN SIE STOPPEN, KAUFEN SIE GRENZE, VERKAUFEN STOPPEN Sie oder VERKAUFEN Sie GRENZE ungültige Anschläge bedeutet, dass entweder 1 dort Probleme mit dem SL TP wie oben ODER 2 das Problem war mit dem Eintrittspreis, den Sie für den Auftrag selbst angegeben haben. Wir können Sehen Sie, das Problem ist immer mit einem oder vielen der Preise, die Ihr Forex Roboter in seiner Anfrage an den Handelsserver angegeben hat. Jetzt, wo wir unseren Feind kennen, lassen Sie ihn schlagen.1 StopLoss TakeProfit sind Preise. Es gibt mehrere mögliche Ursachen für ERRINVALIDSTOPS, Und einer der häufigsten bei Anfängern ist die Festlegung der StopLoss und TakeProfit in Pips anstatt tatsächlichen Preisniveaus Wie dies. However, seien Sie vorsichtig Einige EAs haben bereits Module, die die Anzahl der Ziffern nach der Dezimalzahl erkennen und wird automatisch anpassen Input Situationen für Sie In diesen Situationen Multiplikation von Eingängen mit 10 kann tatsächlich zu fehlerhaften Leistung führen. Hinweis Ich plane auf die Entsendung eines separaten Artikels, wo wir diskutieren, wie unsere eigenen Module zu erstellen, um die Anzahl der Ziffern nach der dezimal.3 ECN Broker zu ermitteln. ECN-Konten haben ihre eigenen Besonderheiten Einer von ihnen ist, wenn der Handel über einen ECN-Broker Sie nicht in der Lage, ein StopLoss und oder TakeProfit mit Ihrem Markt bestellen KAUFEN oder VERKAUF Wenn Sie versuchen, dies zu tun, erhalten Sie Fehler 130.However von Natürlich müssen Sie einen StopLoss und vielleicht TakeProfit für Ihre Bestellung setzen, und dies muss so schnell wie möglich nach der Ausführung des Auftrags durchgeführt werden. Versuchen Sie diesen Code. Sie können diese Funktion zu Ihrem Code am Ende hinzufügen und dann verwenden Es anstelle von OrderSend in Ihrem Hauptcode Diese Funktion fügt einen zusätzlichen Schritt in den Prozess des Sendens eines Market Order. First, sendet es die Anforderung, eine Marktordnung auszuführen, die Stoppen der StopLoss und TakeProfit Next, es ändert die neu eröffnete Marktordnung durch Hinzufügen der gewünschten SL und TP. Es ist natürlich ein Risiko, dass die Reihenfolge ausgeführt wird, aber die Änderung wird fehlschlagen In diesem Fall wird die Funktion umgehend benachrichtigen den Händler, dass die StopLoss und TakeProfit wurden nicht gesetzt. Feel Frei, diese Funktion an Ihre Bedürfnisse anzupassen und Trading Style.4 Stop-Levels. Stop-Levels sind ein Mechanismus für Broker, um sich vor bestimmten Volatilität und Liquiditätsrisiken zu schützen. In einfacher Hinsicht können Sie Ihren StopLoss nicht oder so einstellen TakeProfit ODER irgendeine ausstehende Bestellung näher als eine vorgegebene Anzahl von Pips auf den aktuellen Marktpreis. Um herauszufinden, was die Stop-Ebene für ein bestimmtes Währungspaar ist, müssen Sie CTRL U auf Ihrer Tastatur drücken, wählen Sie das gewünschte Währungspaar und klicken Sie auf die Eigenschaften Taste wie in der Abbildung unten gezeigt. In diesem Beispiel ist die Stopp-Stufe für AUDUSD 3 Pips Dies bedeutet, dass du nicht in der Lage bist, den StopLoss für deine Bestellung näher als 3 Pips auf den Preis zu setzen, bei dem der Auftrag eröffnet wird Bedeutet auch, dass jede ausstehende Bestellung mindestens 3 Pips weg von dem aktuellen Marktpreis gesetzt werden muss. Wenn Sie Robot versucht, diese Regeln zu brechen und einen StopLoss TakeProfit oder Pending Order innerhalb der Stop Level Bereich zu setzen, dann wird es Fehler 130 Ungültige Stopps So achten Sie nur auf die Stopp-Ebene der Währung, wo Ihre EA s Handel don t spezifizieren übermäßig kleine StopLoss und TakeProfit Parameter. Es ist auch erwähnenswert, dass mehr exotische Währungspaare können viel mehr signale Stop Levels Fore Beispiel für für AUDNZD die Stopp-Stufe mit dem gleichen Makler wie in der oben genannten Beispiel ist 20 Pips für GBPSEK britischen Pfund vs schwedischen Krone es s 100 Pips.5 Normalisierung von doppelten. Mit einigen Brokern werden Sie feststellen, dass aus einem unbekannten Grund die Ask and Bid Preise sind Auf den Händler mit zusätzlichen vernachlässigbaren Ziffern nach der Dezimalstelle gegangen Zum Beispiel. Statt 1 1606 würde der Broker Ihnen 1 160600001 geben. Jetzt hat dieses Phänomen keine Auswirkung auf den manuellen Handel, da das MT4-Terminal fest verdrahtet ist, um eine bestimmte Anzahl von Ziffern anzuzeigen Nach dem Dezimalpunkt entweder 4 oder 5 kannst du überhaupt keinen Unterschied bemerken. Jedoch können diese vernachlässigbaren Ziffern nach der Dezimalstelle einen dramatischen Effekt auf Expert Advisors haben, der das richtig macht. Unser alter Freund, OrderSend Error 130.Hier sa Strategie, die ich persönlich benutze, um meine Roboter aus dieser Ausgabe zu schützen. Dieser nette kleine Trick erlaubt Ihnen, in einfachen Begriffen zu normalisieren Rund um alle Preise, die Sie in die OrderSend-Funktion eingeben. Auf diese Weise schneiden Sie alle vernachlässigbaren Ziffern nach dem Dezimalpunkt ab Sahen, dass es mehrere Mindestens 5 Ursachen für Fehler gibt 130 Obwohl dies einiges ist, sind die zugrunde liegenden Probleme alle trivial und können in einer Angelegenheit von Minuten korrigiert werden. Daher sollte Fehler 130 nicht befürchtet werden Wenn Sie diesen Schuldigen begegnet sind , Es ist nur eine Frage der durch die Liste oben, die Situation, die für Sie gilt und die Anwendung der vorgeschriebenen Lösung. Hope Sie diesen Artikel nützlich gefunden. Lassen Sie mich wissen, wenn Sie irgendwelche Fragen haben, indem Sie die Kommentare Abschnitt unten. Was sind Sie warten auf. GET BEGINNT MIT DEM FOREX TRADING ADADEMY. int OrderSend String Symbol Symbol int cmd Betrieb doppelte Volumen Volumen doppelte Preis Preis int Schlupf Schlupf Double Stoploss Stop Verlust doppelte Takeprofit nehmen Profit String Kommentar NULL Kommentar int Magie 0 magische Zahl datetime Ablauf 0 ausstehend Bestellen Auslauffarbe arrowcolor clrNONE Farbe. Im Symbol für den Handel. In Operationstyp Es kann eine der Operationsaufzählung sein. In Anzahl der Lose. In Höchstpreisschlupf für Kauf - oder Verkaufsaufträge. In Stop-Verlust-Ebene. In nehmen Gewinnniveau. In Auftrag Kommentartext Der letzte Teil des Kommentars kann per Server geändert werden. In Ordnung magische Zahl Kann als benutzerdefinierte Kennung verwendet werden. In Auslaufzeit für ausstehende Aufträge. In Farbe des Öffnungspfeils auf dem Diagramm Wenn Parameter fehlt oder CLRNONE-Wert-Eröffnungspfeil ist, wird nicht auf dem Diagramm gezeichnet. Returns Nummer des Tickets, das dem Handel vom Handelsserver zugewiesen wird, oder -1, falls es fehlschlägt, um zusätzliche Fehlerinformationen zu erhalten , Muss man die GetLastError-Funktion anrufen. Bei der Eröffnung eines Marktauftrags OPSELL oder OPBUY können nur die neuesten Preise für Bieten für den Verkauf oder die Kaufsuche als offener Preis verwendet werden Wenn der Betrieb mit einer von der aktuellen abweichenden Sicherheit durchgeführt wird, Die MarketInfo-Funktion muss mit dem MODEBID - oder MODEASK-Parameter verwendet werden, um die letzten Zitate für diese Sicherheit zu erhalten. Der berechnete oder unnormalisierte Preis kann nicht angewendet werden. Wenn der angeforderte offene Preis nicht im Preisfaden vorliegt oder er nicht normalisiert wurde Die Anzahl der Ziffern nach dem Dezimalpunkt wird der Fehler 129 ERRINVALIDPRICE erzeugt Wenn der angeforderte offene Preis voll veraltet ist, wird der Fehler 138 ERRREQUOTE unabhängig vom Schlupfparameter erzeugt. Ist der angeforderte Preis nicht mehr aktuell, sondern vorhanden Der Faden wird die Bestellung zum aktuellen Preis eröffnet und nur wenn der aktuelle Preis im Preisbereich liegt - slippage. StopLoss und TakeProfit Ebenen können nicht zu nahe am Markt Die minimale Distanz der Stop-Levels in Punkten können mit erhalten werden Die MarketInfo-Funktion mit MODESTOPLEVEL-Parameter Bei fehlerhaften oder unnormalisierten Stopp-Stufen wird der Fehler 130 ERRINVALIDSTOPS erzeugt. Ein Nullwert von MODESTOPLEVEL bedeutet entweder keine Einschränkungen für die minimale Distanz für Stop Loss Take Profit oder die Tatsache, dass ein Trade Server Nutzt einige externe Mechanismen für die dynamische Niveauregelung, die nicht im Client-Terminal übersetzt werden können. Im zweiten Fall kann GetLastError Fehler 130 zurückgeben, da MODESTOPLEVEL hier tatsächlich schwebt. Bei der Platzierung einer ausstehenden Bestellung kann der offene Preis nicht zu nahe sein Der Markt Die minimale Distanz des anstehenden Preises aus dem aktuellen Markt Eins in Punkten kann mit der MarketInfo-Funktion mit dem MODESTOPLEVEL-Parameter erhalten werden Im Falle eines falschen offenen Preises einer ausstehenden Bestellung wird der Fehler 130 ERRINVALIDSTOPS erzeugt. Ein Anliegen der ausstehenden Bestellung Auslaufzeit kann in einigen Handelsservern deaktiviert werden In diesem Fall wird, wenn im Exspirationsparameter ein Wert ungleich Null angegeben wird, der Fehler 147 ERRTRADEEXPIRATIONDENIED erzeugt. Bei einigen Handelsservern kann der Gesamtbetrag der offenen und ausstehenden Aufträge begrenzt werden Wenn diese Grenze überschritten wurde, wird keine neue Bestellung eröffnet oder es wird kein ausstehender Auftrag vergeben und der Handelsserver wird Fehler zurückgeben. ERRTRADETOOMANYORDERS. -------------------------------------------------- ---------------- Skript Programm Start Funktion ------------------------------ ------------------------------------ void OnStart --- Erhalten Sie minimale Stop-Ebene double minstoplevel MarketInfo Symbol, MODESTOPLEVEL Drucken Minimaler Stopp Level, Minpeoplevel, Punkte Doppelpreis Ask --- berechnet SL und TP Preise müssen normalisiert werden double stoploss NormalizeDouble Bid - minstoplevel Punkt Ziffern double takeprofit NormalizeDouble Gebot minstoplevel Punkt Ziffern --- Platz Markt zu kaufen 1 Los Int Ticket OrderSend Symbol, OPBUY, 1, Preis, 3, Stoploss, Takeprofit, Meine Bestellung, 16384,0, clrGreen if ticket 0 Print OrderSend fehlgeschlagen mit Fehler GetLastError sonst Print OrderSend platziert erfolgreich. Modifizierung von Orders. MQL4 ermöglicht es Ihnen, Markt zu ändern und ausstehend Bestellungen Aufträge werden nach den in Auftragsmerkmalen beschriebenen Regeln und in Anhang 3.Funktion OrderModify. Trade Anfragen zur Änderung von Markt - und ausstehenden Aufträgen werden mit der Funktion OrderModify gebildet. Die Funktion ändert die Parameter der Markt - und ausstehenden Aufträge Die Funktion gibt TRUE zurück , Wenn der Handel erfolgreich gemacht wird Andernfalls gibt es FALSE. ticket zurück - die eindeutige Nummer des Bestellers. - der neu angeforderte Preis eines ausstehenden Auftrags oder der neue offene Preis für eine Marktordnung. stoploss - der neue Wert von StopLoss. Takeprofit - der neue Wert von TakeProfit. expiration - die Ablaufzeit eines ausstehenden order. arrowcolor - die Farbe der Pfeile zum Ändern von StopLoss und / TakeProfit im Diagramm Wenn dieser Parameter nicht verfügbar ist oder sein Wert gleich dem von CLRNONE ist, Pfeile werden nicht im Diagramm angezeigt. Hinweis Sie können den offenen Preis und den Ablauf nur für ausstehende Aufträge ändern. Wenn Sie unveränderte Werte als Funktionsparameter übergeben, erzeugt das Terminal Fehler 1 ERRNORESULT Es kann eine Beschränkung für die Anwendung der Ablaufzeit verwendet werden Zu anhängigen Aufträgen auf einigen Handelsservern In diesem Fall, wenn Sie versuchen, einen Wert ungleich Null in den Parametern des Ablaufs zu erstellen, wird der Fehler 147 ERRTRADEEXPIRATIONDENIED generiert. Modifizierung von Marktaufträgen. Eine Standard-Marktordnung enthält zwei Stoppaufträge - StopLoss und TakeProfit Sie beauftragen, die Bestellung zu den angeforderten Preisen zu beenden, um Verluste zu stoppen und Gewinne zu beheben. Die Änderung der Marktaufträge kann für die Änderung der angeforderten Preise für Stoppaufträge entweder durch neue, im Programm oder im Trader-Initiative Das Client-Terminal verfügt über ein eigenes Tool zur Modifikation von StopLoss Trailing Stop Es erlaubt dem Programm, den Level von StopLoss nach der Rate in einem bestimmten festen Abstand zu ändern, siehe MetaTrader 4 Cleitn Terminal Benutzerhandbuch. Die Reihenfolge-modifizierende Funktion OrderModify erweitert die Modifikationskapazitäten erheblich Die angeforderten Preise beider Stopaufträge können in Richtung des Marktpreises geändert oder gelöscht werden. Eine Beschränkung für die Marktordnungsänderung ist die minimal zulässige Distanz zwischen dem Stoppauftrag und dem Marktpreis, die vom Handelszentrum festgelegt wird Siehe Auftragsmerkmale und Anforderungen und Einschränkungen bei der Herstellung von Geschäften Wenn das Programm versucht, die Position eines Stoppauftrags so zu ändern, dass er dem Markt näher liegt als der zulässige Mindestabstand, wird diese Handelsanforderung vom Kundenterminal abgelehnt Und die Ausführung der Funktion OrderModify fehlschlägt Fehler 130 Aus diesem Grund sollten Sie einen speziellen Block in Ihrem Programm vorstellen, der diese Einschränkung in Betracht zieht. Beispiel eines einfachen Expertenberaters, der StopLosses aller Marktaufträge modifiziert, für die der Abstand zwischen dem Angeforderter Preis von StopLoss und der Marktpreis ist größer als der voreingestellte. Das oben genannte Programm ist ein Expert Advisor Wenn nötig, können Sie die Auftragsänderungsfunktion in einem Skript leicht realisieren. Allerdings wäre es nicht sinnvoll, ein normales Skript zu verwenden In diesem Beispiel, weil das Skript seine Operationen beenden würde, nachdem der Handel gemacht worden ist. Die Verwendung eines Skripts wäre vernünftig, falls das Programm eine einmalige Ausführung einer Operation realisiert, zum Beispiel das Öffnen oder Schließen von Aufträgen In diesem Fall Aber wir lösen eine Aufgabe, die eine ständige Kontrolle über die Situation erfordert, die Position einer Stoppreihenfolge ändern, wenn eine bestimmte Bedingung erfüllt ist, nämlich wenn der Abstand zwischen dem Marktpreis und dem angeforderten Wert der Stoppreihenfolge eine bestimmte überschreitet Voreingestellter Wert 10 Punkte, in unserem Fall Für eine langfristige Nutzung ist es viel bequemer, eine EA zu schreiben, die für die Ausführung bei jedem Tick gestartet wird und hört auf, nur auf die direkte Anweisung durch den Benutzer zu arbeiten. Der Algorithmus der oben genannten EA Ist sehr einfach Die Hauptberechnungen werden im Zyklus der Suche im Auftragsblock 2-9 durchgeführt. Die Bestellung wird sowohl im Markt als auch in den anhängigen Aufträgen durchsucht, wobei der Parameterpool im Funktionsaufruf OrderSelect nicht explizit angegeben ist. In Block 2-3, ausstehende Bestellungen Und die Aufträge, die für ein anderes Symbol geöffnet wurden, werden für die markierten Aufträge herausgefiltert, der Wert von StopLoss wird bestimmt. Block 3-9 stellt einen Zyklus für die Änderung der gewählten Reihenfolge dar. In Block 3-4 wird der neue aktuelle Wert der Begrenzungsdistanz wird bestimmt Ihr Vermittler kann diesen Wert jederzeit ändern In Block 4-5 wird die Notwendigkeit, den ausgewählten Auftrag, der derzeit im Zyklus verarbeitet wird, zu modifizieren, sowie einen neuen Wert von StopLoss Wenn der aktuelle Auftrag nicht erforderlich ist Modifiziert, verlässt das Programm den Zyklus, während am Ende von Block 4-5 und diese Reihenfolge nicht in Block 5-6 geändert wird. Wenn jedoch die Reihenfolge geändert werden muss, wird die Steuerung an den Block 5-6 übergeben, in dem die Notwendige Parameter werden berechnet und die Funktion OrderModify aufgerufen, die eine Handelsanforderung bildet. Wenn ein Trade erfolgreich abgeschlossen ist, beendet der Operator in Block 6-7 die Ausführung des Zyklus, während das Ende der aktuellen Iteration der Auftrags-Suchzyklus für die nächste Bestellung beginnt bei der nächsten Iteration zu verarbeiten Wenn der Handel nicht erfolgreich durchgeführt wird, werden die Fehler bearbeitet Wenn ein Fehler nicht kritisch ausfällt, wiederholt das Programm einen Handel Wird der Fehler als kritisch geschätzt, wird die Steuerung außerhalb des Änderungszyklus für die Bearbeitung der nächsten Bestellung im Zyklus vergeben. Sie sollten hier ein kleines Merkmal beachten, das sich auf die Änderung von Marktaufträgen bezieht. Order OrderModify setzt neue Preiswerte für beide Stoppen von Aufträgen gleichzeitig Die Notwendigkeit, den Mindestabstand einzuhalten, betrifft nur die Stoppreihenfolge, deren neuer Wert sich von der aktuellen unterscheidet. Wenn der neue Wert gleich dem aktuellen ist, kann die Stoppreihenfolge in jedem Abstand liegen Der Marktpreis, während der entsprechende Handelsantrag als korrekt angesehen wird. Zum Beispiel haben wir eine Marktordnung Kauf zum Preis von 1 295467 mit den folgenden Stopp-Aufträgen StopLoss 1 2958 und TakeProfit 1 2960 Der Mindestabstand, der vom Makler festgelegt wird Ist 5 Punkte Für den Marktpreis Bid 1 2959 ergeben sich die Bedingungen für die Änderung der Bestellung, nämlich für die Platzierung von StopLoss 1 2949 Bid - 10 Punkte Um die Funktion OrderModify auszuführen, solltest du auch einen neuen Wert von TakeProfit Our EA angeben Ändert nicht die Position von TakeProfit, also setzen wir seinen aktuellen Wert in die Funktion TakeProfit 1 2960. Trotz der Tatsache, dass der neue angeforderte Wert von TakeProfit 1 2960 nahe am Marktpreis liegt Bid nur 1 Punkt, dh weniger als die Erlaubte Mindestabstand von 5 Punkten, dieser Wert unterscheidet sich nicht von dem aktuellen Wert von TakeProfit 1 2960, so dass die Handelsanforderung als korrekt betrachtet und auf dem Server im Allgemeinen durchgeführt wird, kann die Anfrage abgelehnt werden, aber aus anderen Gründen Abb. 102 Und 103 repräsentieren die Ergebnisse einer erfolgreichen Änderung in einer solchen Situation. Fig 102 Alerting Fenster und Symbol-Fenster, wie sie bei der Änderung einer Bestellung von EA erscheinen, wenn die Marktrate ist in der Nähe der angeforderten Wert von TakeProfit. Fig 103 Modified Order im Terminal Fenster. Wir sehen in Abb. 103, dass die Änderung den neuen Wert von StopLoss 1 2949 und der aktuelle Preis Bid 1 2959 war in einem Abstand von 1 Punkt aus dem Wert von TakeProfit. Es muss separat festgestellt werden, dass weder Markt noch Anstehende Aufträge sollten getrennt von der Marktsituationsanalyse geändert werden. Eine solche Änderung kann nur dann sinnvoll sein, wenn sich der Marktkurs schnell und in einer Richtung bewegt, was nach wichtigen Nachrichten geschehen kann. Wenn Sie jedoch auf einem normalen Markt handeln, ist die Entscheidung der Notwendigkeit, Aufträge zu modifizieren, muss auf der Grundlage von Marktkriterien gemacht werden. Im Expert Advisor verwenden wir auch ein Kriterium StopLoss ist weiter vom Marktpreis als wir wollen, auf dessen Grundlage das Programm entscheidet, Aufträge zu ändern. Allerdings ist dieses Kriterium zu einfach Und haltbar als Kriterium für die Marktsituation zu betrachten. Modifizierung von ausstehenden Orders. Modifizierung von anhängigen Aufträgen unterscheidet sich geringfügig von der der Marktaufträge Der wesentliche Unterschied ist, dass es möglich ist, den angeforderten Preis der Bestellung selbst zu ändern Regeln, die die Position eines ausstehenden Auftrags in Bezug auf den Marktpreis und die Stoppaufträge im Zusammenhang mit dem angeforderten Auftragspreis einschränken, siehe Auftragsmerkmale und Anforderungen und Beschränkungen in der Herstellung von Geschäften Gleichzeitig gelten alle Merkmale der ausstehenden Bestellung als neu Angefragt, was auch immer die vorherige Geschichte der verwandten Ereignisse gespeichert ist. Zum Beispiel nehmen wir an, dass wir eine ausstehende Bestellung haben BuyStop 1 2030 mit StopLoss 1 2025 und TakeProfit 1 2035 Der Makler stellte die minimale erlaubte Distanz als 5 Punkte ein Es ist leicht zu sehen, dass der Stop Aufträge innerhalb des erlaubten Bandes sind, so dass jede Änderung des geforderten offenen Preises die notwendige Änderung von mindestens einer der Stoppaufträge zur Folge haben wird. Wenn jedoch eine Handelsanforderung gebildet wird, die den gewünschten Auftragspreis ändern wird, sind die Werte Von Stopp-Aufträgen bleiben die gleichen, das Client-Terminal wird diese Anforderung als falsch betrachten und wird es nicht an den Server zur Ausführung senden Wenn zum Beispiel die Anforderung die folgenden Werte BuyStop 1 2028, StopLoss 1 2025 und TakeProfit 1 2035 angibt, Diese Anforderung ist falsch, obwohl die Werte der Stopp-Aufträge in diesem Fall nicht geändert wurden, die Anforderung, die Regel zu behalten, den Mindestabstand zwischen dem geforderten offenen Preis und dem Preis einer der Stoppaufträge zu halten, siehe Anforderung und Einschränkungen In Making Trades. Let s sehen, wie ein Skript aussehen kann, die einen ausstehenden Auftrag modifiziert, um seinen angeforderten Preis an den Marktpreis an einen bestimmten vordefinierten Abstand zu approximieren. Lassen Sie den Abstand als 10 Punkte setzen Um den zu ändernden Auftrag anzugeben, kann es sein Sei mehrere ausstehende Aufträge im Fenster, wir verwenden den Preis, bei dem das Skript an das Symbolfenster angehängt wurde. Beispiel für ein einfaches Skript, das einen ausstehenden Auftrag modifiziert, dessen angeforderter offener Preis näher am Skript-Anhangspreis liegt Als die Preise für andere ausstehende Aufträge. Die Distanz zwischen dem Marktpreis und dem angeforderten Preis der ausstehenden Bestellung wird in der Variablen Tral gesetzt Die Variable WinPrice enthält den Wert des Preises, an dem das Skript an das Symbolfenster angehängt wurde Zyklus der Suche im Auftragsblock 2-5 werden die Merkmale der Reihenfolge, die der Skript-Attachment-Ebene am nächsten liegt, Block 6-13 stellt den Zyklus der Schließaufträge dar. Im Block 8-9 wird entschieden, ob der ausgewählte Auftrag sein muss Modifiziert Bei Bedarf werden hier die neuen Werte des angeforderten Preises der Stoppaufträge berechnet. Die Änderung der Bestellung wird mit der Funktion OrderModify in Block 10-11 angefordert. Fehler werden in Block 11-13 verarbeitet. Block 8-9 besteht aus vier ähnlichen Blöcke, in denen die neuen Werte, die in der Anfrage verwendet werden, berechnet werden, betrachten wir die für die Bestellung angegebene SellLimit. Die neuen Parameter des Auftrags werden nur berechnet, wenn der aktuelle Preispreis weiter vom aktuellen Marktpreis liegt. Bid als der gewünschte Abstand TS Wenn es so ist, wird die Kontrolle an die Stelle des Betreibers übergeben, wenn der neue offene Preis der Bestellung, NewPrice, berechnet wird. Die neuen Werte von StopLoss und TakeProfit werden nur für Werte ungleich Null berechnet. Der Abstand zwischen dem angeforderten Bestellpreis Und jeder Preis der Stopp-Order bleibt der gleiche. Zum Beispiel, bestellen SellLimit ist bei 1 2050 platziert, seine StopLoss 1 2073 und seine TakeProfit 1 2030 Angenommen, die Berechnungen führen in den neuen Auftrag offenen Preis gleich 1 2040 In diesem Fall die Neue Werte der Stopp-Aufträge werden wie folgt sein StopLoss 1 2063, TakeProfit 1 2020 So führen die Programmoperationen dazu, dass die Reihenfolge als Ganzes modifiziert wird - alle drei Grundparameter offener Preis, StopLoss und TakeProfit bewegen sich gleichzeitig und halten einen Abstand zwischen Sie werden am Ende des Blocks 8-9 die neuen Werte der Stopp-Aufträge auf negative Werte geprüft. Diese Überprüfung ist sinnvoll, wenn eine zuvor von einem anderen Programm oder manuell beendeten Auftrag nahe dem Nullpreis liegt, z. B. nur 1 Punkt oben Null In diesem Fall, wenn der Auftrag um mehr als 1 Punkt nach unten fährt, wird der neue Preis einer der Stoppaufträge negativ Wenn dieser Wert in einer Handelsanforderung angegeben wurde, würde die Anfrage vom Kundenterminal abgelehnt. Wir haben Um einen Nachteil solcher Programme zu zeigen - sowohl Skripte als auch Sachverständige Das oben genannte Programm ist in seiner Handlungsentscheidung sehr eingeschränkt Der zu modifizierende Auftrag kann nur in eine Richtung verschoben werden - in Richtung der Marktrate, dessen Stoppaufträge strikt sind Anchore an die Bestellung Dieses Programm ist nicht angepasst, um den gewünschten Auftragspreis in der anderen Richtung als dem Marktpreis zu ändern. Die Möglichkeit, die Position einer separaten Stoppreihenfolge zu ändern, wird auch im Programm nicht realisiert. Die oben genannte Begrenzung wird zuerst bestimmt Von allen, durch die Menge der verwendeten Kontrollen In diesem Programm gibt es nur eine Kontrolle der Art - der Ort, an dem das Skript an das Symbolfenster angehängt wurde. Mit diesem Parameter kann der Trader jede zu modifizierende Reihenfolge bestimmen Ist die Initiative des Benutzers. Um effizienter arbeiten zu können, benötigt der Benutzer zusätzliche Werkzeuge, die ihm erlauben, andere Parameter von Aufträgen zu beeinflussen. Diese Aufgaben können mit MQL4 sehr effizient gelöst werden. Allerdings müssen Sie einen anderen, intellektuellen verwenden Algorithmus zu diesem Zweck Es ist möglich, ein Programm zu erstellen, das Ihren Handel automatisiert und Aufträge entsprechend Ihren Wünschen bearbeitet. Sie können in einem solchen Programm zB grafische Objekte als zusätzliche Steuerungswerkzeuge für den manuellen Handel verwenden.

No comments:

Post a Comment