![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
Gracias Nicholi por ese código más racionalizado. Después de algunos experimentos, encontré que declarar ask_diff como float producía diferencias con el número correcto de dígitos pero un error de compilación sobre la posible pérdida de datos por la conversión de tipo. Parece que tengo que elegir entre tener inexactitudes muy pequeñas en mis diferencias o tener una advertencia de compilación. Esto último sería mejor para las decisiones comerciales, pero ¿alguien más tiene una solución para obtener como máximo cinco decimales en ask_diff?
tu ask_diff debería ser de tipo int y tener este aspecto.
Acabo de descubrir NormalizeDouble y DoubleToString. Es mi primer día en esto...
Como suele ocurrir, el código estaba haciendo lo que se suponía que debía hacer en lugar de lo que yo quería que hiciera. La lógica requiere que tick_prev esté siempre poblado pero no es verdadera en el primer tick. Me interesa una lógica que no requiera que tick_prev sea poblado en el primer tick, pero por lo demás esto funciona.
Como suele ocurrir, el código estaba haciendo lo que se suponía que debía hacer en lugar de lo que yo quería que hiciera. La lógica requiere que tick_prev esté siempre poblada pero no es verdadera en el primer tick. Estoy interesado en una lógica que no requiera que tick_prev sea poblado en el primer tick, pero por lo demás esto funciona.
Este es un nivel de codificación al que aspiro llegar. ¡Gracias Ernst!
No quieres almacenar la diferencia de puntos como un doble, ya que los dobles rara vez son iguales. Quieres almacenarlo como un valor entero. Por ejemplo (1.00001 - 1.00000) / 0.00001 = 1 punto. Así que si sólo estás comparando dos ticks entonces puedes hacer tu código más compacto y simplemente subclasificar MqlTick y añadir un atributo int para la diferencia de puntos.