Forex Fehler 130
Ich habe eine EA, die funktioniert gut für mich erstellt, aber ich versuchte, es ein wenig zu ändern, aber nicht schaffen, um es zu funktionieren. Alles, was ich tun möchte, ist, eine Bestellung mit einem schleppenden Stop zu öffnen. Das Problem ist, dass die schleppende Haltestelle für jeden Handel unterschiedlich ist (abhängig von der Höhe der aktuellen Kerze). Es gibt immer einen Ordnungsfehler 130, was bedeutet, daß der Stopverlust zu nahe ist. Das ist nicht möglich, weil ich täglich tausche und der Stopverlust immer mindestens 100 Pips beträgt. Ich vermute, das Problem könnte sein, dass es irgendwie immer den nachlaufenden Stopp 0 berechnet, denn der nachlaufende Stopp wird immer direkt nach dem Handel errechnet und danach die Ordermodify-Funktion gestartet. Aber ich habe versucht, die nachlaufende Stop 150 zum Beispiel und es gibt mir immer noch, dass Fehler (aber dieses Mal nur manchmal). Wenn jemand helfen könnte, würde ich mich wirklich freuen. Thx hier ist der Code (es ist nicht ganz, es würde nicht hier passen) Ich denke, Sie haben zu normalisieren Ausdrücke "Bid - Trailingstop Pointquot und quot fragen Trailingstop Pointquot, weil Trailingstop doppelt ist. Roger: Ich denke, Sie haben zu normalisieren Ausdrücke "Bid - Trailingstop Pointquot und quot fragen Trailingstop Pointquot, weil Trailingstop doppelt ist. Das Problem muss woanders sein. Aber danke trotzdem -) das Problem muss woanders sein. Aber danke trotzdem -) Schwer zu sicher sein, weil Sie sagen, Sie havent gepostet den ganzen Code. Jedoch, durch das Aussehen von ihm, ist Trailingstop nicht eine statische oder globale Variable. Sein erklärt im quotbullishquot Abschnitt. Daher wird sein Wert zum Zeitpunkt der Bestellung gesetzt werden, aber nicht danach bestehen bleiben. Bei nachfolgenden Aufrufen von start (), wenn ein Auftrag geändert wird, sollte die Variable "Trailingstop" Null enthalten. Daher wird der Aufruf von OrderModify () versuchen, den Stopp auf Ask 0 Point oder Bid 0 Point zu setzen. Versuchen Sie, ein Slippage anders als Null und überprüfen Sie, dass 100 Punkte ist, was Sie denken und nicht 10 Punkte auf einer 5 Dezimalstelle Plattform. Drucken Sie die Werte kurz nach dem Handel zu sehen, sie sind korrekt vielleicht Indikator ist dodgy Werte zurückkehren manchmal. hello. Ich habe gerade ein Upgrade von MT4 build201 auf MT4 build207. Ein EA von mir, die verwendet, um just fine mit build201 hat begonnen, mir wiederholt Fehlermeldungen: ordermodify Fehler 130. Ich didnt keine Änderungen an der EA, und die gleiche EA, wenn zurück zu build201 ohne Fehlermeldung gearbeitet. Unten ist die zugehörige Funktion, die die Fehlermeldung verursacht hat. (Die newSL-Variable ist normalisiert). Dieser Code ist sehr einfach und unkompliziert. Ich überprüfte wieder und wieder, aber gerade konnte nicht herausfinden, was die Fehlermeldungen verursacht. Könnte jemand bitte etwas Licht in diese int ModifySL (Doppel Newsl) ---- int i, total, versucht ---- insgesamt OrdersTotal () ---- für (itotaligt0i--) if (OrderSelect (i, SELECTBYPOS, Schuppen MODETRADES)) if (Ordertype () OPBUY ampamp OrderSymbol () Symbol () ampamp OrderMagicNumber () magicbase) if (newSLgt0.0 ampamp (OrderStopLoss () LT0. 0 OrderStopLoss () ltnewSL)) OrderModify (OrderTicket (), OrderOpenPrice () , Newsl, OrderTakeProfit (), 0, clrmodify) if (Ordertype () OPSELL ampamp OrderSymbol () Symbol () ampamp OrderMagicNumber () magicbase) if (newSLgt0.0 ampamp (OrderStopLoss () LT0. 0 OrderStopLoss () gtnewSL)) OrderModify (OrderTicket (), OrderOpenPrice (), newSL, OrderTakeProfit (), 0, clrmodify) ---- return (0) Zeigen Sie mir einen vollständigen Code. Die variablen newSL-Interessen. Ok, hier ist die Funktion in meiner EA, die die oben genannten ModifySL () - Funktion aufruft und übergibt die Variable newSL an sie. int GetOpenSignal () int Genauigkeit Börsen & Märkte (Symbol (), MODEDIGITS) ---- für lange Signal prüfen, ob (newLowgtpastLowdiffPoint) GoLongNow Wahr GoShortNow Falsch longEntry NormalizeDouble (High1 (FilterSpread) Point, Präzision) diese Codezeile Einfuhrpreis für ein berechnet Lange Signal. Wenn gleichzeitig eine Short-Position vorhanden ist, wird der lange Eintrittspreis auch zum neuen Stop-Over für den Short-Eintrag. ---- Prüfen für kurze Signal if (newHighltpastHigh-diffPoint) GoLongNow Falsch GoShortNow Wahre shortEntry NormalizeDouble (Low1-FilterPoint, Präzision) ---- lange Signal if (GoLongNowTrue ampamp ForbidLongFalse) ---- DeletePending () ---- If (ExitNowTrue) ClosePositions () else ModifySL (longEntry) fordert die oben genannte ModifySL () - Funktion auf und übergibt die longEntry-Variable als neuen Stoploss für vorhandene Short-Positionen. ---- Signal senden lange return (OPBUYSTOP) ---- kurzes Signal if (GoShortNowTrue ampamp ForbidShortFalse) ---- DeletePending () ---- if (ExitNowTrue) ClosePositions () sonst ModifySL (shortEntry) zu gehen - - senden Sie ein Signal zu gehen kurze Rückkehr (OPSELLSTOP) ---- Signal senden, um nichts zurück (-1) nach meinem besten Wissen zu tun, konnte ich nichts falsch mit dieser Funktion sehen. Nicht zu erwähnen, dass es funktioniert gut mit MT4 build201. Bedeutet dies, dass es möglicherweise einen Fehler mit dem neuesten Build von MT4 oh, btw, die Variablen in der GetOpenSignal () - Funktion, die nicht lokal deklariert sind, sind alle globalen Variablen. Und auch wenn ich Backtesting mache, verwende ich immer die Open Prices Only Methode. Könnte jemand bitte helfen mit diesem Problem Stellen Sie sicher, dass NewSL sowie aktuelle Takeprofit ist nicht näher als MarketInfo (Symbol (), MODESTOPLEVEL) zum aktuellen Ausstieg Preis. Beispiel: OrderModify gibt ERRINVALIDSTOPS zurück, wenn stoplevel 5 Punkte und newSL für long-Position 1.3683 und Bid 1.3686 ist. 1.3686 - 1.3683 lt 5 Punkt.
Comments
Post a Comment