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.

📖 16 min read

📝 3,100 words

🏷️ MQL5 & Expert Advisors

Compartir este artículo:

¿Quieres crear una estrategia sin código ahora?

Crea tu cuenta gratis en segundos y empieza de inmediato.


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.

Respuesta rápida: Una configuración práctica de scalping en MT5 combina timeframe M1/M5, filtro de spread, lógica de una sola posición y pruebas en Cada tick antes de pasar a Demo/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: Referencia de programación MQL5 · EA avanzado: Multi-Timeframe y filtros · Backtest de EA en MT5 · Crear EA sin programar


¿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).


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.

Crea tu estrategia de trading sin código ahora — gratis

Crea tu cuenta y empieza ahora mismo a construir una estrategia sin código. Añade indicadores, filtros y reglas de riesgo, y exporta MQL5 en minutos.

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.

Crea tu estrategia sin código ahora — gratis

Crear cuenta gratis