Este patrón lo llevo viendo repetirse más de un año: alguien le pide a ChatGPT un EA para MT5, recibe código que compila a la primera, corre un backtest razonable, lo pone en real con dinero de verdad, y pierde un buen pico en la primera semana. No porque la estrategia fuera mala (eso es otro problema aparte). Porque el código asumía en silencio un mercado que no existe.
ChatGPT escribe MQL5 para un mercado de laboratorio: spread constante, ejecuciones instantáneas, sin noticias, sin gaps, sin órdenes rechazadas. El mercado real no tiene ninguna de esas propiedades, y el modelo no te va a avisar, porque no se lo preguntaste, y el backtest tampoco, porque la mayoría de estas fricciones apenas existen en el tester. Te enteras en real, que es el aula más cara que hay.
Si ya te pasó, no es que se te escapara algo obvio. El fallo es invisible por diseño: código limpio, backtest limpio, y la trampa solo salta en producción. Estos son los casos que la hacen saltar.
1. Spread: el coste que ChatGPT asume constante
El código generado trata el spread como un número fijo, cuando lo trata. Los spreads reales respiran: apretados en la liquidez de Londres, triplicados en el rollover (hacia las 5pm hora de Nueva York, cuando los proveedores de liquidez resetean), y abiertos de par en par en noticias. Una estrategia de scalping que backtestea de maravilla con 1 pip fijo es otra estrategia completamente distinta con 6 pips en rollover. Mismo código, resultado opuesto.
Lo que hace el código de producción: lee el spread actual antes de cada entrada y se niega a operar por encima de un umbral. Son cuatro líneas de MQL5. Pídele a ChatGPT un filtro de spread y lo escribe bien. Simplemente nunca lo añade sin que se lo pidas, y la mayoría no sabe que hay que pedirlo hasta que el mercado se lo enseña.
2. Slippage y requotes: la ejecución que no pediste
La plantilla de ChatGPT envía una orden y asume que se ejecuta al precio solicitado. En un gráfico tranquilo, casi. En un movimiento rápido (exactamente cuando tu EA tiene más probabilidad de dispararse) la ejecución cae en otro sitio, y cada operación del backtest fingió en silencio que ese coste era cero.
Peor: el código generado casi nunca comprueba bien los códigos de retorno del servidor. Órdenes rechazadas, requotes y ejecuciones parciales vuelven como estados de error que la plantilla ignora o reintenta a ciegas. He visto EAs escritos por IA disparar la misma orden rechazada en bucle, apilando posiciones que la estrategia nunca quiso. El código de producción comprueba cada código de retorno, limita la desviación explícitamente, y registra lo que pasó de verdad frente a lo que se pidió. Ese log es donde aprendes lo que tu EA cuesta ejecutar de verdad.
3. Noticias: el calendario que tu EA no tiene
Pídele a ChatGPT una estrategia y te producirá encantado una que aguanta posiciones abiertas durante el Non-Farm Payrolls. El modelo no tiene el concepto de que a las 8:30 ET del primer viernes de mes los spreads explotan, los stops se saltan, y un stop-loss de 20 pips puede ejecutarse a 60. Ninguna plantilla generada incluye filtro de noticias, calendario económico, ni siquiera una cláusula de “no abrir posiciones en esta ventana”.
Esta única omisión está detrás de una parte desproporcionada de las historias de “mi EA fue rentable tres semanas y una vela lo borró todo”. Un sistema real o lee un calendario o, como mínimo, bloquea a fuego las ventanas de alto impacto conocidas.
4. Gaps de fin de semana y rollover: el tiempo no se para
Del cierre del viernes a la apertura del domingo hay un agujero en el mercado donde el precio puede reaparecer en cualquier sitio. Una posición aguantada el fin de semana puede abrir con gap mucho más allá de su stop-loss, y el stop se ejecuta al precio nuevo, no al que pusiste. El código de ChatGPT no tiene opinión sobre los viernes por la tarde. Tampoco sobre los swaps, los miércoles de triple swap, ni sobre que esa “posicioncita overnight” del backtest llevaba costes de financiación que el tester apenas modeló.
El comportamiento de producción es una decisión, no un default: o cierras antes del finde, o dimensionas para que un gap a través del stop sea sobrevivible. Cualquiera de las dos vale. No tener política, que es como sale el código generado, no.
5. Por qué el backtest no puede pillar estos casos
Fíjate en el hilo común. Cada una de estas fricciones es más débil exactamente donde vive el strategy tester, y más fuerte exactamente donde vive tu dinero. El modelado de spread es aproximado, el slippage es opcional, las noticias son invisibles y los gaps vienen suavizados. Así que el bucle de feedback en el que casi todos confían (“el backtest sale bien”) es estructuralmente ciego a los modos de fallo que más importan. Es la misma razón por la que los backtests perfectos pierden dinero en vivo: el tester premia ajustarse al pasado, y el pasado que te enseña viene con Photoshop.
El único test honesto para estos casos es hacia delante: demo primero, luego real en pequeño, mirando el log de ejecución y no la curva. Los primeros 7 días con un EA nuevo son exactamente para esto: cazar la fricción, no juzgar el beneficio.
Cómo pedírselo a ChatGPT (si estás construyendo)
ChatGPT sabe escribir cada salvaguarda de esta página. Solo que no las ofrece por iniciativa. Así que haz los prompts explícitos:
- “Añade un filtro de spread máximo comprobado antes de cada entrada. Que el umbral sea un parámetro de entrada.”
- “Comprueba y registra el código de retorno de cada operación. Nunca reintentes una orden rechazada automáticamente más de una vez.”
- “Añade una ventana de bloqueo configurable alrededor de noticias de alto impacto, sin nuevas posiciones dentro.”
- “Añade un corte de viernes: cerrar todas las posiciones N minutos antes del cierre, o bloquear posiciones de fin de semana.”
- “Registra en un archivo el precio solicitado frente al precio ejecutado en cada operación.”
Después lee el código que te da, pruébalo en demo y no asumas nada. El modelo es un programador junior competente sin cicatrices de trading. La revisión eres tú.
El cierre honesto
Nada de esto significa que ChatGPT sea inútil para desarrollar EAs. Significa que el EA de treinta segundos es un mito con anatomía concreta: el código es real, el mercado para el que se escribió no. La diferencia entre un EA de ventana de chat y un EA de producción no es inteligencia. Es cicatriz, codificada en salvaguardas aburridas que solo importan los cinco peores días del año, que son los días que deciden tu año.
Construyas o compres, audita las salvaguardas, no las promesas. Y si un vendedor no puede decirte de carrerilla el filtro de spread, la política de noticias y el comportamiento de fin de semana de su EA, ya sabes qué clase de EA es. Si estás empezando desde cero con esto, la pregunta madre (¿puede ChatGPT crear un EA rentable?) tiene respuesta larga aquí.
Comparto cómo es la ejecución real (fills, fricciones y alguna semana fea) en la newsletter de DoItTrading. Es lo que los tutoriales se saltan.
FAQ
¿Por qué mi EA de ChatGPT funciona en backtest y pierde en real?
Normalmente una combinación de overfitting y casos límite sin gestionar. El strategy tester apenas modela spreads variables, slippage, volatilidad de noticias y gaps, así que el código que los ignora backtestea limpio y sangra en real. Comprueba si tu EA tiene filtro de spread, verifica códigos de retorno, bloquea ventanas de noticias y tiene política de fin de semana. Si no tiene nada de eso, el backtest medía un mercado que no existe.
¿Puedo pedirle a ChatGPT un filtro de noticias para mi EA?
Sí, y deberías, explícitamente. La versión simple bloquea nuevas posiciones en ventanas configurables alrededor de eventos de alto impacto; la robusta lee un calendario económico. ChatGPT escribe cualquiera de las dos con solvencia cuando se lo pides. El punto es que ninguna plantilla generada la incluye por defecto, y aguantar una posición con stop ajustado durante el NFP es de las formas más rápidas de descubrir por qué importa.
¿El slippage importa si mi EA no es scalper?
Menos que para un scalper, pero nunca llega a cero, y se concentra justo donde duele: mercados rápidos, velas de noticias y ejecuciones de stop-loss. Un EA de swing con objetivo de 50 pips sobrevive a un pip de slippage medio; ese mismo EA con un gap de 40 pips más allá de su stop un fin de semana no pregunta por la media. El slippage es una distribución con cola gorda, y la cola es el riesgo.
¿Cuál es el mínimo de salvaguardas antes de poner un EA en real?
Cuatro cosas: filtro de spread máximo en entradas, comprobación de códigos de retorno con reintentos controlados, política para ventanas de noticias de alto impacto, y política explícita de fin de semana y rollover. Añade log de ejecución (precio pedido frente a ejecutado) para medir tus costes reales. Y ejecuta el EA en demo el tiempo suficiente para ver saltar cada salvaguarda al menos una vez antes de que haya dinero de verdad.
¿Los EAs profesionales gestionan todos estos casos?
Los serios sí, y es un test de due diligence útil: pregunta a cualquier vendedor cómo gestiona su EA los picos de spread, las órdenes rechazadas, las noticias y los fines de semana. Una respuesta real es específica e instantánea, porque en esas salvaguardas se fue la mayor parte del tiempo de ingeniería. Una respuesta vaga significa que el EA se construyó para el mercado de laboratorio, y el forward test serías tú.
Recursos
- ¿Puede ChatGPT crear un EA MT5 rentable?: El pilar de esta serie
- Los primeros 7 días con un EA nuevo: Cazar fricción, no juzgar beneficio
- Por qué los backtests perfectos pierden dinero: La ceguera del tester
- Alpha Pulse AI: Ingeniería de producción bajo una capa de decisión IA
- Newsletter de DoItTrading: Ejecución real, cada semana