//+------------------------------------------------------------------+
//|                                                 Close_EURUSD_v.2.mq4 |
//+------------------------------------------------------------------+
#property copyright "Free"
#property link      "For free help contact: shihab_shihabi@yahoo.com"
//-----------------------
#include <stdlib.mqh>
#include <stderror.mqh>
#include <WinUser32.mqh> 
//-----------------------
extern string  Contact  = "For free help contact: shihab_shihabi@yahoo.com";
//-----------------------
extern int     Slippage            =0 ;
extern int     Profit_In_Pips      = 2;
extern bool    Close_Long_And_Short= true;
extern bool    Close_Long_Only     = false;
extern bool    Close_Short_Only    = false;
double         Poin; 

//+------------------------------------------------------------------+
//| script initialization function                                   |
//+------------------------------------------------------------------+

int init()
{
//----
   if (Point == 0.00001) Poin = 0.0001; //6 digits
   else if (Point == 0.001) Poin = 0.01; //3 digits (for Yen based pairs)
   else Poin = Point; //Normal for 5 & 3 Digit Forex Quotes
//----
   return(0);
}

//+------------------------------------------------------------------+
//| script start function                                            |
//+------------------------------------------------------------------+

int start()
{

/* 
Close open order if:
 symbol is EURUSD
 it is in profit and within the specified pips in profit       
*/   
   int trade;
   for(trade=OrdersTotal()-1;trade>=0;trade--)
   {

   OrderSelect(trade,SELECT_BY_POS,MODE_TRADES);

   if(OrderSymbol()=="EURUSD")

      {
      if(OrderType()==OP_BUY)
      if(Close_Long_And_Short || Close_Long_Only)
      if(OrderProfit()>0)
      if(NormalizeDouble(Bid,Digits)>=NormalizeDouble(OrderOpenPrice(),Digits)+Profit_In_Pips*Poin)
   
         OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),Slippage,SkyBlue);
   
      }

      //----
      
      {
      if(OrderType()==OP_SELL)
      if(Close_Long_And_Short || Close_Short_Only)
      if(OrderProfit()>0)
      if(NormalizeDouble(Ask,Digits)<=NormalizeDouble(OrderOpenPrice(),Digits)-Profit_In_Pips*Poin)
   
         OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),Slippage,Orange);
   
      }
   }
   
//----

   return(0);
  }

//------------------------------------------