La estrategia es un sistema de seguimiento de tendencias basado en señales cruzadas de indicadores MACD y RSI, y en combinación con las bandas de Brin para el análisis de las fluctuaciones del mercado. El núcleo de la estrategia es capturar los puntos de inflexión de la tendencia mediante la combinación de las zonas de sobrecompra y sobreventa del MACD y el RSI, mientras que se utiliza el Brin para confirmar las zonas de fluctuación de los precios, lo que proporciona una señal de negociación más sólida.
La estrategia utiliza un mecanismo de filtración de tres indicadores técnicos:
Las condiciones de entrada requieren que el MACD Gold Fork y el RSI estén en niveles bajos (< 50), lo que indica que el mercado podría comenzar a rebotar desde la zona de sobreventa. Las condiciones de salida requieren que el MACD se muera y el RSI esté en niveles altos (< 50), lo que indica que la energía ascendente se ha debilitado y que podría comenzar a retroceder.
La estrategia, a través de la aplicación combinada de MACD, RSI y Brinbelt, construye un sistema de comercio de seguimiento de tendencias relativamente completo. La estrategia tiene una buena base teórica y viabilidad práctica, pero aún necesita optimización de parámetros y mejoras en el control de riesgos según las características específicas del mercado.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("MACD, RSI, Bollinger Bands Strategy", overlay=true)
// Input parameters for MACD
fastLength = input.int(12, title="MACD Fast Length")
slowLength = input.int(26, title="MACD Slow Length")
signalLength = input.int(9, title="MACD Signal Length")
// Input parameters for RSI
rsiLength = input.int(14, title="RSI Length")
// Input parameters for Bollinger Bands
bbLength = input.int(20, title="Bollinger Band Length")
bbMult = input.float(2.0, title="Bollinger Band Multiplier")
// MACD calculation
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength)
macdCrossUp = ta.crossover(macdLine, signalLine)
macdCrossDown = ta.crossunder(macdLine, signalLine)
// RSI calculation
rsi = ta.rsi(close, rsiLength)
// Bollinger Bands calculation
bbBasis = ta.sma(close, bbLength)
bbUpper = bbBasis + bbMult * ta.stdev(close, bbLength)
bbLower = bbBasis - bbMult * ta.stdev(close, bbLength)
// Plot Bollinger Bands
plot(bbBasis, color=color.blue, title="Bollinger Band Basis")
plot(bbUpper, color=color.green, title="Upper Bollinger Band")
plot(bbLower, color=color.red, title="Lower Bollinger Band")
// Entry condition: MACD crosses signal line from below and RSI < 50
enterLong = macdCrossUp and rsi < 50
// Exit condition: MACD crosses signal line from above and close touches the Bollinger Band middle line
exitLong = macdCrossDown and rsi> 50
// Strategy logic
if (enterLong and strategy.position_size == 0)
strategy.entry("Buy", strategy.long)
if (exitLong and strategy.position_size > 0)
strategy.close("Buy")