Estratégia de ruptura do impulso

Autora:ChaoZhang, Data: 2023-10-11 15:01:12
Tags:

Resumo

Esta estratégia é baseada em princípios de ruptura de momento e combina indicadores RSI e estocásticos para seguir a tendência. Ele usa o indicador DEMA para determinar a direção do momento do preço, o RSI para julgar os níveis de sobrecompra e sobrevenda e as linhas KDJ estocásticas para confirmar a tendência. Ele realiza operações de longo prazo e curto prazo de acordo com esses sinais de indicador. A estratégia é adequada para negociação de tendência de médio a longo prazo.

Estratégia lógica

A estratégia usa o indicador DEMA para determinar a direção do ímpeto do preço. A DEMA é uma média móvel exponencial dupla que é mais sensível do que a EMA regular, permitindo a detecção mais cedo de mudanças de tendência. A estratégia calcula a diferença percentual entre o preço e a DEMA para julgar a direção e a força do ímpeto do preço.

Quando o aumento do preço é maior do que o parâmetro definido, o preço é considerado em uma tendência de alta. Quando a queda do preço é maior do que o parâmetro definido, o preço é considerado em uma tendência de queda. Combinado com o indicador RSI para determinar se está em zonas de sobrecompra ou sobrevenda, se o RSI for menor do que a linha de sobrevenda, ele indica um estado de sobrevenda e posições longas podem ser abertas. Se o RSI for maior do que a linha de sobrecompra, ele indica um estado de sobrecompra e posições curtas podem ser abertas.

Além disso, a estratégia também usa as linhas estocásticas K e D do indicador KDJ para confirmar a tendência.

Por último, a estratégia inclui também condições de filtro de tempo que só são eficazes dentro de anos, meses e dias especificados, evitando assim trocas desnecessárias.

Análise das vantagens

Esta estratégia tem as seguintes vantagens:

  1. Usar o DEMA para julgar a dinâmica dos preços é mais sensível e pode detectar mudanças de tendência mais cedo.

  2. A combinação do RSI para determinar a sobrecompra e a sobrevenda impede a entrada errada em pontos de virada do mercado.

  3. Usando KDJ estocástico para confirmar sinais pode filtrar alguns sinais errados.

  4. A adição de filtros de tempo só permite a negociação dentro de períodos especificados, evitando a ocupação desnecessária de capital.

  5. Fluxo lógico claro e fácil de entender para análise.

  6. Os parâmetros do indicador ajustáveis podem ser otimizados para diferentes produtos e prazos.

Análise de riscos

Há também alguns riscos a considerar para esta estratégia:

  1. DEMA, RSI e outros indicadores podem dar sinais falsos, levando a perdas desnecessárias.

  2. As combinações de indicadores duplos não podem evitar completamente reversões em movimentos enormes do mercado.

  3. Os intervalos de tempo fixos podem perder algumas oportunidades de negociação, são recomendados controles de tempo de negociação mais flexíveis.

  4. Os métodos de negociação de tendência exigem tolerar, psicologicamente, os drawdowns e as perdas consecutivas.

  5. É necessário um acompanhamento contínuo da otimização dos parâmetros para se adaptar às condições de mercado em evolução.

Orientações para melhorias

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Teste combinações de mais indicadores para encontrar uma lógica de negociação mais estável e suave, como MACD, KD, MOVING AVERAGE etc.

  2. Teste e otimize os parâmetros do indicador para encontrar intervalos de valores ideais.

  3. Adicionar estratégias de stop loss como stop loss em movimento, stop loss de trailing, etc. para reduzir os drawdowns.

  4. Adicionar funções de gestão de dinheiro como tamanho fixo de negociação, ajustamento dinâmico de posição para controlar o risco.

  5. Otimizar a lógica de entrada e saída para garantir uma entrada de alta probabilidade e uma parada precoce da perda.

  6. Adicionar mais filtros para garantir a entrada apenas após uma tendência clara, como indicadores de volume, indicadores de canal, etc.

  7. Otimizar os controles de tempo para se adequar aos ritmos do mercado.

Conclusão

Esta estratégia se concentra na negociação de tendências, usando DEMA para direção de tendência, RSI para níveis de sobrecompra / sobrevenda e KDJ para confirmação para controlar o risco. Tem lógica simples, alta personalização e é adequada para a detenção de médio a longo prazo. Com melhorias contínuas na otimização de parâmetros, estratégias de stop loss e controle de riscos, esta estratégia tem o potencial de se tornar um sistema estável para seguir a principal tendência do mercado.


/*backtest
start: 2023-09-10 00:00:00
end: 2023-10-10 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version= 2
strategy("DPD+STOCH+RSI ", overlay=false)

buyper =input(-1,step=0.1)
sellper=input(1,step=0.1)

demalen = input(50,title="Dema Length")

e1= ema(close,demalen)
e2=ema(e1,demalen)
demaprice  =   2 * e1 - e2

price=close

demadifper =  ((price-demaprice)/price)*100



plot(demadifper, color=red)
OverDemaPer = input(1, title="Band for OverBought")
UnderDemaPer= input(-1,title="Band for OverSold")




band1 = hline(OverDemaPer)
band0 = hline(UnderDemaPer)
zeroline=0
fill(band1, band0, color=green, transp=90)


lengthrsi = input(10)
overSold = input( 30 )
overBought = input( 55 )
vrsi = rsi(price, lengthrsi)


smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
srsilow=input(20)
srsiup=input(80)







yearfrom = input(2018)
yearuntil =input(2019)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)



if ( ( (demadifper<buyper) or crossover(demadifper,buyper)) and (vrsi<overSold) ) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",  comment="BUY")
    
else
    strategy.cancel(id="BUY")


if ( vrsi>overBought  and ( crossunder(k,d) ) and ( demadifper>sellper  or crossunder(demadifper,sellper)  )  ) 

    strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND",  comment="SELL")
else
    strategy.cancel(id="SELL")
    
    
    

Mais.