Diálogo del autor. Alexander Smirnov. - página 41

 
lna01:
En estas líneas se calculan los coeficientes de línea a y b.
A = (SumXY - N3*SumY)*N4;
B = (N1*SumY - SumXY)*N2;
Para ilustrar, adjunto la versión MovingLR_2 que sólo dibuja la regresión lineal actual. Sobre todo, porque hubo un error en la anterior, al calcular N4 :)

MovingLR_2 da una regresión lineal pura y es bastante fácil asegurarse de ello. En at_LR0 hay inexactitud de cambio de periodo en horas a periodo en barras. Si cambia Close en at_LR0 a (High+Low)/2 y toma un periodo de 1, y cambia el periodo en MovingLR_2 a 61 en lugar de 60 y lo muestra en el gráfico de un minuto, los resultados serán los mismos.


Bueno, entonces MovingLR_2 es un buen algoritmo, sólo hay que retocar el diseño del código y está bien.

En at_LR0 el desplazamiento de una barra se realiza para ajustar la regresión lineal del kit de herramientas estándar de MT4. Tal vez no era necesario hacer esto...

 
Mathemat:

2 zigan:

Para la regresión lineal, la fórmula es: LRMA = 3*LWMA - 2*MA

Para la regresión cuadrática:

Regresión cuadrática MA = 3 * SMA + QWMA * ( 10 - 15/( N + 2 ) ) - LWMA * ( 12 - 15/( N + 2 ) )

Aquí N es el periodo de las medias,

QWMA( i; N ) = 6/( N*(N+1)(2*N+1) ) * suma( Close[i] * (N-i)^2; i = 0...N-1 ) (la máquina de pesos cuadrados).

para el cúbico: oops, todavía no puedo sacarlo de Trading Solutions, mi fórmula es demasiado salvaje allí.

2 Cándido: eres realmente paranoico, no se me habría ocurrido...


Tengo diferentes fórmulas.

donde es

 
Hmm, para el RMS, el resultado es aún más sabroso que el de Yurixx:

RMS^2 = (Suma(Y*Y) - A*Suma(X*Y) - B*Suma(Y))/(N-2)

Al igual que en el caso de Yurixx, la simplicidad de la expresión se debe a la elección del origen y la dirección del eje X. Si nadie encuentra los errores, es el fin de la aproximación al algoritmo. Para que no desaparezcan la A y la RMS calculadas, he dejado el dibujo de la línea LR en el indicador y he añadido el canal RMS :)

ANG3110:

un pequeño ajuste del diseño del código, y todo está bien.

No creo que utilice exactamente este indicador, sino que utilizaré un algoritmo.

2 Yurixx:
Parece que la diferencia en los valores RMS para N pequeños no se debe a la corrección RMS, sino a la elección del inicio y de la dirección X. Porque al cambiarlos mi fórmula anterior también empieza a dar resultados diferentes, y es precisa sin reservas.
Archivos adjuntos:
 
lna01:

2 Yurixx:
Parece que la diferencia en los valores RMS para N pequeños no se debe a la corrección RMS, sino a la elección del inicio y la dirección X. Porque cuando los cambias mi antigua fórmula empieza a dar también resultados diferentes, mientras que es precisa sin reservas.

Sin duda tienes razón en que la elección correcta del sistema de coordenadas es una técnica poderosa para simplificar los cálculos y la apariencia de las fórmulas finales. No lo utilicé para la regresión lineal, todo salió bastante bien. Pero para la regresión parabólica, dada una determinada elección de origen, las expresiones finales resultan ser el doble de fáciles, mientras que la eficacia del algoritmo aumenta en un orden de magnitud. Además, se elimina por completo el problema de las limitaciones en la precisión de los cálculos.

Sin embargo, no puedo estar de acuerdo con usted en un punto. Los valores RMS, así como los valores reales de regresión, no pueden depender de la elección del origen del eje X. Quizá no sea la fórmula en sí la que empiece a dar resultados diferentes, sino la propia cuestión de la precisión de los cálculos. Dado que sólo se almacenan 15 dígitos significativos de double (por no hablar de int), se acumula un error con bastante rapidez en el proceso de cálculo. Esto es especialmente cierto cuando X e Y tienen diferentes órdenes de magnitud. Por ejemplo, X es un número de barra del orden de cientos de miles, Y es un precio del orden de 1 y el cambio de precio es del orden de 0,0001.


