Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Yura, quieres contar el RMS más rápido que la función estándar. ¿Y si funciona? Para una sola llamada debería ser más rápido que cualquier código escrito en el lenguaje, pero para la masa (cálculo de todo el gráfico) es posible ahorrar en costes.
Si hablamos de sco para la regresión lineal, se calcula analíticamente en un paso mediante la fórmula
SKO^2=D[Y] - D[X]*A^2,
donde D[Y]=M[Y^2]-M[Y]^2, D[X]=M[X^2]-M[X]^2, y A es el coeficiente de regresión lineal Y=A*X+B
Así que la recurrencia no es necesaria aquí.
PS Y las sumas cruzadas se reducen a cero de forma explícita y puramente analítica. El tamaño de la muestra no tiene nada que ver.
Sigue habiendo un error 2008.02.15 17:07:22 2007.01.11 12:15 OTF_1 EURUSD,M1: argumento negativo para la función MathSqrt
Por eso lo único que se me ocurre, por si acaso, es ejecutar lambda=0,0;
y/o MathSqrt(MathAbs(lambda*lambda*lambda*lambda)) para eliminar este error para siempre.
//---- bucle principal
doble alfa, lambda=0,0 ;
//********************************************************************************************
for (i = límite; i >= 0; i--)
{
Price[i]=(High[i]+Low[i])/2.0;
}
for (i = límite; i >= 0; i--)
{
Value1[i]=SC*(Price[i]-Price[i+1])+4*SC*Value1[i+1];
Value2[i]=SC*(High[i]-Low[i])+4*SC*Value2[i+1];
}
for (i = límite; i >= 0; i--)
{
if(Valor2[i]< Punto)Valor2[i]= Punto;si no lambda=MathAbs(Valor1[i]/Valor2[i]);
alfa=(-lambda*lambda+ MathSqrt(lambda*lambda*lambda) )/8,0;
Value3[i]=alpha*Price[i]+(1.0-alpha)*Value3[i+1];
}
//********************************************************************************************
P.D. En general, no tiene sentido. Este error debe estar apareciendo en su probador.
P.P.S. Lo más probable es que la variable doble lambda; se haya inicializado por defecto con una basura negativa muy pequeña. Entonces la expresión doble lambda=0,0; debería ayudar.
Slava nos enseña que nunca hay que trabajar por defecto y que no se aprende.
Sigue habiendo un error 2008.02.15 17:07:22 2007.01.11 12:15 OTF_1 EURUSD,M1: argumento negativo para la función MathSqrt
P.D. Es una locura. ¿Es probable que este error aparezca en su probador?
P.P.S. Lo más probable es que la variable doble lambda; se haya inicializado con una basura negativa muy pequeña por defecto. Entonces la expresión doble lambda=0,0; debería ayudar.
Slava nos enseña que nunca hay que trabajar por defecto y que no se aprende.
Los botniks locales siempre tratan de inventar alguna bicicleta.
No te preocupes por nada. Entre los índices personalizados está Bands.mq4 - hay un algoritmo de cálculo de RMS
SKO^2=D[Y] - D[X]*A^2,
donde D[Y]=M[Y^2]-M[Y]^2, D[X]=M[X^2]-M[X]^2, y A es el coeficiente de regresión lineal Y=A*X+B
Así que la recurrencia no es necesaria aquí.
¿Y qué quiere decir que la recurrencia es innecesaria, cómo se supone que se calculan las sumas? ¿O tiene una idea de cómo hacer sin sustituir la expectativa por la media?
P.D. Por cierto, las sumas cruzadas no salen solas. Al menos yo no lo hice. Intenta trabajar no con la varianza sino con la expresión "real"
Por lo tanto, para la regresión lineal es
En consecuencia, para una regresión lineal sería
SKO^2=D[Y] - D[X]*A^2,
donde D[Y]=M[Y^2]-M[Y]^2, D[X]=M[X^2]-M[X]^2, y A es el coeficiente de regresión lineal Y=A*X+B
Así que la recurrencia no es necesaria aquí.
¿Y qué quieres decir con que la recurrencia no es necesaria, cómo se supone que se calculan las sumas? ¿O tienes una idea de cómo evitar la sustitución de los pagos esperados por una media?
P.D. Por cierto, las sumas cruzadas no salen solas. Al menos yo no lo hice. Intenta trabajar no con la varianza sino con la expresión "real"
Muy ansioso por saber qué podría ser superfluo en estas fórmulas ? :-)
Por supuesto, la MO se sustituye por la media y hay que calcular las sumas. Sin embargo, no es necesaria la recurrencia o incluso un ciclo. La siguiente fórmula será suficiente
S(X)[i+1]=S(X)[i] - X[i-N+1] + X[i+1] donde S(X)[i]=Suma(X[k]; k=i-N+1, i-N+2, ...,i-1,i )
¿Quizás se refiere a esta expresión cuando habla de recurrencia? Entonces, por supuesto, tienes razón.
En cuanto a la "expresión real", ¿de dónde crees que salen todas esas fórmulas? Pues bien, si se sustituye en esta "expresión real" las fórmulas finitas derivadas de la MNC para A y B, entonces se obtiene simplemente la expresión anterior para la RMS. Puedo darle los cálculos analíticos correspondientes.
Puedo darle los cálculos analíticos pertinentes.
Si no es mucha molestia, por favor da más detalles desde aquí. Con los nuevos datos los coeficientes A y B pueden cambiar, creo, aunque puedo estar equivocado :-). Para LR parece estar resuelto, pero para la regresión parabólica ¿cómo?
Esto es por definición. Si el LR no es demasiado corto, se puede calcular el RMS con mayor precisión, sin ningún ciclo adicional. Hay un código para el cálculo del RMS en el código fuente MovingLR.mq4, pero está comentado y el RMS se llama rmsY.