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
Parte del problema es la forma en que escribiste ese código con grandes y largas condiciones "if" llenas de &&, ||, y llamadas a funciones tras llamadas a funciones, lo que hace que sea difícil de depurar, tendrías suerte de encontrar a alguien con tiempo para desentrañar ese lío. Deberías mirar los ejemplos de codificación en los documentos para ver cómo el código debería ser formateado en líneas mucho más cortas y comentadas.
" Hace que sea difícil de depurar "?? :( Nunca he oído hablar de estos, es este real ....
El compilador también tiene dificultades para depurar mi código :( ?
Si esa es la razón significa que tuve que repensar toda mi idea de codificación para esta parte? Entonces se convertirá en una cosa totalmente diferente ...... :( :(
Sí, es difícil de depurar, por ejemplo, mira este código para el trailing stop. Es fácil ver lo que hace cada línea, por lo que es fácil detectar errores.
Publiqué ese código sólo como un ejemplo de código fácil de leer, no pretendía ser un ejemplo de una función independiente completa.
Es la sección de órdenes de compra del código de trailing stop del EA de ejemplo de MetaQuotes MACD incluido en MT4.
1) No es cierto, se puede contar hacia arriba o hacia abajo, el bucle es más eficiente, OrdersTotal() se llama una vez y se asigna a una var local.
Gracias COSUDE . Gracias por los consejos también WHRoeder . Es útil .
Intenté cambiar OrderClosePrice() por MarketInfo en el código anterior y el editado (quitando la condición && y poniéndolos como una sentencia if como después, la del segundo bucle for), pero el resultado sigue siendo que a veces funciona y a veces no.
El bucle for para contar el total de pedidos en el pool lo uso como bucle de cuenta atrás pero con x-- . No entiendo por qué sugieres --x .
He buscado en google "operadores de cortocircuito" pero no entiendo muy bien lo que significa en mql4, ¿te importaría explicarlo un poco ^_^ ? ¿Por qué es malo encadenar 'if'?
Por cierto , el código anterior que SDC sugirió , ese no es el código que estoy usando >.< .
No está mal encadenar ifs. Los desarrolladores del lenguaje MQL4 escribieron el código que publiqué arriba. Es un código que corté de su ejemplo de EA macd como un ejemplo.
WHR se refería a un cambio reciente en la forma de evaluar las condiciones && || que ahora las hace tan eficientes como las condiciones if encadenadas. Antes eran menos eficientes. Se puede utilizar cualquiera de los dos métodos. Los if encadenados son útiles cuando hay divergencias en el código para poder usar 'else'.
Las líneas largas de condiciones if( && || ) pueden crear una confusión de paréntesis que hace más difícil encontrar errores, por eso no me gusta hacerlo. También hay un estándar aceptado para la codificación que dice que no debe tener más de 80 caracteres. Muchos codificadores no se molestan en adherirse a esa norma, sin embargo, y los desarrolladores de MQL4 siguen creando identificadores enumerados con grandes nombres largos para ser utilizados en sus llamadas a funciones con nombres igualmente largos, lo que no ayuda con el formato del código mucho.