Ограничить отрисовку индикатора

 

Приветствую. Канальный индикатор на основе МАшки, хочу ограничить количество отрисовываемых значений, например только на 50 барах, остальные не нужны, мешают.

Сделал так, что ненужные значения приравниваю к 0, но тогда возникает вот эта вертикальная линия. Причем для построения самой MA подобной линии не возникает, только для дополнительных.

Как-то может по другому можно реализовать, чтобы не было этой линии? Через PlotIndexSetInteger(0,PLOT_DRAW_BEGIN, ) никак нельзя? Что-то пробовал, не получилось


   #define INDICATOR_EMPTY_VALUE 0.0
      
   int N = 30;
   int to_copy=rates_total-prev_calculated;
   if(to_copy>1 && rates_total>sMA_Period) 
      {
      ArrayInitialize(ind_buffer,INDICATOR_EMPTY_VALUE); // буфер для МА
      ArrayInitialize(band_buf,INDICATOR_EMPTY_VALUE); // буфер для верхней полосы
      ArrayInitialize(band_buf2,INDICATOR_EMPTY_VALUE); // буфер для нижней полосы
      CopyBuffer(sMA_Handle,0,0,N,ind_buffer);
      
      for(int bar=0; bar<N && !IsStopped(); bar++)
      {
      band_buf[bar] = ind_buffer[bar]+ATRBuffer[0]*2;
      band_buf2[bar] = ind_buffer[bar]-ATRBuffer[0]*2;
      }
      return(rates_total);
     }
   else 
   CopyBuffer(sMA_Handle,0,0,1,ind_buffer);
   band_buf[0] = ind_buffer[0]+ATRBuffer[0]*2;
   band_buf2[0] = ind_buffer[0]-ATRBuffer[0]*
2 ;
   // тут обнуляю ненужное значение
   band_buf2[N] = INDICATOR_EMPTY_VALUE;
   band_buf[N] = INDICATOR_EMPTY_VALUE;
   ind_buffer[N] = INDICATOR_EMPTY_VALUE;
   return(rates_total);
Файлы:
23.png  17 kb
 
deerhunter22:

Приветствую. Канальный индикатор на основе МАшки, хочу ограничить количество отрисовываемых значений, например только на 50 барах, остальные не нужны, мешают.

Сделал так, что ненужные значения приравниваю к 0, но тогда возникает вот эта вертикальная линия. Причем для построения самой MA подобной линии не возникает, только для дополнительных.

Как-то может по другому можно реализовать, чтобы не было этой линии? Через PlotIndexSetInteger(0,PLOT_DRAW_BEGIN, ) никак нельзя? Что-то пробовал, не получилось


Нужно указать "пустое значение" для буфера индикатора. Если хотите, чтобы пустым значением был 0, то задайте его для соответствующего буфера:

PlotIndexSetDouble(<buffer index>, PLOT_EMPTY_VALUE, 0.0);