Esta es una estrategia de negociación intradiaria basada en un sistema dual de promedio móvil exponencial (EMA) combinado con el índice de fuerza relativa (RSI). La estrategia identifica las tendencias del mercado y las oportunidades de negociación a través de señales cruzadas de EMA rápidas y lentas, confirmadas por el indicador de impulso RSI, al tiempo que incorpora mecanismos de stop-loss y take-profit para la gestión de riesgos. La estrategia emplea un enfoque de gestión de dinero, utilizando un porcentaje fijo del capital de la cuenta para la negociación.
La lógica central incluye varios elementos clave: 1. Utiliza dos EMA con períodos diferentes (default 12 y 26) como indicadores de tendencia 2. Incorpora el RSI (períodos de 14 por defecto) como confirmación del impulso Condición de entrada larga: EMA rápida cruza EMA lenta con RSI por encima de 50 Condición de entrada corta: EMA rápida cruza por debajo de EMA lenta con RSI por debajo de 50 5. Utiliza el 20% fijo del capital de la cuenta para dimensionar las posiciones 6. Integra el stop-loss ajustable (por defecto 1%) y el take-profit (por defecto 2%) 7. Implementa el cierre de posiciones en señales de cruce inverso
Esta estrategia construye un sistema comercial completo mediante la combinación del sistema de tendencia EMA con el indicador de impulso RSI. Sus fortalezas se encuentran en la lógica de negociación sistemática y la gestión integral del riesgo, aunque se deben considerar los impactos de las condiciones del mercado. A través de la optimización y el ajuste continuo, la estrategia puede adaptarse mejor a diferentes condiciones del mercado y mejorar los resultados comerciales.
/*backtest start: 2024-12-17 00:00:00 end: 2025-01-16 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Estrategia Intradía - Cruce EMA + RSI - Optimizado", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=20) // Parámetros CON rangos de optimización ema_fast_length = input.int(title="Período EMA Rápida", defval=12, minval=5, maxval=30, step=1) ema_slow_length = input.int(title="Período EMA Lenta", defval=26, minval=15, maxval=50, step=1) rsi_length = input.int(title="Período RSI", defval=14, minval=7, maxval=21, step=1) rsi_overbought = input.int(title="Nivel de Sobrecompra RSI", defval=70, minval=60, maxval=80, step=1) rsi_oversold = input.int(title="Nivel de Sobreventa RSI", defval=30, minval=20, maxval=40, step=1) stop_loss_percent = input.float(title="Stop Loss (%)", defval=1.0, minval=0.1, maxval=3.0, step=0.1) take_profit_percent = input.float(title="Take Profit (%)", defval=2.0, minval=0.5, maxval=5.0, step=0.1) // Cálculos ema_fast = ta.ema(close, ema_fast_length) ema_slow = ta.ema(close, ema_slow_length) rsi = ta.rsi(close, rsi_length) // Condiciones de entrada longCondition = ta.crossover(ema_fast, ema_slow) and rsi > 50 shortCondition = ta.crossunder(ema_fast, ema_slow) and rsi < 50 // Gestión de entradas y salidas var float longQty = na var float shortQty = na if longCondition longQty := 20 / close strategy.entry("Long", strategy.long, qty=longQty) if stop_loss_percent > 0 and take_profit_percent > 0 strategy.exit("Exit Long", "Long", stop=close * (1 - stop_loss_percent / 100), limit=close * (1 + take_profit_percent / 100)) if strategy.position_size > 0 and ta.crossunder(ema_fast, ema_slow) strategy.close("Long") longQty := na if shortCondition shortQty := 20 / close strategy.entry("Short", strategy.short, qty=shortQty) if stop_loss_percent > 0 and take_profit_percent > 0 strategy.exit("Exit Short", "Short", stop=close * (1 + stop_loss_percent / 100), limit=close * (1 - take_profit_percent / 100)) if strategy.position_size < 0 and ta.crossover(ema_fast, ema_slow) strategy.close("Short") shortQty := na // Visualizaciones plot(ema_fast, color=color.blue, title="EMA Rápida") plot(ema_slow, color=color.orange, title="EMA Lenta") plot(rsi, color=color.purple, title="RSI") hline(50, color=color.gray)