Einzelnen Beitrag anzeigen
  #43 (permalink)  
Alt 24.03.18
next user next user ist offline
Premium Mitglied
 
Registriert seit: May 2015
Beiträge: 367
next user befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von piptrade Beitrag anzeigen
"nötig oder unnötig" zu "ChechTakeProfit()", sollte nicht das Thema sein.
Wollte ich auch nicht zu einem Thema machen. In deinem (neuesten) Code hast du aber neben "CheckTakeProfit()" als
Kommentar "// nicht notwendig (next_user) !!!" stehen, was ich lediglich richtig stellen wollte...

=== === === === === === === === === === === ===

Zitat:
Zitat von piptrade Beitrag anzeigen
Bei "openOrders == 1" bzw. "openOrders == 2" wird es schon interessanter:
Nur so nebenbei gefragt, wenn "openOrders" nur zwischen 1 & 2 trennt, könntest du dort doch einfach auch die
beiden Variablen "orderTicket1 / 2" nutzen.

=== === === === === === === === === === === ===

Zitat:
Zitat von piptrade Beitrag anzeigen
"Trail_Target_2 + SMA7_ATR5_1" bzw. " *100 * Point", können wir uns wahrscheinlich "schenken". Nunmehr wissen wir beide, was gemeint war.
(Unabhängig davon weiß ich nicht, wie ich "SMA7_ATR5_1" besser erklären soll. Zudem hat diese variierende Größe wenig Code-Relevanz.)
Zum ersten Teil, jap.
Zum zweiten Teil, du hast es ja ausreichend gut erklärt, das war ja nicht das Problem. Ich habe ja im vorherigen Post erklärt,
warum ich es TROZDEM als mögliche Fehlerquelle angesprochen hatte, eben weil ich schon viele "gut benannte" Variablen anderer
gesehen habe, die sich dann komplett anders herausstellten.

=== === === === === === === === === === === ===

Zitat:
Zitat von piptrade Beitrag anzeigen
Hier wurde der Begriff "updateSL" verwendet und der diesbezügliche Code als "Block 1" bezeichnet:
...
...
Ist das richtig ? Haben wir jetzt wieder die notwendige Übereinstimmung ?
Hatten wir sie denn nicht? So stand es doch bisher immer in deinem Code.

=== === === === === === === === === === === ===

Zitat:
Zitat von piptrade Beitrag anzeigen
Separat bzw. parallel dazu müssen natürlich erst einmal die Positionen 1 + 2 eröffnet werden. Dies sollte dann außerhalb der "void OnTick()" erfolgen ("Block 2") und "SO" aussehen:

Code:
void TrailStopLoss(int ticket)  
{
   ResetLastError();  //  könnte ggf. entfallen

   if(OrderSelect(ticket,SELECT_BY_TICKET))    {  
      if(OrderType() == OP_BUY  &&  (openOrders == 1  ||  openOrders == 2))    {
         if(Bid - OrderOpenPrice() > Trail_Target_1 *100 * Point)
         {
            if(OrderStopLoss() < Bid - TSL || OrderStopLoss() == 0)
            {
               if(!OrderModify(OrderTicket(), OrderOpenPrice(), Bid - TSL, OrderTakeProfit(), Blue))
               return;    Print("Error setting Buy trailing stop: ", GetLastError());
            }
         }
      }
      else if(OrderType() == OP_SELL  &&  (openOrders == 1  ||  openOrders == 2))    {
         if(OrderOpenPrice() - Ask > Trail_Target_1 *100 * Point)
         {
            if(OrderStopLoss() > Ask + TSL || OrderStopLoss() == 0)
            {
               if(!OrderModify(OrderTicket(), OrderOpenPrice(), Ask + TSL, OrderTakeProfit(), Blue))
               return;    Print("Error setting Sell trailing stop: ", GetLastError());
            }
         }
      }
   }
}
Ist auch das richtig ? Haben wir auch an dieser Stelle wieder die notwendige Übereinstimmung ?
Zum ersten Satzt ("(Block2) und "SO" aussehen"). Ja, nur das der Code nicht für die Ordereröffnung, sonder den SL dient.
Zum zweiten Satz, auch hier war eine Übereinstimmung ja gegeben. Lediglich deine beiden Codeblöcke müsstest du
"kommunizieren" lassen. In Block 1 nutzt du "updateSL()" in diesem, zweiten Block nennst du die Funktion "TrailStopLoss()"

=== === === === === === === === === === === ===

Zitat:
Zitat von piptrade Beitrag anzeigen
Ansonsten hoffe ich, dass Du Dich ein wenig erholt hast und warte `mal wieder voller Spannung auf Dein nächstes
Statement.
Hab gut geschlafen...
Schauen wir mal, wenn das nächste mal der Fehler auftaucht, welche deiner Print-Ausgaben dabei aktiv werden.
So sollten wir dann schnell zur Ursache kommen...