Construyes un Expert Advisor de MACD en MT5 sin programar colocando un nodo Start, dos bloques MACD — uno que lee la línea principal y otro que lee la línea de señal —, una condición Cross entre ambos y un bloque de orden. El servidor genera y compila el MQL5 y te entrega un .ex5 real. Quince minutos, y ni una línea de sintaxis.
Después llega la parte que decide si el archivo vale algo. Esta receta tiene un historial medido, y su cifra más halagadora es precisamente de la que menos deberías fiarte.
Qué vas a construir
Un EA de una sola posición sobre un par que compra cuando la línea MACD cruza por encima de su línea de señal y vende cuando la cruza por debajo, con un stop y un objetivo fijos, compilado a un .ex5 real. Ocho bloques.
Dos de esos bloques existen por una única razón: el bloque indicador MACD devuelve una línea cada vez.
Antes de empezar: qué informa el MACD y qué línea estás leyendo
Necesitas una cuenta gratuita con el correo verificado (diseñar es gratis y no requiere identificarse; compilar a .ex5 sí), unos quince minutos y un terminal MetaTrader 5.
El MACD resta una media móvil lenta de una rápida y después vuelve a promediar esa diferencia. Así que la línea principal mide cuánto se han separado dos medias, y la línea de señal es esa misma medición suavizada. Todo lo que puede decir una regla de MACD es una afirmación sobre la distancia entre dos medias — lo que significa que es una herramienta de tendencia disfrazada de oscilador, y hereda el retraso de las dos medias que la construyeron.
El bloque MACD del Builder expone estos ajustes:
| Ajuste del bloque | Por defecto | Qué controla |
|---|---|---|
fast_ema | 12 | La media más rápida. Rango 1–999 |
slow_ema | 26 | La más lenta. La separación entre ambas es toda la señal |
signal_period | 9 | Cuánto se suaviza la diferencia antes de que la compares |
line | MODE_MAIN | Qué línea saca este bloque — MODE_MAIN o MODE_SIGNAL |
applied_price | PRICE_CLOSE | Qué precio alimenta el cálculo |
shift | 0 | 0 es la vela en formación; 1 es la última cerrada |
timeframe | gráfico actual | Cualquiera de M1 a MN1, leído con independencia del gráfico |
line es la fila que cambia la forma de tu flujo. Es un desplegable de dos valores, así que un bloque te da una línea. Un cruce de la línea de señal necesita por tanto dos bloques MACD; un cruce de la línea cero necesita uno, más una comparación contra una constante.
Paso a paso: construye el EA de MACD en el Builder
- Abre el EA Builder y carga la plantilla
macd_signaldesde la galería, o empieza desde un lienzo en blanco para cablearla tú mismo. - Coloca un nodo Start desde la paleta Utility. Sin él, la validación detiene la construcción con
EAB-E202. - Añade un bloque MACD y deja
lineenMODE_MAIN. Deja el 12/26/9 en paz en la primera construcción para que tu resultado siga siendo comparable con la línea base de abajo. - Añade un segundo bloque MACD con periodos idénticos y pon
lineenMODE_SIGNAL. Mismo indicador, mismos ajustes, salida distinta — este es el paso que la gente se salta, y saltárselo es la razón por la que su flujo compara una línea consigo misma. - Conecta ambos a una condición Cross. Cross toma dos entradas y pregunta si una cruzó a la otra en esta vela; su
cross_typeescrossoverocrossunder, así que el lado de compra y el de venta son dos condiciones separadas, no una invertida. - Conecta cada condición a su propio bloque Open Buy / Open Sell. Conectar un indicador directamente a una orden se rechaza con
EAB-E205— un valor bruto no es una decisión. - Fija el riesgo en la pestaña Settings. Los valores por defecto compartidos son un stop de 50 pips, un objetivo de 100 pips y un lote fijo de
0,01; un flujo sin un stop válido levanta un diagnóstico previoCRITICALantes de construir nada. - Pulsa Measure (medir) y lee el resultado contra el listón que imprime el propio panel: factor de beneficio de al menos 1,2, al menos 60 operaciones y un drawdown no peor del 20%.
- Pulsa Compile .ex5, mueve el archivo a
MQL5/Expertscon File > Open Data Folder, refresca el Navegador y pruébalo en el Strategy Tester antes de que se acerque a una cuenta.
- Nodo Start
- Bloque MACD, line = MODE_MAIN
- Bloque MACD, line = MODE_SIGNAL
- Cross — crossover para comprar, crossunder para vender
- Open Buy y Open Sell
- Stop loss y take profit
- Compilar a .ex5
Si prefieres la versión de la línea cero, borra el segundo bloque MACD y sustituye Cross por Compare (comparar), cuyos operadores son > < >= <= == != y cuyo offset vale 0 por defecto. «La línea principal del MACD por encima de cero» es una afirmación de que la media rápida está por encima de la lenta, sin más — un evento mucho más raro y mucho más tardío que el simple contacto entre las dos líneas. La paleta lleva además OsMA, que saca directamente la diferencia entre la principal y la de señal como un único valor, así que una regla de histograma necesita un bloque en lugar de dos.
Ajustes de entrada, salida y parámetros del MACD
| Ajuste | Valor de la plantilla | Qué hace moverlo |
|---|---|---|
fast_ema | 12 | Más bajo reacciona antes y cruza muchísimas más veces; el número de operaciones se mueve antes que la tasa de acierto |
slow_ema | 26 | Subirlo ensancha la distancia que la línea rápida tiene que recorrer, así que las señales llegan más tarde y más raras |
signal_period | 9 | El suavizado de la línea de comparación. Más corto significa más cruces, y la mayoría son ruido |
line | MODE_MAIN | No es un mando de ajuste fino — decide qué regla has construido |
shift | 0 | Ponlo a 1 para decidir solo sobre velas cerradas |
| Stop loss | 50 pips (valor por defecto compartido) | El rango buscado fue 30–80 |
| Take profit | 100 pips (valor por defecto compartido) | El rango buscado fue 60–250 |
Sobre el retraso, que es la queja honesta contra este indicador. Cada valor de aquí es la salida de dos medias apiladas sobre una tercera. Un cruce es, por tanto, el informe de que un movimiento ya ocurrió — la única pregunta es cuánto de tarde. Acortar fast_ema compra anticipación y la paga en cruces falsos; alargar slow_ema compra fiabilidad y la paga en entradas que llegan después del movimiento. El propio historial de la plantilla sugiere dónde aterrizó: 698 operaciones en un año, el segundo recuento más alto de las trece plantillas de tendencia y momentum medidas bajo condiciones idénticas. Eso es un diseño disparando constantemente, y disparar constantemente es lo que cuesta un retraso corto.
Qué tocó la búsqueda y qué no. La búsqueda de parámetros registrada movió únicamente el stop y el objetivo — SL30-80 × TP60-250, 12 combinaciones a lo largo de tres ventanas en H1. No varió nunca fast_ema, slow_ema ni signal_period. Así que nada de esta página respalda la afirmación de que 12/26/9 sea acertado, equivocado ni mejorable. Lo que sí respalda es una afirmación mucho más estrecha y mucho más útil: ninguna combinación de stop y objetivo rescató al diseño.
Haz el backtest del EA de MACD
Este es el registro medido que el propio Builder tiene, no una nueva ejecución, y todas las plantillas de la comparación comparten el único conjunto de condiciones de abajo. Cómo probamos describe el estándar al que se someten esos registros.
Línea base de macd_signal | Valor |
|---|---|
| Factor de beneficio | 0,93 |
| Operaciones | 698 |
| Drawdown máximo | -1,05% |
| Neto | -93,93 |
| Puesto en su vecindario por factor de beneficio | 8.ª de 13 |
| Puesto en su vecindario por número de operaciones | 2.ª de 13 |
| Supera el listón del propio panel Measure | no |
| Condiciones de la prueba | |
|---|---|
| ID del experimento | EXP-MACD-RECIPE-BASELINE-001 |
| Experimento padre | EXP-BUILDER-TEMPLATE-BASELINE-001 |
| Símbolo / marco temporal | USDJPYm M5 |
| Periodo | 2025-06-01 – 2026-06-09 |
| Modelo | M1 OHLC (Model=1) |
| Depósito | 10,000 |
| Entorno | Exness MT5 |
| Línea base medida | 2026-06-18 |
| Última verificación | 2026-08-25 |
El resultado de la búsqueda merece más de una línea. Ocho plantillas de la galería llevan una búsqueda de parámetros registrada, y las ocho terminaron en no_robust_edge. Pero fallaron de dos formas distintas, y la diferencia importa más que el veredicto compartido. Dos de ellas no produjeron ni un solo ajuste ganador, ni siquiera sobre el periodo al que se ajustó la búsqueda. macd_signal es la única que produjo un ajuste que superó el 1,0 fuera de la muestra — 1,14 a 1,15 con el objetivo más ancho — y que después sacó 0,74 a 0,77 sobre la ventana anterior. La palabra que el propio manifiesto usa para esto es dependiente del régimen.
Lee lo que eso implica sobre las pruebas. Si hubieras partido tus datos una sola vez, ajustando sobre la primera mitad y comprobando sobre la segunda, esta plantilla te habría entregado un resultado aprobado. Lo único que la pilló fue comprobar una tercera ventana que la búsqueda no había visto nunca. Ese es el argumento a favor del análisis walk-forward en un caso concreto, y vale más que cualquier advertencia general sobre el sobreajuste.
Dónde se sitúa el MACD entre sus vecinas, todas medidas bajo el único bloque de condiciones de arriba:
| Plantilla | Bloques | Factor de beneficio | Drawdown | Operaciones |
|---|---|---|---|---|
ma_perfect_order_trend | 10 | 1,07 | -0,36% | 305 |
mtf_osc_filter | 27 | 1,04 | -0,64% | 187 |
consecutive_bars_momentum | 7 | 1,03 | -0,36% | 377 |
ao_ama_trend | 14 | 0,97 | -0,95% | 239 |
adx_trend | 12 | 0,96 | -0,76% | 534 |
multi_tf_trend | 15 | 0,96 | -0,51% | 247 |
ma_crossover | 9 | 0,95 | -0,84% | 420 |
macd_signal | 8 | 0,93 | -1,05% | 698 |
ma_slope_trend | 7 | 0,92 | -1,00% | 478 |
mtf_adx_filter | 14 | 0,92 | -0,84% | 343 |
elder_ray | 9 | 0,90 | -1,34% | 529 |
pitch_trail_trend | 9 | 0,77 | -1,61% | 467 |
dynamic_sl_trend | 9 | 0,68 | -1,62% | 708 |
Parte esas trece por su propia mediana de operaciones, que es 420, y las dos mitades se separan con nitidez. Las seis que operaron menos promediaron un factor de beneficio de 1,00 en 283 operaciones con un drawdown del -0,61%. Las seis que operaron más promediaron 0,86 en 569 operaciones con un -1,23% — peores resultados y el doble de profundidad. Los tres diseños que superan el 1,0 están todos en la mitad tranquila. El MACD está en la ruidosa.
Eso es la descripción de trece diseños bajo una misma configuración, no una ley: la lógica de entrada, el número de nodos y las salidas también difieren, así que la frecuencia no queda establecida como la causa. Pero es el patrón que tienes delante, y la plantilla MACD incluida está en el lado malo de él.
Errores comunes que hay que evitar
Creerte un aprobado fuera de la muestra. Este es el error que esta plantilla existe para demostrar. Un solo periodo reservado es una única muestra, y una regla de momentum puede ganar una única muestra porque el mercado tuvo tendencia durante ella. Prueba una tercera ventana que la búsqueda no haya visto nunca antes de creerte una cifra.
Comparar una línea consigo misma. Si los dos bloques MACD se quedan en MODE_MAIN, la condición Cross compara valores idénticos y no dispara nunca — o dispara por redondeo. Comprueba el ajuste line en ambos bloques antes de preguntarte por qué el número de operaciones es cero.
Leer un cruce como una predicción. El MACD son dos medias de una media. Un cruce informa de que un movimiento lleva ya varias velas en marcha. La decisión de diseño es cuánta tardanza aceptas, no si aceptar alguna.
Ajustar el stop y el objetivo hasta que la curva de capital se vea bien. La búsqueda registrada ya hizo eso sistemáticamente a lo largo de 12 combinaciones y tres ventanas, e informó de no_robust_edge. Si tu ajuste manual bate a una búsqueda sistemática, sospecha del ajuste.
Apilar filtros de momentum. La composición de arriba es la versión medida de ese instinto: 3,76 veces el drawdown a cambio de un factor de beneficio ligeramente peor.
Ejecutarlo junto a otro EA sin separarlos. Cada EA de una misma cuenta necesita su propio número mágico, o las salidas de un EA cerrarán las posiciones del otro.
Próximos pasos y variantes
Cuándo no usar MACD. En un rango, dos medias se cruzan una y otra vez y cada cruce es ruido — y un valor por defecto que dispara rápido es exactamente lo que un rango castiga. Si no eres capaz de enunciar una condición que apague la regla durante los periodos planos, o añades una o usas una idea que no dependa de que las dos medias se separen.
Las variantes que merece la pena probar, por orden de evidencia. Prueba primero la versión de la línea cero: es un bloque más simple y dispara muchísimo menos, y la mitad tranquila del vecindario es donde se sitúan todos los resultados por encima de 1,0. Después prueba la misma regla sobre un timeframe superior dentro del bloque MACD, lo que ralentiza la señal sin tocar el gráfico. Solo entonces muevas los periodos — y cambia uno cada vez.
Y después pruébalo en serio. El panel Measure trabaja a nivel de vela y es aproximado; es un filtro, no un veredicto. Cómo hacer un backtest en MT5 recorre una ejecución real de principio a fin, incluida cuál de las dos cifras de drawdown del informe hay que creerse. Cómo crear un EA de RSI es la receta hermana con el modo de fallo opuesto — su búsqueda no ganó nunca nada, lo que la vuelve más fácil de rechazar y menos instructiva que esta. Cómo crear un EA para MT5 sin programar cubre el vocabulario de bloques más amplio, y las guías de backtesting profundizan en el paso walk-forward que esta página defiende.
Y para calibrar qué aspecto tiene un registro documentado, cada ficha del catálogo de EA publicados lleva su lista completa de operaciones cerradas y el manifiesto de la ejecución. Compara una de ellas con la tabla de arriba antes de fiarte de ninguna estrategia, incluida una que hayas construido tú mismo.