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
A mucho cálculo en lugar de la solución simple
He llegado a esta solución que convierte los dobles en ints para poder comparar los dobles . . .
Yo también llegué a una solución creativa que me ha funcionado (hasta ahora) para comparar precios:
Subo el precio a un int que representa el precio como puntos expresados como un número entero. Así:
nunca puede ser cierto.
¿EstáCompareDoubles() del stdlib.mq4 descalificado de esta discusión? A mi me funciona bien si se usa para el precio.
Una división flotante, una adición flotante, una conversión a int, una llamada a una función (copia, salto, retorno = 3,) * 2 todo por dos. (18) Y eso suponiendo que la división y la conversión estén a la par con las otras operaciones - no lo están.
vs
una resta, una prueba, 1/2 negación (en promedio,) y comparación. (3 1/2 si punto/2 se hace en init y ABS se sustituye por un IF)
No complicar demasiado las cosas
if (a > b)
if (a >= b)
if (a != b)
Una división flotante, una suma flotante, una conversión a int, una llamada a una función (copia, salto, retorno = 3,) * 2, todo ello por dos. (18) Y eso suponiendo que la división y la conversión estén a la par con las otras operaciones - no lo están.
vs
una resta, una prueba, 1/2 negación (en promedio,) y comparación. (3 1/2 si punto/2 se hace en init y ABS se sustituye por un IF)
No complique demasiado las cosas
2013.04.03 17:39:11 TestSpeed-CompareDbls USDJPY,M5: ConvertToPoints 9000000 veces en 1887 ms.
2013.04.03 17:46:02 TestSpeed-CompareDbls USDJPY,M5: Flat(price) 9000000 veces en 3604 ms.
El método "MathAbs(a-b)" es aproximadamente 7 veces más rápido que el método ConvertToPoints() y casi 14 veces más rápido que mi método "Flat()"
2013.04.04 14:27:38 TestSpeed-CompareDbls EURUSD,H4: MathAbs(a - b) HalfAPoint 99999999 veces en 3403 ms.
2013.04.04 14:27:42 TestSpeed-CompareDbls EURUSD,H4: (intRecord > intCheck) 99999999 veces en 2505 ms.
Pero la 3ª no puede ser practicable, y la 2ª (intRecord > intCheck) tenía 1 asignación más dentro para el intCheck antes de la comparación.
He probado (intRecord > precio / punto) y
2013.04.04 14:27:38 TestSpeed-CompareDbls EURUSD,H4: MathAbs(a - b) HalfAPoint 99999999 veces en 3403 ms.
2013.04.04 14:27:42 TestSpeed-CompareDbls EURUSD,H4: (intRecord > intCheck) 99999999 veces en 2505 ms.
Pero la 3ª no puede ser practicable, y la 2ª (intRecord > intCheck) tenía 1 asignación más dentro para el intCheck antes de la comparación.