s_Table





//+------------------------------------------------------------------+
//|                                                      s_Table.mq4 |
//|                                                                * |
//|                                                                * |
//+------------------------------------------------------------------+
#property copyright "Integer"
#property link      "for-good-letters@yandex.ru"

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+




int start(){
   
   // Ãîòîâèì ìàññèâ ñ çàãîëîâêàìè
   string Header[]={"ÊÎËÎÍÊÀ 1","ÊÎËÎÍÊÀ 2"};
   
   // Ãîòîâèì ìàññèâ ñ ðàçìåðàìè êîëîíîê
   int ColWidth[]={9,9};
   string Content[20][2];
      
   // Ãîòîâìè ìàññèâ ñ ñîäåðæèìûì òàáëèöû      
      for(int i=0;i<20;i++){
         for(int j=0;j<2;j++){
            Content[i][j]="Êîëîíêà "+(j+1)+", ñòðîêà "+(i+1);
         }
      }
   
   // Ðèñóåì òàáëèöó
   fObjLableTable("Table_a",Header,ColWidth,Content,5,10,10,12,Silver,Navy,true,Gainsboro,Black);
   
   fObjLableTable("Table_b",Header,ColWidth,Content,45,110,10,10,Red,Yellow,true,Lime,Blue);   
   fObjLableTable("Table_c",Header,ColWidth,Content,125,180,10,8,Black,White,true,White,Black);     
   fObjLableTable("Table_d",Header,ColWidth,Content,250,230,10,6,Aqua,Navy,true,DodgerBlue,Yellow);   
   fObjLableTable("Table_e",Header,ColWidth,Content,80,270,10,4,Yellow,Red,true,Khaki,Black);  
   fObjLableTable("Table_f",Header,ColWidth,Content,30,295,10,2,Blue,Aqua,true,Red,Yellow);   
   
}

