Einzelnen Beitrag anzeigen
  #36 (permalink)  
Alt 22.03.18
piptrade piptrade ist offline
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 157
piptrade befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Schau mal bitte in deinem Code und ermittle, WO genau die Order 2 (durch welchen Codeteil) geschlossen wird.
Ich sehe nähmlich bei dem kleinen Ausschnitt keine Möglichkeit, sofern du es auch richtig implementiert hast!
Auch kenne ich deine anderen Funktionen nicht. Sofern du auch in denen etwas mit den Orders machst, kann ich ja
schlecht herausfinden, wo der Fehler ist.
Ohhh - , - diesen Teil hatte ich noch vergessen.
Also der Nachtrag: Für die Pos. 2 wird die "CloseAllOrders()" nur noch in "void CheckTakeProft()" verwendet:

Code:
void CheckTakeProfit() {

   for (int i = OrdersTotal() - 1; i >= 0; i--) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == false) continue;
      if (OrderMagicNumber() != MagicNumber || OrderSymbol() != Symbol()) continue;

//--- TakeProfit for order type BUY ---------------------------------+       
//=================================
//--- Pos. 1 (FixLevel + ATR 1) ---
   if (OrderType() == OP_BUY  &&  openOrders == 1  &&  OrderTakeProfit()==0) {
      if (Bid >= OrderOpenPrice() + Trail_Target_1 * 100 * Point) 
         {
         double TakeProfit_1  =  OrderOpenPrice() + Trail_Target_1 + (1.2 *SMA7_ATR5_1);
         bool OrderAngepasst  =  OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),TakeProfit_1,0,Lime); 
         }                                                                      
      return;
      } 
//--- Pos. 2 (FixLevel + ATR 2) ---
   if (OrderType() == OP_BUY  &&  openOrders == 2  &&  OrderTakeProfit()==0) {
      if (Bid >= OrderOpenPrice() + Trail_Target_2 * 100 * Point) 
         {
         double TakeProfit_2  =  OrderOpenPrice() + Trail_Target_2 + SMA7_ATR5_1;
         OrderAngepasst       =  OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),TakeProfit_2,0,Lime); 
      if (Bid >= TakeProfit_2) 
         CloseAllOrders();
         } 
      }  
//--- analog for SELL
   }
Ich hoffe, dass hilft ein wenig weiter ! ?

Kleiner Hinweis am Rande: dieses "CloseAllOrders()" unter"void CheckTakeProft()" könnte ggf. auch einen Mangel aufweisen, da in manchen GesamtCodeVarianten die Pos. 2 zwar eröffnet, dann aber sehr schnell am Trail_Target wieder geschlossen wurde. Man kann dann im Chart gerade noch sehen, dass TP und Trail_SL gesetzt werden und schon ist die Position einfach zu. (Auch in der History wurden dann weder TP noch SL eingetragen !) Vielleicht hilft auch das.

LG. pt.