Einzelnen Beitrag anzeigen
  #5 (permalink)  
Alt 09.08.21
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Sollte reichen, wenn man die Richtung festhält, fällt mir grade so ein, also so:
Code:
   int      LastTradeDir  =-1;   //0=BUY 1=SELL -1=Error
   for(int i=OrdersTotal()-1; i>=0; i--)       
   {  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {  if(   OrderSymbol()==_Symbol  
            && OrderMagicNumber()==MagicNumber 
            && OrderType()<=OP_SELL             )
         {
            if(OrderOpenTime()<NewestTime) NewestTP=OrderTakeProfit();
            if(NewestTP>0.0)
            { 
               if(OrderType()==OP_BUY)  LastTradeDir=0;  //FixDirection
               if(OrderType()==OP_SELL) LastTradeDir=1;
               break;
            }
         }
      }
   }
   // === set Newest TP to all of same kind as last order
   for(int i=OrdersTotal()-1; i>=0; i--)
   {  if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {  if(   OrderSymbol()==_Symbol
            && OrderMagicNumber()==MagicNumber )
         {
            // === selected order must be same as Last order
            bool CondLong=(OrderType()==OP_BUY && LastTradeDir==0);
            bool CondShort=(OrderType()==OP_SELL && LastTradeDir==1);
            
            if(CondLong || CondShort)
               if( !OrderModify(OrderTicket(),
                                OrderOpenPrice(),
                                OrderStopLoss(),
                                NormalizeDouble(NewestTP,_Digits),
                                0,clrNONE                           ) )
                  Print(__FUNCTION__," newTP failed" );
         }
      }
   }