PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Stealth StopLosses?



CarlttGC512
05:53,
Ich weiß, wie man einen Standard-Plain-Vanilla-Stealth-Stoploss programmiert. Das ist überhaupt nicht schwierig.

Was, wenn ich einen Trailing Stop machen wollte? Wie kann ich diese Stealth-Technik machen und trotzdem die Wiederherstellbarkeit beibehalten, wenn der EA heruntergefahren wird, Stromausfall, System-Reset usw. Wie kann ich das einstellen, so dass es für mehrere Aufträge funktioniert?

dansoti
22:56,
Du kannst nicht. Wenn Sie keine Verbindung zu Ihrem Broker haben (und sie nicht wissen, wo Sie Ihr SL - Trailing oder anders) wollen, dann wird kein SL existieren. Am besten passen Sie Ihre eigene SL-Logik in Ihren ”EA” auf eine wiederherstellbare Weise an und überwachen Sie, ob Ihr EA noch verbunden ist. Wenn nicht, sollte es Sie warnen (per SMSE-Mail usw.) Eine wiederherstellbare Art und Weise .... Speichern Sie alle Handelsinformationen in Arrays (oder Strukturen, wenn eine andere Sprache als MQL ist) E.G. einzigartige Magic, offener Preis, Typ (KaufVerkauf), HL Preis, Pip Anzahl, SL Größe, SL Preis usw. und speichern Sie diese Arrays in regelmäßigen Abständen in eine Datei. Sie müssen auch Routinen programmieren, um diese Werte bei der EA-Initialisierung zu laden - in Fällen, in denen Ihr EAPC abstürzt. Und Routinen zum ”Kennenlernen”, wenn Sie entweder von einem vorübergehenden Verbindungsausfall oder einem Absturz zurückgekehrt sind, damit Sie den aktuellen Stand des Spiels in der letzten Zeit vor dem Ausfall überprüfen können. Ich rate Ihnen, einen festen SL mit dem Broker festzulegen, der weiter vom Preis entfernt ist als Ihr echter Stealth-Stop, aber nicht so weit wie ein nicht existierender IE, wenn Ihr Stealth-Stop derzeit 30 Pips vom Preis entfernt ist und ein Broker 100 Pips entfernt hält Sie haben also eine Katastrophenvorsorge

PkniGF
00:17,
Verwenden Sie GlobalVariables für den StopLoss, den aktuellen Trailing Stop usw. - Sie laufen nach der letzten Verwendung 4 Wochen lang nicht ab.
http://book.mql4.com/variables/globals- Natürlich muss Ihr PC eingeschaltet sein und laufen, aber der PC kann neu gestartet werden und Sie gehen dort hin, wo Sie aufgehört haben.

CarlttGC512
01:38,
Globale Variablen funktionieren für einen Handel, schwer für mehrere. Es sieht so aus, als müsste ich in eine Datei ein Protokoll von Ticks schreiben. (um die Richtung von SL zu handeln)

PkniGF
02:59,
Die beste Methode, um Globals für Multi einzurichten, ist die Verwendung eindeutiger Identifikatoren: AccountNumber_TradeTicket_ [StopLoss] 23875443_19283_ [60] Dann ist es einfach, es mit den Funktionen String Search und Conversion zu parsen. Danach ist es einfach, Funktionen CreateGlobalStop () und GetGlobalStop () zu erstellen

Oxahguita85
04:19,
Einfach, nicht anders als eine echte Spur verwenden Sie einfach Regeln, um einen Trade zu schließen, anstatt eine Slere ein paar Zeilen Code nur für Sie zu bewegen, müssen Sie Befehle ausgewählt haben Code eingefügt if (! HideTakeProfitOrderType () == OP_SELLOrderTakeProfit () ! = OrderOpenPrice () - TakeProfit * my_point) {OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice () - TakeProfit * my_point, OrderTakeProfit (), 0, CLR_NONE); } if (! HideTakeProfitOrderType () == OP_BUYOrderTakeProfit ()! = OrderOpenPrice () TakeProfit * my_point) {OrderModify (OrderTicket (), OrderOpenPrice (), OrderOpenPrice () TakeProfit * my_point, OrderTakeProfit (), 0, CLR_NONE); } if (HideTakeProfitOrderType () == OP_SELLMarketInfo (OrderSymbol (), MODE_BID) lt; = OrderOpenPrice () - TakeProfit * my_point) {OrderClose (OrderTicket (), OrderLots (), MarketInfo (OrderSymbol (), MODE_BID), Slippage, CLR_NONE ); } if (HideTakeProfitOrderType () == OP_BUYMarketInfo (OrderSymbol (), MODE_ASK) gt; = OrderOpenPrice () TakeProfit * my_point) {OrderClose (OrderTicket (), OrderLots (), MarketInfo (OrderSymbol (), MODE_ASK), Slippage, CLR_NONE ); }

Oxahguita85
05:40,
Ich habe gerade gemerkt, dass dies dein Thread Ronald ist, nach all dem iv-Code, den du gesehen hast, wie kannst du das nicht wissen

