Trading algorítmico — primeros pasos para el trader minorista

Última verificación: · Contenido de vigencia prolongada
Advertencia de riesgo · YMYL Este artículo tiene fines exclusivamente educativos y no constituye asesoramiento de inversión. Operar en el mercado Forex conlleva un alto riesgo de pérdida de capital — la ESMA informa que entre el 74 % y el 89 % de las cuentas minoristas pierde dinero.

El trading algorítmico (algorithmic trading) minorista se reduce a un intercambio de roles: el trader define la regla, el ordenador la ejecuta. «Si la media móvil rápida cruza al alza la lenta y el ATR de las últimas veinte velas sube, abre una posición larga en EUR/USD del uno por ciento del capital». El resto —VPS, lenguajes, frameworks— es andamiaje. El problema no está en el código, sino en creer que la automatización puede compensar una ventaja que el trader no tiene. No puede. Sólo perderá más rápido y más barato.

¿Qué es el trading algorítmico y qué no es en absoluto?

Un algoritmo es dos cosas a la vez: una estrategia definida con precisión y el mecanismo que la dispara sin vacilar emocionalmente. Un trader que puede redactar un conjunto completo de condiciones de entrada, salida, tamaño de la posición y gestión de pérdidas en un lenguaje sin ambigüedad ha hecho la mitad del trabajo; el resto es traducir ese documento a MQL5, Python o una simple alerta. El trader que carece de esa disciplina empieza aprendiendo sintaxis y sólo más tarde descubre que no tiene nada concreto que codificar. Todo libro razonable sobre trading sistemático repite el mismo consejo: primero operacionaliza la estrategia a mano, automatiza después. Cada curso de fin de semana que vende «un bot por ciento noventa y nueve dólares» lo ignora. El trading algorítmico tampoco es una fuente mágica de ingresos pasivos: una estrategia que funciona hoy funciona porque una regularidad de mercado concreta sigue vigente, y en el momento en que desaparece, el bot pierde igual de bien que el trader discrecional, sólo que sin la señal emocional de que algo ha fallado.

La escalera: desde las alertas hasta la automatización completa

El camino natural recorre cuatro peldaños. El primero son las alertas de plataforma en TradingView o MetaTrader, que lanzan un sonido o un correo cuando se cumple la condición de entrada. El trader sigue ejecutando la orden manualmente, pero se ve obligado a traducir la estrategia a una regla lo suficientemente precisa como para que la plataforma pueda expresarla. Muchos traders minoristas nunca abandonan este peldaño y no necesitan hacerlo: las alertas combinadas con disciplina son suficientes cuando el número de señales diarias es reducido. El segundo peldaño es un Expert Advisor sencillo en MQL5 para MetaTrader, generalmente un cruce de medias móviles con trailing stop o una ruptura (breakout) por ATR; un EA así abarca entre doscientas y cuatrocientas líneas y se construye en semanas. El tercer peldaño es un backtesting (prueba retrospectiva) en Python con pandas, NumPy y backtrader, donde el trader itera docenas de variantes de estrategia en una sola tarde, tal como se explica en nuestra guía de cómo hacer backtesting de una estrategia. El cuarto peldaño, opcional, es la conexión directa con el bróker a través de REST o FIX con Interactive Brokers u OANDA, prescindiendo de MetaTrader como capa intermediaria.

Habilidades necesarias y elección del lenguaje de programación

