
A estratégia é um sistema de rastreamento de tendências baseado em sinais de cruzamento dos indicadores MACD e RSI e analisa a oscilação do mercado em combinação com a faixa de Brin. O núcleo da estratégia é capturar pontos de ruptura de tendências através da combinação de áreas de sobrevenda e sobrevenda do MACD com o RSI, enquanto o Brin é usado para confirmar os intervalos de flutuação dos preços, proporcionando assim um sinal de negociação mais robusto.
A estratégia utiliza um mecanismo de filtragem de três indicadores técnicos:
As condições de entrada exigem que o MACD Gold Fork e o RSI estejam em níveis baixos (< 50), o que indica que o mercado pode começar a se recuperar da zona de oversold. As condições de saída requerem um MACD de forca morta e o RSI está em alta ((> 50), indicando que a força ascendente está enfraquecendo e pode começar a recuar.
A estratégia, através da combinação de aplicações de MACD, RSI e Brinks, constrói um sistema de negociação de acompanhamento de tendências relativamente completo. A estratégia possui uma boa base teórica e viabilidade prática, mas ainda precisa de melhorias na otimização de parâmetros e controle de risco de acordo com as características específicas do 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")