Categoría
Plataforma
Nivel
Principiante
Se usa en
Operación de MT5Evaluación de EADiseño de estrategias

Expert Advisor

Programa de trading automatizado escrito en MQL5 que se ejecuta dentro de MetaTrader 5 y abre, modifica y cierra órdenes según unas reglas programadas, sin intervención manual.

también: EA, robot de trading, bot de trading, operador algorítmico

Actualizado

En palabras sencillas

Un programa que opera por usted dentro de MetaTrader. No tiene criterio propio ni más memoria que la que usted le dio: despierta cuando la plataforma lo llama, mira las pocas cosas que se escribió para mirar y actúa.

Por qué importa

Los backtests, las cifras de drawdown, los magic numbers, el tiempo de actividad de un VPS: todo eso existe porque quien coloca las órdenes es un programa y no una persona. Saber qué le entrega la plataforma a un EA, y qué le oculta, es la diferencia entre leer bien un resultado y llevarse una sorpresa.

  • Ejecuta sin titubear, y ahí está todo su valor y todo su riesgo. El mismo conjunto de reglas que nunca se salta una señal válida tampoco se da cuenta nunca de que hoy es distinto.
  • Ve una franja estrecha: los precios de su símbolo, los valores de los indicadores que pide, las posiciones y el saldo de la propia cuenta. Las noticias, las cotizaciones de otros brókeres y sus demás cuentas quedan fuera de esa ventana salvo que el código las solicite.
  • Se distribuye compilado. Un archivo .ex5 se ejecuta pero no se puede leer, así que la confianza del comprador tiene que venir de pruebas publicadas y no del código fuente.
  • Solo funciona mientras funcione el terminal. Un EA en un portátil dormido es un EA que no está operando, y en eso consiste todo el argumento a favor de un VPS.

En MetaTrader 5

Dónde aparece en MT5

  • Navegador → Expert Advisors: los EA compilados que el terminal puede ver
  • Archivo → Abrir carpeta de datos → MQL5/Experts: ahí tiene que estar el archivo .ex5 para que aparezca
  • Barra de herramientas → Algo Trading: el interruptor maestro; un EA con una cara triste en el gráfico es un EA al que este botón está bloqueando
  • Gráfico → Propiedades del EA (F7) → Parámetros de entrada / Común: parámetros y permisos por EA
  • Ver → Probador de Estrategias (Ctrl+R): el mismo EA ejecutado sobre datos históricos

Cómo lo usan los EA

  • El terminal llama a OnInit() una vez al acoplarlo, a OnTick() en cada cotización entrante del símbolo del gráfico y a OnDeinit() al retirarlo.
  • El trabajo suele hacerse sobre barras cerradas y no en cada tick: el EA compara la hora de apertura de la barra actual con la que guardó y retorna de inmediato cuando no se ha formado nada nuevo.
  • Las órdenes salen como una MqlTradeRequest rellenada, o a través del envoltorio CTrade que rellena por usted la mayor parte.
  • Cada instancia marca sus órdenes con un magic number para gestionar solo sus propias posiciones; sin él, dos EA se pelean por los mismos tickets.

Ajustes habituales

Ajuste Valor habitual Nota
Algo Trading (terminal) activado Está desactivado tras la instalación. Nada opera hasta que se active.
Permitir Algo Trading (por EA, F7 → Común) activado Es un permiso independiente del interruptor general del terminal.
Permitir WebRequest para la URL indicada desactivado salvo que el EA lo necesite Solo lo necesitan los EA que descargan datos externos; concédalo por URL, nunca en bloque.
Marco temporal del gráfico el marco temporal para el que se diseñó el EA Una estrategia de M15 en un gráfico de H1 es otra estrategia: OnTick se dispara por tick, pero la lógica de barras lee el periodo del gráfico.
MagicNumber único por instancia en ejecución No por producto: dos gráficos con el mismo EA necesitan dos valores.

Problemas operativos frecuentes

  • El terminal está cerrado, suspendido o reiniciándose para actualizarse: el EA sencillamente no está funcionando, y no queda registrado ningún error.
  • Una discrepancia en el nombre del símbolo entre el bróker y la configuración (EURUSD frente a EURUSD.m) deja el EA acoplado y en silencio.
  • Margen libre insuficiente: OrderSend falla en cada intento y el EA sigue intentándolo, así que el registro se llena mientras la cuenta no hace nada.
  • El contexto de trading está ocupado cuando varios EA envían a la vez: fallos intermitentes y difíciles de reproducir.
  • El EA se probó en un bróker con otro modelo de ejecución u otro tamaño de contrato, y en real se comporta distinto sin ningún cambio en el código.

Funciones de MT5 relacionadas

OnInit() / OnDeinit()
Se llaman una vez al acoplar y una vez al retirar: ahí se validan los parámetros y se crean los handles.
OnTick()
Se llama en cada cotización entrante del símbolo del gráfico; es el punto de entrada principal.
OnTimer()
Se llama en el intervalo fijo que establece EventSetTimer(), para el trabajo que no debe depender de que lleguen ticks.
OrderSend(request, result)
La única llamada que envía toda operación de trading; la estructura de la petición decide de qué tipo es.
CTrade (Trade/Trade.mqh)
El envoltorio de la biblioteca estándar que usa la mayoría de los EA en lugar de rellenar MqlTradeRequest a mano.

Ejemplo

Casi cualquier EA, reducido al orden en que lo llama la plataforma. Nada de esto es estrategia: es el marco dentro del cual se aloja una estrategia.

