Estratégia de indicadores de dupla força

Autora:ChaoZhang, Data: 2023-11-20 09:47:41
Tags:

img

Resumo

Esta estratégia combina o indicador de Divergência de Convergência da Média Móvel (MACD) e o indicador de Índice de Força Relativa (RSI) para definir condições de compra e venda para captar oportunidades de reversão.

Estratégia lógica

  1. Calcule o indicador MACD, incluindo a linha rápida, linha lenta e linha de sinal.

  2. Calcule o indicador RSI e defina os valores limiares de sobrecompra e sobrevenda.

  3. Combine os sinais cruzados do MACD e as leituras de sobrecompra/supervenda do RSI para formular as condições de compra e venda:

    • Condição de compra: A linha rápida do MACD cruza acima da linha lenta (cruz de ouro), enquanto o indicador RSI acabou de recuar da zona de sobrecompra, sinalizando uma reversão.

    • Condição de venda: A linha rápida do MACD cruza abaixo da linha lenta (cruz de morte) enquanto o indicador RSI entra na zona de sobrecompra, sinalizando uma reversão.

  4. Isso permite utilizar os pontos fortes de ambos os indicadores poderosos para comprar e vender com precisão em pontos de reversão.

Análise das vantagens

  1. O MACD pode identificar tendências e oportunidades de negociação.

  2. Usar dois indicadores filtra sinais falsos que podem ocorrer com um único indicador.

  3. O MACD combinado com o RSI permite comprar antes de reversões e vender após reversões para capturar voltas.

  4. A estratégia tem uma frequência moderada, acompanhando as tendências e captando as reversões de forma flexível.

Análise de riscos

  1. O MACD pode dar sinais falsos em mercados agitados. Os parâmetros do RSI precisam de otimização para evitar sinais falsos.

  2. A volatilidade a curto prazo pode impedir posições, causando perdas.

  3. Os parâmetros RSI e MACD precisam de otimização para evitar sinais demasiados ou demasiados poucos.

  4. A gestão rigorosa do risco e do dinheiro é crucial para a negociação ao vivo.

Orientações de otimização

  1. Otimizar os parâmetros de linha rápida/lenta do MACD para obter as melhores combinações.

  2. Otimizar os limiares de sobrecompra/supervenda do RSI para evitar sinais falsos.

  3. Adicionar um stop loss para controlar o risco de negociação única.

  4. Considere adicionar filtros como Bollinger Bands ou KDJ para confirmação adicional.

  5. Teste várias estratégias de entrada/saída, como breakouts ou seguir tendências.

Resumo

Esta estratégia combina os pontos fortes do MACD e do RSI para reversões, mas o ajuste de parâmetros, o controle de risco e a gestão de dinheiro são fundamentais para o desempenho ao vivo.


/*backtest
start: 2022-11-13 00:00:00
end: 2023-11-19 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.