3FoldTradingFilterforEA





//+------------------------------------------------------------------+
//|                                      3FoldTradingFilterForEA.mq4 |
//|                                                        cubesteak |
//|                                         http://www.cubesteak.net |
//+------------------------------------------------------------------+
//| HourlyFilter                                                     |
//|                                                                  |
//|   This function filters execution by three separate hourly       |
//|   timeframes.  If the time is within the configured time, it     |
//|   it returns true.  If HourlyFilter is disabled, it will also    |
//|   return true, effectively nullifying its call.                  |
//+------------------------------------------------------------------+


//+<< Hourly Restrictions on Trade >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+
extern string     HourlyRetrict_Parameters = "*** Hourly Restrictions ***";

extern bool       UseHourTrade      =  true;

extern bool       UseHourTrade1     =  true;

extern string     FromHour1         =  "0:00";  //from
extern string     UntilHour1        =  "23:59"; //Until

extern bool       UseHourTrade2     =  false;   

extern string     FromHour2         =  "0:00";  //from
extern string     UntilHour2        =  "23:59"; //until

extern bool       UseHourTrade3     =  false;   

extern string     FromHour3         =  "0:00";  //from
extern string     UntilHour3        =  "23:59"; //until


bool HourlyFilter()
{

   int HFa,HFb,HFc;

   if (UseHourTrade)
   {
      datetime FromHourTrade1    =  StrToTime(FromHour1);
      datetime ToHourTrade1      =  StrToTime(UntilHour1);
      datetime FromHourTrade2    =  StrToTime(FromHour2);
      datetime ToHourTrade2      =  StrToTime(UntilHour2);
      datetime FromHourTrade3    =  StrToTime(FromHour3);
      datetime ToHourTrade3      =  StrToTime(UntilHour3);
   
      string s_now = StringConcatenate(Hour(),":",Minute());
      int now = StrToTime(s_now);
      if (
            ( UseHourTrade1 ) &&
            ( (now>=FromHourTrade1) ) &&
            ( (now<=ToHourTrade1) )
      
         ) HFa=1;


      if (
            ( UseHourTrade2 ) &&
            ( (now>=FromHourTrade2) ) &&
            ( (now<=ToHourTrade2) )
      
         ) HFb=1;


      if (
            ( UseHourTrade3 ) &&
            ( (now>=FromHourTrade3) ) &&
            ( (now<=ToHourTrade3) )
      
         ) HFc=1;

      if (
            (HFa!=1) &&
            (HFb!=1) &&
            (HFc!=1)
         )
      {
      Comment(
      "\n"," ^^^^^^^^^^^^^^^^^^^^",
      "\n","   * NON-TRADING HOURS * ",
      "\n"," ^^^^^^^^^^^^^^^^^^^^");
      return (false);
      }
      else
      {
         Comment(
         "\n"," ^^^^^^^^^^^^^^^^",
         "\n","   * TRADING HOURS * ",
         "\n"," ^^^^^^^^^^^^^^^^");
         return (true);
      }

   }
}


//+------------------------------------------------------------------+



Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: