Histograma MACD Estratégia do RSI

Autora:ChaoZhang, Data: 2023-12-25 11:45:10
Tags:

img

Resumo

Esta estratégia gera sinais de negociação com base no MACD do indicador RSI. Ele combina a capacidade do indicador RSI para julgar os níveis de sobrecompra e sobrevenda no mercado, bem como a vantagem do MACD na determinação da tendência do mercado e mudanças de momento, para projetar uma estratégia que utiliza vários indicadores para fornecer sinais de negociação.

Estratégia lógica

A estratégia calcula primeiro o indicador RSI, em seguida, calcula o MACD com base no indicador RSI. O indicador RSI pode determinar as condições de sobrecompra e sobrevenda no mercado, enquanto o MACD capta mudanças na tendência e impulso do mercado.

Especificamente, a estratégia calcula primeiro o indicador RSI de 14 períodos. Em seguida, com base no RSI, o indicador MACD é calculado, incluindo EMAs de 12 e 26 períodos, bem como uma linha de sinal de 9 períodos. O histograma MACD é então calculado.

Quando o histograma do MACD cruza acima de 0, um sinal de compra é gerado. Quando o histograma do MACD cruza abaixo de 0, um sinal de venda é acionado. Desta forma, a estratégia utiliza o RSI para julgar os níveis de sobrecompra / sobrevenda, além de usar o MACD para determinar as mudanças de tendência e momento, para gerar sinais comerciais.

Vantagens da estratégia

Esta estratégia combina os pontos fortes dos indicadores RSI e MACD, permitindo um julgamento mais abrangente das condições do mercado, resultando em sinais mais fiáveis.

  1. Usar o RSI para julgar os níveis de sobrecompra/supervenda ajuda na seleção de ações e na prevenção de falsos breakouts.

  2. O julgamento do MACD sobre tendências e mudanças de momento torna os sinais comerciais mais claros.

  3. A combinação de RSI e MACD, com julgamentos baseados em múltiplos fatores, ajuda a filtrar sinais falsos.

Riscos da Estratégia

  1. As configurações dos parâmetros do RSI e do MACD afetam o desempenho da estratégia e exigem ajuste e otimização.

  2. A combinação de múltiplos indicadores aumenta a complexidade da estratégia e a probabilidade de erros.

  3. Os sinais de negociação do MACD podem estar atrasados e necessitam de ser complementados por outros indicadores.

Orientações de otimização

  1. Otimizar os parâmetros RSI e MACD para encontrar as melhores combinações de parâmetros.

  2. Incorporar outros indicadores como KDJ, Bollinger Bands para formar um grupo de indicadores e melhorar a precisão do sinal.

  3. Incorporar estratégias de stop loss para controlar a perda por transação.

  4. Otimizar a lógica de entrada e saída para evitar sinais conflitantes.

Conclusão

Esta estratégia utiliza os pontos fortes combinados dos indicadores RSI e MACD para formar sinais comerciais, julgando os níveis de sobrecompra / sobrevenda, considerando também os fatores de tendência e impulso, filtrando efetivamente os falsos sinais e fornecendo sinais de qualidade.


/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 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")

Mais.