0
Views
0
Downloads
0
Favorites
WCCIPatternLabels
//+------------------------------------------------------------------+
//| WCCI Pattern Labels.mq4 |
//| Cubesteak |
//| http://www.cubesteak.net |
//| |
//| Purpose: This is a silly little indicator that simply |
//| adds static labels to a new window to remind you |
//| what Woodies CCI trades are being called by the |
//| various "Woodies Patterns" indicators that are |
//| available. Check www.woodiescciclub.com for the |
//| pattern descriptions and indicators. |
//| |
//+------------------------------------------------------------------+
#property copyright "Cubesteak"
#property link "http://www.cubesteak.net/"
#property indicator_separate_window
#property indicator_maximum 1
#property indicator_minimum 0
//---- input parameters
extern color TextColor=NavajoWhite;
extern int TextColumn=2; // 1 or 2 columns
extern int TextSize=8;
extern int TextCorner=0; // 0=UL,1=UR,2=BL,3=BR
extern int TextXOffset=10;
extern int TextYOffset=15;
bool first_time = false;
int win_handle = -1;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
IndicatorShortName("WCCI Pattern Labels");
first_time = true;
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
//----
if (first_time){
win_handle = WindowFind("WCCI Pattern Labels");
first_time = false;
int Xcol1place,Xcol2place,YCol1place,YCol2place,YCol3place,YCol4place,YCol5place,YCol6place,YCol7place,YCol8place = 0;
switch (TextColumn)
{
case 2:
switch (TextCorner)
{
case 0:
Xcol1place = TextXOffset;
Xcol2place = TextSize * 25;
YCol1place = TextSize * 3;
YCol2place = TextSize * 5;
YCol3place = TextSize * 7;
YCol4place = TextSize * 9;
YCol5place = TextSize * 3;
YCol6place = TextSize * 5;
YCol7place = TextSize * 7;
YCol8place = TextSize * 9;
break;
case 1:
Xcol1place = TextSize * 25;
Xcol2place = TextXOffset;
YCol1place = TextSize * 3;
YCol2place = TextSize * 5;
YCol3place = TextSize * 7;
YCol4place = TextSize * 9;
YCol5place = TextSize * 3;
YCol6place = TextSize * 5;
YCol7place = TextSize * 7;
YCol8place = TextSize * 9;
break;
case 2:
Xcol1place = TextXOffset;
Xcol2place = TextSize * 25;
YCol1place = TextSize * 9;
YCol2place = TextSize * 7;
YCol3place = TextSize * 5;
YCol4place = TextSize * 3;
YCol5place = TextSize * 9;
YCol6place = TextSize * 7;
YCol7place = TextSize * 5;
YCol8place = TextSize * 3;
break;
case 3:
Xcol1place = TextSize * 25;
Xcol2place = TextXOffset;
YCol1place = TextSize * 9;
YCol2place = TextSize * 7;
YCol3place = TextSize * 5;
YCol4place = TextSize * 3;
YCol5place = TextSize * 9;
YCol6place = TextSize * 7;
YCol7place = TextSize * 5;
YCol8place = TextSize * 3;
break;
}
break;
case 1:
switch (TextCorner)
{
case 0:
Xcol1place = TextXOffset;
Xcol2place = TextXOffset;
YCol1place = TextSize * 3;
YCol2place = TextSize * 5;
YCol3place = TextSize * 7;
YCol4place = TextSize * 9;
YCol5place = TextSize * 11;
YCol6place = TextSize * 13;
YCol7place = TextSize * 15;
YCol8place = TextSize * 17;
break;
case 1:
Xcol1place = TextXOffset;
Xcol2place = TextXOffset;
YCol1place = TextSize * 3;
YCol2place = TextSize * 5;
YCol3place = TextSize * 7;
YCol4place = TextSize * 9;
YCol5place = TextSize * 11;
YCol6place = TextSize * 13;
YCol7place = TextSize * 15;
YCol8place = TextSize * 17;
break;
case 2:
Xcol1place = TextXOffset;
Xcol2place = TextXOffset;
YCol1place = TextSize * 17;
YCol2place = TextSize * 15;
YCol3place = TextSize * 13;
YCol4place = TextSize * 11;
YCol5place = TextSize * 9;
YCol6place = TextSize * 7;
YCol7place = TextSize * 5;
YCol8place = TextSize * 3;
break;
case 3:
Xcol1place = TextXOffset;
Xcol2place = TextXOffset;
YCol1place = TextSize * 17;
YCol2place = TextSize * 15;
YCol3place = TextSize * 13;
YCol4place = TextSize * 11;
YCol5place = TextSize * 9;
YCol6place = TextSize * 7;
YCol7place = TextSize * 5;
YCol8place = TextSize * 3;
break;
}
break;
}
//ZLR Label
if(!ObjectCreate("ZLR_Label", OBJ_LABEL, win_handle, 0, 0))
{
Print("error: can't create label_object! code #",GetLastError());
}
ObjectSet("ZLR_Label", OBJPROP_XDISTANCE, Xcol1place);
ObjectSet("ZLR_Label", OBJPROP_YDISTANCE, YCol1place);
ObjectSet("ZLR_Label", OBJPROP_CORNER,TextCorner);
ObjectSetText("ZLR_Label", "1. Zero-Line Reject (ZLR) -- Trend",TextSize,"Arial",TextColor);
//Shamu Label
if(!ObjectCreate("Shamu_Label", OBJ_LABEL, win_handle, 0, 0))
{
Print("error: can't create label_object! code #",GetLastError());
}
ObjectSet("Shamu_Label", OBJPROP_XDISTANCE, Xcol1place);
ObjectSet("Shamu_Label", OBJPROP_YDISTANCE, YCol2place);
ObjectSet("Shamu_Label", OBJPROP_CORNER,TextCorner);
ObjectSetText("Shamu_Label", "2. Shamu Trade -- Counter-Trend",TextSize,"Arial",TextColor);
//TLB Label
if(!ObjectCreate("TLB_Label", OBJ_LABEL, win_handle, 0, 0))
{
Print("error: can't create label_object! code #",GetLastError());
}
ObjectSet("TLB_Label", OBJPROP_XDISTANCE, Xcol1place);
ObjectSet("TLB_Label", OBJPROP_YDISTANCE, YCol3place);
ObjectSet("TLB_Label", OBJPROP_CORNER,TextCorner);
ObjectSetText("TLB_Label", "3. TrendLine Break -- Both",TextSize,"Arial",TextColor);
//Vegas Trade Label
if(!ObjectCreate("VT_Label", OBJ_LABEL, win_handle, 0, 0))
{
Print("error: can't create label_object! code #",GetLastError());
}
ObjectSet("VT_Label", OBJPROP_XDISTANCE, Xcol1place);
ObjectSet("VT_Label", OBJPROP_YDISTANCE, YCol4place);
ObjectSet("VT_Label", OBJPROP_CORNER,TextCorner);
ObjectSetText("VT_Label", "4. Vegas Trade -- Counter-Trend",TextSize,"Arial",TextColor);
//Ghost Trade Label
if(!ObjectCreate("GhostTrade_Label", OBJ_LABEL, win_handle, 0, 0))
{
Print("error: can't create label_object! code #",GetLastError());
}
ObjectSet("GhostTrade_Label", OBJPROP_XDISTANCE, Xcol2place);
ObjectSet("GhostTrade_Label", OBJPROP_YDISTANCE, YCol5place);
ObjectSet("GhostTrade_Label", OBJPROP_CORNER,TextCorner);
ObjectSetText("GhostTrade_Label", "5. Ghost Trade -- Counter-Trend",TextSize,"Arial",TextColor);
//Reverse Divergence Label
if(!ObjectCreate("RevDiv_Label", OBJ_LABEL, win_handle, 0, 0))
{
Print("error: can't create label_object! code #",GetLastError());
}
ObjectSet("RevDiv_Label", OBJPROP_XDISTANCE, Xcol2place);
ObjectSet("RevDiv_Label", OBJPROP_YDISTANCE, YCol6place);
ObjectSet("RevDiv_Label", OBJPROP_CORNER,TextCorner);
ObjectSetText("RevDiv_Label", "4. Reverse Divergence -- Trend",TextSize,"Arial",TextColor);
//Hook From Extremes Label
if(!ObjectCreate("HFE_Label", OBJ_LABEL, win_handle, 0, 0))
{
Print("error: can't create label_object! code #",GetLastError());
}
ObjectSet("HFE_Label", OBJPROP_XDISTANCE, Xcol2place);
ObjectSet("HFE_Label", OBJPROP_YDISTANCE, YCol7place);
ObjectSet("HFE_Label", OBJPROP_CORNER,TextCorner);
ObjectSetText("HFE_Label", "5. HFE -- Counter-Trend",TextSize,"Arial",TextColor);
//Exit Signal
if(!ObjectCreate("WCCIExit_Label", OBJ_LABEL, win_handle, 0, 0))
{
Print("error: can't create label_object! code #",GetLastError());
}
ObjectSet("WCCIExit_Label", OBJPROP_XDISTANCE, Xcol2place);
ObjectSet("WCCIExit_Label", OBJPROP_YDISTANCE, YCol8place);
ObjectSet("WCCIExit_Label", OBJPROP_CORNER,TextCorner);
ObjectSetText("WCCIExit_Label", "x. Exit Signals",TextSize,"Arial",TextColor);
}
//----
return(0);
}
//+------------------------------------------------------------------+
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
---