Estratégia de reversão de tendência baseada em suavização gaussiana


Data de criação: 2023-11-07 15:01:19 última modificação: 2023-11-07 15:01:19
cópia: 0 Cliques: 686
1
focar em
1617
Seguidores

Estratégia de reversão de tendência baseada em suavização gaussiana

Visão geral

Esta é uma estratégia de identificação de potenciais reversões de preços usando um indicador de volatilidade de preço de desaceleração personalizado baseado em Gaussian smoothing. Esta estratégia combina o indicador de volatilidade de preço de desaceleração de tendência com a média móvel de Gaussian smoothing do ciclo de preços, definindo condições específicas de entrada e saída para capturar oportunidades de reversão de preços.

Princípio da estratégia

A estratégia começa com o cálculo de um indicador de volatilidade de preços de tendência (GDPO), comparando o preço de fechamento com a média móvel do índice de um determinado período para identificar o ciclo de preços no curto prazo. Em seguida, o GDPO é alisado em Gaussian, usando a média móvel de Arnaud Legoux (ALMA) para aplicar a técnica de alisamento em Gaussian, filtrando o ruído e dando uma imagem mais clara da tendência de preços.

A estratégia determina as condições de entrada e saída para a entrada e saída de mais vazio através da interseção entre o GDPR após o alisamento e sua versão atrasada. Quando o GDPR está em atraso e é negativo, faça mais entrada; Quando o GDPR está em atraso ou no eixo zero, faça uma posição de cabeça vazia.

No gráfico, o GDPR e sua versão atrasada depois do alisamento são desenhados em cores diferentes para mostrar visualmente sua interseção. Ao mesmo tempo, o eixo zero é desenhado como referência. Configure a mudança de cor de fundo para indicar a entrada da estratégia.

Análise de vantagens

A estratégia combina a tecnologia de destrend e o filtro de ruído de Gauss para identificar com mais clareza as oportunidades de reversão de preços. Em comparação com outros indicadores de turbulência, o GDPR pode aumentar a precisão com a destrend, combinando-a com a análise de ciclo. O destrend elimina uma grande quantidade de ruído, tornando o sinal do indicador mais claro.

Análise de Riscos

A estratégia é mais sensível ao ajuste de parâmetros, como o comprimento do ciclo, o parâmetro de suavização, etc., e precisa ser bem pesada para determinar a combinação de parâmetros apropriados, caso contrário, pode haver muitos sinais errados. Em um cenário de tendência, a estratégia pode gerar perdas contínuas. A estratégia de parada de perdas precisa ser usada em conjunto para controlar as perdas individuais.

Pode-se ajustar os parâmetros de forma dinâmica, em combinação com os indicadores de tendência para a otimização, para melhorar a estabilidade da estratégia. Também pode-se definir um stop loss dinâmico para controlar o risco.

Direção de otimização

A estratégia pode ser otimizada em várias direções:

  1. Ajuste dinâmico dos parâmetros de smoothing para aumentar a intensidade de smoothing em uma situação de tendência e reduzir os sinais de erro.

  2. Combinado com indicadores de tendência, como o ADX, a estratégia de reversão evita perdas contínuas em situações de tendência.

  3. Aumentar as estratégias de stop loss, como o stop loss de ajuste com a flutuação dos preços ou o stop loss de movimentação após o lucro.

  4. Otimizar as condições de admissão, combinando com outros indicadores ou formas de confirmação, para melhorar a precisão de admissão.

  5. Optimizar a gestão de fundos, ajustando posições e pontos de parada de acordo com as condições do mercado.

  6. Teste diferentes dados de preços, como a linha do sol, a linha do dia, etc., para avaliar o efeito da estratégia em diferentes períodos.

Resumir

Baseado na estratégia de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de reversão de tendência de tendência de reversão de tendência de tendência de reversão de tendência de tendência de tendência de reversão de tend

Código-fonte da estratégia
/*backtest
start: 2022-10-31 00:00:00
end: 2023-11-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0
// © DraftVenture

//@version=5
strategy(title="Gaussian Detrended Reversion Strategy", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=15)

//Detrended Price Oscillator for price cycles
period_ = input.int(50, title="Price Length", minval=1)

barsback = period_/2 + 1
ma = ta.ema(close, period_)
dpo = close - ma[barsback]

// Rounded ALMA Calculations for gaussian smoothing
almaSource = dpo
almaWindowSize = input(title="Smoothing Length", defval=50)
lagLength = input(title="Lag Length", defval=25)
almaSmoothed = ta.alma(almaSource, almaWindowSize, 0.85, 6)
almaLag = almaSmoothed[lagLength]

// Reversion entry conditions
entryL = ta.crossover(almaSmoothed, almaLag) and almaSmoothed < 0
exitL = ta.crossunder(almaSmoothed, almaLag) or ta.crossunder(almaSmoothed, 0)
entryS = ta.crossunder(almaSmoothed, almaLag) and almaSmoothed > 0
exitS = ta.crossover(almaSmoothed, almaLag) or ta.crossover(almaSmoothed, 0)

// Long entry and exit
if entryL
    strategy.entry("Long", strategy.long)

if exitL
    strategy.close("Long")

// Short entry and exit
if entryS
    strategy.entry("Short", strategy.short)

if exitS
    strategy.close("Short")

// Plot the oscillator
plot(almaSmoothed, title="GDPO", color=color.green)
plot(almaLag, title="Lag", color=color.white)

hline(0, title="Zero Line", color=color.white)

bgcolor(entryL ? color.new(color.green, 40) : na)
bgcolor(entryS ? color.new(color.red, 40) : na)

plotshape(series=ta.crossunder(almaSmoothed, almaLag) or ta.crossunder(almaSmoothed, 0), style=shape.xcross, location=location.top, color=color.white, size=size.tiny)
plotshape(series=ta.crossover(almaSmoothed, almaLag) or ta.crossover(almaSmoothed, 0), style=shape.xcross, location=location.bottom, color=color.white, size=size.tiny)

//Strategy by KP