
La estrategia es un sistema de seguimiento de tendencias basado en el índice de movimiento de medias multicíclicas (EMA) y el indicador de fuerza relativa (RSI). La estrategia toma decisiones comerciales al juzgar las tendencias de EMA de 20, 50 y 100 en tres períodos, combinadas con las señales de sobreventa de los precios y el RSI. La estrategia se aplica principalmente a los mercados de tendencias, para mejorar la precisión de las operaciones mediante la verificación de múltiples indicadores técnicos.
La lógica central de la estrategia incluye las siguientes partes clave:
Es un sistema de estrategias complejas que combina el seguimiento de tendencias y la inversión de dinámicas. Mediante el uso combinado de múltiples indicadores técnicos, se logran mejores características de riesgo-beneficio, al tiempo que se mantiene la estrategia simple y fácil de entender. La principal ventaja de la estrategia reside en su riguroso mecanismo de confirmación de tendencias y un sistema de control de riesgos perfectado, pero en la aplicación real se necesita atención a la optimización de parámetros y la adaptabilidad al entorno del mercado.
/*backtest
start: 2024-02-18 00:00:00
end: 2025-02-17 00:00:00
period: 4h
basePeriod: 4h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Crossover + RSI Strategy", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=200)
// Calculate EMAs
ema20 = ta.ema(close, 20)
ema50 = ta.ema(close, 50)
ema100 = ta.ema(close, 100)
// Calculate RSI
rsiPeriod = 14
rsiValue = ta.rsi(close, rsiPeriod)
// Determine if each EMA is trending up (current value greater than the previous value)
ema20_trending_up = ema20 > ema20[1]
ema50_trending_up = ema50 > ema50[1]
ema100_trending_up = ema100 > ema100[1]
all_emas_trending_up = ema20_trending_up and ema50_trending_up and ema100_trending_up
// Buy condition:
// 1. Price crosses above the EMA20 from below (using ta.crossover)
// 2. All three EMAs are trending upward
buySignal = ta.crossover(close, ema20) and all_emas_trending_up
// Sell conditions:
// Sell if RSI is above 70 OR price crosses below the EMA20 from above (using ta.crossunder)
sellSignal = (rsiValue > 70) or ta.crossunder(close, ema20)
// Enter a long position if the buy condition is met
if (buySignal)
strategy.entry("Long", strategy.long)
// Exit the long position if either sell condition is met
if (sellSignal)
strategy.close("Long")
// Plot the EMAs on the chart for visualization
plot(ema20, color=color.blue, title="EMA 20")
plot(ema50, color=color.orange, title="EMA 50")
plot(ema100, color=color.green, title="EMA 100")
// (Optional) Plot the RSI and a horizontal line at 70 for reference
plot(rsiValue, title="RSI", color=color.purple)
hline(70, title="Overbought (70)", color=color.red)