All_against_all_v3

Price Data Components
Series array that contains open prices of each barSeries array that contains the highest prices of each barSeries array that contains the lowest prices of each bar
Miscellaneous
It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
All_against_all_v3
//+------------------------------------------------------------------+
//|                                           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

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 ---