
Se trata de una estrategia de seguimiento de tendencias basada en cruces de medias móviles exponenciales (EMA) y en la confirmación del índice de fuerza relativa (RSI). La estrategia combina las señales de cruce de las EMA de corto y largo plazo con la confirmación del impulso RSI, al tiempo que integra un mecanismo de stop-loss porcentual, con el objetivo de capturar puntos de inflexión importantes en las tendencias del mercado y controlar los riesgos. El núcleo de la estrategia es mejorar la precisión y confiabilidad de las transacciones, garantizando al mismo tiempo su seguridad a través de la sinergia de indicadores técnicos.
La estrategia utiliza un mecanismo de filtrado de indicadores técnicos dual: en primer lugar, se identifican los posibles puntos de inflexión de la tendencia a través del cruce de la EMA de corto plazo (9 períodos) y la EMA de largo plazo (21 períodos). Cuando la EMA de corto plazo cruza la EMA de largo plazo hacia arriba y el valor RSI es más alto que el nivel establecido, el sistema genera una señal larga; cuando la EMA de corto plazo cruza la EMA de largo plazo hacia abajo y el valor RSI es más bajo que el nivel establecido, el sistema genera una señal corta. Al mismo tiempo, la estrategia introduce un mecanismo de stop-loss basado en porcentajes, estableciendo un precio de stop-loss dinámico para cada transacción para controlar eficazmente los riesgos a la baja.
Esta estrategia construye un sistema comercial completo de seguimiento de tendencias combinando el sistema de media móvil e indicadores de impulso. Las principales ventajas de la estrategia radican en su confiable mecanismo de confirmación de señales y su perfecto sistema de control de riesgos. Si bien existen algunas limitaciones inherentes, se espera que el rendimiento general de la estrategia mejore aún más a través de la dirección de optimización propuesta. Se trata de un marco de estrategia sólido y adecuado para operadores de tendencias a medio y largo plazo.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Simple Trend Following Strategy", overlay=true)
// Inputs
shortEMA = input.int(9, title="Short EMA Length", minval=1)
longEMA = input.int(21, title="Long EMA Length", minval=1)
confirmationRSI = input.int(50, title="RSI Confirmation Level", minval=1, maxval=100)
stopLossPercent = input.float(2, title="Stop Loss Percentage", minval=0.1) // Stop Loss percentage
// Calculations
emaShort = ta.ema(close, shortEMA)
emaLong = ta.ema(close, longEMA)
rsiValue = ta.rsi(close, 14)
// Buy and Sell Conditions
buySignal = ta.crossover(emaShort, emaLong) and rsiValue > confirmationRSI
sellSignal = ta.crossunder(emaShort, emaLong) and rsiValue < confirmationRSI
// Plotting Signals
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// Plotting EMAs
plot(emaShort, title="Short EMA", color=color.yellow)
plot(emaLong, title="Long EMA", color=color.purple)
// Strategy logic
strategy.entry("Buy", strategy.long, when=buySignal)
strategy.entry("Sell", strategy.short, when=sellSignal)
// Calculate stop loss price based on stopLossPercent
longStopLossPrice = strategy.position_avg_price * (1 - stopLossPercent / 100)
shortStopLossPrice = strategy.position_avg_price * (1 + stopLossPercent / 100)
// Draw stop loss line for long positions
if (strategy.position_size > 0) // For long positions
line.new(x1=bar_index, y1=longStopLossPrice, x2=bar_index + 1, y2=longStopLossPrice, color=color.red, width=2, style=line.style_dashed)
// Draw stop loss line for short positions
if (strategy.position_size < 0) // For short positions
line.new(x1=bar_index, y1=shortStopLossPrice, x2=bar_index + 1, y2=shortStopLossPrice, color=color.green, width=2, style=line.style_dashed)