PS

Quería entender qué hace que esta fórmula sea "sabrosa". Obviamente, es mucho más sencillo, en una sola línea. Aunque no entiendo por qué se divide por (N-2) y no por (N-1). Aun así, debo señalar que, si se busca la máxima aceleración, habría que utilizar una fórmula diferente. Si se fija la elección del origen X en relación con el valor del precio actual, es más ventajoso utilizar fórmulas sin Suma(X*Y). Así no tendrás que calcular la convolución en cada barra. Pero actualizar Suma(Y*Y) o Suma(X*X) en cada barra es un operador.

 

Si se conoce el valor actual de los coeficientes A y B en una regresión lineal, ¿se puede calcular la RMS

aquí están las fórmulas

coeficiente A

coeficiente B

 
Prival:

Si se conoce el valor actual de los coeficientes A y B en una regresión lineal, ¿se puede calcular la RMS

Con un término cuadrático como QWMA, probablemente sea posible. Pero el algoritmo a través de los dummies es intrínsecamente no óptimo. Una oportunidad fue la de utilizar el código nativo para los guiones incorporados, pero parece haber fracasado.
P.D. Acabo de recordar que QWMA es cuadrático por X y necesitaré un término cuadrático por Y. Así que QWMA no ayudará.
 
Prival:

Si se conoce el valor actual de los coeficientes A y B en una regresión lineal, ¿se puede calcular la RMS


No creo que puedas. La recta de regresión está definida por dos constantes, A y B. Con los mismos A y B, puede haber cualquier dispersión de valores alrededor de esta línea recta. Para calcular el RMS también se necesita la varianza de X e Y. Probablemente el QWMA tampoco sea suficiente, ya que no contiene los cuadrados de Y y, por tanto, no determina la varianza de Y.
 
Yurixx:
El QWMA probablemente tampoco será suficiente, ya que no cuadra Y y por lo tanto no determina la varianza de Y.
Sí, se me olvidó que QWMA no es Y-cuadrado en absoluto. Cuando me acordé, añadí una posdata.
 
Yurixx:

Sin embargo, hay una cosa en la que no puedo estar de acuerdo. Los valores RMS, así como los propios valores de regresión, no pueden depender de la elección del origen del eje X. Tal vez no sea la fórmula en sí la que empieza a dar resultados diferentes, sino que se pone de manifiesto este mismo problema de precisión de los cálculos.

Eso es exactamente lo que quería decir con los resultados del cálculo.

Aunque no entiendo por qué se divide por (N-2) y no por (N-1).

Porque la regresión tiene un grado de libertad adicional. Yandex puede ayudar con los detalles, por ejemplo, http://cmacfm.mazoo.net/archives/000936.html
Aun así, debo señalar que, buscando la máxima aceleración, debería haber utilizado una fórmula diferente. Si se fija la elección del origen X en relación con el valor del precio actual, es más ventajoso utilizar fórmulas sin Suma(X*Y). Así no tendrás que calcular la convolución en cada barra. Pero actualizar Suma(Y*Y) o Suma(X*X) en cada barra es un operador.
Ya tenemos Suma(X*Y) - no se puede calcular ni A ni B sin ella. Se calcula de forma recurrente, en tres operaciones. Mira con más atención a_LR0 o MovingLRv3.

P.D. Para Suma(Y*Y) - también tengo tres operaciones, para Suma(X*X) - ninguna.
 
Prival:
Matemáticas:

Regresión cuadrática MA = 3 * SMA + QWMA * ( 10 - 15/( N + 2 ) ) - LWMA * ( 12 - 15/( N + 2 ) )

QWMA( i; N ) = 6/( N*(N+1)(2*N+1) ) * suma( Close[i] * (N-i)^2; i = 0...N-1 ) (un asistente con pesos cuadráticos).

Tengo otras fórmulas.

donde

Exactamente las mismas fórmulas, gracias, Prival. Dame otros similares en relación con los mash-ups.