En esta página
Volver a tutoriales

Guía EA de Scalping para MT5: Ajustes, Filtro de Spread y MQL5

Cómo funcionan los EAs de scalping: timeframes, spread, lógica de entrada/salida y riesgo. Construye o adapta un EA de scalping simple para M1/M5 en MQL5.

📖 17 min read

📝 3,400 words

🏷️ MQL5 & Expert Advisors

Compartir este artículo:

Prueba el flujo de esta guía

Abre la demo primero — sin registro. Regístrate después para guardar y exportar en Code Generator.


EA de scalping en MetaTrader 5: lógica, riesgo y un ejemplo simple

Un EA de scalping en MetaTrader 5 es un Asesor Experto que busca muchos beneficios pequeños en timeframes cortos (normalmente M1 o M5), manteniendo posiciones durante minutos en lugar de horas. Como los objetivos son pequeños, el spread, el deslizamiento y la ejecución a nivel de tick importan mucho — por eso tu EA debe filtrar por spread, usar reglas de riesgo estrictas y ser probado con Cada tick en el Probador de Estrategias. Esta guía explica cómo funcionan los EAs de scalping, cómo configurar entrada/salida y riesgo, y ofrece un ejemplo simple de cruce de medias móviles en M1 en MQL5 con referencias a la documentación oficial.

¿Cuáles son los mejores ajustes MT5 para un EA de scalping?

En la mayoría de EAs de scalping: usa M1 o M5, activa un filtro de spread, mantén una sola posición y haz backtest en Cada tick antes de Demo o Live.

Antes de ejecutar un EA de scalping, verifica:

  • Umbral de spread realista para tu símbolo y bróker
  • Modo de ticks en Cada tick (o ticks reales)
  • Stop loss / tamaño de posición con riesgo estricto
  • Backtest en Probador y luego validación en Demo antes de Live

Guías relacionadas: EA scalping sin código (Strategy Builder) · Crear y editar EA en MT5 · Error 10016 · Backtest en Probador · EA sin código · EA cruce MA sin código


¿Qué es un EA de scalping?

El scalping es un estilo de trading que intenta capturar pequeños movimientos de precio muchas veces al día. Un Asesor Experto de scalping automatiza esto: abre y cierra posiciones con rapidez, a menudo en M1 o M5. En MQL5, el evento principal para reaccionar a nuevos precios es OnTick(): "The function is called in EAs when the NewTick event occurs to handle a new quote." Por tanto, los EAs de scalping suelen poner su lógica en OnTick(), comprobando condiciones en cada tick o en cada nueva vela (por ejemplo con una comprobación de "nueva vela" para evitar múltiples entradas por vela).

¿Nuevo en EAs? Empieza con Cómo crear y editar un Asesor Experto en MT5.


Checklist móvil y escritorio antes de cuenta real

El scalping falla en silencio si el spread, el modo de ticks o los stops del bróker están mal. Usa esta lista en móvil (supervisión) y escritorio (configuración y backtest).

PasoMóvil (app MT5)Escritorio
1AutoTrading activo; icono EA verdeMismo + .ex5 correcto en el gráfico
2Símbolo con sufijo correcto del brókerMarket Watch; anota SYMBOL_TRADE_STOPS_LEVEL
3Diario sin 10016 repetidoGuía error 10016
4Spread normal para la sesiónFiltro de spread en código
5Demo antes de realProbador: Cada tick
6Cuenta fondeadaReglas prop firm

Sin código: Strategy Builder → exportar MQL5 → backtest → Demo.


Características: timeframes y spread

AspectoElección típica para scalpingPor qué
TimeframeM1, M5Más velas y señales; decisiones basadas en la acción de precio a corto plazo.
SpreadBajo, filtrado en códigoEl spread se come los objetivos pequeños; usa SymbolInfoInteger(Symbol(), SYMBOL_SPREAD) o SymbolInfoTick para obtener bid/ask actual y no operar cuando el spread sea demasiado alto.
SímbolosForex mayor (ej. EURUSD), a veces índicesMejor liquidez y spread más bajo en sesiones principales.

MQL5 recomienda usar SymbolInfoTick() cuando necesitas los últimos precios en una sola llamada. Para scalping, eso significa bid/ask actualizados para entradas y comprobaciones de spread.


Entrada, salida y riesgo

  • Entrada: A menudo basada en señales rápidas: cruces, rupturas o momentum a corto plazo. Muchos EAs de scalping permiten solo una posición a la vez y esperan la siguiente vela o una salida clara antes de volver a entrar.
  • Salida: Objetivo fijo (take profit) y stop loss en pips/puntos; a veces salida por tiempo (cerrar tras N velas o N segundos).
  • Riesgo: Usa tamaños de lote pequeños y stop loss estricto. Aplica los principios de gestión de riesgo en EA: limita el riesgo por operación y la exposición total. Al operar con frecuencia, pequeños márgenes pueden anularse por spread y deslizamiento si no se controlan.

Probador: usar cada tick

Al hacer backtest de un EA de scalping, el modo de generación de ticks es crítico. Según MetaTrader 5: "Every tick" se usa para asegurar la mejor precisión de prueba. Las condiciones simuladas son las más realistas en este modo. Para scalping, Cada tick (o Cada tick basado en ticks reales cuando esté disponible) es la opción adecuada; 1 minuto OHLC o Solo precios de apertura pueden dar precios de ejecución y curvas de equity engañosos. Para una guía completa, consulta Backtest de tu EA en el Probador.


Ejemplo: EA simple cruce MA M1

