Pon "Me gusta" y sigue las noticias
Deje un enlace a él, ¡qué los demás también lo valoren!
Evalúe su trabajo en el terminal MetaTrader 5
- Visualizaciones:
- 905
- Ranking:
- Publicado:
- 2018.06.08 12:26
-
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa
Parámetros de la función:
- double LX1 - coordenada X del primer punto de la línea;
- double LY1 - coordenada Y del primer punto de la línea;
- double LX2 - coordenada X del segundo punto de la línea;
- double LY2 - coordenada Y del segundo punto de la línea;
- double DX - coordenada X del punto;
- double DY - coordenada Y del punto.
Principio del cálculo
Usando las coordenadas de dos puntos de la línea, obtenemos las fórmulas de la línea tipo y=a+k*x. El coeficiente k determina el tamaño de la inclinación de la línea, es decir, el cambio de la coordenada y por la unidad del cambio de la coordenada x. El coeficiente k se calcula de la siguiente manera:
double K=(LY2-LY1)/(LX2-LX1);
La constante a define el valor de la línea cuando x=0, es decir, corresponde al nivel en el que la línea cruza el eje y. Sabiendo el coeficiente de la inclinación y la coordenada X de uno de los puntos, calculamos а:
double LA=LY1-K*LX1;
La distancia del punto a la línea se determina por la perpendicular trazada hasta la línea. Si giramos la imagen a 90 grados contra el sentido de la aguja del reloj, la línea d va a tener el mismo coeficiente de la inclinación que la línea principal, pero con otro signo. Sabiendo el coeficiente de la inclinación y la coordenada de uno de los puntos, se puede obtener la ecuación de la línea, pero en este caso, en forma de x=a-ky. Entonces, la constante a:
double DA=DX+K*DY;
Teniendo las fórmulas de dos líneas, encontraremos el punto de su intersección: Para eso, colocamos y expresada con la fórmula de la primera línea en la fórmula de la segunda línea, hacemos pequeñas transformaciones y obtenemos la coordenada x del punto de intersección:
double CX=(DA-K*LA)/(1.0+K*K);
Colocamos la x obtenida en la fórmula de la primera línea y obtenemos la coordenada y de la intersección de las líneas:
double CY=LA+K*CX;
Sabiendo las coordenadas de dos puntos, se puede calcular la distancia entre ellos en los ejes X y Y (valores de las proyecciones en los ejes). Luego, calculamos la distancia usando el teorema de Pitágoras:
MathSqrt(MathPow(DX-CX,2)+MathPow(DY-CY,2))
El que desea puede participar en la discusión del problema en el tema del foro https://www.mql5.com/ru/forum/237198 o en los comentarios de abajo.
Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/20481

Este indicador representa una versión del cálculo de la regresión no lineal para MetaTrader 5. Nonlinear regression es el indicador que reacciona muy rápido a los cambios inesperados del mercado, por eso el período del cálculo por defecto está establecido a un período algo más largo que normalmente para este tipo de indicadores. Por eso, yo recomiendo experimentar con el período, dependiendo de su estrategia comercial y el estilo del trading.

MACD High/Low utiliza el máximo más alto y el mínimo más bajo de MACD en (nnn) barras atrás, con el fin de calcular la línea cero que se cambia de una manera dinámica, los niveles tempranos del crecimiento/.bajada y los niveles de confirmación de la tendencia alcista/bajista.

El indicador combina dos filtros digitales en el gráfico para estimar la tendencia actual.

Asesor Experto a base del generador de números aleatorios. Determinando la tendencia a base del indicador iMA (Moving Average, MA).