Estratégia de acompanhamento de tendências baseada em indicadores RSI e ZigZag

Autora:ChaoZhang, Data: 2024-02-22 16:15:18
Tags:

img

Resumo

A estratégia é denominada Crypto 15-minute Trend Tracking Strategy Based on RSI and ZigZag Indicators. Ela é projetada especificamente para mercados de criptomoedas de 15 minutos como ETHUSD/T e BTCUSD/T. A estratégia determina a direção da tendência combinando o indicador RSI para julgar os níveis de sobrecompra / sobrevenda e o indicador ZigZag para detectar picos de preço. Ela pertence a uma estratégia típica de tendência.

Estratégia lógica

A lógica central desta estratégia é usar os indicadores RSI e ZigZag para determinar a tendência do preço. Especificamente, o indicador RSI julga se o preço está sobrecomprado ou sobrevendido. O indicador ZigZag detecta se o preço tem um pico percentual significativo. Quando ambos os indicadores dão sinais de negociação simultaneamente, determinamos que há uma inversão de tendência para uma posição de contrapartida.

Para o indicador RSI, definimos a linha de supercompra em 75 e a linha de supervenda em 25. Quando o RSI sobe de abaixo de 25 para acima de 25, é considerado uma reversão de supervenda para alta. Quando o RSI cai de acima de 75 para abaixo de 75, indica uma reversão de alta para supervenda.

Para o indicador ZigZag, definimos o limiar do pico de preço para 1% em mudança percentual. Quando o preço faz um pico superior a 1% em amplitude, a linha ZigZag dará um sinal. Combinado com o julgamento da tendência, podemos identificar inversões de tendência.

Quando ambos os indicadores dão sinais, se a tendência anterior é otimista e agora o RSI é sobrecomprado enquanto o ZigZag mostra picos de preços, determinamos que o preço está em cima e pode considerar o curto.

Forças da estratégia

A maior vantagem desta estratégia é a melhoria da qualidade do sinal através da combinação de dois indicadores. Um único indicador tende a dar muitos sinais falsos. Mas esta estratégia usa RSI e ZigZag para verificação, filtrando muitos sinais falsos e melhorando a taxa de vitória.

Outro ponto forte é o ajuste flexível de parâmetros. Os parâmetros RSI e ZigZag são personalizáveis de acordo com diferentes condições de mercado para melhores resultados. Isso traz grande adaptabilidade à estratégia.

Riscos estratégicos

O principal risco são os sinais incorretos dos indicadores. Apesar da validação de indicadores duplos, ainda pode haver falhas durante a alta volatilidade levando a erros de negociação.

Para reduzir os riscos, podemos encurtar o período de detenção da posição para uma parada de perda oportuna. A otimização de parâmetros também é muito importante, atendendo às características do mercado. A intervenção manual pode ser necessária quando confrontado com condições anormais do mercado.

Orientações de otimização

A estratégia pode ser melhorada pelos seguintes aspectos:

  1. Adicione mais indicadores como KDJ e MACD para julgamento combinado para filtrar mais sinais.

  2. Introduzir algoritmos de aprendizagem automática para otimização automática de parâmetros adaptados às alterações do mercado.

  3. Construir um mecanismo adaptativo de stop loss com proteção dinâmica baseada na volatilidade do mercado.

  4. Otimizar o dimensionamento das posições com base nos pontos fortes da tendência.

  5. Estabelecer estratégias alternativas para alternar automaticamente em mercados não comuns.

Conclusão

Em resumo, esta é uma estratégia típica de tendência. A ideia central é identificar inversões de tendência usando indicadores RSI e ZigZag em combinação. A vantagem reside na melhoria da qualidade do sinal através da filtragem de indicadores duplos. Os riscos de falha do indicador precisam ser totalmente considerados e a estratégia deve ser continuamente melhorada através de ajuste de parâmetros, otimização de stop loss, dimensionamento de posição e assim por diante.


/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SoftKill21
//@version=4
strategy("Crypto ZigZag RSI strategy 15min",overlay=true)
length =input(5, title="RSI Length")
overSold = input(25)
overBought= input(75)

p =close

vrsi = rsi(p, length)
var bool long = na
var bool short = na

long :=crossover(vrsi,overSold) 
short := crossunder(vrsi,overBought)

var float last_open_long = na
var float last_open_short = na

last_open_long := long ? close : nz(last_open_long[1])
last_open_short := short ? close : nz(last_open_short[1])


entry_value =last_open_long
entry_value1=last_open_short

//
ZZPercent = input(1, title="Minimum % Change", type=input.float)
r1Level=entry_value
s1Level=entry_value1
trend = 0
trend := na(trend[1]) ? 1 : trend[1]
LL = 0.0
LL := na(LL[1]) ? s1Level : LL[1]
HH = 0.0
HH := na(HH[1]) ?r1Level : HH[1]

Pi = ZZPercent * 0.01
zigzag = float(na)

if trend > 0  
    if r1Level >= HH  
        HH := r1Level
        HH
    else
        if s1Level < HH * (1 - Pi)
            zigzag :=r1Level[1]
            trend := -1
            LL := s1Level
            LL
else
   
    if s1Level <= LL 
        LL := s1Level
        LL
    else
        if r1Level > LL * (1 + Pi)
            zigzag := s1Level[1]
            trend := 1
            HH := s1Level
            HH


shortc=crossunder(trend,0)
longc=crossover(trend,0)


longa =input(true)
shorta=input(false)

if(longa)
    strategy.entry("long",1,when=longc)
    strategy.close("long",when=shortc)
if(shorta)
    strategy.entry("short",0,when=shortc)
    strategy.close("long",when=longc)


Mais.