Estratégia de cruzamento do MACD e do RSI

Autora:ChaoZhang, Data: 2024-01-23 15:26:08
Tags:

img

Resumo

Esta estratégia gera sinais de negociação através do cálculo do cruzamento dos indicadores MACD e RSI. Produz sinais de compra e venda quando o RSI está sobrecomprado ou sobrevendido e ocorre cruzamento do MACD. A estratégia combina as vantagens de dois tipos diferentes de indicadores, considerando tanto a tendência dos preços quanto as situações de sobrecompra/supervenda, melhorando assim a eficácia da estratégia.

Princípio da estratégia

A estratégia usa principalmente a combinação de indicadores MACD e RSI para gerar sinais de negociação.

A estratégia primeiro calcula a linha rápida, linha lenta e linha de sinal do MACD. Quando a linha rápida é maior que a linha lenta, um sinal de cruz de ouro é gerado. Quando a linha rápida é menor que a linha lenta, um sinal de cruz de morte é gerado. Isso indica que a tendência e o impulso do preço estão mudando.

Ao mesmo tempo, a estratégia calcula o indicador RSI e define linhas de sobrecompra e sobrevenda. Quando o RSI é inferior à linha de sobrevenda, ele indica sobrevenda. Quando o RSI é superior à linha de sobrecompra, ele indica sobrecompra.

Quando ocorre uma sobrecompra/supervenda do RSI, a estratégia gera sinais de compra quando ocorre uma cruz de ouro do MACD e gera sinais de venda quando ocorre uma cruz de morte do MACD.

Análise das vantagens

A estratégia combina as vantagens dos indicadores MACD e RSI para melhorar a sua eficácia:

  1. O MACD pode capturar de forma sensível as alterações de preços, enquanto o RSI considera situações de sobrecompra/supervenda, complementando-se mutuamente.

  2. A combinação dos dois indicadores pode filtrar alguns sinais de negociação ruidosos e reduzir as negociações desnecessárias.

  3. O MACD mede a diferença entre as médias móveis, enquanto o RSI mede a proporção de mudanças de preço, os dois métodos podem se verificar.

  4. O MACD reage rapidamente às alterações de preços, enquanto as divergências RSI sobrecomprado/supervendido são óbvias, bom efeito de combinação.

Riscos e soluções

Esta estratégia apresenta também certos riscos:

  1. Tanto o MACD quanto o RSI são vulneráveis a eventos repentinos, que podem gerar sinais errados.

  2. O efeito sobre as acções individuais pode não ser ideal, podem ser considerados índices ou carteiras.

  3. Satisfazer tanto o cruzamento do MACD quanto o RSI sobrecomprado/supervendido pode perder algumas oportunidades.

Orientações de otimização

A estratégia pode também ser otimizada nos seguintes aspectos:

  1. Otimizar os parâmetros MACD e RSI para se adequarem às diferentes variedades de negociação.

  2. Adicionar estratégia de stop loss para parar a perda no tempo quando as perdas atingirem uma certa porcentagem.

  3. Combinar com outros indicadores, como as bandas de Bollinger e o KDJ, para estabelecer condições de sinalização de negociação mais rigorosas.

  4. Execute a estratégia em dados de alta frequência para utilizar as propriedades rápido / lento do MACD e melhorar o desempenho da estratégia.

  5. De acordo com os resultados do backtest, ajustar as linhas de RSI sobrecompradas/supervendidas para encontrar as melhores combinações de parâmetros.

Resumo

A estratégia de cruzamento do MACD e do RSI combina a tendência e o julgamento de sobrecompra/supervenda, o que pode efetivamente capturar pontos de reversão de preços e melhorar o desempenho da estratégia.


/*backtest
start: 2023-01-16 00:00:00
end: 2024-01-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// © sabirt
strategy(title='MACD and RSI', overlay=true, shorttitle='MACD&RSI')
//MACD Settings
fastMA = input.int(title='Fast moving average', defval=12, minval=1)
slowMA = input.int(title='Slow moving average', defval=26, minval=1)
signalLength = input.int(9, minval=1)

//RSI settings
RSIOverSold = input.int(35, minval=1)
RSIOverBought = input.int(80, minval=1)
src = close
len = input.int(14, minval=1, title='Length')
up = ta.rma(math.max(ta.change(src), 0), len)
down = ta.rma(-math.min(ta.change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
wasOversold = rsi[0] <= RSIOverSold or rsi[1] <= RSIOverSold or rsi[2] <= RSIOverSold or rsi[3] <= RSIOverSold or rsi[4] <= RSIOverSold or rsi[5] <= RSIOverSold
wasOverbought = rsi[0] >= RSIOverBought or rsi[1] >= RSIOverBought or rsi[2] >= RSIOverBought or rsi[3] >= RSIOverBought or rsi[4] >= RSIOverBought or rsi[5] >= RSIOverBought



[currMacd, _, _] = ta.macd(close[0], fastMA, slowMA, signalLength)
[prevMacd, _, _] = ta.macd(close[1], fastMA, slowMA, signalLength)
signal = ta.ema(currMacd, signalLength)

avg_1 = math.avg(currMacd, signal)
crossoverBear = ta.cross(currMacd, signal) and currMacd < signal ? avg_1 : na
avg_2 = math.avg(currMacd, signal)
crossoverBull = ta.cross(currMacd, signal) and currMacd > signal ? avg_2 : na

strategy.entry('buy', strategy.long, when=crossoverBull and wasOversold)
strategy.close('buy', when=crossoverBear and wasOverbought)



Mais.