Schließung von halben Parzellen. - Seite 14

 
Toller Ratschlag, danke! Ich werde auf jeden Fall versuchen, und gehen Sie diesen Weg - ich habe nicht eine feste Take-Profit-Preis in Bezug auf einen Pip-Wert (d.h. immer 100 Pips) Es ist getan, basierend auf, wo die 60 EMA ist = Stop-Loss und endgültige feste TP ist 1:2 (so könnte es jeder Pip-Wert relativ zu den 2x Pip Abstand der Stop-Loss...) Es ist ein wenig schwieriger für mich, es zu tun, weil von diesem...

Letzte Frage: Ist die Normalisierung der Kursverdopplungen wirklich so wichtig? Ich verstehe nicht, was der Zweck davon ist...?
 

Ja, es kann ein Problem mit Doubles, OrderTakeProfit() OrderStopLoss() OrderLots() sein, vor allem wenn Sie Berechnungen mit ihnen durchführen. Es wirkte sich auf einen meiner EA's aus, als ich etwas Ähnliches wie Ihr Teil Schließen von Aufträgen tat. Werfen Sie einen Blick auf diesen Thread https://www.mql5.com/en/forum/141034

 
Richtig - ich habe es funktioniert perfekt... Das Problem ist, dass ich von If(OrderOpenPrice() > OrderStoploss())" wegkommen möchte, um einen Handel herauszufiltern, der kontinuierlich zum selben Preis geschlossen wird...

Ich habe versucht, mir das Hirn zu zermartern, aber ich bekomme die Logik nicht auf die Reihe, dies über das OrderTicket() für den "OP_BUY" zu tun, sobald er ausgelöst wird, und über die OrderTicket()-Nummer für die verbleibende Position, nachdem die Hälfte geschlossen wurde?

Sobald der OP_BUY bei OrderClose() halbiert wurde, hat die verbleibende Position eine andere Ticketnummer... Kann mich bitte jemand aufklären, wie ich die beiden vergleichen kann, damit ich OrderClose() sagen kann, dass sie aufhören soll, nachdem sie es einmal getan hat?
 
Pleasssssse - Ich weiß, haben diesen Thread erschöpft, aber das ist das letzte Stück :)?

Ich habe es alle mint und gesetzt - nur nicht verstehen, die Logik im Vergleich, was ich oben geschrieben habe.

Ich beabsichtige, einen Thread zu machen, um anderen zu helfen, nachdem ich dies abgeschlossen habe - wäre nur fair!
 
Jeder :(
 

Ich habe Ihnen bereits gesagt, wie Sie das machen können: Ermitteln Sie die OrderOpenTime() des Tickets, das Sie teilweise schließen wollen. Nachdem Sie es teilweise geschlossen haben, wählen Sie OrderSelect() erneut aus, wobei das Ticket mit der gleichen OrderOpenTime() der verbleibende Teil der teilweise geschlossenen Bestellung ist.

 

Ah ja - Entschuldigung, das muss ich beim ersten Mal übersehen haben!

Ich habe mich gerade hingesetzt und darüber nachgedacht, und es fällt mir schwer, die Logik darin zu verstehen? Könnten Sie mir einen Hinweis geben?

Im Moment habe ich das innerhalb des Abschnitts "int Start()":

Offensichtlich muss ich den Teil "OrderOpenPrice() > OrderStopLoss())" entfernen, aber womit ersetze ich ihn, damit "CloseHalfOrder();" NICHT fortlaufend aufgerufen wird? Ich kann nicht bekommen, die Logik nach unten (wenig langsam heute!) Bin ich mit dem Handel geschlossen in Geschichte vergleichen?...

   if(OpenOrdersThisPair(Symbol())>0) //If there is a trade open = do below, which ever is applicable.
      {
      if(OrderType()==OP_BUY && OrderOpenPrice() > OrderStopLoss())
         {
         CloseHalfOrder(); // Closes half at 1:1 - then calls another void to break even on the trade +3.
         }

      if(OrderType()==OP_SELL && OrderStopLoss() > OrderOpenPrice())
         {
         CloseHalfOrder1(); // Closes half at 1:1 - then calls another void to break even on the trade +3.
         }   
      
 
DomGilberto:

Ah ja - Sorry, das muss ich beim ersten Mal übersehen haben!

Ich habe mich gerade hingesetzt und darüber nachgedacht, und ich finde es schwer, die Logik darin zu verstehen? Könnten Sie mir einen Hinweis geben?

Im Moment habe ich das innerhalb des Abschnitts "int Start()":

Offensichtlich muss ich den Teil "OrderOpenPrice() > OrderStopLoss())" entfernen, aber womit ersetze ich ihn, damit "CloseHalfOrder();" NICHT kontinuierlich aufgerufen wird? Ich kann die Logik nicht nachvollziehen (bin heute etwas langsam!) Vergleiche ich mit dem abgeschlossenen Handel in der Historie?...

An dem Punkt, den ich in Ihrem Code markiert habe, welche Order haben Sie ausgewählt?

 if(OpenOrdersThisPair(Symbol())>0) //If there is a trade open = do below, which ever is applicable.
      {

      //  order currently selected is ??
 
      if(OrderType()==OP_BUY && OrderOpenPrice() > OrderStopLoss())
         {
         CloseHalfOrder(); // Closes half at 1:1 - then calls another void to break even on the trade +3.
         }

      if(OrderType()==OP_SELL && OrderStopLoss() > OrderOpenPrice())
         {
         CloseHalfOrder1(); // Closes half at 1:1 - then calls another void to break even on the trade +3.
         }   
      

Ist es die richtige Order? Wenn es die richtige Order ist, ist das Zufall oder Absicht?

 
Ich dachte, dass auch - Es sagt, ich brauche OrderSelect() vor der Verwendung von OrderType, aber es funktioniert? Ich habe immer nur eine Order zu einem bestimmten Zeitpunkt offen...

Ich weiß nicht, wie ich OrderOpenTime() zu meinem Vorteil nutzen und verhindern kann, dass CloseHalfOrder jedes Mal aufgerufen wird...
 
DomGilberto:
Ich dachte, dass auch - Es sagt, ich brauche OrderSelect() vor der Verwendung von OrderType, aber es funktioniert? Ich habe immer nur eine Bestellung zu einem bestimmten Zeitpunkt offen...

Wenn Sie den EA auf zwei Symbolen laufen lassen, haben Sie potenziell zwei Orders gleichzeitig offen... Sie können dies jedoch nicht im Strategy Tester testen, welche Order wird dann ausgewählt? die richtige oder die falsche?