Ayuda para escribir una regresión lineal - página 2

 
kvn писал (а): ASÍ QUE DÓNDE ESTÁ EL ERROR [...] ???????
¿ADN?
 
kvn:
No voy a discutir sobre LR. ENTONCES, ¿DÓNDE ESTÁ EL ERROR EN EL INDICADOR CODE???????
Quién diablos sabe. Nadie sabe qué algoritmo está tratando de implementar. Primero escribe una idea, luego las fórmulas y después una explicación: este trozo de código hace esto y aquello. Y nadie lo adivinará.
 
una vez más
cómo se calcula el LR
//El indicador se calcula mediante la fórmula:LR = at+b
//donde LR - precio de cierre"medio" previsto,
//t - punto en el tiempo,(n1 variable en el indicador)Pt - precio de cierre de los últimos n períodos.(Close[n2])
/a = (n*SUMM(t*Pt) -SUMM(t)*SUMM(Pt))/(n*SUMM(t^2) - (SUMM(t))^2) - ángulo tangente de la recta de regresión,
//b = 1/n*(SUMM(Pt) - a*SUMM(t)), - desplazamiento horizontal}

código del indicador anterior.

Calcula de n=1 a 100 incorrectamente, luego sale n=22 y el resultado es correcto, creo que el bucle está escrito incorrectamente, pero no sé dónde.
 
Parece que no está sincronizado. Para la barra n x se necesita nn, siendo el índice para y
n2=n+n1-1 = n+nn-1
Hay un montón de indicadores de regresión cerca, por ejemplo, https://forum.mql4.com/ru/10446/page39, si busca todos ellos, es mejor navegar desde el final.
 
Sólo puedo deducir una fórmula:
 
lna01:
Parece que no está sincronizado. Para la barra n x se necesita nn, siendo el índice para y
n2=n+n1-1 = n+nn-1

Y en general
hay un montón de indicadores de regresión cerca, por ejemplo
https://forum.mql4.com/ru/10446/page39, si las buscas todas.
es mejor empezar por el final.


n1 no es igual a nn, sino que varía de 1 a nn, el periodo del indicador.
y n - número de barras a recalcular (para trabajar más rápido y sin tirar de toda la cola)

En general, https://forum.mql4.com/ru/10446/page39 no es una regresión lineal, sino una derivada de la MA.
 
kvn:
lna01:
Parece que no está sincronizado. Para la barra n x se necesita nn, siendo el índice para y
n2=n+n1-1 = n+nn-1

n1 no es igual a nn sino que varía de 1 a nn - período del indicador.
y n es el número de barras a recalcular (para trabajar más rápido y no arrastrar toda la cola)

En general, https://forum.mql4.com/ru/10446/page39 no es una regresión lineal, sino una derivada de la MA.
Bueno, como sea, asumamos que la LR está deliberadamente desplazada por un punto. Propongo lo siguiente: sustituir la expresión complicada
b=(1/nn)*(ssm3-a*ssm2);
sustituir por
b=(1.0/nn)*(ssm3-a*ssm2);
(el principal error estaba aquí).
Y si el desplazamiento no es necesario, sustituirlo por
LR=a*nn+b;
a
LR=a+b;
Después de esto, compare lo que dibuja este indicador con el de at_LR0. mq4 e intente averiguar por qué no es una derivada de la MA y cómo deshacerse correctamente de la cola.

P.D. Para no molestarse con los parámetros, deje que los indicadores se coloquen en el gráfico horario y establezca el período de su indicador a uno más.
 
(el principal error estaba aquí).
Muchas gracias por el consejo, no lo hubiera adivinado, es una pena que no esté escrito en el manual de idiomas.
Resulta que cuando una de las variables es un número entero, la constante debe escribirse como un número fraccionario. Lo tendré en cuenta.
Y en cuanto a DR o no, es un asunto privado.
Ponga mi indicador en el gráfico y preste atención a los puntos de inflexión de la línea. Siempre es el final de la tendencia y no es un mal punto de salida.
Y su intersección con la MA (cualquiera) también es agradable.

Estaría muy agradecido de recibir información sobre cómo hacer el indicador más rápido, cómo aumentar la velocidad de la MT.
Y puede que alguien sepa dónde está la información sobre la velocidad de ejecución de los distintos operadores de MT (por ejemplo, cuántos ciclos de reloj se ejecutan en los distintos operadores del bucle).
 
kvn:
(el principal error estaba aquí).
Muchas gracias por el consejo, no lo hubiera adivinado, es una pena que no esté escrito en el manual de idiomas.
Resulta que cuando una de las variables es un número entero, la constante debe escribirse como un número fraccionario. Lo tengo.
Si te refieres al casting, está descrito en MQL4 y en todos los demás lenguajes de programación.
 
kvn:
Además, estaría muy agradecido por cualquier información sobre cómo hacer que la plataforma giratoria sea más rápida, cómo aumentar la velocidad de la MT.
Y si alguien sabe si hay alguna información sobre la velocidad de ejecución de las diferentes sentencias MT (por ejemplo, cuántos ciclos de reloj se ejecutan las diferentes sentencias).
En lo que respecta a la MT, es útil que el usuario intente minimizar el número de topes indicadores. Las velocidades de ejecución de los operadores suelen aprenderse de forma independiente mediante los operadores Print y GetTickCount. Aunque sería de agradecer que alguien digiriera esto y publicara un artículo.