Por qué un EA que solo opera con velas cerradas no repinta
Contenido
En resumen: las señales de un EA que decide solo con velas cerradas cambian poco porque los datos en los que se basa la decisión ya no se mueven. En una vela en formación, el cierre, el máximo y el mínimo pueden cambiar con el siguiente tick. En cambio, los cuatro precios (OHLC) de una vela cerrada normalmente no se modifican después de su cierre.
Sin embargo, leer velas cerradas no garantiza por sí solo la seguridad. Según cómo se calcule el indicador o cómo se traten los marcos temporales superiores, pueden colarse valores del futuro aunque creas estar usando velas cerradas.
Por qué es peligrosa la vela en formación
En MQL5, el shift 0 es la vela en formación y el shift 1 es la última vela cerrada. El cierre del shift 0 es simplemente "el precio actual". Si lo usas para decidir, aparecen estos problemas:
- La condición se cumple y desaparece en cada tick, de modo que el motivo por el que entraste puede esfumarse después
- Se ejecuta una operación por una señal fugaz que no queda en el gráfico una vez cerrada la vela
- En el probador, el resultado varía con el método de generación de ticks, y si el movimiento intravela difiere del real, esa diferencia afecta directamente al rendimiento
| Aspecto | Vela en formación (shift 0) | Vela cerrada (shift 1 en adelante) |
|---|---|---|
| Valor usado para decidir | Cambia hasta el cierre | Normalmente no cambia |
| Reproducibilidad de la señal | Baja | Alta |
| Rapidez de entrada | Rápida | Más lenta, por esperar al cierre |
| Efecto del modo de ticks del probador | Puede cambiar la propia decisión | Efecto pequeño en la decisión (persiste en la salida) |
Usar la vela en formación no siempre es un error. Existen diseños que buscan capturar una ruptura al instante. En ese caso hay que asumir que dependen del movimiento intravela y dar más peso a la validación con ticks reales.
Comparación de brókers recomendados →
🎁 Descargar EA gratis📧 Curso gratuito por email (8 correos) + paquete de 13 indicadores MT5 solo para suscriptores
Nada más suscribirte recibirás un enlace de descarga a un paquete exclusivo con nuestros 13 indicadores MT5: archivos compilados (.ex5), código fuente y una guía de instalación. Después, 8 correos sobre los fundamentos del trading algorítmico, cómo leer correctamente un backtest y cómo elegir bróker (uno al día durante los primeros 5 días y luego a los 7, 14 y 30 días de la suscripción). También te avisaremos antes de cada subida de precio de las versiones vendidas en MQL5 Market (precio de lanzamiento que sube por tramos según las ventas). En este sitio nuestros EA son gratuitos con una cuenta real en un bróker asociado.
* Privacidad estrictamente protegida. Puedes darte de baja en cualquier momento.
Diseño de la confirmación de la señal
CopyRates: indica la posición inicial y el orden
Lee la vela cerrada una sola vez, en el primer tick de cada vela nueva.
datetime g_lastBar = 0;
void OnTick()
{
datetime t = iTime(_Symbol, _Period, 0);
if(t == 0 || t == g_lastBar) return;
MqlRates r[];
ArraySetAsSeries(r, true);
if(CopyRates(_Symbol, _Period, 1, 2, r) != 2) return;
g_lastBar = t;
// r[0] es la última vela cerrada, r[1] la anterior
}
Hay tres puntos clave: poner la posición inicial en 1 para dejar fuera del rango la vela en formación, fijar el orden con ArraySetAsSeries, y, si la lectura falla, no actualizar g_lastBar para reintentar en el siguiente tick. Si olvidas indicar el orden, el primer elemento del array será la vela más antigua.
iBarShift: una trampa con los marcos temporales superiores
Al consultar un marco superior, iBarShift devuelve "la vela que contiene esa hora". Si le pasas la hora actual, normalmente devuelve la vela superior que aún se está formando.
int s = iBarShift(_Symbol, PERIOD_H1, TimeCurrent(), false);
if(s < 0) return;
double closedH1 = iClose(_Symbol, PERIOD_H1, s + 1);
Si quieres la vela superior ya cerrada, indica una vela más antigua, como en este ejemplo.
El repintado típico ocurre en indicadores que dibujan en un gráfico de marco inferior valores del marco superior. Si a cada vela pasada del marco inferior se le asigna el cierre de la vela superior que contiene esa misma hora, se dibuja en el pasado un valor final que en ese momento aún no existía. En el gráfico parecerá acertar, pero en tiempo real no se puede tomar la misma decisión.
Con el cuarto argumento exact en false, si no existe la vela buscada se devuelve la más cercana. Esto dificulta detectar datos faltantes, así que conviene comprobar también la hora de la vela obtenida. Los datos de otros símbolos o marcos temporales pueden actualizarse con retraso, por lo que antes de decidir hay que verificar que la vela sea la de la hora esperada.
Evitar la doble decisión tras un reinicio
g_lastBar del código anterior vuelve a su valor inicial cuando se reinicia el EA. Para no evaluar de nuevo la misma vela cerrada y entrar dos veces, el diseño debe comprobar también las posiciones abiertas o la hora de la última ejecución.
Cómo puede comprobarlo el usuario
Aunque no puedas leer el código fuente, puedes verificarlo en parte con estos métodos.
- Mirar en modo visual: en el modo visual del probador, comprueba si las horas de entrada se concentran cerca del inicio de las velas. Si las operaciones se ejecutan con frecuencia a mitad de vela, es posible que use la vela en formación (la salida es otro asunto).
- Comparar cambiando el modelado: con el mismo período y la misma configuración, prueba "solo precios de apertura", "todos los ticks" y "todos los ticks basados en ticks reales". Si el número o la hora de las entradas difieren mucho, sospecha una dependencia del movimiento intravela.
- Registrar las flechas del indicador: guarda la hora en que aparece cada flecha (por ejemplo, con capturas de pantalla) y compárala unas velas después. Si cambia de posición o desaparece, repinta.
- Preguntar al distribuidor: consulta si decide con velas cerradas y cómo trata los marcos temporales superiores.
Todos son indicios, y por sí solos no demuestran que "no repinta". Si quieres probar indicadores, practica el procedimiento con los indicadores gratuitos; para instalar un EA, consulta la guía de configuración de EA.
Límites y precauciones
Decidir con velas cerradas también tiene inconvenientes.
- La entrada llega tarde: mientras esperas el cierre, el precio avanza y puedes entrar en una posición desfavorable. En movimientos bruscos al alza o a la baja, la diferencia puede ser grande.
- Coste del inicio de la vela: en diseños donde las órdenes se concentran en el primer tick de una vela nueva, pueden afectar los horarios de spread amplio o los gaps de apertura.
- No evita los indicadores que miran al futuro: indicadores como ZigZag, cuya forma cambia después, o aquellos que necesitan velas posteriores para confirmarse, pueden variar incluso en velas cerradas según la posición que leas.
- La vela cerrada también varía entre brókers: si cambian la hora del servidor o el feed de precios, cambian los OHLC, así que un mismo EA puede decidir distinto en otro bróker. Tampoco se descarta que el historial se corrija con posterioridad.
- La salida ocurre dentro de la vela: aunque la decisión de entrada se tome con vela cerrada, el stop loss y el take profit se ejecutan a mitad de vela. Esta parte sigue dependiendo de la calidad de los ticks.
Y lo más importante: no repintar no es lo mismo que ganar dinero. Incluso entre nuestros EA hay algunos con buenos resultados en datos históricos que son negativos en el forward test en cuenta demo. Operar con velas cerradas es solo una de las condiciones para confiar en los resultados de la validación, no un indicador del rendimiento futuro. Además, usar o no velas cerradas depende del diseño de cada EA, así que al elegir uno compruébalo caso por caso y júzgalo junto con las cifras del ranking de resultados reales. Hemos reunido el enfoque de validación relacionado en Conocimientos de EA y MT5.
Resumen
- El valor de la vela en formación se mueve hasta el cierre, por lo que la señal puede desaparecer o cambiar
- Si decides con velas cerradas, los datos quedan fijos y el método de generación de ticks influye menos
- En
CopyRates, indica la posición inicial y el orden, y reintenta si la lectura falla iBarShifttiende a devolver el marco superior en formación, así que para leer la vela cerrada hay que desplazar el shift- Dibujar valores de un marco superior y los indicadores que miran al futuro son ejemplos típicos de repintado
- Las velas cerradas implican retraso y costes, y no prometen beneficios
Relacionado
2026-10-29
OnTick vs OnTimer en MQL5: cuándo usar cada uno en un EA
2026-10-12
Dark Algo MT5: PF 2.08 y DD máx. 35.05%
2026-10-12
Daytrade Pro Algo MT5: PF 2.51 y DD máx. 1.25%
2026-10-12
News Catcher Pro MT5: PF 8.34 y DD máx. 0.68%
📧 Curso gratuito por email (8 correos) + paquete de 13 indicadores MT5 solo para suscriptores
Nada más suscribirte recibirás un enlace de descarga a un paquete exclusivo con nuestros 13 indicadores MT5: archivos compilados (.ex5), código fuente y una guía de instalación. Después, 8 correos sobre los fundamentos del trading algorítmico, cómo leer correctamente un backtest y cómo elegir bróker (uno al día durante los primeros 5 días y luego a los 7, 14 y 30 días de la suscripción). También te avisaremos antes de cada subida de precio de las versiones vendidas en MQL5 Market (precio de lanzamiento que sube por tramos según las ventas). En este sitio nuestros EA son gratuitos con una cuenta real en un bróker asociado.
* Privacidad estrictamente protegida. Puedes darte de baja en cualquier momento.
¿Tienes alguna pregunta sobre EAs o Forex?
Puedes publicarla en el foro de trading de Nattzy (registro gratuito). También son bienvenidas preguntas que vayan más allá de este artículo: configuración de EAs, elección de bróker y más.
Preguntar en Nattzy ↗