Перерисовывание индикатора "обратно"

 

Написал индикатор который считает не с лева на право, а с право на лево... экспериментирую просто :)

Так вот, при появлении нового бара хочу заставить весь индикатор перерисоваться, как можно это дело делать из самого индикатора програмно?

В массив данных индикатора я меняю значения но на экране они не отображаются, приходиться вручную либо :

- банально снять и прикрепить индикатор заново

- перекомпилировать сам индикатор

- нажать на свойства, и поменять какой нибудь входной параметр


И если програмно никак не предусмотренно, можно для этого применить какойнибудь "скрипт" ?

 
По сути в некоторой степени зависит от самого индикатора. В любом случае добавьте значение нового индикатора в рассчёт(и пересчёт) индикатора. Таким образом искомые данные будут постоянно меняться.
 
sayfuji >>:
По сути в некоторой степени зависит от самого индикатора. В любом случае добавьте значение нового индикатора в рассчёт(и пересчёт) индикатора. Таким образом искомые данные будут постоянно меняться.

Это значит вызывать сам себя через iCustom()? ... кажется я понял.. сейчас попробую

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

примеры справоналево и слеванаправо

#property indicator_chart_window
#property indicator_buffers 1
int limit;
double Buffer[];
//+------------------------------------------------------------------+ 
int init() 
{
   limit=WindowFirstVisibleBar();

   SetIndexBuffer(0,Buffer);

   return(0); 
} 
//+------------------------------------------------------------------+ 
int start() 
{
   for(int i=0; i<limit; i++)
   {
      Buffer[i]=........

   }

   limit=1;
   return(0); 
} 
//+------------------------------------------------------------------+ 

#property indicator_chart_window
#property indicator_buffers 1
int limit;
int limitBars=0;
double Buffer[];
//+------------------------------------------------------------------+ 
int init() 
{
   SetIndexBuffer(0,Buffer);

   return(0); 
} 
//+------------------------------------------------------------------+ 
int start()
{
   if(limitBars<Bars) limit=WindowFirstVisibleBar();

   for(int i=limit; i>=0; i--)
   {
      Buffer[i]=........

   }

      limitBars=Bars;
      limit=0;
      return(0);
}
//+------------------------------------------------------------------+ 
Причина обращения: