Estratégia de tendência de EMA de volatilidade de fuga instantânea


Data de criação: 2024-01-15 12:00:25 última modificação: 2024-01-15 12:00:25
cópia: 0 Cliques: 689
1
focar em
1617
Seguidores

Estratégia de tendência de EMA de volatilidade de fuga instantânea

Visão geral

A estratégia é uma estratégia de ruptura simples, que usa dois diferentes valores de diferença de EMAs com atraso de zero horas para rastrear a tendência de alta ou baixa de um objeto alvo. Quando o valor de diferença excede um determinado número de vezes a faixa de Brin, um sinal de fazer mais ou fazer menos é gerado de acordo com a direção do EMA base.

Princípio da estratégia

A estratégia usa dois tipos especiais de EMAs para calcular a diferença de taxa de flutuação. A fórmula para esses dois EMAs é:

hJumper = math.max(src,ta.ema(src,lx)) 

lJumper = math.min(src,ta.ema(src,lx))

dif = (hJumper / lJumper) - 1

O indicador responde imediatamente a grandes flutuações de preços, sem atraso.

Quando a dif é superior à trajectória da faixa de Brin, gera-se um sinal de entrada; quando a dif é inferior à trajectória da faixa de Brin, gera-se um sinal de saída. A direção do EMA base decide a direção de fazer mais ou fazer menos.

Análise de vantagens

A maior vantagem da estratégia é a rapidez com que ela capta os sinais de ruptura, sem qualquer atraso. Isso é feito através da computação de dois EMAs especiais de atraso de zero horas. Isso permite que a estratégia possa responder imediatamente a eventos de ruptura de preços, capturando assim uma maior eficiência no início da formação de tendências.

Outra vantagem é que a estratégia usa apenas um parâmetro, lx. A falta de parâmetros torna a estratégia mais fácil de ajustar e reduz o risco de otimização excessiva.

Análise de Riscos

O principal risco desta estratégia é que o sinal de ruptura pode ser falseado. Quando os preços são agitados, pode haver uma série de falsas rupturas. Para reduzir esse risco, o multiplicador da faixa de Brin pode ser aumentado de forma apropriada para tornar o sinal mais estável.

Outro risco é o frequente surgimento de pequenos prejuízos em situações de turbulência. Isso pode ser mitigado por meio de ajustes nos mecanismos de saída. Por exemplo, a definição de um preço de stop loss ou stop loss.

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Combinação de outros indicadores para filtrar os sinais de entrada, reduzindo a probabilidade de falsas brechas

  2. Aumentar o mecanismo de suspensão de perdas e gerenciar o risco de posse

  3. Introdução de confirmação de volume de transações para evitar o surgimento de falsos sinais de ruptura

  4. Usando parâmetros adaptativos de Brin, ajustando os parâmetros de acordo com a volatilidade do mercado

  5. Parâmetros de estratégia de otimização dinâmica baseados em métodos de aprendizado de máquina

Resumir

A estratégia de EMA de ruptura instantânea capta o impulso da tendência de preços através da computação de EMAs com atraso de zero horas. A estratégia possui vantagens como resposta rápida, simplicidade de parâmetros. O próximo passo pode ser otimizado em termos de filtragem de sinais, parada de perdas, confirmação de volume de transação, etc., permitindo que a estratégia funcione de forma estável em diferentes ambientes de mercado.

Código-fonte da estratégia
/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © wbburgin

//@version=5
strategy("Zero-lag Volatility-Breakout EMA Trend Strategy",overlay=false)

tt1 = "If selected, the strategy will not close long or short positions until the opposite signal is received. This"+
 " exposes you to more risk but potentially could generate larger returns."

src = input.source(close,"Source")
lx = input.int(200,"EMA Difference Length")
bbmult = input.float(2.0,"Standard Deviation Multiple")
useBinaryStrategy = input.bool(true,"Use Binary Strategy",tooltip = tt1)

hJumper = math.max(src,ta.ema(src,lx))
lJumper = math.min(src,ta.ema(src,lx))

dif = (hJumper / lJumper) - 1

[bbm,bbu,bbl] = ta.bb(dif,lx,bbmult)

plot(dif,color=color.white,title="Zero lag EMA Difference")
plot(bbu,color=color.lime,title="Bollinger Top")
plot(bbl,color=color.red,title="Bollinger Bottom")
plot(bbm,color=color.yellow,title="Bollinger Middle")

sigEnter = ta.crossover(dif,bbu)
sigExit = ta.crossunder(dif,bbm)
emaBase = ta.ema(src,lx)
enterLong = sigEnter and emaBase > emaBase[1]
enterShort = sigEnter and emaBase < emaBase[1]

plotshape(enterLong,style=shape.labelup,location=location.bottom,color=color.green,size=size.tiny)
plotshape(enterShort,style=shape.labeldown,location=location.top,color=color.red,size=size.tiny)

if enterLong
    strategy.entry("Long",strategy.long)
if enterShort
    strategy.entry("Short",strategy.short)
if not useBinaryStrategy and sigExit
    strategy.close("Long")
    strategy.close("Short")