La lista es corta. Lo que más importa es el pensamiento estadístico: comprender la diferencia entre la tasa de acierto, el factor de beneficio y la expectativa matemática, y saber que una curva de equity (patrimonio) de cincuenta operaciones todavía no demuestra nada. Sin ello, incluso el código limpio produce conclusiones del tipo «la estrategia funciona porque las últimas seis operaciones fueron ganadoras», que es una hipótesis nula, no un análisis. En segundo lugar viene la paciencia para el ciclo de validación: idea, codificación, backtest, walk-forward (prueba prospectiva), tres a seis meses en cuenta demo y sólo entonces capital real. En tercer lugar, los fundamentos de programación: variables, bucles, funciones y una noción básica de lo que es un pandas DataFrame. No hace falta ser ingeniero de software; con poder leer el EA de otra persona y cambiar un parámetro sin romper el resto es suficiente. La elección del lenguaje depende de una sola cosa: ¿el trader se queda dentro de MetaTrader o sale de ese ecosistema? MQL5 es el lenguaje nativo de MT5, la latencia de ejecución se mide en milisegundos de un solo dígito y el Strategy Tester ofrece un backtest decente de serie. Python es el mundo entero más allá de MetaTrader: pandas y NumPy para el análisis de datos, backtrader o vectorbt para los backtests y clientes REST para Interactive Brokers y OANDA. Las diferencias entre ambas opciones se analizan en el artículo trading bot: MQL5 o Python.

Un ejemplo ilustrativo — primera estrategia desde la idea hasta el backtest

Tomemos una estrategia de cruce en EUR/USD en H1 (marco temporal de una hora): posición larga en EUR/USD cuando la EMA 21 cruza al alza la SMA 55, siempre que el ATR de las últimas catorce velas esté por encima de su media de cincuenta períodos. Stop a 1,5 ATR por debajo de la entrada, take profit a 2,5 ATR por encima, tamaño de la posición del uno por ciento del capital. Paso uno: el trader ejecuta cuarenta entradas manualmente en MT5 sobre los últimos seis meses de datos, calcula la tasa de acierto y la media de operaciones ganadoras y perdedoras. Supongamos que el resultado es un 38 % de acierto con un factor de beneficio de 1,4. Paso dos: codificar el EA en MQL5 y ejecutarlo en el Strategy Tester con cinco años de historial. El resultado debería converger con las cifras manuales, o diferir de forma sistemática; en este último caso el trader sabe que o bien la regla se redactó mal o que parte de la ejecución manual se estaba interpretando de forma intuitiva. Paso tres: el mismo EA probado en Python con backtrader sobre datos de Dukascopy, incluyendo spread (la horquilla) y slippage (deslizamiento) realistas. Paso cuatro: walk-forward, si los números son estables. Todas las cifras son ilustrativas: muestran la secuencia, no una promesa.

«El mayor enemigo del trader algorítmico es el sesgo de data-snooping. Los modelos que parecen brillantes en el backtest fallan con frecuencia en el trading real, no porque la estrategia sea incorrecta, sino porque el trader la optimizó con los mismos datos que usó para evaluarla.» — Ernest P. Chan, Algorithmic Trading: Winning Strategies and Their Rationale, Wiley, 2013

¿Por qué fracasa la mayoría de los proyectos algorítmicos minoristas?

Las razones son dos y ninguna tiene que ver con la habilidad de programación. La primera es la ausencia de una ventaja de mercado que valga la pena automatizar: el trader escribe un backtester, ajusta los parámetros a los últimos cinco años de datos y obtiene una curva de equity más hermosa de lo que la realidad puede producir jamás. Sale en real, pierde dinero, concluye que necesita «una estrategia mejor» y repite el bucle. Cómo aislar y validar una ventaja antes de escribir la primera línea de código se explica en nuestro artículo sobre la ventaja en el trading. La segunda razón es la negativa a aceptar el resultado «tu estrategia no tiene ventaja, vuelve a la mesa de trabajo». La mayoría de los traders prefiere seguir optimizando los parámetros antes que escuchar esa respuesta; el algoritmo no suavizará el mensaje, sólo lo repetirá más rápido. En el plano de la infraestructura, la realidad es mundana: un VPS en Vultr o Hetzner cuesta entre cinco y veinte euros al mes, MetaTrader y Python son gratuitos, los datos de Dukascopy también. La barrera de entrada se mide en decenas de euros, no en miles. El cuello de botella es el tiempo y el pensamiento estadístico, no el dinero. Una guía práctica para ejecutar un EA en un VPS está disponible en la sección plataformas y herramientas de ForexMechanics.

Si operas desde Latinoamérica, consulta tu regulador local — CNBV (México), CNV (Argentina), CMF (Chile), SBS (Perú) u otro organismo competente en tu país.

