![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
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...
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
un pequeño ajuste del diseño del código, y todo está bien.
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.
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
Si se conoce el valor actual de los coeficientes A y B en una regresión lineal, ¿se puede calcular la RMS
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á.
Si se conoce el valor actual de los coeficientes A y B en una regresión lineal, ¿se puede calcular la RMS
El QWMA probablemente tampoco será suficiente, ya que no cuadra Y y por lo tanto no determina la varianza de Y.
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.
Aunque no entiendo por qué se divide por (N-2) y no por (N-1).
P.D. Para Suma(Y*Y) - también tengo tres operaciones, para Suma(X*X) - ninguna.
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