Oxahguita85
07:01,
Ich habe gerade bemerkt, dass ich den falschen Code gepostet habe, hier ist Stealth Trail eingefügt Code void trail () {int totalorders = OrdersTotal (); für (int i = Gesamtreihen-1; igt; = 0; i--) {OrderSelect (i, SELECT_BY_POS); if (OrderTicket () == ticket || OrderTicket () == ticket2 || OrderTicket () == ticket3 || OrderTicket () == ticket4 || OrderTicket () == ticket5 || OrderTicket () == ticket6) { if (MarketInfo (OrderSymbol (), MODE_LOTSTEP) == 0.001) Ziffern = 3; if (MarketInfo (OrderSymbol (), MODE_LOTSTEP) == 0.01) Ziffern = 2; if (MarketInfo (OrderSymbol (), MODE_LOTSTEP) == 0,1) Ziffern = 1; if (MarketInfo (OrderSymbol (), MODE_LOTSTEP) == 1) Ziffern = 0; if (MarketInfo (OrderSymbol (), MODE_POINT) == 0,0001) my_point = 0,0001; if (MarketInfo (OrderSymbol (), MODE_POINT) == 0,00001) my_point = 0,0001; if (MarketInfo (OrderSymbol (), MODE_POINT) == 0.01) my_point = 0.01; if (MarketInfo (OrderSymbol (), MODE_POINT) == 0.001) my_point = 0.01; if (! OrderSymbol () == OrderSymbol () HideTrailingStop) {if (OrderStopLoss () lt; OrderOpenPrice () Ordertype () == OP_BUY Börsen

Oxahguita85
08:22,
es ist nicht nur Stealth, es zeichnen Linien auf dem Diagramm, damit Sie die sl sehen können, ich habe nur auf ibfx getestet, während online, wenn offline, die marktinfo nicht funktionieren

PkniGF
09:42,
RR eine bessere Idee, schlag mich einfach. Füge einfach 1000 Pips zu deinem SLTP hinzu und speichere es wie gewohnt in der Reihenfolge. Simpy: Ziehe deine Stealth-Exit-Routine um 1000 Pips vom SL oder TP ab. Macht es einfach zu speichern und einfach zu lesen.

Egoitzcor95
11:03,
RR eine bessere Idee, schlag mich einfach. Füge einfach 1000 Pips zu deinem SLTP hinzu und speichere es wie gewohnt in der Reihenfolge. Simpy: Ziehe deine Stealth-Exit-Routine um 1000 Pips vom SL oder TP ab. Macht es einfach zu speichern und einfach zu lesen.
Klingt nach einer guten Idee und speichert das echte TPSL in einem großen TPSL.

CarlttGC512
12:24,
Hallo allerseits. Zunächst einmal, das sind sehr brillante Lösungen, die ich hier sehe. Das Hauptproblem, das ich mit meinen Versionen dieser Codes habe, ist die Wiederherstellbarkeit. Nehmen wir an, der Trailing Stop ist 40 Pips. Die aktuelle Stoploss-Distanz beträgt 30 Pips. Plötzlich wird das Terminal geschlossen. Während dieser Zeit: Preis steigt um 70 Pips Retraces 30 Pips. Wenn das Terminal wieder online ist, sollte der Stoploss - entsprechend dem Trailing Stop - der aktuelle Preis sein - 10 Pips. Aber zum EA bewegte sich der Preis um 40 Pips nach oben, was den Stoploss auf 40 Pips unter den aktuellen Preis statt auf 10 bringt. Irgendeine Lösung dafür? Ich dachte daran, das HochTief eines Balkens zu verwenden. Das Problem ist, ich kann nicht immer sagen, ob das HochTief nach dem Handel passiert ist.

PkniGF
13:45,
Beginnen Sie mit der OrderOpenTime () und iBarshift auf M1 bis zur aktuellen Zeit. extrahiere den hohen M1-Wert von jedem Balken und speichere den höchsten, um den höchsten Gewinn zu berechnen. Es ist ein wenig unordentlich, aber es funktioniert, aber es ist irgendwie egal für Ihr Beispiel, weil Sie das Hoch verpasst haben und wenn Sie 30 Pips unter Wasser sind, hätte der Trailer aktiviert. Sie müssen es nur von Ihrem Wiederherstellungspunkt aus spielen.

siculitza
15:05,
Irgendeine Lösung dafür? Ich dachte daran, das HochTief eines Balkens zu verwenden. Das Problem ist, ich kann nicht immer sagen, ob das HochTief nach dem Handel passiert ist.
Verfolgen Sie einfach die HochTief von 1 min Kerzen zwischen der offenen und der aktuellen Uhrzeit. Wenn 1 Minute Kerzen nicht genug sind, dann gibt es wirklich keine gute Lösung, und Sie werden wahrscheinlich einen anderen Makler (wahrscheinlich eine andere Plattform) finden müssen, der Server Seite stoppt.

Egoitzcor95
16:26,
Mit Hilfe von iHighest () iLowest () können wir den höchstenniedrigsten Preis innerhalb einer Reihe von Balken einfach verfolgen.

CarlttGC512
17:47,
Mit Hilfe von iHighest () iLowest () können wir den höchstenniedrigsten Preis innerhalb einer Reihe von Balken einfach verfolgen.
Das Problem tritt auf, wenn der Trade in derselben Leiste platziert wird. (vermutlich nach dem Hoch). Mir ist klar, dass das nicht perfekt ist, aber ich versuche zumindest meine Basen zu decken.