A continuación un EA mínimo tipo scalping en MQL5: usa M1, cruce de medias rápidas/lentas para señales, filtro de spread y una sola posición a la vez. La lógica se ejecuta en nueva vela para evitar múltiples entradas por vela.

//+------------------------------------------------------------------+
//| EA simple cruce MA M1 tipo scalping (ejemplo educativo)          |
//+------------------------------------------------------------------+
#property copyright "Ejemplo"
#property version   "1.00"
#property strict

input int    FastMA = 8;
input int    SlowMA = 21;
input int    MaxSpreadPoints = 20;   // spread máximo en puntos para permitir entrada
input double LotSize = 0.1;
input int    Slippage = 10;
input ulong  Magic = 12345;

int g_fastHandle, g_slowHandle;

int OnInit() {
   g_fastHandle = iMA(_Symbol, PERIOD_M1, FastMA, 0, MODE_EMA, PRICE_CLOSE);
   g_slowHandle = iMA(_Symbol, PERIOD_M1, SlowMA, 0, MODE_EMA, PRICE_CLOSE);
   if (g_fastHandle == INVALID_HANDLE || g_slowHandle == INVALID_HANDLE) {
      Print("Error al crear handles de MA");
      return INIT_FAILED;
   }
   return INIT_SUCCEEDED;
}

void OnDeinit(const int reason) {
   if (g_fastHandle != INVALID_HANDLE) IndicatorRelease(g_fastHandle);
   if (g_slowHandle != INVALID_HANDLE) IndicatorRelease(g_slowHandle);
}

bool isNewBar() {
   static datetime lastBar = 0;
   datetime curBar = iTime(_Symbol, PERIOD_M1, 0);
   if (curBar != lastBar) { lastBar = curBar; return true; }
   return false;
}

void OnTick() {
   if (!isNewBar()) return;

   // Filtro de spread (oficial: SymbolInfoInteger con SYMBOL_SPREAD)
   long spreadPoints = SymbolInfoInteger(_Symbol, SYMBOL_SPREAD);
   if (spreadPoints > MaxSpreadPoints) return;

   if (PositionsTotal() > 0) return;   // una posición a la vez

   double fast[2], slow[2];
   if (CopyBuffer(g_fastHandle, 0, 1, 2, fast) != 2) return;
   if (CopyBuffer(g_slowHandle, 0, 1, 2, slow) != 2) return;

   bool crossUp   = (fast[0] > slow[0] && fast[1] <= slow[1]);
   bool crossDown = (fast[0] < slow[0] && fast[1] >= slow[1]);

   MqlTradeRequest req = {};
   MqlTradeResult  res = {};
   req.symbol = _Symbol;
   req.volume = LotSize;
   req.deviation = Slippage;
   req.magic = Magic;
   req.action = TRADE_ACTION_DEAL;

   if (crossUp) {
      req.type = ORDER_TYPE_BUY;
      req.price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
      OrderSend(req, res);
   } else if (crossDown) {
      req.type = ORDER_TYPE_SELL;
      req.price = SymbolInfoDouble(_Symbol, SYMBOL_BID);
      OrderSend(req, res);
   }
}

Notas: Es un ejemplo simplificado. En producción añadirías take profit, stop loss y posiblemente filtros multi-timeframe o de sesión. El spread se lee con SymbolInfoInteger(_Symbol, SYMBOL_SPREAD) según la documentación MQL5.


Consejos prácticos

  • Broker y símbolo: Elige un broker con spread bajo y estable en los pares que scalpées. Prueba en el Probador de Estrategias con Cada tick.
  • Sesiones: El scalping suele rendir mejor en sesiones de alta liquidez (ej. Londres, Nueva York). Puedes añadir filtros de tiempo o sesión a tu EA.
  • VPS: Para ejecución 24/7 sin cortes, considera ejecutar el EA en un VPS cerca del servidor del broker.
  • Oro (XAUUSD): Si scalpéas oro, ten en cuenta mayor volatilidad y spread; consulta EA para oro (XAUUSD) para consideraciones por símbolo.

Próximos pasos

Referencias: MQL5 OnTick, SymbolInfoInteger, SymbolInfoTick, Probador de Estrategias MetaTrader 5.

Construye este EA en Strategy Builder

Empieza en la demo en vivo — sin registro. Recorre señales, filtros y riesgo. Crea cuenta gratis solo cuando quieras guardar y exportar MQL5.

Preguntas Frecuentes

Para la mayoría de EAs de scalping, empieza con M1 o M5, límites estrictos de spread y backtesting en Cada tick dentro del Probador de Estrategias. M1 da más señales con más ruido; M5 suele ser más limpio.

El scalping busca movimientos pequeños (pocos pips). Si el spread es alto, gran parte del movimiento se pierde en costes. SymbolInfoInteger (SYMBOL_SPREAD) permite que tu EA no entre cuando el spread supere tu límite.

Las entradas y salidas del scalping dependen de precios a nivel de tick. El Probador de Estrategias de MetaTrader 5 indica que "Cada tick" asegura la mayor precisión; "1 minuto OHLC" o "Solo precios de apertura" pueden falsear precios de ejecución y P/L.

Usa un constructor visual: define señales M1/M5, filtro de spread y riesgo en Strategy Builder, exporta MQL5 y haz backtest en Cada tick. Ver EA sin código y Crear/editar EA.

En el móvil: AutoTrading activo, símbolo correcto, Diario sin errores 10016/10019. En escritorio: Probador en Cada tick y luego Demo. Lista completa en Checklist previo a real en esta guía.

Probar Strategy Builder — sin registro

Probar Strategy Builder — sin registro