#include <stdlib.mqh>
#include <stderror.mqh>
#include <WinUser32.mqh> 
//+-------------------------------------------------------------------------------------------+

extern  bool    use_hidden_stop_loss = true;
extern int      hidden_sl    = 200;
extern  bool    use_hidden_take_profit = true;
extern  int     hidden_tp    = 400;

//+-------------------------------------------------------------------------------------------+

void hidden_take_profit()
{
  int totalorders = OrdersTotal();
  for(int i=totalorders-1;i>=0;i--)
 {
    OrderSelect(i, SELECT_BY_POS);
    bool result = false;
    if ( OrderSymbol()==Symbol()  )
     {
  if (OrderType() == OP_BUY &&  OrderOpenPrice()+hidden_tp*Point<=Bid )  result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red );
  if (OrderType() == OP_SELL &&  OrderOpenPrice()-hidden_tp*Point>=Ask  )  result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red );
  
      }
  }
  return;
}
//+-------------------------------------------------------------------------------------------+
void hidden_stop_loss()
{
  int totalorders = OrdersTotal();
  for(int i=totalorders-1;i>=0;i--)
 {
    OrderSelect(i, SELECT_BY_POS);
    bool result = false;
    if ( OrderSymbol()==Symbol()  )
     {
  if (OrderType() == OP_BUY &&  OrderOpenPrice()-hidden_sl*Point>=Bid )  result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 5, Red );
  if (OrderType() == OP_SELL &&  OrderOpenPrice()+hidden_sl*Point<=Ask  )  result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 5, Red );
  
      }
  }
  return;
}
//+-------------------------------------------------------------------------------------------+
//| expert initialization function                                                            |
//+-------------------------------------------------------------------------------------------+

int init()
  {
//----

//----
   return(0);
  }
  
//+-------------------------------------------------------------------------------------------+
//| expert deinitialization function                                                          |
//+-------------------------------------------------------------------------------------------+

int deinit()
  {
//---- 

//----
   return(0);
  }

//+-------------------------------------------------------------------------------------------+
//| expert start function                                                                     |
//+-------------------------------------------------------------------------------------------+

int start()
{
//----
if (use_hidden_stop_loss)           hidden_stop_loss();
if (use_hidden_take_profit)       hidden_take_profit();
//----
   return(0);
}


//+-------------------------------------------------------------------------------------------+

