[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 670
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
¿Cuál es la probabilidad de que llegue un nuevo tick antes de que se completen todos los cálculos del EA actual? Me parece que sólo en este caso los datos serán viejos e irrelevantes.
He comprobado cuánto tiempo cuenta tu código - yo también, hace poco tenía mis dudas, es la velocidad de cálculo de MT4 suficiente para mi EA, resultó que es suficiente por ahora, mi código tarda unos 18 ms, es decir, en 1 segundo se comprueba 55 veces, los ticks vienen de 10 a 70 por minuto, si más de 50 ticks por minuto, significa que hay una vela
intente ver cómo funciona su código, así
aquí está el indicador que cuenta los ticks - para la reconciliación
Bueno, si tiene un precio de apertura, siento habérmelo perdido
OpnPrice =iOpen(NULL,PERIOD_M5,0); puede cambiar sólo en una barra cerrada - el código anterior con la condición if (counted != barM1) {
¿Cómo cambiar el número de dígitos después del punto decimal del indicador iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0) cuando se calcula en el cuerpo experto? El resultado se muestra con 4 (es decir, 0,0001), mientras que debería mostrarse con 5 (por ejemplo, 0,00012) para un análisis preciso. Y el terminal MT4 muestra valores de 5 dígitos en la ventana del indicador en el gráfico.
El operador NormalizeDouble() resolverá tus problemas.
Es decir, NormalizeDouble(iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0),5) dará como resultado el deseado 0,00012 ?
P.D. Añadido y probado - nada. La salida es sólo 0,00010, que son los mismos 4 bits...
No, no es del todo correcto, Roger.
IndicatorDigits() ver Boris. Pero debe insertarse en el propio indicador, porque se referirá a él y no al EA.
P.D. Otra cosa: esta función es adecuada sólo para el indicador para el cual usted tiene el código. Entonces será posible llamarlo mediante iCustom().
Y para los que se llaman "estándar" como iMACD(), no conozco la solución correcta.
Entonces, el resultado de NormalizeDouble(iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0),5) será el deseado 0,00000 ?
Sí, así es. ¿La frase clave estaba en el cálculo en el cuerpo del EA? Y aparentemente con el indicador estándar esto es imposible (((
¿Cómo cambiar el número de dígitos después del punto decimal del indicador iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0) cuando se calcula en el cuerpo experto? El resultado se muestra con 4 (es decir, 0,0001), mientras que debería mostrarse con 5 (por ejemplo, 0,00012) para un análisis preciso. Y el terminal MT4 muestra valores de 5 dígitos en la ventana del indicador en el gráfico.
No debes cambiar nada, la precisión en los indicadores estándar está configurada al máximo (hasta 8 dígitos), has llegado a una conclusión errónea sobre la precisión de la salida de datos porque Print( ) da salida a 4 dígitos por defecto, en los cálculos (en la tripa de los Asesores Expertos por ejemplo) se utiliza la máxima precisión, necesitas dar salida al doble a través de DoubleToStr() como ejemplo:
y obtenemos esta salida:
No necesitas cambiar nada, en los indicadores estándar la precisión está configurada al máximo (hasta 8 dígitos), has llegado a una conclusión errónea sobre la precisión de la salida de datos porque Print() da salida a 4 dígitos por defecto, en los cálculos (en la tripa de los Asesores Expertos por ejemplo) se utiliza la máxima precisión, para ver esto necesitas dar salida al doble mediante DoubleToStr(), como ejemplo:
y obtenemos una salida de este tipo:
¡Cierto, cierto, cierto! ¡! ¡! Anatoly - grandes elogios, me estaba colgando de eso.
La verdad de la vida es que "una cabeza es buena, pero dos es mejor" (cita)
No es necesario cambiar nada, los indicadores estándar están ajustados a la máxima precisión (hasta 8 dígitos)
Así es, yo tenía la misma sospecha :)