
Esta es una estrategia de seguimiento de tendencias que combina un promedio móvil de dos períodos (21 y 55), el indicador de impulso RSI y el volumen. Esta estrategia analiza la información del mercado en tres dimensiones: precio, momentum y volumen. Al tiempo que confirma la dirección de la tendencia, filtra las señales comerciales a través de indicadores RSI y de volumen para mejorar la precisión de las operaciones. La estrategia requiere que cuando el precio rompe la media móvil de corto plazo y el RSI rompe la media móvil, el volumen de operaciones aumenta para confirmar la validez de la tendencia.
La estrategia utiliza un mecanismo de filtrado triple:
Las condiciones de compra deben cumplirse al mismo tiempo:
Las condiciones de venta pueden ser cualquiera de las siguientes:
Esta es una estrategia de seguimiento de tendencias que utiliza los tres elementos principales del análisis técnico (precio, volumen y impulso). A través de múltiples mecanismos de filtrado, la estrategia no sólo asegura la confiabilidad de la señal, sino que también tiene cierta capacidad de control de riesgos. Si bien existen algunas limitaciones inherentes, mediante la optimización y la mejora continuas, se espera que esta estrategia logre rendimientos estables en las transacciones reales. Especialmente en mercados con tendencias claras y suficiente liquidez, la estrategia puede funcionar mejor.
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("21/55 MA with RSI Crossover", overlay=true)
// Inputs for moving averages
ma21_length = input.int(21, title="21-day Moving Average Length", minval=1)
ma55_length = input.int(55, title="55-day Moving Average Length", minval=1)
// RSI settings
rsi_length = input.int(13, title="RSI Length", minval=1)
rsi_avg_length = input.int(13, title="RSI Average Length", minval=1)
// Moving averages
ma21 = ta.sma(close, ma21_length)
ma55 = ta.sma(close, ma55_length)
// Volume settings
vol_ma_length = input.int(21, title="Volume MA Length", minval=1)
// Volume moving average
vol_ma = ta.sma(volume, vol_ma_length)
// RSI calculation
rsi = ta.rsi(close, rsi_length)
rsi_avg = ta.sma(rsi, rsi_avg_length)
// Buy condition
// buy_condition = close > ma21 and ta.crossover(rsi, rsi_avg) and volume > vol_ma
buy_condition = close > ma21 and rsi > rsi_avg and volume > vol_ma
// Sell condition
// sell_condition = close < ma55 or ta.crossunder(rsi, rsi_avg)
sell_condition = ta.crossunder(close, ma55) or ta.crossunder(rsi, rsi_avg)
// Execute trades
if (buy_condition)
strategy.entry("Buy", strategy.long, comment="Buy Signal")
if (sell_condition)
strategy.close("Buy", comment="Sell Signal")
// Plot moving averages for reference
plot(ma21, color=color.blue, title="21-day MA")
plot(ma55, color=color.red, title="55-day MA")
// Plot RSI and RSI average for reference
rsi_plot = input.bool(true, title="Show RSI?", inline="rsi")
plot(rsi_plot ? rsi : na, color=color.green, title="RSI")
plot(rsi_plot ? rsi_avg : na, color=color.orange, title="RSI Average")