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
Todavía tienes a Counter...
Ver el comentario de GumRai https://www.mql5.com/en/forum/151167/page2#954622
Gracias por tus comentarios.
Utilicé Open en lugar de Time porque una vez que se produce la Open de una barra es fija para siempre y nunca cambiará. No está buscando dos barras consecutivas - es la misma barra y está preguntando si la apertura de la barra actual durante la cual se acaba de producir el tick es la misma que el valor de Open almacenado en ThisBarOpen. Además, habría pensado que Open sería más sencillo que Time porque es una simple búsqueda de datos mientras que Time podría tener que referenciar algo más y posiblemente hacer algún tipo de cálculo.
Re--; No cambié eso porque otro EA no sería capaz de cerrar una orden porque el código comprueba que tanto el MagicNumber y Symbol() son los mismos primero.
Ciertamente tomo el punto acerca de un corte de energía borrando el contenido de BuyTicket pero eso no ha sucedido durante mis pruebas y mi código sigue funcionando muy lentamente. Por lo tanto, tampoco puedo ver cómo podría ser la causa.
Mi pregunta principal en este momento es por qué tomó tanto tiempo para eliminar los EAs de las ventanas en la terminal que tenían posiciones abiertas y ningún tiempo para eliminarlos de la terminal que no tenía posiciones abiertas. Puede que sea una coincidencia, pero ¿las cuatro ventanas?
No sé si esto es realmente relevante para su problema, pero usted limita su comercio a 1 compra, 1 venta por EA así que ¿por qué hacer todo esto?
Usted ya tiene su número de ticket aquí:
si lo convierte en un int estático puede cerrar su orden explícitamente por ese número de ticket sin tener que buscarlo en el conjunto de órdenes.
Gracias por vuestros posts.
Re--; No cambié eso porque otro EA no podría cerrar una orden porque el código comprueba que tanto el MagicNumber como el Symbol() son iguales primero.
Mi principal duda en este momento es por qué tardó tanto tiempo en eliminar los EAs de las ventanas del terminal que tenían posiciones abiertas y nada de tiempo en eliminarlos del terminal que no tenía posiciones abiertas. Coincidencia tal vez - pero ¿las cuatro ventanas?
¿Entiendes cómo funcionan los bucles?
Digamos que tienes 3 órdenes abiertas
En la primera ejecución, el contador==0, por lo que la orden con el índice 0 será seleccionada
Al final del bucle disminuyes el contador en 1, por lo que contador== -1.
Antes de que el bucle se ejecute de nuevo, el contador se incrementa en 1 como parte de la función for. Así que contador ==0
Así que en la siguiente ejecución del bucle el contador vuelve a ser =0, y así sucesivamente.
Estás atrapado en un bucle sin fin que sigue comprobando el índice de orden 0
La única manera de que se detenga es si no hay órdenes abiertas porque entonces OrdersTotal - 1 será -1 y 0 no es <= -1