Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1885

 
¿Es posible tener varias listas de vigilancia (panoramas de mercado) en Metatrader? Por ejemplo, uno para los índices, otro para las acciones
 
Vladimir Makhnin #:
¿Es posible tener varias listas de vigilancia (panoramas de mercado) en Metatrader? Por ejemplo: índices en uno, acciones en otro

Hazlo tú mismo. MQL5 lo hace fácil.

 
Mihail Matkovskij #:

Se trata de la fórmula para calcular el ángulo. El código muestra que sólo se utiliza una coordenada para calcularlo y algún coeficiente, cuya finalidad no está clara. ¿Qué es eso? Por favor, explique qué datos está utilizando para calcular el ángulo.

Por lo que veo

double d

es un vector. Pero aún así es sólo una coordenada. Pero para calcular un ángulo, se necesitan dos coordenadas o un vector formado por dos coordenadas.

 

ambos en el... mi respuesta fue borrada

 
Maxim Kuznetsov #:

ambos en el... mi respuesta ha sido borrada.

Algo es confuso: tu post de este hilo no está en los borrados.

 
Vladimir Karputov #:

Algo es confuso: tu post de este hilo no está en los borrados.

Yo también miré. No lo encontré.

 

OK, voy a duplicar eso... en respuesta ahttps://www.mql5.com/ru/forum/160683/page1884#comment_27290699

CalcAngleTrend no tiene nada que ver. En algún otro lugar el coefAngle está mal contado o hay más cálculos torcidos

ps/ y tal vez el concepto de "pendiente" sea generalmente malinterpretado. No es expresable en grados o radianes (sin un tipo de curvatura del espacio) y la función atan devuelve un valor físicamente incorrecto.

 
Mihail Matkovskij #:

Se trata de la fórmula para calcular el ángulo. El código muestra que sólo se utiliza una coordenada para calcularlo y algún coeficiente, cuya finalidad no está clara. ¿Qué es eso? Por favor, explique qué datos está utilizando para calcular el ángulo.

Así es, es un vector
y se utiliza un valor porque el cambio delta dividido por 1 (Uno) será delta.
la variable coefAngle es una constante int igual a 2.
He comprobado que todos los datos introducidos en la función son exactamente los mismos.
 
Maxim Kuznetsov #:

OK, voy a duplicar eso... en respuesta ahttps://www.mql5.com/ru/forum/160683/page1884#comment_27290699

CalcAngleTrend no tiene nada que ver. En algún otro lugar el coefAngle está mal contado o hay más cálculos torcidos

ps/ y tal vez el concepto de "pendiente" sea generalmente malinterpretado. No se expresa en grados ni en radianes (sin un exceso de curvatura del espacio) y la función atan devuelve un valor físicamente incorrecto.

el coeficiente es una constante, no cambia
no hay cálculos excepto para esta función, la función obtuvo el valor delta promediando los valores de los vectores sobre varios puntos, aproximadamente hablando de la reducción a un segmento de 2x puntos, con un período de 1 unidad

Está claro que esto no es una realización completa de los vectores, es más bien para un resultado expresivo "más o menos" adecuado.
técnicamente, se puede hacer con una simple aplicación de un coeficiente multiplicador y ya está...

De todos modos, no veo la razón para que esta función funcione en absoluto(

La única posibilidad es que haya algo mal en la conversión de tipos en la propia expresión en el proceso de cálculo,

 
Владимир Казаков escribir un Expert Advisor, y cuando lo pruebo ocurre una cosa extraña...

Tengo una función

¿Cuál es la situación, empiezo una instancia de la EA que se ejecuta en un gráfico, y ejecutar el segundo en el modo de depuración en el mismo gráfico con MT4
Los datos de entrada para la función es la misma, pero los datos de salida es diferente!!!? Yo no entiendo algo, parece...(

¡¡aconsejar que camino cavar para la información!!

PS: calculado la diferencia de exactamente 2,5 veces la salida

Descomponer las expresiones en acciones... ...y, Dios mío, ¿los resultados son todos iguales?

double CalcAngleTrend(double d)
 {
Print("d: ", d, " coefAngle: ", (double) coefAngle);
  double
    a = (double) (d*pow(10,_Digits-2));
Print("(d*pow(10,_Digits-2)): ", a);
    double rad = (double) (180/M_PI);
Print("rad: ", rad);
    a = (double) (atan(a));
Print("(atan(a)): ", a);
    a = (double) (a*rad*(double) coefAngle);
Print("(a*rad*(double) coefAngle): ", a);
  return(NormalizeDouble(a, ANGLE_DIGITS));
 }

Así que todo lo mismo con la reducción de los tipos no es algo que funciona como me gustaría

de expertos y entendidos puede alguien explicar cuál era el problema?!
no repetir el error)))

PS: aquí está la misma expresión en este formato funciona igual

  double a = (double) ((d*pow(10,_Digits-2))*(180/M_PI)*(double) coefAngle);

El método de exclusión era un doble infalible para el int.

Espero haberlo hecho bien.

Razón de la queja: