Indicators Used
0
Views
0
Downloads
0
Favorites
MySignalTable
//+------------------------------------------------------------------+
//| SignalTable (Stranger2010 vertion).mq4 |
//| Antonuk Oleg/Tretyakov Ivan |
//+------------------------------------------------------------------+
#property copyright "Antonuk Oleg/Tretyakov Ivan"
#property link "antonukoleg@gmail.com/tretyak-off@inbox.ru"
//----
#property indicator_chart_window
//----Íàñòðîéêà èíäèêàòîðà.
extern int scaleX=20;
extern int scaleY=20;
extern int offsetX=35;
extern int offsetY=20;
extern int fontSize=16;
extern int corner=2;
extern int symbolCodeBuy=228;
extern int symbolCodeSell=230;
extern int symbolCodeNoSignal=178;
//---Íàñòðîéêà MA
extern int FastSMA=13;
extern int SlowSMA=24;
//---Íàñòðîéêà WPR
extern int WPRPeriod=13;
//---Íàñòðîéêà MACD
extern int FastMACD=12;
extern int SlowMACD=26;
extern int SignalMACD=9;
//---Íàñòðîéêà OsMA
extern int FastPeriod=12;
extern int SlowPeriod=26;
extern int SignalPeriod=9;
//---Íàñòðîéêà CCI
extern int CCIPeriod = 14;
//---Íàñòðîéêà MOM
extern int MOMPeriod = 14;
//---Íàñòðîéêà RSI
extern int RSIPeriod = 14;
//---- Ïàðàìåòðû ADX
extern int ADXPeriod = 14;
extern color signalBuyColor=Blue,
signalSellColor=Red,
noSignalColor=WhiteSmoke,
textColor=Gold;
int period[]={1,5,15,30,60,240,1440,10080,43200};
string periodString[]={"M1","M5","M15","M30","H1","H4","D1","W1","MN1"},
// ñîçäàåì åùå îäèí ìàññèâ ñ íàçâàíèÿìè èíäèêàòîðîâ
signalNameString[]={"MA","WPR","SAR","MACD","OsMA","CCI","MOM","RSI","ADX"};//9
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int init()
{
// òàáëèöà ñèãíàëîâ
for(int x=0;x<9;x++)
for(int y=0;y<9;y++)
{
ObjectCreate("signal"+x+y,OBJ_LABEL,0,0,0,0,0);
// èçìåíÿåì óãîë ïðèâÿçêè
ObjectSet("signal"+x+y,OBJPROP_CORNER,corner);
ObjectSet("signal"+x+y,OBJPROP_XDISTANCE,x*scaleX+offsetX);
ObjectSet("signal"+x+y,OBJPROP_YDISTANCE,y*scaleY+20);
ObjectSetText("signal"+x+y,CharToStr(symbolCodeNoSignal),
fontSize,"Wingdings",noSignalColor);
}
// íàçâàíèÿ òàéìôðåéìîâ
for(x=0;x<9;x++)
{
ObjectCreate("textPeriod"+x,OBJ_LABEL,0,0,0,0,0);
// èçìåíÿåì óãîë ïðèâÿçêè
ObjectSet("textPeriod"+x,OBJPROP_CORNER,corner);
ObjectSet("textPeriod"+x,OBJPROP_XDISTANCE,x*scaleX+offsetX);
ObjectSet("textPeriod"+x,OBJPROP_YDISTANCE,offsetY-10);
ObjectSetText("textPeriod"+x,periodString[x],8,"Tahoma",textColor);
}
// íàçâàíèÿ èíäèêàòîðîâ
for(y=0;y<9;y++)
{
ObjectCreate("textSignal"+y,OBJ_LABEL,0,0,0,0,0);
// èçìåíÿåì óãîë ïðèâÿçêè
ObjectSet("textSignal"+y,OBJPROP_CORNER,corner);
ObjectSet("textSignal"+y,OBJPROP_XDISTANCE,offsetX-25);
ObjectSet("textSignal"+y,OBJPROP_YDISTANCE,y*(scaleY)+offsetY+8);
ObjectSetText("textSignal"+y,signalNameString[y],8,"Tahoma",textColor);
}
for(x=2;x<7;x++)
{
ObjectCreate("TrendPeriod"+x,OBJ_LABEL,0,0,0,0,0);
// èçìåíÿåì óãîë ïðèâÿçêè
ObjectSet("TrendPeriod"+x,OBJPROP_CORNER,corner);
ObjectSet("TrendPeriod"+x,OBJPROP_XDISTANCE,(9+x)*scaleX+offsetX);
ObjectSet("TrendPeriod"+x,OBJPROP_YDISTANCE,offsetY-10);
ObjectSetText("TrendPeriod"+x,periodString[x],8,"Tahoma",textColor);
}
for(x=2;x<7;x++)
{
ObjectCreate("MainSignal"+x,OBJ_LABEL,0,0,0,0,0);
// èçìåíÿåì óãîë ïðèâÿçêè
ObjectSet("MainSignal"+x,OBJPROP_CORNER,corner);
ObjectSet("MainSignal"+x,OBJPROP_XDISTANCE,(9+x)*scaleX+offsetX);
ObjectSet("MainSignal"+x,OBJPROP_YDISTANCE,20);
ObjectSetText("MainSignal"+x,CharToStr(symbolCodeNoSignal),fontSize,"Wingdings",noSignalColor);
}
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int start()
{
int SumUpsM15=0;
int SumUpsM30=0;
int SumUpsH1=0;
int SumUpsH4=0;
int SumUpsD1=0;
int SumDownsM15=0;
int SumDownsM30=0;
int SumDownsH1=0;
int SumDownsH4=0;
int SumDownsD1=0;
for(int x=0;x<9;x++)
{
// ñèãíàë íà ïîêóïêó
if(iMA(Symbol(),period[x],FastSMA,0,0,0,0)>iMA(Symbol(),period[x],SlowSMA,0,0,0,0))
{
ObjectSetText("signal"+x+"0",CharToStr(symbolCodeBuy),fontSize,"Wingdings",signalBuyColor);
switch (x)
{
case 2:SumUpsM15++; break;
case 3:SumUpsM30++; break;
case 4:SumUpsH1++; break;
case 5:SumUpsH4++; break;
case 6:SumUpsD1++; break;
}
}
// ñèãíàë íà ïðîäàæó
else
{
ObjectSetText("signal"+x+"0",CharToStr(symbolCodeSell),fontSize,"Wingdings",signalSellColor);
switch (x)
{
case 2:SumDownsM15++; break;
case 3:SumDownsM30++; break;
case 4:SumDownsH1++; break;
case 5:SumDownsH4++; break;
case 6:SumDownsD1++; break;
}
}
}
for(x=0;x<9;x++)
{
// ñèãíàë íà ïîêóïêó
if(MathAbs(iWPR(Symbol(),period[x],WPRPeriod,0))<20.0)
{
ObjectSetText("signal"+x+"1",CharToStr(symbolCodeBuy),fontSize,"Wingdings",signalBuyColor);
switch (x)
{
case 2:SumUpsM15++; break;
case 3:SumUpsM30++; break;
case 4:SumUpsH1++; break;
case 5:SumUpsH4++; break;
case 6:SumUpsD1++; break;
}
}
// ñèãíàë íà ïðîäàæó
else if(MathAbs(iWPR(Symbol(),period[x],WPRPeriod,0))>80.0)
{
ObjectSetText("signal"+x+"1",CharToStr(symbolCodeSell),fontSize,"Wingdings",signalSellColor);
switch (x)
{
case 2:SumDownsM15++; break;
case 3:SumDownsM30++; break;
case 4:SumDownsH1++; break;
case 5:SumDownsH4++; break;
case 6:SumDownsD1++; break;
}
}
// íåò ñèãíàëà
else
ObjectSetText("signal"+x+"1",CharToStr(symbolCodeNoSignal),fontSize,"Wingdings",noSignalColor);
}
for(x=0;x<9;x++)
{
// ñèãíàë íà ïîêóïêó
if(iSAR(Symbol(),period[x],0.02,0.2,0)<Close[0])
{
ObjectSetText("signal"+x+"2",CharToStr(symbolCodeBuy),fontSize,"Wingdings",signalBuyColor);
switch (x)
{
case 2:SumUpsM15++; break;
case 3:SumUpsM30++; break;
case 4:SumUpsH1++; break;
case 5:SumUpsH4++; break;
case 6:SumUpsD1++; break;
}
}
// ñèãíàë íà ïðîäàæó
else
{
ObjectSetText("signal"+x+"2",CharToStr(symbolCodeSell),fontSize,"Wingdings",signalSellColor);
switch (x)
{
case 2:SumDownsM15++; break;
case 3:SumDownsM30++; break;
case 4:SumDownsH1++; break;
case 5:SumDownsH4++; break;
case 6:SumDownsD1++; break;
}
}
}
for(x=0;x<9;x++)
{
if (iMACD(Symbol(),period[x],FastMACD,SlowMACD,SignalMACD,PRICE_CLOSE,MODE_MAIN,0)-iMACD(Symbol(),period[x],FastMACD,SlowMACD,SignalMACD,PRICE_CLOSE,MODE_MAIN,1) > 0)
{
ObjectSetText("signal"+x+"3",CharToStr(symbolCodeBuy),fontSize,"Wingdings",signalBuyColor);
switch (x)
{
case 2:SumUpsM15++; break;
case 3:SumUpsM30++; break;
case 4:SumUpsH1++; break;
case 5:SumUpsH4++; break;
case 6:SumUpsD1++; break;
}
}
else
{
ObjectSetText("signal"+x+"3",CharToStr(symbolCodeSell),fontSize,"Wingdings",signalSellColor);
switch (x)
{
case 2:SumDownsM15++; break;
case 3:SumDownsM30++; break;
case 4:SumDownsH1++; break;
case 5:SumDownsH4++; break;
case 6:SumDownsD1++; break;
}
}
}
for(x=0;x<9;x++)
{
if (iOsMA(Symbol(),period[x],FastPeriod,SlowPeriod,SignalPeriod,PRICE_CLOSE,0) > 0)
{
ObjectSetText("signal"+x+"4",CharToStr(symbolCodeBuy),fontSize,"Wingdings",signalBuyColor);
switch (x)
{
case 2:SumUpsM15++; break;
case 3:SumUpsM30++; break;
case 4:SumUpsH1++; break;
case 5:SumUpsH4++; break;
case 6:SumUpsD1++; break;
}
}
else
{
ObjectSetText("signal"+x+"4",CharToStr(symbolCodeSell),fontSize,"Wingdings",signalSellColor);
switch (x)
{
case 2:SumDownsM15++; break;
case 3:SumDownsM30++; break;
case 4:SumDownsH1++; break;
case 5:SumDownsH4++; break;
case 6:SumDownsD1++; break;
}
}
}
for(x=0;x<9;x++)
{
if (iCCI(Symbol(),period[x],CCIPeriod,PRICE_CLOSE,0) > 0)
{
ObjectSetText("signal"+x+"5",CharToStr(symbolCodeBuy),fontSize,"Wingdings",signalBuyColor);
switch (x)
{
case 2:SumUpsM15++; break;
case 3:SumUpsM30++; break;
case 4:SumUpsH1++; break;
case 5:SumUpsH4++; break;
case 6:SumUpsD1++; break;
}
}
else
{
ObjectSetText("signal"+x+"5",CharToStr(symbolCodeSell),fontSize,"Wingdings",signalSellColor);
switch (x)
{
case 2:SumDownsM15++; break;
case 3:SumDownsM30++; break;
case 4:SumDownsH1++; break;
case 5:SumDownsH4++; break;
case 6:SumDownsD1++; break;
}
}
}
for(x=0;x<9;x++)
{
if (iMomentum(Symbol(),period[x],MOMPeriod,PRICE_CLOSE,0) > 100)
{
ObjectSetText("signal"+x+"6",CharToStr(symbolCodeBuy),fontSize,"Wingdings",signalBuyColor);
switch (x)
{
case 2:SumUpsM15++; break;
case 3:SumUpsM30++; break;
case 4:SumUpsH1++; break;
case 5:SumUpsH4++; break;
case 6:SumUpsD1++; break;
}
}
else
{
ObjectSetText("signal"+x+"6",CharToStr(symbolCodeSell),fontSize,"Wingdings",signalSellColor);
switch (x)
{
case 2:SumDownsM15++; break;
case 3:SumDownsM30++; break;
case 4:SumDownsH1++; break;
case 5:SumDownsH4++; break;
case 6:SumDownsD1++; break;
}
}
}
for(x=0;x<9;x++)
{
if (iRSI(Symbol(),period[x],RSIPeriod,PRICE_CLOSE,0) > 50)
{
ObjectSetText("signal"+x+"7",CharToStr(symbolCodeBuy),fontSize,"Wingdings",signalBuyColor);
switch (x)
{
case 2:SumUpsM15++; break;
case 3:SumUpsM30++; break;
case 4:SumUpsH1++; break;
case 5:SumUpsH4++; break;
case 6:SumUpsD1++; break;
}
}
else
{
ObjectSetText("signal"+x+"7",CharToStr(symbolCodeSell),fontSize,"Wingdings",signalSellColor);
switch (x)
{
case 2:SumDownsM15++; break;
case 3:SumDownsM30++; break;
case 4:SumDownsH1++; break;
case 5:SumDownsH4++; break;
case 6:SumDownsD1++; break;
}
}
}
for(x=0;x<9;x++)
{
if (iADX(Symbol(),period[x],ADXPeriod,PRICE_CLOSE,MODE_PLUSDI,0) > iADX(Symbol(),period[x],ADXPeriod,PRICE_CLOSE,MODE_MINUSDI,0))
{
ObjectSetText("signal"+x+"8",CharToStr(symbolCodeBuy),fontSize,"Wingdings",signalBuyColor);
switch (x)
{
case 2:SumUpsM15++; break;
case 3:SumUpsM30++; break;
case 4:SumUpsH1++; break;
case 5:SumUpsH4++; break;
case 6:SumUpsD1++; break;
}
}
else
{
ObjectSetText("signal"+x+"8",CharToStr(symbolCodeSell),fontSize,"Wingdings",signalSellColor);
switch (x)
{
case 2:SumDownsM15++; break;
case 3:SumDownsM30++; break;
case 4:SumDownsH1++; break;
case 5:SumDownsH4++; break;
case 6:SumDownsD1++; break;
}
}
}
if (SumUpsM15>SumDownsM15){ObjectSetText("MainSignal"+2,CharToStr(symbolCodeBuy),fontSize,"Wingdings",signalBuyColor);}else{ObjectSetText("MainSignal"+2,CharToStr(symbolCodeSell),fontSize,"Wingdings",signalSellColor);}
if (SumUpsM30>SumDownsM30){ObjectSetText("MainSignal"+3,CharToStr(symbolCodeBuy),fontSize,"Wingdings",signalBuyColor);}else{ObjectSetText("MainSignal"+3,CharToStr(symbolCodeSell),fontSize,"Wingdings",signalSellColor);}
if (SumUpsH1>SumDownsH1){ObjectSetText("MainSignal"+4,CharToStr(symbolCodeBuy),fontSize,"Wingdings",signalBuyColor);}else{ObjectSetText("MainSignal"+4,CharToStr(symbolCodeSell),fontSize,"Wingdings",signalSellColor);}
if (SumUpsH4>SumDownsH4){ObjectSetText("MainSignal"+5,CharToStr(symbolCodeBuy),fontSize,"Wingdings",signalBuyColor);}else{ObjectSetText("MainSignal"+5,CharToStr(symbolCodeSell),fontSize,"Wingdings",signalSellColor);}
if (SumUpsD1>SumDownsD1){ObjectSetText("MainSignal"+6,CharToStr(symbolCodeBuy),fontSize,"Wingdings",signalBuyColor);}else{ObjectSetText("MainSignal"+6,CharToStr(symbolCodeSell),fontSize,"Wingdings",signalSellColor);}
return(0);
}
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
int deinit()
{
// ïðè óäàëåíèè íàøåãî èíäèêàòîðà íóæíî óäàëèòü âñå îáúåêòû,
// êîòîðûå ìû óæå ñîçäàëè
ObjectsDeleteAll();
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
---