Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Знаете ли вы, что в MQL5 появилась обработка событий?
Саша
487
Саша 2013.02.21 15:09 

Подскажите как в индикаторе DRAW_ZIGZAG не отрисовывать (сделать прозрачными) вертикальные линии, или это невозможно?

#property copyright "2013 OniNePriletyat"   
#property link      "http://www..."           
#property version   "13.1"                    
#property indicator_chart_window                 
#property indicator_buffers 2            
#property indicator_plots 1                 
#property indicator_label1 "Z"            
#property indicator_type1 DRAW_ZIGZAG  
#property indicator_color1 Maroon        
#property indicator_style1 STYLE_SOLID 
#property indicator_width1 1           
double ZigZagBuffer11[];           
double ZigZagBuffer12[];           

int OnInit()
  {
   SetIndexBuffer(0,ZigZagBuffer11,INDICATOR_DATA);
   SetIndexBuffer(1,ZigZagBuffer12,INDICATOR_DATA); 
   PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0);     
   return(0);
  }

int OnCalculate(const int rates_total,            
                const int prev_calculated,    
                const datetime &time[],                     
                const double &open[],                       
                const double &high[],                       
                const double &low[],                        
                const double &close[],                      
                const long &tick_volume[],                  
                const long &volume[],                       
                const int &spread[])                        
  {
   MqlDateTime dt;                             
   double hi=NormalizeDouble(0.0,_Digits);    
   int D1=370;                     
   int D2=370;                       
   int start=0;               
   TimeToStruct(TimeCurrent(),dt);  
   D2=dt.day_of_week;               
   for(int i=0; i<rates_total; i++) 
     {
      TimeToStruct(time[i],dt);                         
      if(dt.day_of_week!=D1)
        {
         D1=dt.day_of_week;
         if(start!=0) 
           {
            ZigZagBuffer11[start]=hi; 
            ZigZagBuffer12[i]=hi; 
           }
         hi=NormalizeDouble(high[i],_Digits);
         start=i;
        }
      if(NormalizeDouble(high[i],_Digits)>hi) hi=NormalizeDouble(high[i],_Digits);
     }
   return(rates_total);
  }
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
Alexander Bereznyak
20997
Alexander Bereznyak 2013.02.25 10:10  

Линии отрисовываются через буфер, поэтому убрать их не получиться.
Vladislav Andruschenko
89729
Vladislav Andruschenko 2013.02.25 11:09  

Легко - правой кнопкой на графике - свойства, - отображать периоды. 

 

 

Andrew Petras
4658
Andrew Petras 2013.02.25 12:07  
OniNePriletyat:

Подскажите как в индикаторе DRAW_ZIGZAG не отрисовывать (сделать прозрачными) вертикальные линии, или это невозможно?

CHART_SHOW_PERIOD_SEP

Anatoli Kazharski
55547
Anatoli Kazharski 2013.02.25 12:20  
Vladon:

Легко - правой кнопкой на графике - свойства, - отображать периоды. 

Silent:

Вы уверены, что речь идёт о разделителях периодов? )
OniNePriletyat:

Подскажите как в индикаторе DRAW_ZIGZAG не отрисовывать (сделать прозрачными) вертикальные линии, или это невозможно?

А Вам обязательно нужен DRAW_ZIGZAG ? DRAW_ARROW с кодом 6 не подойдёт для отрисовки? 
Pavel Tsatsenko
836
Pavel Tsatsenko 2013.02.27 15:44  
OniNePriletyat:

Подскажите как в индикаторе DRAW_ZIGZAG не отрисовывать (сделать прозрачными) вертикальные линии, или это невозможно? 

 Можно использовать два буфера и заполнять поочередно. Первый данными, второй пустым значением, затем наоборот.

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