Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1737
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
Por supuesto, el programa no está esperando que el terminal en un hilo separado para registrar algunos datos.
Gracias, quiero decir
No entiendo por qué se lanza "-1" de vez en cuando si después de la ruptura el Print(i); antes de la ruptura hay i-- y si (i==0), que es el comando de salida si i ya ha llegado a 0 dentro del operador. Como i se utiliza aún más abajo en el código, en Close[i], produce el error "fuera de rango
No entiendo por qué se lanza "-1" de vez en cuando si después de la ruptura el Print(i); antes de la ruptura hay i-- y si (i==0), que es el comando de salida si i ya ha llegado a 0 dentro del operador. Como i se utiliza aún más abajo en el código, en Close[i], produce el error "fuera de rango
No entiendo por qué se lanza "-1" de vez en cuando si después de la ruptura el Print(i); antes de la ruptura hay i-- y si (i==0), que es el comando de salida si i ya ha llegado a 0 dentro del operador. Como i se utiliza aún más abajo en el código, en Close[i], produce el error "fuera de rango
Después de la ruptura, salir del bucle al siguiente operador después del bucle, después de que el bucle itera hasta el final de la iteración en ese punto y comienza uno nuevo.
{
i--;
if (i==0) break;
}
Print(i);
Print(Close[i]);
// En el registro dice (-1), cómo es que... y, por lo tanto, lamatriz de errorfuera de rango, porque Close[-1] no se produce.
Quiero decir, ¿estoy en lo cierto al entender que después de la ruptura en la cabecera(i; i>0; i--) se sigue ejecutando la tercera expresión "i--"?
{
i--;
if (i==0) break;
}
Print(i);
Print(Close[i]);
// El registro dice (-1), cómo así... y, por lo tanto, lamatriz de errorfuera de rango, porque Close[-1] no se produce.
Quiero decir, ¿estoy en lo cierto al entender que después de la ruptura en la cabecera(i; i>0; i--) la tercera expresión "i--" se ejecuta de todos modos?
Escribe correctamente
No sólo se quita en la cabecera, sino también en el cuerpo del bucle.Escribe correctamente.
No preguntes qué clase de tonterías escribo en mi código. Sólo quiero entender los matices de este operador) Parece que en el cuerpo he especificado "es hora de salir de aquí, porque i=0", pero el operador toma y ejecuta de nuevo la expresión, aunque debería pasar el control al siguiente operador
No me preguntes qué clase de tonterías estoy escribiendo. Sólo quiero entender los matices de este operador) Es como si en el cuerpo especificara "es hora de salir de aquí, porque i=0", pero el operador toma y ejecuta de nuevo la expresión, aunque debería pasar el control al siguiente operador
Sí lo hiciste, pero lo quitaste antes de esta comprobación. Escríbelo así
habrá un resultado diferente
Sí lo hiciste, pero lo quitaste antes de esta comprobación. Escríbalo así
aah... Lo tengo. Entendido.
Gracias a todos por sus rápidas respuestas.
ahh... Lo tengo. Entendido.
Gracias a todos por sus rápidas respuestas.
Tu código imprime 0, no -1...
Probablemente -1 impreso desde otro lugar, lo más probable es que todo el código esté en las impresoras...
Antes de intentar resolver el problema, hay que identificarlo... Asegúrate de que está ahí y localízalo antes de resolverlo...