Discusión sobre el artículo "Automatización de estrategias de trading en MQL5 (Parte 24): Sistema de ruptura de la sesión de Londres con gestión del riesgo y stops dinámicos" - página 2

 
¿En qué parte del código tenías pensado utilizar la variable «MaxOpenTrades»? Está definida, pero no se hace referencia a ella en ningún momento.
 
Allan Munene Mutiiria #:

En cuanto a tu segunda duda, el artículo lo explica, pero suponiendo que tu problema se deba a datos de prueba insuficientes y para darte una pista, cuando se está calculando el rango, siempre verás el estado «Calculando...» hasta que haya datos suficientes para establecer la sesión del rango de Londres o cualquier otra sesión que definas en los parámetros de entrada. Suponiendo que utilices la configuración predeterminada, con 3 horas previas a Londres, y que la hora que aparece en la captura de pantalla compartida sea el 13 de febrero, dos barras después de las 22:00, lo que equivale a 2 × 15 minutos = 30, lo que da como resultado las 22:30, se encuentra fuera del periodo de cálculo del rango; por lo tanto, los datos del panel deberían seguir siendo visibles, ya que el rango establecido anteriormente sigue vigente, a menos que aún no se haya encontrado la primera sesión, y se borrarán cuando se alcance el cálculo del rango a partir de la medianoche. Véase a continuación:

Quizá te resulte útil consultar la lógica que se muestra a continuación para determinar el intervalo

y cómo se establece.

Fíjate en la imagen de abajo; aunque no sabemos en qué año se realizó la prueba, tomaremos como referencia el año 2025. Si fuera 2020, como en tu caso, no disponemos de datos fiables para ese año, así que, en cualquier caso, utilizaremos 2025 y, por lo tanto, el cálculo del intervalo debería comenzar a medianoche.


En la imagen se puede ver que los datos de las 23:55 siguen intactos. Sin embargo, al llegar la medianoche, deberíamos reiniciar. Véase a continuación.

Se puede observar que hemos reiniciado los datos a medianoche para el cálculo del otro intervalo. De hecho, una vez realizado el cálculo del intervalo, la visualización puede ayudarte a comprender qué ha ocurrido realmente. Por ejemplo, en tu caso, utilizando la configuración predeterminada, veremos las barras del intervalo de las 03:00 a las 08:00 horas, ya que eso es lo que hemos definido. Véase a continuación:

Espero que esto aclare las cosas de nuevo. Puedes ajustar todo según tu estilo de negociación. Para evitar los problemas a los que te enfrentas, es recomendable utilizar datos de prueba fiables. Gracias.

Muchas gracias por la respuesta tan completa.

Sí, leí el artículo y seguí los pasos para programar mi propia versión hasta que me encontré con los problemas que he descrito. Lo que observé fue que el panel no se actualizaba, ni siquiera durante los horarios predeterminados. Mi captura de pantalla pretendía mostrar que, aunque el recuadro se había dibujado en el gráfico y los datos se habían recopilado, el panel no se había actualizado. Además, no había mensajes de error en los registros relativos a precios o niveles no válidos.

He añadido mensajes de registro a mi versión; gracias a ellos, puedo ver que el panel no se actualiza cuando el rango es demasiado grande o demasiado pequeño; así que eso puede ser parte del motivo.

Volveré a comprobar la calidad de los datos de prueba. Y gracias por indicar en qué par has realizado las pruebas; sin duda haré los ajustes necesarios para los pares que yo haya elegido.

Muchas gracias por tu ayuda.

 
Kyle Young Sangster #:

Muchas gracias por la respuesta tan completa.

Sí, leí el artículo y seguí las instrucciones para programar mi propia versión hasta que me encontré con los problemas que he descrito. Lo que observé fue que el panel no se actualizaba, ni siquiera en los momentos predeterminados. Mi captura de pantalla pretendía mostrar que, aunque el recuadro se había dibujado en el gráfico y se habían recopilado los datos, el panel no se había actualizado. Además, no había mensajes de error en los registros relativos a precios o niveles no válidos.

He añadido mensajes de registro a mi versión; por ellos puedo ver que el panel no se actualiza cuando el rango es demasiado grande o demasiado pequeño; así que eso puede ser parte del motivo.

Volveré a comprobar la calidad de los datos de prueba. Y gracias por indicar en qué par has realizado las pruebas; sin duda haré los ajustes necesarios para los pares que he elegido.

Muchas gracias por tu ayuda.

De nada. De nada.

 

Gracias por compartir tu código con nosotros.

Como yo mismo he escrito EA dependientes de la sesión, te puedo decir que el código solo funciona si tu bróker está siempre en la zona horaria GMT+1 y también utiliza el horario de verano británico.

En todos los demás casos, lamentablemente, tu hora de inicio no es la correcta. ¿Por qué? Porque la sesión de Londres comienza a las 8:00 h, hora del Reino Unido. En invierno son las 8:00 h GMT y en verano, las 7:00 h GMT.

La función TimeCurrent() no te devuelve tu hora local, sino siempre la hora del servidor de operaciones.