![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
Ahora he puesto una función en el comentario - Comentario (isCloseLastPosByStop());
¿Estás probando en el probador? Si en el probador, entonces seguramente puede haber una situación en la que dos o más últimas posiciones cerradas no tendrán un OrderCloseTime() diferente.
Ya veo. Si se cierran varias posiciones simultáneamente en el comprobador (según la señal), entonces la función isCloseLastPosByStop() puede "fallar" y fallar? Pero en línea parece funcionar.
Sí, - lo he comprobado en el probador ahora al trabajar con una posición. Todo funciona correctamente. La función muestra correctamente en el comentario (isCloseLastPosByStop()) el cierre por Stop Loss y cambia la bandera en el tiempo cuando se cierra por otra razón.
Ya veo. Si se cierran varias posiciones en el probador al mismo tiempo, entonces la función isCloseLastPosByStop() puede "fallar" y no funcionar?
Sí, porque isCloseLastPosByStop() identifica la última posición cerrada por el tiempo máximo de cierre, que se mide en segundos. Por lo tanto, necesitamos que pase más de un segundo entre el cierre de varias posiciones. En el probador, puede pasar menos de un segundo.
Y en línea aparentemente funcionará.
Buenas tardes, KimIV. Necesito tu consejo, o mejor dicho, tu ayuda. Necesito que la función start() no funcione por ticks, sino que se ejecute cada segundo, independientemente de si ha llegado un nuevo tick o no. Así es como he intentado llevar a cabo esta tarea:
Quiero que la función start() se ejecute cada segundo, independientemente de si ha llegado un nuevo tick o no.
Lo he hecho así:
¡¡¡¡Muchas gracias!!!! ¿Aún puede decirme si mi código funciona? No en el probador... ¿Funciona en el probador...? O tengo que...
Void start()...
¿Puede decirme también si mi código funciona en absoluto?
No lo sé... No lo he comprobado...
Noen el probador... ¿Funcionará en la vida real...?
En el probador cualquier cosa en bucle no funciona. Sólo los de las garrapatas funcionan...
En línea, tu código debería parecer que funciona. Al menos parece funcionar de forma lógica...
O tienes que...
Void start()...
Ya veo. Gracias de nuevo.
. Si tienes alguna idea de cómo identificar de forma más fiable la última posición cerrada, la aceptaré con gratitud y trataré de rediseñar la función.
Gracias por su amable oferta. Por desgracia, las buenas ideas no suelen (por desgracia...) aparecer en mi cabeza. No hace mucho, por ejemplo, me di cuenta de que sus funciones casi no utilizan el "componente" - OrderComment
Sin embargo, tal vez, la aplicación de esta función le dé nuevas ideas (para deleite de todos los presentes).
Por ejemplo, si (OrderComment()==" [sl]" && .... - puede ampliar el abanico de tareas que puede realizar.
//---------------------------------------------------------------------------------
"Más funciones, ¡buenas y diferentes!" (c)
. Si tienes alguna idea de cómo identificar de forma más fiable la última posición cerrada, la aceptaré con gratitud e intentaré revisar la función.
Por ejemplo, como si(OrderComment()==" [sl]" && .... - podría ampliar el abanico de tareas a realizar.
rid, has sugerido una forma de identificar la activación de la parada por la entrada en los comentarios de la orden. Gracias, pero puede haber otras entradas además de [sl] en los comentarios.
Resuelvo el mismo problema comparando el precio de cierre con el precio de parada.