#property show_inputs
#property strict
//#property show_confirm

extern double Lots    = 0.01;	//Lot Size
extern int Slippage   = 2;		//Slippage
extern int Stop_Loss  = 20;		//Stop Loss
extern int Take_Profit= 20;		//Take Profit
extern int OrderExpiry=45;      //Order Expiry in Minuts
//+------------------------------------------------------------------+
//| script "Open a new Buy Order"                                    |
//+------------------------------------------------------------------+
int start()
  {
   double Price=WindowPriceOnDropped();
   bool   result;
   int    slippage;
   datetime oExpiry=0;

//----
   int NrOfDigits = MarketInfo(Symbol(),MODE_DIGITS);   // Nr. of decimals used by Symbol
   int PipAdjust = 1;                                       // Pips multiplier for value adjustment
   if(NrOfDigits == 5 || NrOfDigits == 3)            // If decimals = 5 or 3
      PipAdjust = 10;                                // Multiply pips by 10
//----   

   slippage=Slippage*PipAdjust;

   double stop_loss=Price-Stop_Loss*(Point*PipAdjust);
   double take_profit=Price+Take_Profit*(Point*PipAdjust);
   if(OrderExpiry > 0) oExpiry=TimeCurrent()+(OrderExpiry*60);

   if(Ask>Price)
     {
      result=OrderSend(Symbol(),OP_BUYLIMIT,Lots,Price,slippage,stop_loss,take_profit,"",0,oExpiry,CLR_NONE);
     }
   if(Ask<Price)
     {
      result=OrderSend(Symbol(),OP_BUYSTOP,Lots,Price,slippage,stop_loss,take_profit,"",0,oExpiry,CLR_NONE);
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+
