3FoldTradingHoursSeparateWindow





//+------------------------------------------------------------------------+
//|                                    3FoldTradingHoursSeparateWindow.mq4 |
//|                                                              cubesteak |
//|                                               http://www.cubesteak.net |
//|                                                                        |
//|  THIS INDICATOR DOES NOT STOP AN EA OR A MANUAL ORDER FROM TRADING!!!  |
//|  IT SIMPLY IS A VISUAL REMINDER TO TRADE OR NOT.                       |
//|  TO ACTUALLY STOP TRADING IN AN EA, VISIT:                             |
//|  http://www.cubesteak.net/2006/08/3-fold-trading-hours-filter-for-ea/  |
//+------------------------------------------------------------------------+

#property copyright "cubesteak"
#property link      "http://www.cubesteak.net"

#property indicator_separate_window     

//---- input parameters
extern string     HourlyRetrict_Parameters = "*** Font Size ***";

extern int FontSize = 11;

extern string     HourlyRetrict_Parameters1 = "*** Hourly Restrictions ***";

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

string UsedOrNot1="No",UsedOrNot2="No",UsedOrNot3="No";
color UsedOrNot1Clr=Tomato,UsedOrNot2Clr=Tomato,UsedOrNot3Clr=Tomato;
int SmallerFont;


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
IndicatorShortName("3 Fold Trading Hours");
for (int Cnter = 0;Cnter<=21;Cnter++)
{
string ObjName = "3FTH" + Cnter;
ObjectDelete(ObjName);
SmallerFont = FontSize - 2;
}
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   
//----
   
   int HFa,HFb,HFc;


   if ((UseHourTrade1)||(UseHourTrade2)||(UseHourTrade3))
   {
      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)
         )
      {
        ObjectCreate("3FTH0", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        ObjectSetText("3FTH0","NO TRADING",FontSize, "Arial Bold", Tomato);
        ObjectSet("3FTH0", OBJPROP_CORNER, 0);
        ObjectSet("3FTH0", OBJPROP_XDISTANCE, 5);
        ObjectSet("3FTH0", OBJPROP_YDISTANCE, 20);
        
        ThreeFoldObjects();
      }

      else

      {
        ObjectCreate("3FTH0", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        ObjectSetText("3FTH0","TRADE ALLOWED",FontSize, "Arial Bold", Lime);
        ObjectSet("3FTH0", OBJPROP_CORNER, 0);
        ObjectSet("3FTH0", OBJPROP_XDISTANCE, 5);
        ObjectSet("3FTH0", OBJPROP_YDISTANCE, 20);

         ThreeFoldObjects();
      }
   }
   else 
   {
     ObjectCreate("3FTH0", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
     ObjectSetText("3FTH0","No Times Configured",FontSize, "Arial Bold", Tomato);
     ObjectSet("3FTH0", OBJPROP_CORNER, 0);
     ObjectSet("3FTH0", OBJPROP_XDISTANCE, 5);
     ObjectSet("3FTH0", OBJPROP_YDISTANCE, 20);
   }

   
//----
   return(0);
  }
//+------------------------------------------------------------------+


void ThreeFoldObjects()
{
        if (UseHourTrade1) UsedOrNot1 = "Yes";
        if (UseHourTrade2) UsedOrNot2 = "Yes";
        if (UseHourTrade3) UsedOrNot3 = "Yes";


///  FILTER 1 OBJECTS

        ObjectCreate("3FTH1", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        ObjectSetText("3FTH1","Filter 1",FontSize, "Arial Bold", Lavender);
        ObjectSet("3FTH1", OBJPROP_CORNER, 0);
        ObjectSet("3FTH1", OBJPROP_XDISTANCE, 160);
        ObjectSet("3FTH1", OBJPROP_YDISTANCE, 0);
        
        ObjectCreate("3FTH2", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        ObjectSetText("3FTH2","Used:",SmallerFont, "Arial Bold", PeachPuff);
        ObjectSet("3FTH2", OBJPROP_CORNER, 0);
        ObjectSet("3FTH2", OBJPROP_XDISTANCE, 160);
        ObjectSet("3FTH2", OBJPROP_YDISTANCE, 16);
        
        if (UsedOrNot1 == "Yes") UsedOrNot1Clr = Lime;
        ObjectCreate("3FTH3", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        ObjectSetText("3FTH3",UsedOrNot1,SmallerFont, "Arial Bold", UsedOrNot1Clr);
        ObjectSet("3FTH3", OBJPROP_CORNER, 0);
        ObjectSet("3FTH3", OBJPROP_XDISTANCE, 200);
        ObjectSet("3FTH3", OBJPROP_YDISTANCE, 16);

        ObjectCreate("3FTH4", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        ObjectSetText("3FTH4","From:",SmallerFont, "Arial Bold", PeachPuff);
        ObjectSet("3FTH4", OBJPROP_CORNER, 0);
        ObjectSet("3FTH4", OBJPROP_XDISTANCE, 160);
        ObjectSet("3FTH4", OBJPROP_YDISTANCE, 30);

        ObjectCreate("3FTH5", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        ObjectSetText("3FTH5",FromHour1,SmallerFont, "Arial Bold", Ivory);
        ObjectSet("3FTH5", OBJPROP_CORNER, 0);
        ObjectSet("3FTH5", OBJPROP_XDISTANCE, 200);
        ObjectSet("3FTH5", OBJPROP_YDISTANCE, 30);

        ObjectCreate("3FTH6", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        ObjectSetText("3FTH6","Until:",SmallerFont, "Arial Bold", PeachPuff);
        ObjectSet("3FTH6", OBJPROP_CORNER, 0);
        ObjectSet("3FTH6", OBJPROP_XDISTANCE, 160);
        ObjectSet("3FTH6", OBJPROP_YDISTANCE, 44);

        ObjectCreate("3FTH7", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        ObjectSetText("3FTH7",UntilHour1,SmallerFont, "Arial Bold", Ivory);
        ObjectSet("3FTH7", OBJPROP_CORNER, 0);
        ObjectSet("3FTH7", OBJPROP_XDISTANCE, 200);
        ObjectSet("3FTH7", OBJPROP_YDISTANCE, 44);

///  FILTER 2 OBJECTS

        ObjectCreate("3FTH8", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        ObjectSetText("3FTH8","Filter 2",FontSize, "Arial Bold", Lavender);
        ObjectSet("3FTH8", OBJPROP_CORNER, 0);
        ObjectSet("3FTH8", OBJPROP_XDISTANCE, 260);
        ObjectSet("3FTH8", OBJPROP_YDISTANCE, 0);
        
        ObjectCreate("3FTH9", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        ObjectSetText("3FTH9","Used:",SmallerFont, "Arial Bold", PeachPuff);
        ObjectSet("3FTH9", OBJPROP_CORNER, 0);
        ObjectSet("3FTH9", OBJPROP_XDISTANCE, 260);
        ObjectSet("3FTH9", OBJPROP_YDISTANCE, 16);

        ObjectCreate("3FTH10", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        if (UsedOrNot2 == "Yes") UsedOrNot2Clr = Lime;
        ObjectSetText("3FTH10",UsedOrNot2,SmallerFont, "Arial Bold", UsedOrNot2Clr);
        ObjectSet("3FTH10", OBJPROP_CORNER, 0);
        ObjectSet("3FTH10", OBJPROP_XDISTANCE, 300);
        ObjectSet("3FTH10", OBJPROP_YDISTANCE, 16);

        ObjectCreate("3FTH11", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        ObjectSetText("3FTH11","From:",SmallerFont, "Arial Bold", PeachPuff);
        ObjectSet("3FTH11", OBJPROP_CORNER, 0);
        ObjectSet("3FTH11", OBJPROP_XDISTANCE, 260);
        ObjectSet("3FTH11", OBJPROP_YDISTANCE, 30);

        ObjectCreate("3FTH12", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        ObjectSetText("3FTH12",FromHour2,SmallerFont, "Arial Bold", Ivory);
        ObjectSet("3FTH12", OBJPROP_CORNER, 0);
        ObjectSet("3FTH12", OBJPROP_XDISTANCE, 300);
        ObjectSet("3FTH12", OBJPROP_YDISTANCE, 30);

        ObjectCreate("3FTH13", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        ObjectSetText("3FTH13","Until:",SmallerFont, "Arial Bold", PeachPuff);
        ObjectSet("3FTH13", OBJPROP_CORNER, 0);
        ObjectSet("3FTH13", OBJPROP_XDISTANCE, 260);
        ObjectSet("3FTH13", OBJPROP_YDISTANCE, 44);

        ObjectCreate("3FTH14", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        ObjectSetText("3FTH14",UntilHour2,SmallerFont, "Arial Bold", Ivory);
        ObjectSet("3FTH14", OBJPROP_CORNER, 0);
        ObjectSet("3FTH14", OBJPROP_XDISTANCE, 300);
        ObjectSet("3FTH14", OBJPROP_YDISTANCE, 44);

///  FILTER 3 OBJECTS

        ObjectCreate("3FTH15", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        ObjectSetText("3FTH15","Filter 3",FontSize, "Arial Bold", Lavender);
        ObjectSet("3FTH15", OBJPROP_CORNER, 0);
        ObjectSet("3FTH15", OBJPROP_XDISTANCE, 360);
        ObjectSet("3FTH15", OBJPROP_YDISTANCE, 0);
        
        ObjectCreate("3FTH16", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        ObjectSetText("3FTH16","Used:",SmallerFont, "Arial Bold", PeachPuff);
        ObjectSet("3FTH16", OBJPROP_CORNER, 0);
        ObjectSet("3FTH16", OBJPROP_XDISTANCE, 360);
        ObjectSet("3FTH16", OBJPROP_YDISTANCE, 16);

        ObjectCreate("3FTH17", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        if (UsedOrNot3 == "Yes") UsedOrNot3Clr = Lime;
        ObjectSetText("3FTH17",UsedOrNot2,SmallerFont, "Arial Bold", UsedOrNot3Clr);
        ObjectSet("3FTH17", OBJPROP_CORNER, 0);
        ObjectSet("3FTH17", OBJPROP_XDISTANCE, 400);
        ObjectSet("3FTH17", OBJPROP_YDISTANCE, 16);

        ObjectCreate("3FTH18", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        ObjectSetText("3FTH18","From:",SmallerFont, "Arial Bold", PeachPuff);
        ObjectSet("3FTH18", OBJPROP_CORNER, 0);
        ObjectSet("3FTH18", OBJPROP_XDISTANCE, 360);
        ObjectSet("3FTH18", OBJPROP_YDISTANCE, 30);

        ObjectCreate("3FTH19", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        ObjectSetText("3FTH19",FromHour2,SmallerFont, "Arial Bold", Ivory);
        ObjectSet("3FTH19", OBJPROP_CORNER, 0);
        ObjectSet("3FTH19", OBJPROP_XDISTANCE, 400);
        ObjectSet("3FTH19", OBJPROP_YDISTANCE, 30);

        ObjectCreate("3FTH20", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        ObjectSetText("3FTH20","Until:",SmallerFont, "Arial Bold", PeachPuff);
        ObjectSet("3FTH20", OBJPROP_CORNER, 0);
        ObjectSet("3FTH20", OBJPROP_XDISTANCE, 360);
        ObjectSet("3FTH20", OBJPROP_YDISTANCE, 44);

        ObjectCreate("3FTH21", OBJ_LABEL, WindowFind("3 Fold Trading Hours"), 0, 0);
        ObjectSetText("3FTH21",UntilHour2,SmallerFont, "Arial Bold", Ivory);
        ObjectSet("3FTH21", OBJPROP_CORNER, 0);
        ObjectSet("3FTH21", OBJPROP_XDISTANCE, 400);
        ObjectSet("3FTH21", OBJPROP_YDISTANCE, 44);
}



Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: