Не работает цикл (и цикл в цикле) - страница 2

 
uniface:

Это код вычисления кси-квадрата по формуле Пирсона, но со смыслом чтобы в тестере стратегий тоже работал. И в тестере по он работает отлично, но в прошлое по циклу не рисует и линия т-критерия с нулевого бара будет отображаться не правильно, поэтому нужно под цикл пилить... Вот полный цикл доделал. Также возможно проблема в накоплении буферов цикла, но по другому я не умею...

for (int i = 200; i > 0; i--)
  {

        x = 0;
        x_buf = 0;
        y = 0;
        y_buf = 0;
        MOxy = 0;
        MOxy_buf = 0;
        MOx2 = 0;
        MOx_buf2 = 0;
        MOy2 = 0;
        MOy_buf2 = 0;
        
          for (int n = CountedBars; n > 0; n--)
          {
              x = x_buf + iClose(Symbol1,NULL,n+i);
              x_buf = x;
          
              y = y_buf + iClose(Symbol2,NULL,n+i);
              y_buf = y;
          
          }

          middle_x = x / CountedBars;
          middle_y = y / CountedBars;

          for (int k = CountedBars; k > 0; k--)
          {
              MOxy = MOxy_buf + ((iClose(Symbol1,NULL,k+i) - middle_x) * (iClose(Symbol2,NULL,k+i) - middle_y));
              MOxy_buf = MOxy;
          
              MOx2 = MOx_buf2 + ((iClose(Symbol1,NULL,k+i) - middle_x) * (iClose(Symbol1,NULL,k+i) - middle_x));
              MOx_buf2 = MOx2;
          
              MOy2 = MOy_buf2 + ((iClose(Symbol2,NULL,k+i) - middle_y) * (iClose(Symbol2,NULL,k+i) - middle_y));
              MOy_buf2 = MOy2;
          }

      pear_dub = MOxy / MathSqrt(MOx2 * MOy2);
      if(t_krit == 0) t_krit = pear_dub;
      t_krit = pear_dub * 0.01 + t_krit * (1 - 0.01);
      
      Pearson[i] = pear_dub;
      T_Kriteriy[i] = t_krit; // Если он больше значения корреляции, значит значение является статистически верным  
 
  }

Что-то типа такого.

 
Dmitry Fedoseev:

Что-то типа такого.

Спасибо братан, все работает!!!