RSI: Ejemplo Análisis de Estratégia Scalping
Estrategia base RSI para operaciones en largo y corto (Scalping MQL5)
Propósito
Diseñar una estrategia simple, eficiente y programable de scalping que aproveche condiciones de agotamiento de precio identificadas con RSI, combinadas con filtros de dirección de tendencia y confirmaciones del precio.
Aplicable en marcos temporales bajos y lista para ser transformada en robot (EA) o script para backtesting en MQL5.
Condiciones para operación en largo (BUY)
Filtros previos:
-
Tendencia activa:
-
El precio debe estar por encima de una EMA 21 (exponencial) en el marco actual
-
(Opcional: la EMA tiene pendiente positiva)
-
-
Condición de sobreventa RSI:
-
RSI(7) < 30
-
RSI muestra giro ascendente (último valor > penúltimo valor)
-
-
Confirmación adicional (visual o programable):
-
Cierre de la vela actual > apertura (vela alcista)
-
El mínimo de la vela está cerca de la EMA o de soporte local (se puede definir como condición por distancia en pips/puntos)
-
Ejecución (lógica operativa):
-
Entrada BUY: al cierre de la vela que confirma el giro de RSI en sobreventa
-
Stop Loss (SL): por debajo del mínimo de las últimas 3 velas o X pips/puntos bajo la entrada
-
Take Profit (TP): fijo en 1.5x SL o hasta resistencia previa si se quiere usar TP dinámico
Condiciones para operación en corto (SELL)
Filtros previos:
-
Tendencia activa:
-
Precio por debajo de EMA 21
-
(Opcional: EMA con pendiente negativa)
-
-
Condición de sobrecompra RSI:
-
RSI(7) > 70
-
RSI muestra giro descendente (último valor < penúltimo valor)
-
-
Confirmación adicional (visual o programable):
-
Cierre de la vela actual < apertura (vela bajista)
-
El máximo de la vela está cerca de la EMA o resistencia local
-
Ejecución (lógica operativa):
-
Entrada SELL: al cierre de la vela que confirma el giro de RSI en sobrecompra
-
Stop Loss (SL): por encima del máximo de las últimas 3 velas o X pips/puntos
-
Take Profit (TP): fijo en 1.5x SL o hasta soporte técnico próximo
Detalles clave para futura implementación en MQL5
-
Parámetros configurables:
-
Período RSI (por defecto: 7)
-
Período EMA (por defecto: 21)
-
SL y TP (en puntos o como múltiplo de ATR)
-
Habilitar/deshabilitar filtros de pendiente EMA
-
-
Condiciones booleanas claras para:
-
Giro del RSI (comparación de valores entre ticks o velas)
-
Confirmación por tipo de vela (dirección y tamaño)
-
Distancia a EMA o niveles de precio
-
“Una estrategia sencilla es una estrategia replicable. Y si puedes escribirla, puedes programarla. Y si puedes programarla, puedes mejorarla.”
Nota: integrar la estrategia de scalping con RSI en el contexto del artículo “El análisis en el diseño de un algoritmo” es una decisión acertada. Este artículo enfatiza la importancia de documentar y estructurar adecuadamente las estrategias antes de su implementación, lo cual es fundamental para el desarrollo de algoritmos efectivos y sostenibles en el tiempo.
En el artículo se destaca la necesidad de:
-
Documentar los requisitos de la operativa: Esto implica definir claramente las condiciones de entrada y salida, los criterios de gestión del riesgo y otros aspectos clave de la estrategia.
-
Utilizar diagramas de flujo: Representar visualmente el proceso de la estrategia facilita la comprensión y la identificación de posibles mejoras o ajustes necesarios.
-
Evitar la sobreoperativa y estrategias infalibles: Se aconseja ser realista en las expectativas y diseñar estrategias que sean consistentes y sostenibles, en lugar de buscar rentabilidades excesivas sin una base sólida.
Al relacionar nuestra estrategia de scalping con RSI con estos principios, aseguramos que su desarrollo y eventual implementación en MQL5 estén alineados con una metodología rigurosa y bien fundamentada.
Aquí tienes un código base / ejemplo en MQL5 para implementar la estrategia de scalping con RSI, es buen punto de partida para ampliarlo con gestión dinámica, trailing stop, condiciones horarias o incluso funciones de optimización para pruebas en el Strategy Tester de acuerdo a tu filosofia, personalidad y sentido de tu operativa; espero sea de utilidad:
// Estrategia de Scalping con RSI - Versión MQL5
// Relacionado con: https://consultoriadesdesofa.blogspot.com/2025/04/el-analisis-en-el-diseno-de-un-algoritmo.html
// Parámetros configurables
input int RSI_Period = 7;
input int EMA_Period = 21;
input double RSI_Buy_Level = 30.0;
input double RSI_Sell_Level = 70.0;
input double TakeProfit = 15; // en puntos
input double StopLoss = 10; // en puntos
input double LotSize = 0.1;
int rsi_handle;
double rsi_current, rsi_previous;
int OnInit() {
rsi_handle = iRSI(_Symbol, _Period, RSI_Period, PRICE_CLOSE);
if (rsi_handle == INVALID_HANDLE) {
Print("Error al crear el handle del RSI");
return(INIT_FAILED);
}
return(INIT_SUCCEEDED);
}
void OnTick() {
double ema = iMA(_Symbol, _Period, EMA_Period, 0, MODE_EMA, PRICE_CLOSE, 0);
double close = Close[1];
// Leer valores RSI
if (CopyBuffer(rsi_handle, 0, 1, 2, &rsi_previous) < 2) return;
rsi_current = rsi_previous[0];
rsi_previous = rsi_previous[1];
// Condición para BUY
if (close > ema && rsi_previous < RSI_Buy_Level && rsi_current > rsi_previous) {
if (PositionsTotal() == 0) {
trade.Buy(LotSize, _Symbol, Ask, StopLoss * _Point, TakeProfit * _Point, NULL);
}
}
// Condición para SELL
if (close < ema && rsi_previous > RSI_Sell_Level && rsi_current < rsi_previous) {
if (PositionsTotal() == 0) {
trade.Sell(LotSize, _Symbol, Bid, StopLoss * _Point, TakeProfit * _Point, NULL);
}
}
}
Comentarios
Publicar un comentario