Estratégia long-short combinando RSI e MACD

RSI MACD
Data de criação: 2024-05-17 11:04:03 última modificação: 2024-05-17 11:04:03
cópia: 0 Cliques: 778
1
focar em
1617
Seguidores

Estratégia long-short combinando RSI e MACD

Visão geral

A estratégia combina dois indicadores técnicos, o índice de força relativa (RSI) e o indicador de dispersação de média móvel (MACD), e usa o RSI para determinar a sobrevenda e a sobrevenda, e o MACD para determinar a direção da tendência, formando um conjunto completo de estratégias multi-espaço. Quando o RSI é sobrevenda, emite um sinal de venda, o MACD cruza a linha rápida e lenta para cima e para baixo. Quando o RSI é sobrevenda, emite um sinal de compra, o MACD cruza a linha rápida e lenta para baixo e para baixo.

Princípio da estratégia

  1. O RSI é um indicador de sobrecompra e sobrevenda:
    • Quando o RSI é maior que 70 e atravessa a linha de 70 de cima para baixo, emite um sinal de venda
    • Quando o RSI é menor que 30 e atravessa a linha 30 de baixo para cima, é emitido um sinal de compra
  2. Calcular o indicador MACD para determinar a direção da tendência:
    • Quando a linha rápida do MACD atravessa a linha lenta de baixo para cima, é emitido um sinal de venda de posição para a posição de equilíbrio
    • Quando a linha rápida do MACD atravessa a linha lenta de cima para baixo, emite um sinal de compra de posição em posição sem risco
  3. Configuração do ponto de parada:
    • Calcular a média de alta e baixa da variedade, levando metade como ponto de parada

Com o RSI, julgue a sobrecompra e a sobrevenda, intervenha no início da reversão do mercado. Utilize o MACD para determinar a direção da tendência e, no início da tendência, equilibre-se, para melhor entender a tendência. Os dois indicadores são complementares e formam um sistema de negociação completo.

Vantagens estratégicas

  1. A combinação dos dois tipos de estratégias de supercompra e supervenda e acompanhamento de tendências permite uma intervenção precoce na reversão da tendência e uma liquidação oportuna após a formação da tendência, evitando efetivamente os prejuízos causados pela repetição da oscilação da tendência.
  2. A configuração do ponto de parada baseia-se nas características de flutuação da variedade, permitindo controlar a retirada e melhorar a eficiência do uso de fundos.
  3. A lógica do código é clara, a programação é funcional, fácil de entender e de otimizar.

Risco estratégico

  1. A escolha dos parâmetros RSI e MACD tem um grande impacto no desempenho da estratégia, e pode ser necessário otimizar os parâmetros para diferentes variedades e períodos.
  2. A estratégia pode sofrer um retorno maior em situações extremas do mercado, como uma rápida mudança de direção causada por um evento inesperado.
  3. A estratégia pode não funcionar bem em mercados turbulentos, com transações frequentes e custos mais elevados.

Direção de otimização da estratégia

  1. Otimização dos parâmetros do RSI e do MACD para encontrar a combinação de parâmetros mais adequada para a variedade e o período atuais, aumentando a estabilidade e a lucratividade da estratégia.
  2. Adicionar mais filtros, como volume de transações, volatilidade e outros indicadores, reduzindo a frequência de transações e melhorando a qualidade do sinal.
  3. Introdução de um módulo de gerenciamento de posições, ajustando posições de acordo com as tendências do mercado e a dinâmica de seu próprio desempenho, controlando a retirada.
  4. Combinação com outras estratégias, como o acompanhamento de tendências, a resposta de média, etc., formando uma combinação de várias estratégias, aumentando a adaptabilidade da estratégia.

Resumir

A estratégia, através do RSI, determina a sobrevenda e a sobrevenda, e o MACD determina a direção da tendência, formando um conjunto completo de sistemas de negociação multi-espaço. A lógica da estratégia é clara, as vantagens são evidentes, mas também há um certo risco.

Código-fonte da estratégia
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="RSI & MACD Strategy", shorttitle="RSI & MACD", overlay=true)

// Définition des entrées
rsi_length = 14
rsi_overbought = 70
rsi_oversold = 30
macd_fast_length = 12
macd_slow_length = 26
macd_signal_length = 9

// Fonction pour calculer le RSI
calculate_rsi(source, length) =>
    price_change = ta.change(source)
    up = ta.rma(price_change > 0 ? price_change : 0, length)
    down = ta.rma(price_change < 0 ? -price_change : 0, length)
    rs = up / down
    rsi = 100 - (100 / (1 + rs))
    rsi

// Fonction pour calculer le MACD
calculate_macd(source, fast_length, slow_length, signal_length) =>
    fast_ma = ta.ema(source, fast_length)
    slow_ma = ta.ema(source, slow_length)
    macd = fast_ma - slow_ma
    signal = ta.ema(macd, signal_length)
    hist = macd - signal
    [macd, signal, hist]

// Calcul des indicateurs
rsi_value = calculate_rsi(close, rsi_length)
[macd_line, signal_line, _] = calculate_macd(close, macd_fast_length, macd_slow_length, macd_signal_length)

// Conditions d'entrée et de sortie
// Entrée en vente : RSI passe de >= 70 à < 70
sell_entry_condition = ta.crossunder(rsi_value, rsi_overbought)

// Sortie en vente : MACD fast MA croise au-dessus de slow MA
sell_exit_condition = ta.crossover(macd_line, signal_line)

// Entrée en achat : RSI passe de <= 30 à > 30
buy_entry_condition = ta.crossover(rsi_value, rsi_oversold)

// Sortie en achat : MACD fast MA croise en-dessous de slow MA
buy_exit_condition = ta.crossunder(macd_line, signal_line)

// Affichage des signaux sur le graphique
plotshape(series=sell_entry_condition, title="Sell Entry", location=location.belowbar, color=color.red, style=shape.triangleup, size=size.small)
plotshape(series=sell_exit_condition, title="Sell Exit", location=location.abovebar, color=color.green, style=shape.triangledown, size=size.small)
plotshape(series=buy_entry_condition, title="Buy Entry", location=location.abovebar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=buy_exit_condition, title="Buy Exit", location=location.belowbar, color=color.red, style=shape.triangledown, size=size.small)

// Entrées et sorties de la stratégie
if (sell_entry_condition)
    strategy.entry("Short", strategy.short)
    
if (sell_exit_condition)
    strategy.close("Short")

if (buy_entry_condition)
    strategy.entry("Long", strategy.long)
    
if (buy_exit_condition)
    strategy.close("Long")