¿Qué hacer mañana?

  1. Abre un diario de trading y durante una semana anota cada entrada que tomes en forma de una regla inequívoca: «si X e Y, entonces abro Z» — desterrando palabras como «normalmente», «suele», «siento que». Si al final de la semana no puedes reformular ninguna decisión con esa estructura, aún no tienes una estrategia que automatizar, sólo una colección de reacciones.
  2. Descarga MetaTrader 5 gratuitamente desde tu bróker, abre una cuenta demo y configura tres alertas en TradingView o en el sistema nativo de alertas de MT5 para la versión más sencilla de tu regla; durante dos semanas observa si las alertas se disparan en los mismos momentos que habrías elegido manualmente.
  3. En la tercera semana regístrate en mql5.com, abre el MetaEditor incluido en MT5 y escribe el Expert Advisor más sencillo posible — un cruce de EMA 21 y SMA 55 con trailing stop de 1,5 ATR — apoyándote en la documentación MQL5 Reference; el objetivo es tener un primer EA funcional en cuarenta u ochenta horas de trabajo, no uno rentable.
  4. Tras dos meses instala Python 3.11 o posterior, añade pandas, NumPy y backtrader con pip install, trabaja el Backtrader Quickstart Guide y reimplementa el EA de MQL5 como estrategia en backtrader. Compara los resultados del backtest sobre los mismos datos: las discrepancias superiores a unos pocos puntos porcentuales indican que hay un supuesto oculto en algún lugar.
  5. Sólo en el quinto o sexto mes despliega el EA en una cuenta demo de MetaTrader alojada en un VPS de Vultr o Hetzner. Dale tres meses. Si el rendimiento en demo coincide con el walk-forward del backtest, sólo entonces considera una cuenta real con capital cuya pérdida no afecte a tu presupuesto mensual — de quinientos a dos mil euros en la primera iteración, no más.
Jarosław Wasiński
Sobre el autor

Jarosław Wasiński

Redactor jefe de MyBank.pl · Analista financiero y de mercados

Analista y profesional independiente con más de 20 años en el sector financiero. Fundador y redactor jefe del portal MyBank.pl, en marcha desde 2004. Análisis fundamental de los mercados de divisas y macroeconómicos desde 2007. Escribe desde la perspectiva de los mercados europeos y el marco regulatorio de ESMA.

Fuentes y bibliografía

  1. MetaQuotes MetaTrader 5 — Automated Trading · oficjalny opis automatycznego handlu w MetaTraderze, ścieżek pozyskania robota i miejsca strategy testera w warsztacie www.metatrader5.com ↗
  2. MetaQuotes MQL5 Reference — programming language for algorithmic trading · dokumentacja referencyjna języka MQL5 i pięciu typów aplikacji (EA, indykatory, skrypty, serwisy, biblioteki) www.mql5.com ↗
  3. Backtrader Backtrader Quickstart Guide · podręcznik startowy frameworka backtrader w Pythonie — strategie, indykatory, optymalizacja parametrów www.backtrader.com ↗
  4. BIS BIS Quarterly Review, December 2019 — FX trading rises to $6.6 trillion per day · omówienie elektronicznej egzekucji i roli niebankowych principal trading firms w obrocie walutowym — kontekst dla retail algo www.bis.org ↗

Preguntas frecuentes

¿Qué es realmente el trading algorítmico minorista y qué no es en absoluto?

El trading algorítmico en el ámbito minorista consiste en delegar la capa de ejecución al ordenador: el trader define una regla como condición inequívoca («si la media móvil de 21 períodos cruza al alza la de 55 períodos y el ATR de las últimas veinte velas sube, abre una posición larga del uno por ciento del capital con un trailing stop de 1,5 ATR»), y el software reconoce esa condición y lanza la orden sin vacilar, sin consultar Telegram y sin dejarse influir por la última operación perdedora. Lo que un algoritmo definitivamente no es, es un generador mágico de ingresos pasivos en tres dimensiones a la vez. No crea una ventaja que no existía: si el trader pierde operando manualmente, el bot pierde más rápido y a menor coste. No protege frente a un cambio de régimen de mercado: si el historial sobre el que se construyó era tendencial y el mercado ahora está en rango, la curva de equity (patrimonio) se funde igual de eficientemente que la de un trader discrecional. Y no corrige los fallos lógicos de la estrategia: simplemente los codifica con más consistencia.

