Características del lenguaje mql4, sutilezas y técnicas - página 30
![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
Hola!
¿Cuál es la forma correcta de utilizar "double" en el bucle "for"? Parece que no hay ninguna prohibición de utilizar "doble" en la ayuda.
De todos modos, mi conclusión es que no se recomienda "double" en el bucle"for" por la falta de normalización de ExpressionZ después de cada iteración. Esto puede llevar a al menos 2 problemas:
1) Número incorrecto de iteraciones;
2) Resultados erróneos si se utiliza ExpressionZ para calcular en una sentencia.
Gracias, entiendo por qué pasa esto, por eso intenté normalizar. A mí no me ha funcionado. La opción de Alexey Viktorov tampoco lo arregló, los valores siguen sin normalizarse. Así que la pregunta sigue siendo, ¿se puede usar "doble" en un bucle y obtener siempre el número correcto de iteraciones?
Multiplica por 10 hasta obtener números enteros. Al principio también me costó, ahora incluso convierto el precio a enteros y trabajo con enteros o redondeo a enteros. Tengo menos errores, mejor legibilidad.
En general, como dijo un programador tras recibir los resúmenes de la Bolsa, no entiendo por qué los números de cierta capacidad de dígitos se representan con números reales, en lugar de enteros. Esto no es lógicamente correcto. ))))
Multiplica por 10 hasta obtener números enteros. Al principio también me costó, pero ahora incluso convierto el precio en un entero y trabajo con enteros o redondeando a enteros. Tengo menos errores, mejor legibilidad.
En general, como dijo un programador tras recibir los resúmenes de la Bolsa, no entiendo por qué los números de cierta capacidad de dígitos se representan con números reales, en lugar de enteros. Esto no es lógicamente correcto. ))))
Gracias, usaré int de la manera antigua y luego dividiré por el doble. ;)
Gracias, pero tu ejemplo tampoco daba el resultado correcto. En printf se puede ver que no se produce ninguna normalización:
Lo siento, debería haberlo comprobado. Y aquí tenemos "quería hacerlo bien, pero resultó ser lo mismo de siempre".
Resultado
Código correcto
Código correcto
Ten cuidado de no poner paso=0,04 ;)
Ten cuidado de no poner paso=0,04 ;)
Esto es sólo un consejo para los que no saben usar el cerebro))).
Lo siento, debería haberlo comprobado. Es sólo: "Tengo buenas intenciones, pero siempre es lo mismo".
Resultado
Código correcto.
i=NormalizeDouble(i+step, 1)
¡Ah, gracias! No se me ocurrió a mí. Este es el tipo de cosas que nos ayudan a los novatos en programación ;)
Estoy buscandométodos para ordenar un array de estructuras. ¿Alguien tiene alguna variante que funcione?
https://www.mql5.com/ru/forum/170952/page134#comment_11532251
https://www.mql5.com/ru/forum/170952/page134#comment_11532251
No funciona...