Esta estratégia utiliza o indicador MACD para determinar a tendência do indicador RSI, gerando sinais de negociação.
A estratégia baseia-se em dois indicadores principais:
RSI Calcula o RSI regular de 14 períodos.
MACD do RSI Calcula os valores MACD do RSI, com padrão MA rápido 12, MA lento 26, linha de sinal 9.
Quando o MACD do RSI se cruza para cima, o cruzamento dourado do MAs rápido e lento, ele determina uma tendência de alta e vai longo.
Quando o MACD cruza para baixo, o MAC rápido e lento cruzam, determina uma tendência de queda e fica curto.
As médias móveis exponenciais do MACD ajudam a determinar a tendência de longo prazo do próprio RSI, resultando em sinais mais precisos.
Os riscos podem ser reduzidos:
A estratégia pode ser melhorada através de:
Teste das combinações de parâmetros RSI e MACD
Adição de confirmação secundária quando os sinais MACD
Por exemplo, padrões de velas, volume, bandas de Bollinger, etc.
Otimizar paradas para paradas de trail
Adição de regras de reentrada
Reestabelecer posições depois de atingidas paradas se a tendência continuar
Ajuste do tamanho das posições em função da volatilidade
Dimensão menor em caso de alta volatilidade, maior em caso de baixa volatilidade
Esta estratégia combina os indicadores RSI e MACD para se verificarem para uma detecção de tendência mais precisa e estável. Mas os parâmetros precisam de otimização e filtros técnicos ou regras de negociação adicionais são necessários para confirmação, evitando eventos repentinos. Também são importantes mecanismos de stop loss e dimensionamento dinâmico de posição.
/*backtest start: 2022-09-14 00:00:00 end: 2023-09-20 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "MACD of RSI", overlay = false) //////////////////////// RSI /////////////////////////// src = close, len = input(14, minval=1, title="Length") up = sma(max(change(src), 0), len) down = sma(-min(change(src), 0), len) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) //////////////////////// RSI ////////////////////////// //////////////// MACD //////////////////////////// sourcemacd = rsi fastLength = input(12, minval=1), slowLength=input(26,minval=1) signalLength=input(9,minval=1) fastMA = ema(sourcemacd, fastLength) slowMA = ema(sourcemacd, slowLength) macd = fastMA - slowMA signal = ema(macd, signalLength) delta=macd-signal swap1 = delta>0?green:red plot(delta,color=swap1,style=columns,title='Histo',histbase=0,transp=20) p1 = plot(macd,color=blue,title='MACD Line') p2 = plot(signal,color=red,title='Signal') fill(p1, p2, color=blue) hline(0) /////////////////////////MACD ////////////////////////// // Conditions longCond = na sellCond = na longCond := crossover(delta,0) sellCond := crossunder(delta,0) monthfrom =input(6) monthuntil =input(12) dayfrom=input(1) dayuntil=input(31) if ( longCond ) strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY") else strategy.cancel(id="BUY") if ( sellCond ) strategy.close("BUY")