void fObjLableTable(
                        string aName,
                        string aHeader[],                            // Èìÿ òàáëèöû
                        int aColWidth[],                             // Ìàññèâ ñ øèðèíîé êàæäîé êîëîíêè. Â óñëîâíûõ åäèíèöàõ ñîîòâåòñâóþùèõ ðàçìåðó çíàêà ñ êîäîì 110 øðèôòà Wingdings
                        string aContent[][],                         // Ìàññèâ ñ ñîäåðæèìûì òàáëèöû. Ïåðâîå èçìåðåíèå - ñòðîêà, âòîðàÿ - êîëîíêà
                        int aX                     =  5,             // Êîîðäèíàòà Õ âåðõíåãî ëåâîãî óãëà òàáëèöû
                        int aY                     =  10,            // Êîîðäèíàòà Y âåðõíåãî ëåâîãî óãëà òàáëèöû
                        int aRows                  =  30,            // Ðàçìåð òàáëèöû ïî âåðòèêàëè (â ñòðîêàõ). Åñëè â ìàññèâå aContent çàäàíî áîëüøåå êîëè÷åñòâî ñòðîê, òàáëèöà áóäåò ñîñòîÿòü èç íåñêîëüêèõ êîëîíîê
                        int tTableSize             =  4,             // Òèïîðàçìåð òàáëèöû 1-12
                        color aHeaderBackColor     =  Silver,        // Öâåò ôîíà çàãîëîâêà
                        color aHeaderTextColor     =  Navy,          // Öâåò òåêñòà çàãîëîâêà
                        bool aHeaderBold           =  true,          // Æèðíûé òåêñò çàãîëîâêà
                        color aContentBackColor    =  Gainsboro,     // Ôîí ñîäåðæèìîãî òàáëèöû
                        color aContentTextColor    =  Black          // Öâåò òåêñòà ñîäåðæèìîãî òàáëèöû

                        ){
                        
   /* 
         © Integer 2009, for-good-letters@yandex.ru
   */                        

   int tFontSize;
   int tBoxFontSize;
   int tBoxWidth;
   int tTextXMargin;
   int tTextYMargin;
   int tHeaderCorrector;

      switch(tTableSize){
         case 1:  tFontSize=5;   tBoxFontSize=10;  tBoxWidth=8;   tTextXMargin=5;   tTextYMargin=4;   tHeaderCorrector=-1; break;
         case 2:  tFontSize=6;   tBoxFontSize=14;  tBoxWidth=10;  tTextXMargin=6;   tTextYMargin=5;   tHeaderCorrector=-1; break;
         case 3:  tFontSize=7;   tBoxFontSize=16;  tBoxWidth=12;  tTextXMargin=6;   tTextYMargin=6;   tHeaderCorrector=-1; break;
         case 4:  tFontSize=8;   tBoxFontSize=18;  tBoxWidth=14;  tTextXMargin=6;   tTextYMargin=6;   tHeaderCorrector=-1; break;      
         case 5:  tFontSize=10;  tBoxFontSize=22;  tBoxWidth=17;  tTextXMargin=8;   tTextYMargin=8;   tHeaderCorrector=-1; break;
         case 6:  tFontSize=12;  tBoxFontSize=26;  tBoxWidth=20;  tTextXMargin=9;   tTextYMargin=9;   tHeaderCorrector=-2; break;      
         case 7:  tFontSize=14;  tBoxFontSize=32;  tBoxWidth=24;  tTextXMargin=12;  tTextYMargin=12;  tHeaderCorrector=-2; break;        
         case 8:  tFontSize=16;  tBoxFontSize=36;  tBoxWidth=28;  tTextXMargin=15;  tTextYMargin=15;  tHeaderCorrector=-3; break;   
         case 9:  tFontSize=18;  tBoxFontSize=42;  tBoxWidth=32;  tTextXMargin=18;  tTextYMargin=18;  tHeaderCorrector=-4; break;              
         case 10: tFontSize=20;  tBoxFontSize=46;  tBoxWidth=35;  tTextXMargin=18;  tTextYMargin=18;  tHeaderCorrector=-4; break;   
         case 11: tFontSize=22;  tBoxFontSize=48;  tBoxWidth=37;  tTextXMargin=18;  tTextYMargin=18;  tHeaderCorrector=-4; break;     
         case 12: tFontSize=24;  tBoxFontSize=52;  tBoxWidth=40;  tTextXMargin=21;  tTextYMargin=21;  tHeaderCorrector=-6; break;                 
      }
   
   //-----------------------------------------------------------------------------------------------   
   
   int tCollXPOsAdd_1=0;
   int tCollXPOsAdd_2=0;   
   int tCollXPOsAdd_3=0;      
   string tHeaderFont="Arial";
   int tHeaderYAdd=0;
      if(aHeaderBold){
         tHeaderFont=tHeaderFont+" Black";
         tHeaderYAdd=tHeaderCorrector;
      }
   int tBoxHeight=tBoxWidth+1;         
   int tHeaderCounter=0; 
   int tRowCounter=0;
   int tWindowNumber=0;
      for(int tk=0;tk<ArraySize(aContent)/ArraySize(aHeader);tk++){
            if(tRowCounter==0){
               tCollXPOsAdd_1=0;
                  for(int ti=0;ti<ArraySize(aHeader);ti++){
                        for(int tj=0;tj<aColWidth[ti];tj++){
                           string tName=aName+"_hb_"+tHeaderCounter+"_"+ti+"_"+tj;
                           fObjLabel(tName,aX+tCollXPOsAdd_2+tCollXPOsAdd_1+tj*tBoxWidth,aY,"n",0,aHeaderBackColor,tBoxFontSize,0,"WingDings",false);
                        }      
                     fObjLabel(aName+"_ht_"+tHeaderCounter+"_"+ti,aX+tCollXPOsAdd_2+tCollXPOsAdd_1+tTextXMargin,aY+tTextYMargin+tHeaderYAdd,aHeader[ti],0,aHeaderTextColor,tFontSize,0,tHeaderFont,false);
                     tCollXPOsAdd_1+=aColWidth[ti]*tBoxWidth+1;
                  } 
               tCollXPOsAdd_3=tCollXPOsAdd_2;    
               tCollXPOsAdd_2+=tCollXPOsAdd_1+3; 
               tHeaderCounter++; 
            }
         tCollXPOsAdd_1=0;
            for(ti=0;ti<ArraySize(aHeader);ti++){
                  for(tj=0;tj<aColWidth[ti];tj++){
                     fObjLabel(aName+"_cb_"+tHeaderCounter+"_"+tRowCounter+"_"+ti+"_"+tj,aX+tCollXPOsAdd_3+tCollXPOsAdd_1+tj*tBoxWidth,aY+tRowCounter*tBoxHeight+tBoxHeight,"n",0,aContentBackColor,tBoxFontSize,0,"WingDings",false);
                  }      
               fObjLabel(aName+"_ct_"+tHeaderCounter+"_"+tRowCounter+"_"+ti,aX+tCollXPOsAdd_3+tCollXPOsAdd_1+tTextXMargin,aY+tTextYMargin+tRowCounter*tBoxHeight+tBoxHeight,aContent[tk][ti],0,aContentTextColor,tFontSize,0,"Arial",false);
               tCollXPOsAdd_1+=aColWidth[ti]*tBoxWidth+1;
            }  
         tRowCounter++;
            if(tRowCounter>=aRows){
               tRowCounter=0;
            }
      }
   WindowRedraw();      
}

void fObjLabel(
   string aObjectName,              // 1 èìÿ
   int aX,                          // 2 õ
   int aY,                          // 3 ó
   string aText,                    // 4 òåêñò
   int aCorner       =  0,          // 5 óãîë   0  1
                                    //          2  3
   color aColor      =  Red,        // 6 öâåò
   int aFontSize     =  8,          // 7 ðàçìåð øðèôòà
   int aWindowNumber =  0,          // 8 îêíî
   string aFont      =  "Arial",    // 9 øðèôò
   bool aBack        =  false       // 10 ôîí
   ){   
   
   /* 
         © Integer 2009, for-good-letters@yandex.ru
   */    
     
      if(ObjectFind(aObjectName)!=aWindowNumber){
         ObjectCreate(aObjectName,OBJ_LABEL,aWindowNumber,0,0);
      }      
   ObjectSet(aObjectName,OBJPROP_XDISTANCE,aX);
   ObjectSet(aObjectName,OBJPROP_YDISTANCE,aY);   
   ObjectSetText(aObjectName,aText,aFontSize,aFont,aColor);
   ObjectSet(aObjectName,OBJPROP_BACK,aBack);
   ObjectSet(aObjectName,OBJPROP_CORNER,aCorner);   
}





Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: