Discusión sobre el artículo "Guía de aprendizaje automático para MetaTrader 5 (Parte 1): Correcciones relacionadas con la fuga de datos y las marcas de tiempo"
Las barras de actividad no resuelven todos los problemas que mencionas para las barras de tiempo. Por ejemplo, usted escribió:
The Subtle Intra-Bar Leakage: However, a more subtle form of data leakage can still occur within the very formation of that time bar. If a significant event transpires midway through a 1-minute bar (e.g., at 09:00:35), any features derived from that bar (such as its high price or a flag for the event) will inevitably incorporate this information by the bar's end.
Si construyes barras de igual volumen, igual rango u otras barras personalizadas basadas en ticks, marcarás dicha barra con una única etiqueta de todos modos, y se filtrará (o más preciso, se difuminará) la información sobre el precio alto en toda la barra.
La única manera de resolver esto - es construir "barras" con las características específicas (que va a utilizar) en mente. Por ejemplo, en caso de que los máximos o mínimos sean las características principales, usted debería intentar, probablemente unas "barras" en zigzag con extermos marcados con el tiempo exacto.
En realidad, el enfoque con timeframes constantes, y específicamente limitándolos a M1 es problemático en el contexto de la fuga de datos en MT5. Etiquetar las barras M1 con el tiempo final no es mucho mejor que con el tiempo inicial, en mi opinión.
Para aquellos que estén interesados en construir barras personalizadas (gráficos) de forma nativa en MT5, hay un artículo con la implementación en MQL5 de barras de igual volumen, igual rango y renko. Por supuesto, usted puede marcar las barras con el tiempo final en el código fuente abierto.
- www.mql5.com
Las barras de actividad no resuelven todos los problemas que mencionas para las barras de tiempo. Por ejemplo, usted escribió:
Si construyes barras de igual volumen, igual rango u otras barras personalizadas basadas en ticks, marcarás una barra de este tipo con una única etiqueta de todos modos, y se filtrará (o más exactamente, se difuminará) la información sobre el precio alto en toda la barra.
La única manera de resolver esto - es construir "barras" con las características específicas (que va a utilizar) en mente. Por ejemplo, en caso de que los máximos o mínimos sean las características principales, debería intentar, probablemente unas "barras" en zigzag con extermos marcados con la hora exacta.
En realidad, el enfoque con plazos constantes, y específicamente limitándolos a M1 es problemático en el contexto de la fuga de datos en MT5. Etiquetar barras M1 con tiempo final no es mucho mejor que con tiempo inicial, imho.
Para aquellos que estén interesados en construir barras personalizadas (gráficos) de forma nativa en MT5, hay un artículo con la implementación en MQL5 de barras de igual volumen, igual rango y renko. Por supuesto, usted puede marcar las barras con el tiempo final en el código fuente abierto.
El objetivo de las barras basadas en la actividad es mejorar la información de las propiedades estadísticas contenidas en las barras, como una menor heteroskedasticidad y una mejor normalidad. La solución a la fuga sutil dentro de la barra que he propuesto consiste en etiquetar las barras utilizando su hora de finalización, de modo que todos los eventos que se produzcan dentro de la barra queden recogidos en la marca de tiempo. Un ejemplo útil es cuando se utilizan características derivadas de la marca de tiempo, como las transformaciones de Fourier, en el entrenamiento del modelo. Si utiliza la convención de MetaTrader5, en la que las barras se etiquetan por el inicio del periodo, estará informando erróneamente a su modelo. La distinción puede no importar mucho para algunos modelos, pero tiene un gran impacto en aquellos que pretenden explotar la naturaleza cíclica de los mercados. Espero haber aclarado mi intención.
Las barras basadas en la actividad no resuelven todos los problemas que mencionas para las barras de tiempo. Por ejemplo, escribiste:
Si creas barras del mismo volumen, rango u otras barras personalizadas basadas en ticks, de todas formas estarás marcando dicha barra con una única etiqueta, y la información sobre el precio máximo se filtrará (o más exactamente, se difuminará) a lo largo de toda la barra.
La única forma de resolver este problema es crear "barras" teniendo en cuenta las características específicas (que vaya a utilizar). Por ejemplo, si las características principales son máximos o mínimos, debería intentar crear una "barra en zigzag" con extermos marcados exactamente en el tiempo.
El enfoque de marco temporal constante, y en particular la limitación a M1, es problemático en el contexto de la fuga de datos de MT5. Marcar barras M1 con la hora de fin no es, en mi opinión, mucho mejor que con la hora de inicio.
Para aquellos interesados en crear barras personalizadas (gráficos) de forma nativa en MT5, está el artículo con la implementación en MQL5 de las barras Equal Volume, Equal Range y Renko. Por supuesto, puedes marcar las barras con la hora de finalización en el código fuente abierto.
¿Qué quieres decir cuando afirmas "Si creas barras del mismo volumen, rango u otras barras personalizadas basadas en ticks, de todas formas estarás marcando dicha barra con una única etiqueta, y la información sobre el precio máximo se filtrará (o más exactamente, se difuminará) a lo largo de toda la barra"?
¿Qué quieres decir cuando afirmas "Si creas barras del mismo volumen, rango u otras barras personalizadas basadas en ticks, estarás marcando dicha barra con una única etiqueta de todos modos, y la información sobre el precio máximo se filtrará (o más exactamente, se difuminará) a lo largo de toda la barra"?
No entiendo lo que no está claro. mi frase es una respuesta directa a su frase que he citado en el post anterior. No importa cómo se forme la barra, todas las propiedades de la barra se atribuyen por una sola marca de tiempo, y los "eventos" reales de las propiedades no coinciden con ese tiempo.
Ahora entiendo el significado de desenfoque.
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Artículo publicado Guía de aprendizaje automático para MetaTrader 5 (Parte 1): Correcciones relacionadas con la fuga de datos y las marcas de tiempo:
El data snooping o la fuga de datos pueden parecer sutiles, pero su impacto en los modelos de aprendizaje automático puede ser monumental y devastador. Imagina que estás estudiando para un examen y, sin darte cuenta, echas un vistazo a las respuestas antes de tiempo. Tu puntuación perfecta te da la sensación de haberla ganado, pero en realidad estás haciendo trampa. Esto es precisamente lo que ocurre cuando utilizamos las marcas de tiempo predeterminadas de MetaTrader 5 en el aprendizaje automático: la fuga de datos corrompe inesperadamente la integridad de tu modelo.
Cómo te engañan las marcas de tiempo de MetaTrader 5

MetaTrader 5 etiqueta la barra de 5 minutos que comienza a las 18:55, es decir, la penúltima barra de arriba, como:Al indicar la hora en el inicio, MetaTrader 5 da a entender que los datos de esta barra estaban disponibles a las 18:55:00, ¡nada menos que 5 minutos antes de que cerrara realmente! Si tu modelo utiliza esto durante el entrenamiento, es como darle a un estudiante las respuestas del examen 5 minutos antes de que empiece la prueba. Para contrarrestar esto, deberíamos evitar usar las barras de tiempo precompiladas de MetaTrader 5 y, en su lugar, usar datos de ticks para crear las barras que usamos en nuestros modelos.
Autor: Patrick Murimi Njoroge