Esta estrategia es un sistema de trading basado en el crossover de múltiples promedios móviles y el indicador RSI. Combina EMA20, EMA50 y SMA200 para determinar las tendencias del mercado, utiliza el indicador RSI para filtrar las señales comerciales y ejecuta operaciones cuando el precio rompe los máximos anteriores. La estrategia implementa condiciones fijas de take-profit y stop-loss, adecuadas para marcos de tiempo de 1 hora y diarios.
La lógica central se basa en las siguientes condiciones clave: 1. Determinación de la tendencia: la EMA20 debe estar por encima de la EMA50 y la SMA200 por debajo de ambas EMA, lo que confirma una tendencia alcista. 2. Posición de precio: el precio de cierre actual debe estar dentro del rango del 1% de la EMA20 o de la EMA50, asegurando los niveles de soporte clave. Filtro del RSI: el valor del RSI debe estar por encima del umbral establecido (por defecto 40), filtrando para mercados fuertes. Entrar en posición: La posición larga se activa cuando el precio rompe el máximo de la vela anterior. 5. Gestión de riesgos: Establece niveles de 25% de toma de ganancias y 10% de parada de pérdidas para el control de riesgos.
Esta estrategia es un sistema de seguimiento de tendencias bien estructurado y lógicamente sólido. A través de la combinación de múltiples indicadores técnicos, captura eficazmente las tendencias del mercado mientras mantiene una gestión integral del riesgo. La estrategia tiene un margen significativo para la optimización y puede lograr una mayor estabilidad y rentabilidad a través de la mejora continua.
/*backtest start: 2025-01-02 00:00:00 end: 2025-01-09 00:00:00 period: 5m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA/SMA Strategy", overlay=false) // Input parameters ema20Length = input(20, title="20 EMA Length") ema50Length = input(50, title="50 EMA Length") sma200Length = input(200, title="200 SMA Length") rsiLength = input(14, title="RSI Length") rsiThreshold = input(40, title="RSI Threshold") // Calculate indicators ema20 = ta.ema(close, ema20Length) ema50 = ta.ema(close, ema50Length) sma200 = ta.sma(close, sma200Length) rsiValue = ta.rsi(close, rsiLength) // Conditions emaCondition = ema20 > ema50 and sma200 < ema20 and sma200 < ema50 priceNearEMA = (close <= ema20 * 1.01 and close >= ema20 * 0.99) or (close <= ema50 * 1.01 and close >= ema50 * 0.99) rsiCondition = rsiValue > rsiThreshold // Entry condition: Price crosses previous candle high entryCondition = priceNearEMA and rsiCondition and emaCondition and (close > high[1]) // Strategy entry if entryCondition strategy.entry("Long", strategy.long) // Take profit and stop loss settings takeProfitLevel = strategy.position_avg_price * 1.25 // Take profit at +25% stopLossLevel = strategy.position_avg_price * 0.90 // Stop loss at -10% // Exit conditions if strategy.position_size > 0 strategy.exit("Take Profit", from_entry="Long", limit=takeProfitLevel) strategy.exit("Stop Loss", from_entry="Long", stop=stopLossLevel) // Plotting indicators for visualization plot(ema20, color=color.blue, title="20 EMA") plot(ema50, color=color.red, title="50 EMA") plot(sma200, color=color.green, title="200 SMA") hline(rsiThreshold, "RSI Threshold", color=color.orange)