
La estrategia es un sistema de negociación de líneas cortas que combina un promedio móvil (EMA) y un indicador relativamente débil (RSI). Identifica oportunidades potenciales de negociación observando las señales de cruce de las líneas de medias múltiples y la confirmación de la dinámica del indicador RSI. La estrategia está diseñada con objetivos de pérdidas y ganancias adaptados para negociar en un período de tiempo de 15 minutos.
La estrategia utiliza tres promedios móviles indexados de diferentes períodos (9, 21, 50) y un indicador RSI de 14 períodos. En el caso de señales múltiples, se activa una señal múltiple cuando el EMA de 9 períodos sube a través del EMA de 21 períodos y el precio está por encima del EMA de 50 períodos y el RSI está en el rango de 40-70. En el caso de señales de cabezas vacías, se activa una señal de vacío cuando el EMA de 9 períodos baja a través del EMA de 21 períodos y el precio está por debajo del EMA de 50 períodos y el RSI está en el rango de 30-60 períodos.
La estrategia construye un sistema de negociación relativamente completo mediante la combinación de múltiples indicadores técnicos. No solo contiene señales claras de entrada y salida, sino que también diseña un mecanismo de control de riesgo. La ventaja central de la estrategia es aumentar la fiabilidad de las operaciones mediante la confirmación múltiple, pero al mismo tiempo requiere que el comerciante siga de cerca los cambios en el entorno del mercado y ajuste la configuración de los parámetros cuando sea necesario.
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("RSI + EMA Scalping Strategy", overlay=true)
// Input for EMAs
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)
ema50 = ta.ema(close, 50)
// RSI Input
rsi = ta.rsi(close, 14)
// User-defined input for Stop Loss & Target percentages
stop_loss_percent = input.float(0.5, "Stop Loss (%)", step=0.1)
target_percent = input.float(1.0, "Target (%)", step=0.1)
// Long condition
longCondition = ta.crossover(ema9, ema21) and close > ema50 and rsi > 40 and rsi < 70
if (longCondition)
strategy.entry("Buy", strategy.long)
stopLossPrice = close * (1 - stop_loss_percent / 100)
takeProfitPrice = close * (1 + target_percent / 100)
strategy.exit("Exit Buy", "Buy", stop=stopLossPrice, limit=takeProfitPrice)
// Short condition
shortCondition = ta.crossunder(ema9, ema21) and close < ema50 and rsi < 60 and rsi > 30
if (shortCondition)
strategy.entry("Sell", strategy.short)
stopLossPrice = close * (1 + stop_loss_percent / 100)
takeProfitPrice = close * (1 - target_percent / 100)
strategy.exit("Exit Sell", "Sell", stop=stopLossPrice, limit=takeProfitPrice)
// Plot EMAs
plot(ema9, color=color.orange, linewidth=1, title="EMA 9")
plot(ema21, color=color.blue, linewidth=1, title="EMA 21")
plot(ema50, color=color.purple, linewidth=2, title="EMA 50")