MySignalTable

Author: Antonuk Oleg/Tretyakov Ivan
Indicators Used
Moving average indicatorLarry William percent range indicatorParabolic Stop and Reverse systemMACD HistogramMoving Average of OscillatorCommodity channel indexMomentum indicatorRelative strength indexMovement directional index
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 supported. Formatting help

Markdown Formatting Guide

Element Markdown Syntax
Heading # H1
## H2
### H3
Bold **bold text**
Italic *italicized text*
Link [title](https://www.example.com)
Image ![alt text](image.jpg)
Code `code`
Code Block ```
code block
```
Quote > blockquote
Unordered List - Item 1
- Item 2
Ordered List 1. First item
2. Second item
Horizontal Rule ---