Canal de regresión lineal - página 5

 
Dmitry Fedoseev:

Aquí hay una ETS acelerada. Pero sólo parece una ETS, no una enfermedad de transmisión sexual.

Gracias. Tratando de averiguar lo que se calcula en la fuente.

 
Dmitry Fedoseev:

1. Para conseguir esta velocidad, basta con limitar los cálculos a una ventana visible. No veo el milagro.

2. Ni siquiera sé qué es mejor, que me engañen o que no me entiendan.

3. Sigo sin entender lo de que x e y no son líneas rectas.

Piensa lo que quieras, Thomas el incrédulo.

No me importa.

y=f(x) es una línea recta - eso está claro
pero x e y son líneas rectas - eso es ....
Me sorprendería que alguien, aparte de ti, lo entendiera.

 
fxsaber:

Gracias por la animación. Por desgracia, no sé qué se utiliza como canal de prueba.

Desviación RMS multiplicada por 1,41. Doy una garantía. Si alguien lo refuta (es fácil hacerlo si no lo es), publicaré el código.
más exactamente la raíz de la desviación RMS multiplicada por el coeficiente de anchura del canal ( 1,41 en este gif).

 
fxsaber:

Gracias. Tratando de averiguar lo que se está calculando en la fuente.

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:

Desviación RMS multiplicada por 1,41. Lo garantizo. Si alguien lo refuta (es fácil hacerlo si no es así), publicaré el código.
Más concretamente, la raíz de la desviación RMS multiplicada por el coeficiente de anchura del canal ( 1,41 en este gif).

Tomé el canal de objetos estándar y da unos valores de anchura erróneos.


 
Dmitry Fedoseev:

He captado la idea, ¡gracias! Ahora tenemos que analizar cómo afectará este método de cálculo de la anchura al resultado.

 
Nikolai Semko:

Desviación estándar multiplicada por 1,41. Lo garantizo. Si alguien lo desmiente (fácil de hacer si no lo hace), publicaré el código.
más exactamente la raíz de la desviación RMS multiplicada por el factor de anchura del canal ( 1,41 en este gif).

"Más precisamente la raíz del RMS" - es decir, el indicador std? De forma sencilla y sin trucos: ¿el ancho del canal debe ser igual al valor del indicador std multiplicado por 1,41?

Yo no lo veo así. Parece más bien que me equivoqué en el cálculo de la norma.

Dame un algoritmo exacto paso a paso sobre cómo comprobar y asegurarse. Hasta ahora, incluso esto, una forma poco convincente de probar, no funciona.

 

No lo entiendo. Se supone que el centro de la LR es el mismo que el de la MA. En MT5 no existe tal coincidencia ni siquiera con el LR estándar.

Y el indicador probado no coincide con la MA también.

 
fxsaber:

No lo entiendo. Se supone que el centro de la LR es el mismo que el de la MA. En MT5 no existe tal coincidencia ni siquiera con el LR estándar.

Y el indicador probado tampoco coincide con la MA.

No debe coincidir con una MA estándar.

 
Dmitry Fedoseev:

No debe coincidir con la MA normal.

El punto que se encuentra exactamente en el centro del segmento LR es la media de los puntos originales. Esto se deduce de la definición de LR.