0
Views
0
Downloads
0
Favorites
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);
}
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---