No Body can HELP MEEEEEE !!!!!!

 

Dear's,

Kindly i need your help me on the below as it's open oppsite trade for one trade exsit,but while i test it it some time calculate take profie (Open Order Price-20 point) and this right and sometimes (Open Order Price-2000 point) calculate and this wrong


Please Heeeeelp


extern int MAGICMA = 222222222222;
extern int Opp = 0;
extern double TakeProfit = 20;
extern double StopLoss = 0;

void start()
  {
int Ticket03;
int TradeMin = 1;

if(Digits==3 || Digits==5) Dig=10;
if(Digits==2 || Digits==4) Dig=1;

if(OrderSelect(SELECT_BY_POS,MODE_TRADES)==true)
   {
    if(
       MathFloor(OrderProfit()/OrderLots()/MarketInfo(OrderSymbol(),MODE_TICKVALUE)) <= -20)
    {
     int Trade = MathFloor( OrderProfit()/ (OrderLots()*MarketInfo(OrderSymbol(),MODE_TICKVALUE)));
     
     if(TradeMin > Trade)
     { 
      TradeMin = Trade;
      
      if(Opp-2 >= TradeMin && OrdersTotal()== 1)
      {
       Opp = TradeMin;
       
       if(OrderType() == OP_BUY && IsTradeAllowed() == true)
       {
        Ticket03 = OrderSend(OrderSymbol(),OP_SELL,OrderLots(),Bid,0,0.0,0.0,"EA",481162,0,Red);
        
        if(Ticket03 > 0)
        {
         if(OrderSelect(Ticket03,SELECT_BY_TICKET)==true)
         {
          TP = OrderOpenPrice()-(TakeProfit*Dig)*Point;
          SL = OrderOpenPrice()+(StopLoss*Dig)*Point;
        
          OrderModify(OrderTicket(),OrderOpenPrice(),0,TP,0,Red);
          Print("OrderSend Success for Symbol : ",OrderSymbol()," Opposite");
          Print("Loss Points : ",Opp);
          return(0);
         }
        }
        else
        {
         Print("OrderSend failed with error : #",GetLastError());
         return(0);
        }
       }
       if(OrderType() == OP_SELL && IsTradeAllowed() == true)
       {
        Ticket03 = OrderSend(OrderSymbol(),OP_BUY,OrderLots(),Ask,0,0.0,0.0,"EA",481162,0,Green);
        
        if(Ticket03 > 0)
        {
         if(OrderSelect(Ticket03,SELECT_BY_TICKET)==true)
         {
          TP = OrderOpenPrice()+(TakeProfit*Dig)*Point;
          SL = OrderOpenPrice()-(StopLoss*Dig)*Point;
        
          OrderModify(OrderTicket(),OrderOpenPrice(),0,TP,0,Green);
          Print("OrderSend Success for Symbol : ",OrderSymbol()," Opposite");
          Print("Loss Points : ",Opp);
          return(0);
         }
        }
        else
        {
         Print("OrderSend failed with error : #",GetLastError());
         return(0);
        }
       }
      }
      return(0);
     }
     return(0);
    }
    else
    {
     Opp = 0;
     //Print("Loss : ",Opp);
     return(0);
    }
   }
 
you must look here
      if(Ticket03 > 0)
        {
         if(OrderSelect(Ticket03,SELECT_BY_TICKET)==true)
         {
          TP = OrderOpenPrice()+(TakeProfit*Dig)*Point;
          SL = OrderOpenPrice()-(StopLoss*Dig)*Point;
        
          OrderModify(OrderTicket(),OrderOpenPrice(),0,TP,0,Green);
          Print("OrderSend Success for Symbol : ",OrderSymbol()," Opposite");
          Print("Loss Points : ",Opp);
          return(0);
         }
        }

if the Order is Buy or Sellorder

       if(Ticket03 > 0)
        {
         if(OrderSelect(Ticket03,SELECT_BY_TICKET)==true)
         {
          if(OrderType()==OP_BUY)
          {
          TP = OrderOpenPrice()+(TakeProfit*Dig)*Point;
          SL = OrderOpenPrice()-(StopLoss*Dig)*Point;
          }
          if(OrderType()==OP_SELL)
          {
          TP = OrderOpenPrice()-(TakeProfit*Dig)*Point;
          SL = OrderOpenPrice()+(StopLoss*Dig)*Point;
          }
          OrderModify(OrderTicket(),OrderOpenPrice(),0,TP,0,Green);
          Print("OrderSend Success for Symbol : ",OrderSymbol()," Opposite");
          Print("Loss Points : ",Opp);
          return(0);
         }
        }
 
PipTraderTim:
you must look here

if the Order is Buy or Sellorder


Thnaks Pip for your help will check and feed you back
Reason: