Статические переменные в индикаторе

 

В индикаторе используются static  статические переменные, в результате индикатор работает только в реале, по истории не строит график.

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

Каким способом можно решить эту задачу?

 

Дык.

При чём здесь статические переменные

 

При том что именно из за них так работает индикатор.

По другому реализовать у меня не получилось.

Вот пример кода.

   double st1=iStochastic(NULL,StochTF,StochKperiod,StochDperiod,StochSlowing,ModeAverage,1,MODE_MAIN,i+1); // Значение Stochastic на предыдущем баре

      static double StochOverbought=0;
      static double StochOversold=0;
      static double StochMedian=0;


      if(st1>80)
       {StochOverbought=1; StochOversold=1}
      if(st1<20)
       {StochOversold=1; StochOverbought=0}

      if(st1>50)
       {StochMedian=1;}
      else
       {StochMedian=0;}

      if(StochOverbought=1 && StochMedian=0) 
      {Buf_0[i]=1}

      if(StochOversold=1 && StochMedian=1) 
      {Buf_1[i]=1}


 
varyar84:

В индикаторе используются static  статические переменные, в результате индикатор работает только в реале, по истории не строит график.

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

Каким способом можно решить эту задачу?

Действительно, причем здесь статические переменные?
Сначала исправьте ошибки в коде, а потом уж и на форум можно вылезать.
 
prorab:
Действительно, причем здесь статические переменные?
Сначала исправьте ошибки в коде, а потом уж и на форум можно вылезать.

Я привел упрощенный пример моего кода.

Сори за ошибки, поторопился.

 

   double st1=iStochastic(NULL,StochTF,StochKperiod,StochDperiod,StochSlowing,ModeAverage,1,MODE_MAIN,i+1); // Значение Stochastic на предыдущем баре

      static double StochOverbought=0;
      static double StochOversold=0;
      static double StochMedian=0;


      if(st1>80)
       {StochOverbought=1; StochOversold=1;}
      if(st1<20)
       {StochOversold=1; StochOverbought=0;}

      if(st1>50)
       {StochMedian=1;}
      else
       {StochMedian=0;}

      if(StochOverbought==1 && StochMedian==0) 
      {Buf_0[i]=1;}

      if(StochOversold==1 && StochMedian==1) 
      {Buf_1[i]=1;}
 
varyar84:

Я привел упрощенный пример моего кода.

Сори за ошибки, поторопился.

 

 

 

1) 

if(st1>80)

 {StochOverbought=1; StochOversold=1;}

???

2)  

 static double StochOverbought=0;

   static double StochOversold=0;

 static double StochMedian=0;

Зачем заводить статик если ты их обнуляешь????????????? 

 
varyar84:

Я привел упрощенный пример моего кода.

Сори за ошибки, поторопился.

В упрощенном примере одну ошибку (1) вам показали.
Чтобы найти остальные, надо видеть весь код.