Trades not opening in profit

 
Hi all, I would like the code below to open (10) trades when in profit. Unfortunately it opens 20 trades at once. I would like the code to open 10 trades & then 10 more in profit (50 pips). If you know a way to do so please assist.
#property copyright "Copyright 2021, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

extern int MagicNumber=777;
int MaxOrder=0;
int MaxOrder2=0;
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
int CountTrades()
 {
  int Count=0;
  for(int Loop=OrdersTotal()-1;Loop>=0;Loop--)
  {
   if(OrderSelect(Loop,SELECT_BY_POS))
   if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
   if(OrderType()==OP_BUY||OrderType()==OP_SELL)
   Count++;
  }
  return(Count);
 }
 
void Buy()
 {
  double PSAR=iSAR(Symbol(),NULL,0.02,0.2,0);
  if(PSAR<Bid)
   {
    if(MaxOrder!=1)
     {
      MaxOrder=1;
      for(int a=0;a<10;a++)
       {
        int BuyTrade=OrderSend(Symbol(),OP_BUY,0.01,Ask,0,0,0,"JackBuda",MagicNumber,0,clrBlue);
       } 
     }
     double CloseBar=iClose(NULL,0,1);
     double InProfit=OrderLots()*50;
     
    if(PSAR<Bid&&OrderProfit()>InProfit&&CloseBar>0)
    {
     if(MaxOrder2!=1)
     {
      MaxOrder2=1;
      for(int b=0;b<10;b++)
      {
       int BuyTrade=OrderSend(Symbol(),OP_BUY,0.01,Ask,0,0,0,"JackBuda",MagicNumber,0,clrBlue);
      } 
     }
    }
   } 
 }
 
void Sell()
 {
  double PSAR=iSAR(Symbol(),NULL,0.02,0.2,0);
  if(PSAR>Ask)
   {
    if(MaxOrder!=-1)
    {
     MaxOrder=-1;
     for(int c=0;c<10;c++)
      {
       int SellTrade=OrderSend(Symbol(),OP_SELL,0.01,Bid,0,0,0,"JackBuda",MagicNumber,0,clrRed);
      }
    }
    double CloseBar=iClose(NULL,0,1);
    double InProfit=OrderLots()*50;
    
    if(PSAR>Ask&&OrderProfit()>InProfit&&0<CloseBar)
    {
     for(int d=0;d<10;d++)
      {
       int SellTrade=OrderSend(Symbol(),OP_SELL,0.01,Bid,0,0,0,"JackBuda",MagicNumber,0,clrRed);
      } 
    }
   } 
 }     

void OnTick()
 {
  if(AccountBalance()>10&&CountTrades()<1){Buy();}
  
  if(AccountBalance()>10&&CountTrades()<1){Sell();}
  
 for(int Loop2=OrdersTotal()-1;Loop2>=0;Loop2--)
 {
  if(OrderSelect(Loop2,SELECT_BY_POS,MODE_TRADES))
  if(OrderSymbol()==Symbol()&&OrderMagicNumber()==MagicNumber)
  { 
   bool CloseTrade=false;
   int Type=OrderType(); 
   double Profit=OrderLots()*300;
   switch(Type)
   {
    case OP_BUY:if(OrderProfit()>=Profit)CloseTrade=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,clrGreen);break;
    case OP_SELL:if(OrderProfit()>=Profit)CloseTrade=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0,clrGreen);break;                       
   }
  }
 } 
 }
Reason: