Нужна не большая помощь

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
bar Vladimir
480
bar Vladimir  

Здравствуйте!

У меня вот какой вопрос:

Я скачал индикатор на этом сайте  All against all.v4 mg4 в котором хочу сделать небольшое дополнение: чтобы на текущем ТФ к примеру 1Н видеть данные дневного или другого ТФ, чтобы в параметрах можно было выбирать любой ТФ. Код индикатора прикладываю.

//+------------------------------------------------------------------+
//|                                           All against all.v4 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=false;//градации яркости
//========используемые вал.пары =======================================
// можно удалять и добавлять любые валютные пары , в любой последовательности .
// В  currency_pair[] и в  count_curr должно быть указано 
// кол-во имеющихся в массиве валютных пар. 
string currency_pair[6]= {"EURUSD","GBPUSD","USDCHF","EURGBP","EURCHF","GBPCHF"};
int count_curr=6; // количество вал.пар 
//=====================================================================
string mas_pair[7]; 
int mas_flags [7]; 
string mas_currency[7]; 
int total; 
//---------------------------------------------------------------------   
int line_x[5]={3,13,23,67,80};// координаты горизонт.линий
int TF;
color color_currency,col_00;
//=====================================================================
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++)  {
  if(x!=3)col_00=border_color;
  else
       col_00=text_color;
   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+7);
   ObjectSet(symbol+"line-x"+x+period_, OBJPROP_YDISTANCE, Y_DISTANCE+line_x[x]);
   ObjectSetText(symbol+"line-x"+x+period_,"_________________",7,"Verdana",col_00); 
                     }
 //---------------------------------------------------------------------
   // создать вертикал. линии
   int c,y,r;
      for(c=0;c<2;c++) {
        if(c==1)r=103;
      for( y=0;y<4;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+1+r);
   ObjectSet(y+symbol+"line-y"+c+period_, OBJPROP_YDISTANCE, Y_DISTANCE+3+y*19);
   ObjectSetText(y+symbol+"line-y"+c+period_,"|",16,"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+38);
   ObjectSet(symbol+"text"+period_, OBJPROP_YDISTANCE, Y_DISTANCE+68); 
   ObjectSetText(symbol+"text"+period_,symbol+"_"+period_,6,"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<4) 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+94-z*14);
   ObjectSet(symbol+"perc"+z+period_, OBJPROP_YDISTANCE, Y_DISTANCE+15);
   ObjectSetText(symbol+"perc"+z+period_,DoubleToStr(percent,0),1,"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+94-z*14);
   ObjectSet(symbol+"curr"+z+period_, OBJPROP_YDISTANCE, Y_DISTANCE+5);
   ObjectSetText(symbol+"curr"+z+period_,mas_currency[z],4,"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+91-z*14);
   ObjectSet(i+symbol+"gist"+z+period_, OBJPROP_YDISTANCE, Y_DISTANCE+3+i*2);
   ObjectSetText(i+symbol+"gist"+z+period_,"-",35,"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); }  
 //------------------------------------------------------------------------ 
Igor Zakharov
6659
Igor Zakharov  

по входным данным видно, что эта опция есть.

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- период текущего графика.
bar Vladimir
480
bar Vladimir  
bar Vladimir:

Здравствуйте!

У меня вот какой вопрос:

Я скачал индикатор на этом сайте  All against all.v4 mg4 в котором хочу сделать небольшое дополнение: чтобы на текущем ТФ к примеру 1Н видеть данные дневного или другого ТФ, чтобы в параметрах можно было выбирать любой ТФ. Код индикатора прикладываю.

Есть вариант(картинку прикладываю), но чтобы конкретно на ТФ 1Н поставить 4Н или D, W, такой возможности нет. Я пробовал из этого списка оставлять мне нужное, не получается.

bar Vladimir
480
bar Vladimir  
bar Vladimir:

Есть вариант(картинку прикладываю), но чтобы конкретно на ТФ 1Н поставить 4Н или D, W, такой возможности нет. Я пробовал из этого списка оставлять мне нужное, не получается.

Извиняюсь, разобрался, отдельную графу _period не учёл

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий