//+------------------------------------------------------------------+
//|                                           All against all.v3 mg4 |                   
//|                                                  vorese          |
//|                                              vorese@yandex.ru    |
//+------------------------------------------------------------------+
#property indicator_chart_window
extern string symbol="EUR";// ëþáàÿ âàëþòà
extern string note="Period_(0,M1,M5,M15,M30,H1,H4,D1,W1,MN)";
extern string period_="0";//M1,M5,M15,M30,H1,H4,D1,W1,MN . Åñëè 0- ïåðèîä òåêóùåãî ãðàôèêà.
extern int X_DISTANCE=0; // ðàñïîëîæ. ïî ãîðèçîíòàëè
extern int Y_DISTANCE=0; // ðàñïîëîæ. ïî âåðòèêàëè
extern color border_color=Silver; // öâåò ðàìêè 
extern color text_color=Silver; // öâåò âåðõíåé ñòðîêè 
extern color CurrCol_up=Aqua; // öâåò îáîçí.âàëþòû è % ðàñòóùåãî áàðà 
extern color CurrCol_down=Gold; // öâåò îáîçí.âàëþòû è % ïàäàþùåãî áàðà
extern bool colorRB_RG=true;  //öâåò ãèñòîãðàììû. true- êðàñíûé ñèíèé.false- êðàñíûé çåëåíûé.
extern bool invertColGist=false;//èíâåðò. öâåòà ãèñòîãðàììû
extern bool  brightness_gradation=true; 
//========èñïîëüçóåìûå âàë.ïàðû =======================================
// ìîæíî óäàëÿòü è äîáàâëÿòü ëþáûå âàëþòíûå ïàðû , â ëþáîé ïîñëåäîâàòåëüíîñòè .
// Â  currency_pair[] è â count_curr äîëæíî áûòü óêàçàíî 
// êîë-âî èìåþùèõñÿ â ìàññèâå âàëþòíûõ ïàð. 
string currency_pair[26]= {"EURUSD","GBPUSD","USDJPY","USDCHF","EURGBP","EURJPY","EURCHF",
 "EURAUD","GBPJPY","GBPCHF","AUDJPY","NZDJPY","NZDCHF","AUDNZD","CHFJPY","EURCAD",
 "AUDCAD","CADJPY","EURNZD","GBPAUD","GBPCAD","AUDCHF","CADCHF","AUDUSD","USDCAD","NZDUSD"};
int count_curr=26; // êîëè÷åñòâî âàë.ïàð 
//=====================================================================
string mas_pair[7]; 
int mas_flags [7]; 
string mas_currency[7]; 
int total; 
//---------------------------------------------------------------------   
int line_x[5]={7,18,28,94,107};// êîîðäèíàòû ãîðèçîíò.ëèíèé
int TF;
color color_currency;
//=====================================================================
int init()
  {
//--------------âàëþòíûå ïàðû------------------------------------------ 
    for(int i=0;i<count_curr;i++)
     { 
            if(StringSubstr(currency_pair[i],0,3)==symbol) 
                { mas_pair[total]=currency_pair[i];
                    mas_flags[total]=(-1);
                      mas_currency[total]=StringSubstr(currency_pair[i],3,0);
                        total+=1;    }
           if(StringSubstr(currency_pair[i],3,0)==symbol) 
                { mas_pair[total]=currency_pair[i];
                    mas_flags[total]=1;
                      mas_currency[total]=StringSubstr(currency_pair[i],0,3); 
                        total+=1;    }    
                                         }
 //--------------- ïåðèîä --------------------------------------------
      if(period_=="M1")TF=1;
   else {
      if(period_=="M5")TF=5;
   else {
     if(period_=="M15")TF=15;
   else {
     if(period_=="M30")TF=30;
   else {
     if(period_=="H1")TF=60;
   else {
     if(period_=="H4")TF=240;
   else {
     if(period_=="D1")TF=1440;
   else {
     if(period_=="W1")TF=10080;
   else {
     if(period_=="MN")TF=43200;
   else {
     if(period_=="0")TF=0;
   else {  Alert("Îøèáêà óñòàíîâêè ïåðèîäà:  "+period_);
                     }}}}}}}}}}
 //-------------------------------------------------------------------  
   // ñîçäàòü ãîðèçîíò. ëèíèè
  for(int x=0;x<5;x++)  {
   ObjectCreate(symbol+"line-x"+x+period_, OBJ_LABEL, 0, 0, 0);
   ObjectSet(symbol+"line-x"+x+period_, OBJPROP_CORNER, 3);
   ObjectSet(symbol+"line-x"+x+period_, OBJPROP_XDISTANCE,X_DISTANCE+10);
   ObjectSet(symbol+"line-x"+x+period_, OBJPROP_YDISTANCE, Y_DISTANCE+line_x[x]);
   ObjectSetText(symbol+"line-x"+x+period_,"_____________________",7,"Verdana",border_color); 
                     }
 //---------------------------------------------------------------------
   // ñîçäàòü âåðòèêàë. ëèíèè
   int c,y,r;
      for(c=0;c<2;c++) {
        if(c==1)r=129;
      for( y=0;y<5;y++)  {
   ObjectCreate(y+symbol+"line-y"+c+period_, OBJ_LABEL, 0, 0, 0);
   ObjectSet(y+symbol+"line-y"+c+period_, OBJPROP_CORNER, 3);
   ObjectSet(y+symbol+"line-y"+c+period_, OBJPROP_XDISTANCE,X_DISTANCE+3+r);
   ObjectSet(y+symbol+"line-y"+c+period_, OBJPROP_YDISTANCE, Y_DISTANCE+7+y*19);
   ObjectSetText(y+symbol+"line-y"+c+period_,"|",19,"Verdana",border_color); }
                     } 
  //--------------------------------------------------------------------- 
  // òåêñò                     
   ObjectCreate(symbol+"text"+period_, OBJ_LABEL, 0, 0, 0);
   ObjectSet(symbol+"text"+period_, OBJPROP_CORNER, 3);
   ObjectSet(symbol+"text"+period_, OBJPROP_XDISTANCE,X_DISTANCE+32);
   ObjectSet(symbol+"text"+period_, OBJPROP_YDISTANCE, Y_DISTANCE+96); 
   ObjectSetText(symbol+"text"+period_,symbol+"    Period-"+period_,7,"Verdana",text_color);                                                          
   return(0);
  }                               
