//////////////////////////////////////////////////////////////////////
//                                                  signalTable.mq4 
//                                                     Antonuk Oleg 
//                                            antonukoleg@gmail.com 
//////////////////////////////////////////////////////////////////////
#property copyright "Antonuk Oleg"
#property link      "antonukoleg@gmail.com"
// modification by kinonen date=December 2008 with others indicators
// kino_multi_indicators2

#property indicator_chart_window
#property indicator_level3 0
extern int pSMA=25;
extern int pEMA=12;
extern int pCCI1=21;
extern int pCCI2=89;
extern int limitCCI=0;

extern int Prsi=8;
extern int limitRSIh=55;
extern int limitRSIl=45;




extern int scaleX=20,
           scaleY=20,
           offsetX=35,
           offsetY=20,
           fontSize=20,
           corner=2,
           symbolCodeBuy=       91, //hands 67&68
           symbolCodeSell=      91, 
           symbolCodeNoSignal=  91; //73
           
extern color signalBuyColor=Green,
             signalSellColor=Crimson,
             noSignalColor=Yellow,
             textColor=Aqua;            
            
int period[]={1,5,15};  
string periodString[]={" M1"," M5"," M15","  Kino°"},
       // Array with indicator names
       signalNameString[]={  "CCI1 ", "CCI2","RSI ","EvS","HAS"};
       
     

//////////////////////////////////////////////////////////////////////
//
// init()          
//
//////////////////////////////////////////////////////////////////////
int init()
{
   // table of signals
   for(int x=0;x<3;x++)
      for(int y=0;y<5;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+offsetY);
         ObjectSetText("signal"+x+y,CharToStr(symbolCodeNoSignal),
                       fontSize,"Wingdings",noSignalColor);
      }
 
   // names of timeframes
   for(x=0;x<4;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);
     }
 
   // names of indicators
   for(y=0;y<5;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);
     }
   
   return(0);
}
  /////////////////////////////////////////////////////////////
  //           int start()                                   // 
  /////////////////////////////////////////////////////////////
int start()
{
   //======================compares SMA25 and EMA12=======
   //iMA( string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift) 
   for(int x=0;x<4;x++)
     {
      if(iMA(Symbol(),period[x],pSMA,0,0,0,0)<iMA(Symbol(),period[x],pEMA,0,1,0,0))
         ObjectSetText("signal"+x+"3",CharToStr(symbolCodeBuy),fontSize,
         "Wingdings",signalBuyColor);
      else
         ObjectSetText("signal"+x+"3",CharToStr(symbolCodeSell),fontSize,
         "Wingdings",signalSellColor); 
     }
   
  
   //======================CCI1========================
   for(x=0;x<5;x++)
     {
      if(iCCI(Symbol(),period[x],pCCI1,0,0)>limitCCI)
         ObjectSetText("signal"+x+"0",CharToStr(symbolCodeBuy),fontSize,
         "Wingdings",signalBuyColor);
      else
         ObjectSetText("signal"+x+"0",CharToStr(symbolCodeSell),fontSize,
         "Wingdings",signalSellColor);
     }
   //====================== CCI2 ===============================
   for(x=0;x<5;x++)
     {
       if(iCCI(Symbol(),period[x],pCCI2,0,0)>limitCCI)
         ObjectSetText("signal"+x+"1",CharToStr(symbolCodeBuy),fontSize,
         "Wingdings",signalBuyColor);
      else
         ObjectSetText("signal"+x+"1",CharToStr(symbolCodeSell),fontSize,
         "Wingdings",signalSellColor); 
     }
   //======================RSI ===============================
   
    for(x=0;x<5;x++)   
     {
     if(iRSI(Symbol(),period[x],Prsi,PRICE_CLOSE,0)>limitRSIh  )
         ObjectSetText("signal"+x+"2",CharToStr(symbolCodeBuy),fontSize,
         "Wingdings",signalBuyColor);   
      else if(iRSI(Symbol(),period[x],Prsi,PRICE_CLOSE,0)<limitRSIl  )
         ObjectSetText("signal"+x+"2",CharToStr(symbolCodeSell),fontSize,
         "Wingdings",signalSellColor);   
      else
         ObjectSetText("signal"+x+"2",CharToStr(symbolCodeNoSignal),fontSize,
         "Wingdings",noSignalColor);   
               
         
    //=======================HAS=============================
    for(x=0;x<5;x++)
     {     
       if(iCustom(Symbol(),period[x],"Heiken_Ashi_Smoothed",2,6,3,2,2,0)<iCustom(Symbol(),period[x],"Heiken_Ashi_Smoothed",2,6,3,2,3,0))
         ObjectSetText("signal"+x+"4",CharToStr(symbolCodeBuy),fontSize,
         "Wingdings",signalBuyColor);
       else 
          ObjectSetText("signal"+x+"4",CharToStr(symbolCodeSell),fontSize,
         "Wingdings",signalSellColor);
    
     }
  
  //============================= 
     
       
   // double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift) 
    /*
     
    if(iCustom(Symbol(),period[x],"BollingerSqueezevStoch513",1,8,MODE_MAIN,0)>0)
         ObjectSetText("signal"+x+"2",CharToStr(symbolCodeBuy),fontSize,
         "Wingdings",signalBuyColor);   
    else 
    if(iCustom(Symbol(),period[x],"BollingerSqueezevStoch513",1,8,MODE_MAIN,0)<0)
         ObjectSetText("signal"+x+"2",CharToStr(symbolCodeSell),fontSize,
         "Wingdings",signalSellColor); 
    else
         ObjectSetText("signal"+x+"2",CharToStr(symbolCodeNoSignal),fontSize,
         "Wingdings",noSignalColor); 
         
          //=======================HAS=============================
  for(x=0;x<9;x++)
     {     
       if(iCustom(Symbol(),period[x],"Heiken_Ashi_Smoothed",2,6,3,2,2,0)<iCustom(Symbol(),period[x],"Heiken_Ashi_Smoothed",2,6,3,2,3,0))
         ObjectSetText("signal"+x+"6",CharToStr(symbolCodeBuy),fontSize,
         "Wingdings",signalBuyColor);
       else 
          ObjectSetText("signal"+x+"6",CharToStr(symbolCodeSell),fontSize,
         "Wingdings",signalSellColor);
    
     }
  
  //==========================================================
          
    */   
     }     
    
  //==========================================================
  
  
   return(0);
}

//////////////////////////////////////////////////////////////////////
//
//  deinit()                       
//
//////////////////////////////////////////////////////////////////////
int deinit()
{
   // when deleting the indicator delete all objects
   ObjectsDeleteAll();
 
   return(0);
}