Regelmäßige Variablen extern double Mengengröße 0,1 extern double LotIncrement 0.1 extern double TakeProfitPip 10 extern double StopLossPip 21 if (Lots 0), wenn (Multiplier) if (Multiplikator 1) Lots NormalizeDouble (Mengengröße, 2) sonst Lots NormalizeDouble (Mengengröße, 2) Doppel xTp 0 if (TakeProfitPip0) xTp Ask (TakeProfitPipPoint) OrderSend (Symbol (), OPBUY, Grundstück, Ask, Slippage, Gebot (StopLossPipPoint), Ask (TakeProfitPipPoint), TradeComment, Referenz, Grün) Fehler GetLastError (), wenn (Error 0) schreiben ( quotError Öffnung Kauforder: quot Errordescription (Error) quot (Cquot Fehler quot) Frage: quot stellen Sie Slippage quot: quot Slippage) sonst TickPrice Close0 TradeAllowed falsch, wenn (Lose 0), wenn (Multiplier) if (Multiplikator 1) Lots NormalizeDouble (Mengengröße, 2) sonst Lots NormalizeDouble (Mengengröße, 2) Doppel xTp 0 if (TakeProfitPip0) xTp Bid - (TakeProfitPipPoint) OrderSend (Symbol (), OPSELL, Grundstück, Gebot, Slippage, Gebot (StopLossPipPoint), Bid - (TakeProfitPipPoint), TradeComment, Referenz, Rot) resOrderSend (Symbol (), OPSELL, LotsOptimized (), Gebot, 3, Gebot (StopLossPoint), Bid - (TakeProfitPoint), quotSellquot, MAGICMA, 0, Rot) Fehler GetLastError (), wenn (Error 0) schreiben ( quotError Öffnung Verkaufsorder: quot Errordescription (Error) quot (dquot Fehler quot) Gebot: quot Bid quot Slippage: quot Slippage) sonst TickPrice Close0 falsch TradeAllowed ich glaube ich, dass für zB bestätigen können. Alpari Micro-Konto (es hat ein quotlivequot Konto zu sein), haben Sie OrderSend mit Null SL und TP und dann sofort danach, ändern Sie die Reihenfolge mit der erforderlichen SL und TP zu tun, um es an die Arbeit. Ich tue ein OrderSelect gerade, nachdem ich OrderOpenPrice () als den offenen Preis in der OrderModify-Parameterliste verwenden kann. Das ist, was ich in meinem Code geändert und es scheint jetzt zu funktionieren. Ich glaube, ich hatte das gleiche Problem mit Axis Trader so vielleicht Ill versuchen es wieder dort einige Zeit. Das einzige andere, was ich tat, war sicherzustellen, dass, wenn ich die OrderSend gesendet, gab es eine magische Zahl nicht null auf sie. Viel Glück an all. int OrderSend (string Symbol. Symbol int cmd. Betrieb Doppel Volumen. Volumen doppelten Preis. Preis int Schlupf. Schlupf Doppelstoploss. Verlust Doppeltakeprofit zu stoppen. Take-Profit-String commentNULL. Kommentar int magic0. Magische Zahl Datetime expiration0. Ausstehende Farbe pfeilcolorclrNONE Farbe) im Symbol für den Handel. In der Betriebsart. Es kann eine beliebige der Handelsoperationsaufzählung sein. In Anzahl der Lose. In Höchstpreisrückgang für Kauf - oder Verkaufsaufträge. In der Stoppdämpfung Ebene. In Take Gewinn-Ebene. In Bestellung Kommentartext. Der letzte Teil des Kommentars kann vom Server geändert werden. In Auftrag magische Zahl. Kann als benutzerdefinierter Bezeichner verwendet werden. In Auftragslaufzeit (nur für ausstehende Bestellungen). In Farbe des Öffnungspfeils auf der Tabelle. Wenn Parameter fehlt oder CLRNONE-Wert ist, wird der Öffnungspfeil nicht im Diagramm gezeichnet. Gibt die Nummer des Tickets zurück, das dem Auftrag vom Handelsserver zugewiesen wurde, oder -1, falls er fehlschlägt. Um zusätzliche Fehlerinformationen zu erhalten, muss man die GetLastError () - Funktion aufrufen. Bei Eröffnung einer Market Order (OPSELL oder OPBUY) können nur die aktuellen Preise von Bid (für den Verkauf) oder Ask (zum Kauf) als offener Preis verwendet werden. Wenn die Operation mit einer von der aktuellen abweichenden Sicherheit ausgeführt wird, muss die Funktion MarketInfo () mit dem Parameter MODEBID oder MODEASK verwendet werden, damit die letzten Quotes für diese Sicherheit erhalten werden können. Berechneter oder unnormalisierter Preis kann nicht angewendet werden. Wurde im Preisfaden nicht der angeforderte offene Preis angegeben oder nach der Anzahl der Nachkommastellen nicht normiert, so wird der Fehler 129 (ERRINVALIDPRICE) generiert. Wenn der angeforderte offene Preis vollständig veraltet ist, wird der Fehler 138 (ERRREQUOTE) unabhängig vom Schlupfparameter erzeugt. Wenn der angeforderte Preis nicht aktuell ist, aber in dem Thread vorhanden ist, wird die Bestellung zum aktuellen Preis und nur dann geöffnet, wenn der aktuelle Preis innerhalb des Bereichs des Preisrutschens liegt. StopLoss und TakeProfit Ebenen können nicht zu nah an den Markt. Die minimale Distanz der Stopppegel in Punkten kann mit der Funktion MarketInfo () mit dem Parameter MODESTOPLEVEL ermittelt werden. Bei fehlerhaften oder unnormalisierten Stoppniveaus wird der Fehler 130 (ERRINVALIDSTOPS) erzeugt. Ein Nullwert von MODESTOPLEVEL bedeutet entweder Fehlen jeglicher Beschränkungen der Mindestabstand für Stop LossTake Profit oder die Tatsache, dass ein Handels Server einige externe Mechanismen für dynamische Pegelsteuerung verwendet, die in der Client-Terminal übersetzt nicht möglich ist. Im zweiten Fall kann GetLastError () den Fehler 130 zurückgeben, weil hier MODESTOPLEVEL tatsächlich quotfloating ist. Bei der Platzierung einer ausstehenden Bestellung kann der offene Preis nicht zu nahe am Markt sein. Die minimale Entfernung des ausstehenden Marktpreises aus dem aktuellen Markt kann man mit der Funktion MarketInfo () mit dem Parameter MODESTOPLEVEL erreichen. Im Falle eines falschen offenen Preises einer ausstehenden Bestellung wird der Fehler 130 (ERRINVALIDSTOPS) generiert. Die Anwendung der ausstehenden Auftragslaufzeit kann in einigen Handelsservern deaktiviert werden. Wenn in diesem Fall ein Wert ungleich Null im Ablaufparameter angegeben wird, wird der Fehler 147 (ERRTRADEEXPIRATIONDENIED) generiert. Auf einigen Handelsservern kann der Gesamtbetrag offener und ausstehender Aufträge begrenzt werden. Wenn diese Grenze überschritten wurde, wird keine neue Bestellung geöffnet (oder kein ausstehender Auftrag wird platziert) und der Handelsserver gibt den Fehler 148 (ERRTRADETOOMANYORDERS) zurück. -------------------------------------------------- ---------------- Scriptprogramm-Startfunktion --------------------------------- ------------------------------------ void OnStart () --- erhalten minimale Stop-Ebene double minstoplevel MarketInfo (Symbol (), MODESTOPLEVEL) drucken (quotMinimum Stopp Levelquot, minstoplevel, quot pointsquot) double Preis auf Anfrage --- berechnet SL und TP Preise müssen normalisierte Doppelstoploss NormalizeDouble (Bid - minstoplevel Point. Digits) double Takeprofit NormalizeDouble (Bid minstoplevel Punkt sein Digits). --- Ort Markt um 1 Los int Ticket OrderSend zu kaufen (Symbol (), OPBUY, 1, Preis, 3, Stoploss, Takeprofit, quotMy orderquot, 16384,0, clrGreen) if (ticketlt0) drucken (quotOrderSend gescheitert mit Fehler quot. GetLastError ()) sonst Print (quotOrderSend platziert successfullyquot) --- A) vollständig mit dem MQL4 OrderSend () Syntax-Anforderungen Ihr Code fehlschlägt, eine korrekte SHORT-Trade-Entry-Preis bei Einstellung, da es eher Bid gelesen werden. Nicht fragen (dieser Fehler ist verborgen, da er effektiv durch eine ziemlich kosmische Distanz von 100 Punkten in einem zulässigen Rutschabstand von dem genannten Preis ausgeblendet wird). Ihr Code schlägt fehl, wenn int (0) vorhanden ist, wobei string erwartet wird. B) Fehler 130: Ungültige Stopps Du solltest mit deinem Broker ein paar Details verifizieren: Erlaubt es ihre Bedingungen amp Bedingungen OrderSend () One-Stop-Anweisung, einschließlich TP amp SL, zu erlauben, oder muss der Broker TampC zuerst einen Handel eröffnen - Positions-Verstärker nur dann erlaubt, wenn eine OrderModify () Anweisung zum Einrichten der TP amp SL Preisniveaus erlaubt. In jedem Fall überprüfen Sie Ihre Broker TampC Einstellungen für STOPLEVEL amp FREEZELEVEL Entfernungen, innerhalb derer Broker keine TP amp SL setup (s) oder ablehnt Modifikation (en). C) Eine bewährte Methode ist es nicht, in externe Iterator-Variablen zuzuweisen. Dies ist zwar keine Ursache für Ihre Probleme, sollten Sie sich jedoch mit den bewährten Methoden der Branche vertraut machen, von denen es nicht ist, einem deklarierten externen einen Wert zuzuweisen. Vielmehr deklarieren Sie Ihre eigene Variable, dass Sie Bereich Ampere Zuweisungen davon, aber verlassen extern (s) unberührt von Ihrem Code Seite.
No comments:
Post a Comment