//=======================================================================
int deinit()
  { 
    int n,m;
      for( n=0;n<7;n++)  // óäàëèòü âñå îá'åêòû 
     {  
       ObjectDelete(symbol+"perc"+n+period_);
       ObjectDelete(symbol+"curr"+n+period_);
       if(n<5) ObjectDelete(symbol+"line-x"+n+period_);  
  //------       
      for( m=0;m<=20;m++)
     {
       ObjectDelete(m+symbol+"gist"+n+period_);
       if(m<2 && n<5) ObjectDelete(n+symbol+"line-y"+m+period_);
                               } } 
       ObjectDelete(symbol+"text"+period_);                        
   return(0);
  }
//======================================================================
int start()
  {
  int i,w,z;
  double percent,bid,open,high,low; 
  int flag,count;  
  for( z=0;z<total;z++)  
    { 
      for( w=0;w<=20;w++) {
       ObjectDelete(w+symbol+"gist"+z+period_); //óäàëèòü ãèñòîãðàììó ïåðåä îáíîâëåíèåì
                              }  
   percent=0; 
   flag=0;
   count=0;           
//---------------------------------------------------------------------
     // îáíîâèòü äàííûå
    RefreshRates();
    bid=MarketInfo(mas_pair[z], MODE_BID );
    open=iOpen(mas_pair[z],TF,0);
    high=iHigh(mas_pair[z],TF,0);
    low=iLow(mas_pair[z],TF,0);   
//---------------------------------------------------------------------  
    // ðàñ÷åò ïðîöåíòîâ
   if(bid>open && high!=open && bid>0)   
       { percent=(bid-open)/(high-open)*100; // ïðîö.ðàñòóùåãî áàðà
         flag=1;
         count=NormalizeDouble(percent/5,0); }
       else {
         if(bid<open && low!=open && bid>0)
       { percent=(open-bid)/(open-low)*100; // ïðîö.ïàäàþùåãî áàðà
         flag=(-1);  
         count=NormalizeDouble(percent/5,0); } }
//-------------------------------------------------------------------- 
         // ïðè ïåðåêëþ÷åíèè ÒÔ//
    if(percent>100)percent=100; 
    if(count>20)count=20; 
 //-------------------------------------------------------------------     
         // èíâåðò.öâåòà ãèñòîãðàììû
   if(invertColGist) flag=flag*mas_flags[z]*(-1);  
      else
         flag=flag*mas_flags[z];   
//-------------------------------------------------------------------- 
     //-- öâåò âàëþòû è ïðîöåíòîâ
  if(flag==1)color_currency=CurrCol_up;
    else {
    if(flag==(-1))color_currency=CurrCol_down;
    else {
          color_currency=text_color;  }}
//--------------------------------------------------------------------
 if(bid>0)  {           //åñëè âàë. ïàðà åñòü â òåðìèíàëå
  // ïðîöåíòû     
   ObjectCreate(symbol+"perc"+z+period_, OBJ_LABEL, 0, 0, 0);
   ObjectSet(symbol+"perc"+z+period_, OBJPROP_CORNER, 3);
   ObjectSet(symbol+"perc"+z+period_, OBJPROP_XDISTANCE,X_DISTANCE+121-z*18);
   ObjectSet(symbol+"perc"+z+period_, OBJPROP_YDISTANCE, Y_DISTANCE+20);
   ObjectSetText(symbol+"perc"+z+period_,DoubleToStr(percent,0),5,"Verdana",color_currency); 
                   }
//-------------------------------------------------------------------- 
  // âàëþòà   
   ObjectCreate(symbol+"curr"+z+period_, OBJ_LABEL, 0, 0, 0);
   ObjectSet(symbol+"curr"+z+period_, OBJPROP_CORNER, 3);
   ObjectSet(symbol+"curr"+z+period_, OBJPROP_XDISTANCE,X_DISTANCE+119-z*18);
   ObjectSet(symbol+"curr"+z+period_, OBJPROP_YDISTANCE, Y_DISTANCE+10);
   ObjectSetText(symbol+"curr"+z+period_,mas_currency[z],5,"Verdana",color_currency);         
//--------------------------------------------------------------------- 
  // ãèñòîãðàììà 
     for( i=0;i<=count;i++) {  
   ObjectCreate(i+symbol+"gist"+z+period_, OBJ_LABEL, 0, 0, 0);
   ObjectSet(i+symbol+"gist"+z+period_, OBJPROP_CORNER, 3);
   ObjectSet(i+symbol+"gist"+z+period_, OBJPROP_XDISTANCE,X_DISTANCE+115-z*18);
   ObjectSet(i+symbol+"gist"+z+period_, OBJPROP_YDISTANCE, Y_DISTANCE+3+i*3);
   ObjectSetText(i+symbol+"gist"+z+period_,"-",40,"Verdana",f_Color(i,flag));  
                       } }  
//---------------------------------------------------------------------                     
   return(0);
  }