1. OnInit()
una vez, al acoplarlo
Validar los parámetros, crear los handles de indicadores, fijar el magic number.
2. OnTick()
en cada cotización
Retornar de inmediato salvo que se haya formado una barra nueva, y entonces evaluar las reglas.
3. OrderSend()
cuando se dispara una regla
Una MqlTradeRequest rellenada por operación: abrir, modificar o cerrar.
4. OnDeinit()
una vez, al retirarlo
Liberar los handles. Esto no cierra las posiciones abiertas: se quedan donde están.

Retirar un EA de un gráfico no cierra lo que ese EA abrió. Las posiciones siguen ahí, y ya no hay nada que las gestione.

Cálculo if (iTime(_Symbol, PERIOD_CURRENT, 0) == lastBarTime) return;

Resultado Un EA de cierre de barra que ignora los miles de ticks que hay entre dos decisiones

Cómo se usa

Juzgar un EA que uno no ha escrito es cuestión de pruebas: el archivo compilado no dice nada. Debajo está lo que conviene pedir.

  • Pregunte qué datos usó el backtest y cómo se modeló. Los ticks reales y una cifra de calidad de modelado significan algo; una curva de capital sin etiquetar, no.
  • Pregunte por el número de operaciones y por la ventana temporal. El EA mediano publicado aquí cerró 362 operaciones a lo largo de varios años; cuarenta operaciones en cuatro meses son una anécdota.
  • Compruebe si la estrategia mantiene abiertas las perdedoras. Promediar a la baja y la recuperación en rejilla producen curvas preciosas hasta la cesta que no se recupera, y ninguna ratio de operaciones cerradas avisa de ello.
  • Pruébelo en demo con su propio bróker antes de ponerle dinero. El modelo de ejecución, el spread, el tamaño del contrato y la nomenclatura de los símbolos son distintos, y todos cambian el resultado.
  • Dé a cada instancia su propio magic number, y anote cuál es cuál antes de tener más de dos en marcha.

Cada EA listado aquí publica su ventana de prueba, su fuente de datos, su calidad de modelado y el registro completo de operaciones, de modo que estas pruebas se pueden comprobar en lugar de pedirlas.

Errores frecuentes

Tratar un EA como si fuera un operador con criterio

Es un conjunto de reglas que la plataforma invoca en cada tick. No puede darse cuenta de que el mercado ha cambiado, de que un banco central habla dentro de diez minutos o de que sus propios resultados se han deteriorado, salvo que alguien escribiera una regla exactamente para eso.

Dar por hecho que el resultado de un backtest se traslada a su cuenta

El spread, la comisión, el modelo de ejecución, el tamaño del contrato y el conjunto de símbolos forman parte del resultado. Una prueba en un bróker es una prueba sobre ese bróker; una ejecución en demo en el suyo es la forma más barata de ver cuánto se traslada.

Retirar el EA para pararlo y creer que también se pararon las operaciones

Desacoplar un EA deja sus posiciones abiertas donde estaban. Después ya no hay nada que las ajuste ni que las cierre: se quedan hasta que tocan un stop, un objetivo o un cierre forzoso.

Ejecutar varios EA en una misma cuenta sin separarlos

Sin magic numbers distintos, cada EA trata toda posición como suya y acaban cerrándose las operaciones unos a otros. El fallo es silencioso: ningún error, solo resultados que no corresponden a ninguna estrategia por separado.

En detalle

Cómo es un registro real de un EA

Una definición describe el mecanismo; un registro describe la experiencia. Los catorce EAs publicados aquí incluyen su lista completa de operaciones cerradas: 9.702 operaciones desde 2019.

Sobre los 14 EAs publicadosValor
Operaciones cerradas9.702
Operaciones por EA (mediana)362, de 108 a 4.725
Factor de beneficio (mediana)1,39, de 1,27 a 1,52
Peor racha de pérdidas (mediana)6 operaciones, la peor 14
Periodo más largo sin nuevo máximo de capital (mediana)423 días, el peor 775
Ejecuciones en real verificadas0

¿Son rentables los expert advisors? recorre ese registro EA por EA, y EA frente al trading manual reproduce las mismas operaciones bajo las reglas de parada que una persona aplica de verdad.

Preguntas frecuentes

¿Qué es un Expert Advisor en MetaTrader 5?
Un programa escrito en MQL5 y compilado en un archivo .ex5 que se ejecuta dentro del terminal y opera según sus reglas. La plataforma lo llama en cada cotización entrante del gráfico al que está acoplado, y abre, modifica y cierra órdenes sin nadie al teclado.
¿Tengo que dejar el ordenador encendido para que funcione un EA?
Sí: un EA se ejecuta dentro del terminal, así que solo opera mientras el terminal esté funcionando y conectado. Por eso los EA desatendidos suelen vivir en un VPS y no en un ordenador que se suspende o se reinicia.
¿Puedo leer la estrategia de un EA que he comprado?
Desde el archivo .ex5, no. Los EA compilados se ejecutan sin exponer su lógica, y por eso los vendedores los distribuyen así. La estrategia tiene que describirse con honestidad en la ficha y respaldarse con pruebas publicadas.
¿Puedo ejecutar más de un EA en la misma cuenta?
Sí, y es habitual. Cada instancia necesita su propio magic number para gestionar solo las posiciones que ella abrió, y la cuenta necesita margen libre para todas a la vez: las estrategias no saben unas de otras.