Estratégia de ruptura da tendência baseada no desvio da média móvel

Autora:ChaoZhang, Data: 2023-10-23 15:38:37
Tags:

img

Resumo

Esta estratégia identifica a tendência do mercado e oportunidades de reversão, calculando o desvio do preço de sua média móvel suave.

Estratégia lógica

  1. Calcular a média móvel ponderada de três períodos do preço FPrice como linha MA suavizada.

  2. Calcular o desvio-padrão de 17 dias stdev e a média móvel simples de 17 dias ema2 do preço do FP.

  3. Calcular a taxa de desvio1 do preço da média como (FPrice-ema2)/stdev.

  4. Quando a Rate1 cai abaixo de -1 e começa a subir, sinaliza uma ruptura abaixo da linha de tendência descendente e gera um sinal de compra.

  5. Quando Rate1 sobe acima de 1 e começa a cair, ele sinaliza uma ruptura acima da linha de tendência de alta e gera um sinal de venda.

  6. Abrir ou fechar posições de acordo com os sinais.

A estratégia usa o intervalo de desvio padrão do desvio de preço da MA para identificar inversões de tendência. Ajustando dinamicamente o intervalo de referência, ele se adapta à volatilidade do mercado. Quando o preço sai da MA por mais de um desvio padrão, ele desencadeia um sinal de negociação. Isso efetivamente filtra o ruído do mercado de curto prazo e capta mudanças de tendência de médio a longo prazo.

Análise das vantagens

  1. O intervalo de referência dinâmico adapta-se automaticamente à variação da volatilidade do mercado.

  2. O MA suavizado filtra o ruído a curto prazo de forma eficaz.

  3. O desvio-padrão estabelece limiares de ruptura razoáveis e evita o excesso de negociação.

  4. O filtro de impulso evita falsas fugas.

  5. A lógica estratégica é simples e clara, fácil de compreender e implementar.

  6. Os parâmetros podem ser ajustados para diferentes instrumentos de negociação.

  7. Pode ser combinado com outros indicadores para melhorar o desempenho.

Análise de riscos

  1. Pode haver menos oportunidades de negociação durante períodos prolongados de baixa volatilidade.

  2. Os parâmetros de desvio-padrão incorretos podem conduzir à ausência de boas transações ou à geração de sinais falsos excessivos.

  3. O desvio padrão pode falhar durante oscilações extremas de preços, causando sinais errados.

  4. Podem ocorrer mais falsas rupturas em torno de transições de tendência.

  5. Os sistemas de MA têm atrasos na detecção de mudanças de curto prazo.

  6. Os parâmetros e filtros devem ser ajustados adequadamente para ambientes de mercado específicos.

Orientações para a melhoria

  1. Otimizar os dias e o tipo de MA com base nas características dos instrumentos.

  2. Ajustar o multiplicador do desvio-padrão para encontrar o intervalo de referência ideal.

  3. Adicionar filtros de impulso do preço para reduzir os falsos sinais.

  4. Incorporar indicadores de volatilidade para ajustar dinamicamente os parâmetros por volatilidade.

  5. Combine com outras estratégias de fuga semelhantes para melhorar a taxa de vitória.

  6. Considere reduzir o tamanho da posição em torno dos pontos de virada da tendência para gerir o risco.

  7. Adicionar stop loss para controlar a perda de uma única transação.

Conclusão

A estratégia tem uma lógica clara para identificar reversões de tendência. Com ajuste de parâmetros e combinações, pode ser adaptada a diferentes mercados. Mas a gestão de risco é crucial para evitar falsos sinais durante períodos de alta volatilidade. Se otimizado adequadamente, é um sistema simples e prático de tendência.


/*backtest
start: 2023-09-22 00:00:00
end: 2023-10-22 00:00:00
period: 4h
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/
// © Mustafaozver

//@version=4
strategy("Escaping of Rate from Avarage By Mustafa OZVER", "EoRfA", overlay=false)
//strategy("Escaping of Rate from Avarage By Mustafa OZVER", "EoRfA", overlay=false)

src = input(ohlc4,"Source")
FPrice = wma(src,3)
len = input(17,"Length")

stdev = stdev(FPrice,len)
ema2 = ema(FPrice,len)

Rate1 = (FPrice - ema2) / stdev
//bgcolor(color=((stdev/ema)>0.0015)?color.green:#00000000,transp=80)

colorG = color.lime
colorR = color.red

hline(0,linestyle=hline.style_solid,editable=false)
hline1=hline(1,linestyle=hline.style_dotted,editable=false)
hlinen1=hline(-1,linestyle=hline.style_dotted,editable=false)
fill(hline1,hlinen1,color=color.silver,transp=85,editable=true)

//plot(Rate,color=(Rate>0?colorG:colorR),transp=75,style=plot.style_area,editable=false)

plot(Rate1,title="ESC1",color=(Rate1>0?colorG:colorR),style=plot.style_line,linewidth=1,editable=true)

BUYSIGNAL = Rate1 < -1 and change(Rate1) > 0
SELLSIGNAL = Rate1 > 1 and change(Rate1) < 0

if (BUYSIGNAL)
    strategy.order("LONG1",true)
    //strategy.close("SHORT1")

if (SELLSIGNAL)
   // strategy.order("SHORT1",false)
    strategy.close("LONG1")

Mais.