Wednesday 27 September 2017

Forex error 133


OrderSend Error 130 Error Opening Long Order: 130 Hier ist der Code, der von einem Expertenberater geändert wurde, der Trades ohne Fehler öffnen kann. Also Im nicht sicher, warum Im erhalten diese Fehler. If (BarCloseltBollingerLower ampamp trendlt0) // Schlusskurs ist kleiner als die obere Bollinger-Zeile // if (trendlt0) // Der Trend ist nach unten TicketOrderSend (Symbol (), OPBUY, Lots, Ask, 3, Ask-TrailingStop, 0, quotCounter Trend : Langer Auftrag Placedquot, 16384,0, Grün) // Open Langer Auftrag if (ticketgt0) if (OrderSelect (Ticket, SELECTBYTICKET, MODETRADES)) Drucken (quotBUY-Bestellung geöffnet, OrderOpenPrice ()) else Print (quotError Eröffnung LONG Reihenfolge ., GetLastError ()) return (0) return (0) Ihre Ask könnte sagen, 1.340 auf dem EUR / USD zum Beispiel. Was ist der Wert Ihres TrailingStop. Es muss etwas wie 0,0010 oder 0,0020 oder 0,0011 oder 0,133 oder etecetera sein. Sie versuchen, 0.0001s zu subtrahieren und nicht ganze Zahlen wie 10, 20, 11 usw. Wenn Sie möchten, dass TrailingStop eine Ganzzahl ist, die ein Benutzer eingibt, z. B. 10, dann müssen Sie es 0.0010 zuerst machen, um zu subtrahieren Es von Ask. Sie können dies durch Folgendes tun: TrailingStop Point. Zeigen Sie auf den EURUSD 0.0001. So können Sie Ihren Code ändern, um die folgenden: Ask - (TrailingStop Point), die die gleiche wie Ask-TrailingStop Point ist. Unten ist Code aus einem meiner Skripte, so können Sie sehen, wie man dies tun kann. Bitte versuchen Sie es zu einem späteren Zeitpunkt noch einmal. Möchten Sie sich anmelden, bevor Sie eine Bestellung aufgeben, können Sie sich mit uns in Verbindung setzen . Die Aufträge werden gemäß den in den Bestellmerkmalen und in Anlage 3 beschriebenen Regeln geändert. Function OrderModify () Mit der Funktion OrderModify () werden Handelsanforderungen zum Ändern von Markt - und ausstehenden Bestellungen gebildet. Die Funktion ändert die Parameter des Marktes und der ausstehenden Aufträge. Die Funktion gibt TRUE zurück, wenn der Handel erfolgreich ausgeführt wird. Ansonsten gibt es FALSE zurück. Ticket - die eindeutige Nummer des Auftrags. Preis - der neu angeforderte Preis einer ausstehenden Bestellung oder der neue offene Preis für einen Marktauftrag. Stoploss - der neue Wert von StopLoss. Takeprofit - der neue Wert von TakeProfit. Ablauf - die Auslaufzeit eines ausstehenden Auftrags. Arrowcolor - die Farbe der Pfeile zur Modifizierung von StopLoss und / oder TakeProfit im Diagramm. Wenn dieser Parameter nicht verfügbar ist oder sein Wert gleich dem von CLRNONE ist, werden die Pfeile nicht im Diagramm angezeigt. Hinweis: Sie können offenen Preis und Ablauf nur für ausstehende Bestellungen ändern. Wenn Sie als Funktionsparameter unveränderte Werte übergeben, erzeugt das Terminal den Fehler 1 (ERRNORESULT). Es kann eine Einschränkung für die Anwendung der Ablaufzeit auf ausstehende Bestellungen auf einigen Handelsservern gesetzt werden. In diesem Fall wird der Fehler 147 (ERRTRADEEXPIRATIONDENIED) generiert, wenn Sie versuchen, einen Wert ungleich Null in den Parametern des Ablaufs zu erstellen. Änderung von Market Orders Eine Standard Market Order enthält zwei Stop Orders - StopLoss und TakeProfit. Sie beauftragen, die Bestellung auf die angeforderten Preise zu schließen, um Verluste zu stoppen und Gewinne zu fixieren. Eine Änderung von Marktaufträgen kann nützlich sein, um die angeforderten Preise von Stop-Orders entweder aufgrund neuer berechneter Werte, die im Programm oder auf der Händlerinitiative erzielt wurden, zu ändern. Das Client-Terminal verfügt über ein eigenes Werkzeug zur Modifikation von StopLoss: Trailing Stop. Es erlaubt dem Programm, den Level von StopLoss entsprechend der Rate in einem bestimmten festen Abstand zu ändern (siehe MetaTrader 4 Cleitn Terminal Benutzerhandbuch). Die Auftragsänderungsfunktion OrderModify () erweitert die Modifikationskapazitäten erheblich: Die angeforderten Preise beider Stopaufträge können in Richtung Marktpreis geändert oder gelöscht werden. Eine Beschränkung für die Änderung der Marktordnung ist die minimal zulässige Distanz zwischen dem Stoppauftrag und dem Marktpreis, die vom Handelszentrum festgelegt wird (siehe Bestellmerkmale und Anforderungen und Einschränkungen in Making Trades). Wenn das Programm versucht, die Position eines Stop-Auftrags so zu ändern, dass es näher am Markt liegt als der zulässige Mindestabstand, wird diese Trade-Anfrage vom Client-Terminal zurückgewiesen und die Ausführung der Funktion OrderModify () wird Fehler (Fehler 130). Deshalb sollten Sie einen speziellen Block in Ihrem Programm, die diese Einschränkung in Betracht ziehen wird. Beispiel eines einfachen Expertenberaters, der StopLosses aller Marktaufträge modifiziert, für die der Abstand zwischen dem angeforderten Preis von StopLoss und dem Marktpreis größer als der voreingestellte ist (modifystoploss. mq4). Das obige Programm ist ein Expert Advisor. Bei Bedarf können Sie die Auftragsänderungsfunktion einfach in einem Skript realisieren. Allerdings wäre es nicht sehr nützlich, ein normales Skript in diesem Beispiel zu verwenden, da das Skript seine Operationen beenden würde, nachdem der Handel abgeschlossen wurde. Die Verwendung eines Skripts wäre sinnvoll, wenn das Programm eine einmalige Ausführung einer Operation, zum Beispiel Öffnen oder Schließen von Aufträgen, realisiert. In diesem Fall wurden jedoch eine Aufgabe gelöst, 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 der Marktrate und dem angeforderten Wert der Stoppreihenfolge liegt Einen vorgegebenen Wert überschreitet (in unserem Fall 10 Punkte). Für eine langfristige Nutzung ist es viel bequemer, eine EA zu schreiben, die für die Ausführung bei jedem Zecken gestartet wird und aufhört, nur nach der direkten Anweisung durch den Benutzer zu arbeiten. Der Algorithmus des obigen EA modifystoploss. mq4 ist sehr einfach. Die Hauptberechnungen werden im Zyklus der Suche in den Aufträgen durchgeführt (Block 2-9). Der Auftrag wird sowohl auf dem Markt als auch in den ausstehenden Aufträgen durchsucht (der Parameterpool im Funktionsaufruf OrderSelect () ist nicht explizit angegeben). Im Block 2-3 werden ausstehende Aufträge und Aufträge für ein anderes Symbol für die ausgewählten Aufträge herausgefiltert, der Wert von StopLoss ermittelt. Block 3-9 stellt einen Zyklus zur Modifikation der ausgewählten Reihenfolge dar. In Block 3-4 wird der neue aktuelle Wert der Grenzstrecke ermittelt (Ihr Makler kann diesen Wert jederzeit ändern). In Block 4-5 wird die Notwendigkeit, die ausgewählte Ordnung (die gegenwärtig im Zyklus für verarbeitet wird) zu modifizieren, sowie ein neuer Wert von StopLoss berechnet. Wenn die aktuelle Bestellung nicht geändert werden muss, beendet das Programm den Zyklus, während er am Ende von Block 4-5 liegt, und diese Reihenfolge wird nicht modifiziert (in Block 5-6). Wenn die Reihenfolge jedoch geändert werden muss, wird die Steuerung an Block 5-6 übergeben, in dem die notwendigen Parameter berechnet und die Funktion OrderModify () aufgerufen wird, die eine Handelsanfrage bildet. Wenn ein Trade erfolgreich abgeschlossen wird, beendet der Operator-Break in Block 6-7 die Ausführung des Zyklus, während das Ende der laufenden Iteration des Auftrags-Suchzyklus endet (die nächste Bestellung beginnt mit der Verarbeitung zu beginnen Nächste Iteration). Wenn der Trade nicht erfolgreich ausgeführt wird, werden die Fehler bearbeitet. Wenn ein Fehler entpuppt sich nicht kritisch, das Programm wiederholen, um einen Handel zu machen. Wenn jedoch der Fehler als kritisch eingeschätzt wird, wird die Steuerung außerhalb des Änderungszyklus für die Verarbeitung der nächsten Reihenfolge (im Zyklus für) übergeben. Sie sollten eine kleine Funktion beachten, die sich auf die Änderung der Marktaufträge bezieht. Function OrderModify () setzt neue Preiswerte für beide Stop-Orders gleichzeitig. Die Notwendigkeit, den Mindestabstand einzuhalten, betrifft jedoch nur die Stoppreihenfolge, deren neuer Wert sich von der aktuellen unterscheidet. Wenn der neue Wert derselbe bleibt wie der aktuelle, kann der Stopauftrag in jedem Abstand vom Marktpreis liegen, während die entsprechende Trade-Anfrage als richtig betrachtet wird. Zum Beispiel haben wir eine Market Order Buy eröffnet zum Preis von 1.295467, mit den folgenden Stop-Aufträgen: StopLoss 1.2958 und TakeProfit 1.2960. Der Mindestabstand des Maklers beträgt 5 Punkte. Für den Marktpreis Bid 1.2959 ergeben sich die Voraussetzungen für eine Änderung der Bestellung, nämlich für die Platzierung von StopLoss 1.2949 (Bid - 10 Punkte). Um die Funktion OrderModify () auszuführen, sollten Sie auch einen neuen Wert von TakeProfit angeben. Unsere EA ändert nicht die Position von TakeProfit, deshalb setzen wir ihren aktuellen Wert in der Funktion: TakeProfit 1.2960. Trotz der Tatsache, dass der neue Sollwert von TakeProfit 1.2960 nahe dem Marktpreisgebot liegt (nur 1 Punkt, dh weniger als der erlaubte Mindestabstand von 5 Punkten), unterscheidet sich dieser Wert nicht vom aktuellen Wert von TakeProfit 1.2960, So dass die Handelsanfrage als richtig betrachtet und auf dem Server ausgeführt wird (im Allgemeinen kann die Anforderung abgelehnt werden, aber aus anderen Gründen). Feige. 102 und 103 repräsentieren die Ergebnisse einer erfolgreichen Modifikation in einer solchen Situation. Feige. 102. Alarmfenster und Symbolfenster, wie sie bei Änderung einer Bestellung von EA modifystoploss. mq4 erscheinen, wenn der Marktzins in der Nähe des angeforderten Wertes von TakeProfit liegt. Wir sehen in Abb. 103, dass die Änderung in den neuen Wert von StopLoss 1.2949 führte und der aktuelle Preis Bid 1.2959 war in einem Abstand von 1 Punkt aus dem Wert von TakeProfit. Es ist gesondert zu beachten, dass weder Markt noch ausstehende Aufträge modifiziert werden sollten), abgesehen von der Marktsituationsanalyse. Eine solche Modifikation kann nur sinnvoll sein, wenn sich der Marktzins schnell und in eine Richtung bewegt, was nach wichtigen Neuigkeiten passieren kann. Jedoch, wenn Sie auf einem quotnormalquot Markt handeln, muss die Entscheidung über die Notwendigkeit, Bestellungen zu ändern, auf der Grundlage der Marktkriterien vorgenommen werden. Im Expertenratgeber modifystoploss. mq4. Wir verwenden auch ein Kriterium (StopLoss ist weiter vom Marktpreis als wir wollen), auf dessen Grundlage das Programm beschließt, Aufträge zu ändern. Dieses Kriterium ist jedoch zu einfach und schwierig, um ein Kriterium zu sein, das die Marktsituation kennzeichnet. Änderung anstehender Aufträge Die Anpassung anstehender Aufträge weicht geringfügig von der der Marktaufträge ab. Der wesentliche Unterschied ist, dass es möglich ist, den angeforderten Preis der Bestellung selbst zu ändern. Sie müssen die Regeln beibehalten, die die Position eines ausstehenden Auftrags in Bezug auf den Marktpreis und die Stopaufträge in Bezug auf den angeforderten Auftragspreis beschränken (siehe Bestellmerkmale und Anforderungen und Einschränkungen beim Making Trades). Gleichzeitig werden alle Charakteristiken des anstehenden Auftrags als neu angefordert betrachtet, unabhängig davon, welche Vorgeschichte der verwandten Ereignisse gespeichert ist. Angenommen, wir haben eine ausstehende Bestellung BuyStop 1.2030 mit StopLoss 1.2025 und TakeProfit 1.2035. Der Makler hat die Mindestentfernung als 5 Punkte festgelegt. Es ist leicht zu sehen, dass die Stopaufträge innerhalb des erlaubten Bandes liegen, so dass jede Änderung des geforderten offenen Preises der Bestellung die notwendige Modifikation mindestens eines der Stopaufträge zur Folge hat. Wenn jedoch eine Handelsanforderung gebildet wird, die den angeforderten Auftragspreis ändern wird, wobei die Werte von Stopaufträgen dieselben bleiben, betrachtet das Client-Endgerät diese Anforderung als eine falsche und sendet sie nicht zur Ausführung an den Server. Wenn die Anforderung beispielsweise die folgenden Werte angibt: BuyStop 1. 2028, StopLoss 1.2025 und TakeProfit 1.2035, ist diese Anforderung falsch, obwohl die Werte ihrer Stop-Aufträge nicht geändert wurden: In diesem Fall brechen die Anforderungen die Regel von Wobei der Mindestabstand zwischen dem geforderten offenen Preis und dem Preis eines der Stopaufträge eingehalten wird (siehe Anforde - rungen und Einschränkungen in Making Trades). Lets sehen, wie ein Skript aussehen kann, das einen ausstehenden Auftrag modifiziert, um seinen angeforderten Preis dem Marktpreis auf eine bestimmte vordefinierte Distanz zu approximieren. Läßt den Abstand als 10 Punkte einstellen. Um den zu ändernden Auftrag anzugeben (es gibt mehrere ausstehende Aufträge im Fenster), verwenden wir den Preis, bei dem das Skript an das Symbolfenster angehängt wurde. Beispiel eines einfachen Skripts, das einen ausstehenden Auftrag modifiziert, dessen angeforderter offener Preis näher am Skript-Anhangspreis liegt als die Preise anderer ausstehender Aufträge (modifyorderprice. mq4). Der Abstand zwischen dem Marktpreis und dem angeforderten Preis des ausstehenden Auftrags wird in der Variablen Tral festgelegt. Die Variable WinPrice enthält den Wert des Preises, bei dem das Skript an das Symbolfenster angehängt wurde. In dem Zyklus der Suche in Ordnungen (Block 2-5) werden die Charakteristika der Reihenfolge, die der Skriptbefestigungsstufe am nächsten liegt, berechnet. Block 6-13 stellt den Zyklus der Schließungsaufträge dar. In Block 8-9 wird entschieden, ob die gewählte Reihenfolge geändert werden muss. Bei Bedarf werden hier die neuen Werte des angeforderten Stoppauftrags berechnet. Die Änderung der Bestellung wird mit der Funktion OrderModify () in Block 10-11 angefordert. Fehler werden in Block 11-13 bearbeitet. Der Block 8-9 besteht aus vier ähnlichen Blöcken, in denen die in der Anfrage verwendeten neuen Werte berechnet werden. Lets betrachten die für die Bestellung SellLimit: Die neuen Parameter der Bestellung werden nur berechnet, wenn der aktuelle Preis Preis ist weiter vom aktuellen Marktpreis Gebot als die gewünschte Entfernung TS. Wenn es so ist, wird die Kontrolle an den Körper des Betreibers weitergegeben, 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 Auftragspreis und jedem Preis des Halteauftrags bleibt gleich. Beispielsweise wird SellLimit bei 1.2050, seinem StopLoss 1.2073 und seinem TakeProfit 1. 2030 platziert. Angenommen, die Berechnungen ergeben den neuen offenen Preis in Höhe von 1.2040. In diesem Fall werden die neuen Werte der Stopp-Aufträge wie folgt lauten: StopLoss 1.2063, TakeProfit 1. 2020. Die Programmoperationen führen also dazu, dass die Reihenfolge Quoten für die Quoten geändert wird - alle drei Basisparameter (Open Price, StopLoss und TakeProfit) ) Gleichzeitig nach unten und halten einen Abstand zwischen ihnen. Am Ende von Block 8-9 werden die neuen Werte von Stop-Aufträgen auf negative Werte überprüft. Diese Überprüfung ist sinnvoll, wenn ein zuvor platzierter (von einem anderen Programm oder manuell) Stopauftrag nahezu Null war, zum Beispiel nur 1 Punkt über Null. Wenn in diesem Fall der Auftrag um mehr als einen Punkt nach unten verschoben wird, wird der neue Preis eines der Stop-Aufträge negativ. Wenn dieser Wert in einer Handelsanforderung angegeben wurde, wird die Anforderung vom Client-Terminal zurückgewiesen. Wir müssen auf einen Nachteil solcher Programme - sowohl Scripts als auch Expert Advisors - hinweisen. Das Programm modifyorderprice. mq4 oben ist in seiner Handlungsentscheidung stark eingeschränkt. Der zu ändernde Auftrag kann nur in eine Richtung bewegt werden - in Richtung des Marktzinses, wobei seine Stop-Aufträge strikt quanorquote zu dem Auftrag erfolgen. Dieses Programm ist nicht auf die Änderung des angefragten Auftragspreises in der Richtung anders als der Marktpreis angepasst. Die Möglichkeit, die Position eines separaten Stopp-Auftrags zu ändern, wird auch nicht im Programm realisiert. Die obige Beschränkung wird zunächst durch die Menge der verwendeten Kontrollen bestimmt. In diesem Programm gibt es nur eine Kontrolle über die Art - die Stelle, an der das Skript an das Symbolfenster angehängt wurde. Mit diesem Parameter kann der Händler bestimmen, welche Reihenfolge geändert werden soll. Allerdings ist dies die gesamte Initiative der Nutzer. Um effizienter arbeiten zu können, benötigt der Benutzer zusätzliche Werkzeuge, die es ihm ermöglichen, andere Parameter von Aufträgen zu beeinflussen. Diese Aufgaben können mit MQL4 sehr effizient gelöst werden. Allerdings müssen Sie einen anderen, mehr quotintellectualquot Algorithmus für diesen Zweck verwenden. Es ist möglich, ein Programm zu erstellen, das Ihren Handel automatisiert und Aufträge entsprechend Ihren Wünschen ändert. Sie können in einem solchen Programm zB grafische Objekte als zusätzliche Controlling-Werkzeuge für den manuellen Handel einsetzen. Die METATRAder4 Server-Seite hat damit nichts zu tun. Überprüfen Sie Ihre localhost Terminal-Einstellungen Es könnte mehrere Gründe, warum die EA funktionierte (DID Arbeit, wie Sie es) und immer noch erhalten Sie einen Fehler. Eine MT4.Terminal. Profile-Änderung kann auch dazu führen, dass dies geschieht. Eine MT4.Terminal. LogAnotherUser-Änderung kann auch dazu führen, dass dies geschieht. Eine MT4.Terminal. Graph Änderung von kann auch dazu führen, dass dies geschieht. Check Tools Options Expert Advisor TAB für aktive Werte in den entsprechenden Kontrollkästchen für alle oben genannten. Überprüfen Sie, ob Sie korrekt an einem richtigen (nicht stornierten) Handelskonto angemeldet sind. Überprüfen Sie, ob Ihre Verbindung grün ist / funktionieren Überprüfen Sie, ob Ihr Trading Symbol aktiven Markt hat (offene Handelszeiten) Wenn Sie noch in Schwierigkeiten sind, senden Sie ein paar OrderSend () - s mit PrintScreen - s und kopieren Sie Antworten vom Log-File amp hier .

No comments:

Post a Comment