//=====================================================================
 
//============ öâåò ñèíèé êðàñíûé çåëåíûé==============================      
color f_Color (int num,int flag) 
{   color col_R,col_B,col,col_G;
if(!brightness_gradation ) {
 if(flag==1 && colorRB_RG)col=Blue;
     else {
      if(flag==1 && !colorRB_RG)col=Green;
       else {
        if(flag==(-1)) col=Red; 
         else {
           col=text_color;  }}}  }
     else {      
  switch(num) 
  { case 0: col_B=C'0,0,255';col_R=C'255,0,0';col_G=C'0,90,0';break; 
    case 1: col_B=C'0,10,255';col_R=C'255,10,0';col_G=C'0,100,0';break; 
    case 2: col_B=C'0,20,255';col_R=C'255,20,0';col_G=C'0,110,0';break; 
    case 3: col_B=C'0,30,255';col_R=C'255,30,0';col_G=C'0,120,0';break; 
    case 4: col_B=C'0,40,255';col_R=C'255,40,0';col_G=C'0,130,0';break; 
    case 5: col_B=C'0,50,255';col_R=C'255,50,0';col_G=C'0,140,0';break; 
    case 6: col_B=C'0,60,255';col_R=C'255,60,0';col_G=C'0,150,0';break; 
    case 7: col_B=C'0,70,255';col_R=C'255,70,0';col_G=C'0,155,0';break; 
    case 8: col_B=C'0,80,255';col_R=C'255,80,0';col_G=C'0,160,0';break; 
    case 9: col_B=C'0,90,255';col_R=C'255,90,0';col_G=C'0,165,0';break; 
    case 10: col_B=C'0,100,255';col_R=C'255,100,0';col_G=C'0,170,0';break; 
    case 11: col_B=C'0,110,255';col_R=C'255,110,0';col_G=C'0,175,0';break; 
    case 12: col_B=C'0,120,255';col_R=C'255,120,0';col_G=C'0,180,0';break; 
    case 13: col_B=C'0,130,255';col_R=C'255,130,0';col_G=C'0,185,0';break; 
    case 14: col_B=C'0,140,255';col_R=C'255,140,0';col_G=C'0,190,0';break; 
    case 15: col_B=C'0,150,255';col_R=C'255,150,0';col_G=C'0,195,0';break; 
    case 16: col_B=C'0,160,255';col_R=C'255,160,0';col_G=C'0,200,0';break; 
    case 17: col_B=C'0,170,255';col_R=C'255,170,0';col_G=C'0,205,0';break; 
    case 18: col_B=C'0,180,255';col_R=C'255,180,0';col_G=C'0,210,0';break; 
    case 19: col_B=C'0,190,255';col_R=C'255,190,0';col_G=C'0,215,0';break; 
    case 20: col_B=C'0,200,255';col_R=C'255,200,0';col_G=C'0,220,0';break; 
   
    } 
    if(flag==1 && colorRB_RG)col=col_B;
     else {
      if(flag==1 && !colorRB_RG)col=col_G;
       else {
        if(flag==(-1)) col=col_R; 
         else {
           col=text_color;  }}}  }
  return(col); }  
             
            
            
            
Comments