how to close just a part of lot (code mql4)

 

example

open buy 0.10 lots

and i want to close just 0.05lots

 
Please use this script
Files:
 
you can change it in "volume" section..
 
int   TriesCount  = 5; 
int   _Pause      = 500;

bool CloseOrder(int TradeTicket, double lot=0, int slippage=5)
{   
   if(!OrderSelect(TradeTicket,SELECT_BY_TICKET,MODE_TRADES)) return(false);
   
   bool result=false;
   int cnt;
  
   if(OrderType()==OP_BUY)
   {
      for(cnt=0; cnt<TriesCount; cnt++)
      {
         RefreshRates();
         if(lot==0) result = OrderClose(OrderTicket(),OrderLots(),nd(MarketInfo(OrderSymbol(),MODE_BID),OrderSymbol()),slippage,Violet);
         else result = OrderClose(OrderTicket(),lot,nd(MarketInfo(OrderSymbol(),MODE_BID),OrderSymbol()),slippage,Violet);
         if(result) break; 
         else
         {
            Sleep(_Pause);               
         }
      }
   }
   if(OrderType()==OP_SELL)
   {
      for(cnt=0; cnt<TriesCount; cnt++)
      {
         RefreshRates();
         if(lot==0) result = OrderClose(OrderTicket(),OrderLots(),nd(MarketInfo(OrderSymbol(),MODE_ASK),OrderSymbol()),slippage,Violet);
         else result = OrderClose(OrderTicket(),lot,nd(MarketInfo(OrderSymbol(),MODE_ASK),OrderSymbol()),slippage,Violet);
         if(result) break; 
         else
         {
            Sleep(_Pause);               
         }
      }
   }
   if(OrderType()>OP_SELL)
   {
      for(cnt=0; cnt<TriesCount; cnt++)
      {
         result = OrderDelete(OrderTicket(),Violet);
         if(result) break; 
         else Sleep(_Pause);
      }
   }
   
   return(result);
}

//To Close Half of the Order Lots use:

CloseOrder(Ticket,OrderLots()*0.5);
 

biantoro kunarto:
Please use this script

 

Thank you, my friend really liked it because it is simple 


 
Ahmed Soliman:
Thank you, my friend :D