Канал линейной регрессии - страница 5

 
Dmitry Fedoseev:

Вот ускоренный STD. Но он только похож на STD, но не STD.

Спасибо! Пытаюсь въехать, что вычисляется в исходнике.

 
Dmitry Fedoseev:

1. Для получения такого быстродействия достаточно ограничить расчеты видимым окном. Не вижу чуда.

2. Даже и не знаю, что лучше, когда обманывают или когда не понимают.

3. Про x и y не являющиеся прямыми линиями так и не понято?

думайте что хотите, Фома неверующий.

Мне ровно.

y=f(x) - прямая линия - это понятно
а вот x и y - прямые линии  - это ....
Я удивлюсь, если кроме Вас кто-то это понимает.

 
fxsaber:

Спасибо за анимацию. К сожалению, не знаю, что используется в качестве проверочного канала.

среднеквадратичное отклонение, умноженное на  1.41. Даю гарантию. Если кто-то опровергнет(это сделать легко, если это не так), то выложу код.
точнее корень от СКО, умноженное на коэф. ширины канала  ( 1.41 в данной гифке). 

 
fxsaber:

Спасибо! Пытаюсь въехать, что вычисляется в исходнике.

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[])
  {

   int start;
   if(prev_calculated==0){
      start=period;
      double ms=0;
      for(int i=0;i<period;i++){
         ms+=close[i];
      }
      ma[period-1]=ms/period;
   }
   else{
      start=prev_calculated-1;
   }

   for(int i=start;i<rates_total;i++){
      
      ma[i]=ma[i-1]+(-close[i-period]+close[i])/period;
      
      double sm=0;
      for(int j=i-period+1;j<=i;j++){
         sm+=MathPow(close[j]-ma[i],2); // вот это правильная стд, ее не ускорить, а если ma[i] заменить на ma[j], то можно ускорить, что и сделано
      }
      Label1Buffer[i]=MathSqrt(sm/period);
   }

   return(rates_total);
  }
 
Nikolai Semko:

среднеквадратичное отклонение, умноженное на  1.41. Даю гарантию. Если кто-то опровергнет(это сделать легко, если это не так), то выложу код.
точнее корень от СКО, умноженное на коэф. ширины канала  ( 1.41 в данной гифке). 

Взял штатный объект-канал, а он какие-то левые значения ширины выдает.


 
Dmitry Fedoseev:

Понял идею, спасибо! Надо теперь анализировать, как будет влиять на результат этот метод расчета ширины.

 
Nikolai Semko:

среднеквадратичное отклонение, умноженное на  1.41. Даю гарантию. Если кто-то опровергнет(это сделать легко, если это не так), то выложу код.
точнее корень от СКО, умноженное на коэф. ширины канала  ( 1.41 в данной гифке). 

"точнее корень от СКО" - то есть индикатор std? Совсем просто и без хитростей -  ширина канала должна равнять значению индикатора std помноженному на 1.41?

Не наблюдаю такого. Больше похоже на мой нeправильный расчет std. 

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

 

Что-то не понимаю. У ЛР середина должна совпадать с МАшкой. Что-то в MT5 даже у штатной ЛР такого совпадения не наблюдается совсем.

Ну и проверяемый индикатор так же не совпадает с МАшкой.

 
fxsaber:

Что-то не понимаю. У ЛР середина должна совпадать с МАшкой. Что-то в MT5 даже у штатной ЛР такого совпадения не наблюдается совсем.

Ну и проверяемый индикатор так же не совпадает с МАшкой.

 С обычной МА не должна совпадать.

 
Dmitry Fedoseev:

 С обычной МА не должна совпадать.

Точка, которая находится ровно по середине отрезка ЛР, является средним значением исходных точек. Это из определения ЛР следует.