Esta estratégia é denominada
O cruzamento MACD com a linha rápida cruzando acima da linha lenta gera sinais de compra, enquanto o cruzamento abaixo gera sinais de venda.
RSI é o índice de força relativa, medindo condições de sobrecompra e sobrevenda. RSI acima de 50 sugere estado de sobrecompra, enquanto abaixo de 50 é sobrevenda.
A lógica de negociação é a seguinte:
Quando o cruzamento do MACD acontece com a linha rápida cruzando acima da linha lenta, ele indica que a tendência de curto prazo está mudando de baixa para alta, mas um sinal de compra só é confirmado quando o RSI está em níveis baixos (abaixo do parâmetro pré-definido) para evitar flutuações em zonas de sobrecompra.
Quando o cruzamento do MACD acontece com a linha rápida cruzando abaixo da linha lenta, ele sinaliza a tendência de curto prazo revertendo de cima para baixo, mas um sinal de venda só é confirmado quando o RSI atinge níveis altos (acima do parâmetro pré-definido) para evitar flutuações em zonas de sobrevenda.
Esta estratégia é adequada aos atuais mercados de criptomoedas oscilantes e variáveis para capturar oportunidades de reversão em altos e baixos para lucros.
Em conclusão, a combinação do MACD e do RSI pode melhorar a eficácia da estratégia para os mercados oscilantes.
/*backtest start: 2022-09-06 00:00:00 end: 2023-03-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Range Strat - MACD/RSI", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, precision=2, initial_capital=100, pyramiding=2, commission_value=0.05) // Make input options that configure backtest date range startDate = input(title="Start Date", defval=13) startMonth = input(title="Start Month", defval=6) startYear = input(title="Start Year", defval=2022) endDate = input(title="End Date", defval=1) endMonth = input(title="End Month", defval=7) endYear = input(title="End Year", defval=2200) // Look if the close time of the current bar // falls inside the date range inDateRange = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0)) and (time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0)) // RSI Settings length = input( 14 ) overSold = input( 55 ) overBought = input( 50 ) price = open vrsi = ta.rsi(price, length) cu = (vrsi <= overSold) co = (vrsi >= overBought) //MACD Settings fastLength = input(12) slowlength = input(26) MACDLength = input(9) MACD = ta.ema(open, fastLength) - ta.ema(open, slowlength) aMACD = ta.ema(MACD, MACDLength) delta = MACD - aMACD MACDco = ta.crossover(delta, 0) MACDcu = ta.crossunder(delta, 0) // Strategy Entry if (not na(vrsi)) if (inDateRange and MACDco and cu) strategy.entry("LONG", strategy.long, comment="LONG") if (inDateRange and MACDcu and co) strategy.entry("SHORT", strategy.short, comment="SHORT") //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)