¿Cómo es la escalera realista desde hacer clic a mano hasta tener un bot funcionando?

El primer peldaño son las alertas de plataforma en TradingView o MT5 que lanzan un sonido o un correo cuando se cumple la condición de entrada. El trader sigue ejecutando la orden manualmente, pero se ve obligado a traducir la estrategia a reglas inequívocas. El segundo peldaño es un Expert Advisor sencillo en MQL5 para MetaTrader, generalmente un cruce de medias móviles o una ruptura (breakout) desde la consolidación con trailing stop. El tercer peldaño es un backtesting (prueba retrospectiva) en Python con pandas, NumPy y backtrader que calcula curvas de equity y métricas de riesgo en una fracción de segundo, tal como se explica en nuestra guía de cómo hacer backtesting de una estrategia. El cuarto peldaño, opcional, es la conexión directa con el bróker mediante REST o FIX con Interactive Brokers u OANDA, prescindiendo de MetaTrader. La comparación entre MQL5 y Python se analiza en el artículo trading bot: MQL5 o Python. Un plazo realista es de doce a veinticuatro meses de trabajo por las tardes, no un curso de fin de semana en Udemy.

¿Qué habilidades necesito realmente y en qué se diferencia eso del mito de «aprende a programar y hazte rico»?

Tres cosas importan, en este orden. Primera, el pensamiento estadístico: entender la diferencia entre la tasa de acierto, el factor de beneficio y la expectativa matemática, y saber por qué una curva de equity de cincuenta operaciones todavía no demuestra nada. Segunda, la paciencia para el ciclo de validación: idea, codificación, backtest, walk-forward, tres a seis meses en cuenta demo y sólo entonces una pequeña cantidad de capital real. Ese ciclo se extiende durante meses y la mayoría de los traders abandonan tras dos o tres iteraciones. Tercera, los fundamentos de programación: variables, bucles, funciones, estructuras de control y alguna noción de lo que hace un pandas DataFrame. No hace falta ser ingeniero de software: con poder leer el código de un EA ajeno y cambiar un parámetro sin romper el resto es suficiente. El mito de «aprende Python y hazte rico» se salta la parte más difícil y menos fotogénica: tener una ventaja de mercado que valga la pena automatizar. Sin ella, el código es simplemente una forma más rápida de quemar el capital.

¿Por qué fracasa la mayoría de los proyectos algorítmicos minoristas y existe alguna condición previa que mejore las probabilidades?

Los proyectos algo no fracasan por errores de código, aunque al principio los haya abundantes. Fracasan porque no hay ventaja que automatizar. El trader aprende Python, escribe un backtester, ajusta los parámetros a los últimos cinco años de datos y obtiene una curva de equity más hermosa de lo que la realidad puede producir jamás — el clásico curve fitting. Sale en real, pierde, concluye que necesita «una estrategia mejor» y repite el bucle. La condición previa que mejora drásticamente las probabilidades es que exista una ventaja antes de escribir la primera línea de código — una regla lo suficientemente sencilla como para que en el trading discrecional o en la aritmética pura sobre datos históricos ofrezca una expectativa positiva en múltiples regímenes de mercado, no sólo en el más reciente. Cómo aislar y validar esa ventaja se explica en nuestro artículo sobre la ventaja en el trading. La segunda cosa que separa los proyectos duraderos de los intentos únicos es la disposición a aceptar la respuesta «tu estrategia no tiene ventaja, vuelve a la mesa de trabajo». La mayoría de los traders prefiere seguir optimizando los parámetros antes que escucharla. El algoritmo no suavizará ese mensaje; sólo lo repetirá más rápido.

Profundiza más · la guía completa