//+------------------------------------------------------------------------+ //| 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: