scripting help to close all orders if profit exceeds x

 

I know there are "close all orders" scripts out there but I haven't found one which will close all orders if proft > x% of equity. Can anyone help?

Thanks!

 

here is an example.

Enjoy it.



extern double perc_gain=1.0;  // set to 1% by default. 
extern int slippage=1;




void close_all_trades()
{
   for(int i=OrdersTotal()-1;i>=0;i--)
   {         
      if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)   )
         continue;
/* 
      //some brokers require a delay not to consider scalp....     
      if(TimeCurrent()-OrderOpenTime()<90)
         continue;   
*/        
      
      RefreshRates();   
      if(OrderType()==OP_BUY )
         OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),slippage,White);
      if(OrderType()==OP_SELL )
         OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),slippage,Red);

   }   
}


int start()
{
   double bal = AccountBalance();
   double eq  = AccountEquity();
   double profit = eq-bal;
   double perc_profit = profit/eq*100.0;
   if(perc_profit >=perc_gain)
      close_all_trades();
   return(0);
}
 
if(perc_profit >=1.0) //???

if(perc_profit >=perc_gain) // ? i think you mean it this way...


 
meikel:

Indeed.

mistake solved. Thanks.

 
abstract_mind wrote >>

Indeed.

mistake solved. Thanks.

Thank you so much!

Reason: