Estratégia de julgamento de tendências baseada em canal gaussiano e filtragem de índice de força relativa estocástica

GC RSI SMA K D
Data de criação: 2025-02-21 11:42:36 última modificação: 2025-02-21 11:42:36
cópia: 0 Cliques: 425
2
focar em
319
Seguidores

Estratégia de julgamento de tendências baseada em canal gaussiano e filtragem de índice de força relativa estocástica Estratégia de julgamento de tendências baseada em canal gaussiano e filtragem de índice de força relativa estocástica

Visão geral

A estratégia é um sistema de negociação de acompanhamento de tendências que combina o canal de Gauss e um índice aleatório relativamente forte (o RSI estocástico). O canal de Gauss é usado para identificar tendências de preços e amplitudes de flutuação, enquanto o RSI estocástico funciona como um filtro para confirmar condições de sobrevenda e sobrevenda, aumentando assim a precisão do sinal de negociação. A estratégia gera um sinal de negociação observando o cruzamento do preço com a fronteira do canal de Gauss e a posição do RSI estocástico.

Princípio da estratégia

A lógica central da estratégia é baseada nos seguintes componentes principais:

  1. Calculação do canal de Gauss: use o filtro de Gauss para calcular a linha média e a faixa de canalização ascendente e descendente com base na configuração do multiplicador. O filtro de Gauss usa o método de suavização exponencial, que pode reduzir efetivamente o ruído de preços.
  2. Stochastic RSI: Combina os benefícios de um indicador aleatório e do RSI para identificar o estado de sobrecompra e sobrevenda por meio de duas linhas suaves de %K e %D.
  3. Condições de entrada:
    • Muitas cabeças: Preços quebraram o canal de Gauss e o Stochastic RSI está na zona de oversold
    • Cabeça vazia: Preços caíram para cima do canal de Gauss e o Stochastic RSI está na zona de sobrevenda
  4. Condições de partida:
    • Quando o preço atravessa a linha do meio do canal de Gauss
    • Ou o RSI estocástico atingindo o nível de sobrecompra e sobrevenda inversa

Vantagens estratégicas

  1. Alta confiabilidade do sinal: combinação de tendências e indicadores de dinâmica para filtrar eficazmente os falsos sinais
  2. Controle de risco perfeito: o uso do canal de Gauss como um ponto de pressão de suporte dinâmico fornece uma boa estrutura de gerenciamento de risco
  3. Parâmetros ajustáveis: largura de canal e parâmetros RSI podem ser ajustados de acordo com diferentes características do mercado
  4. Alta eficiência de computação: o filtro de Gauss tem um menor volume de computação e é adequado para transações em tempo real
  5. Adaptabilidade: pode ser usado em diferentes períodos de tempo e ambientes de mercado

Risco estratégico

  1. Risco de turbulência no mercado: Falso sinal de ruptura pode ser frequente no mercado horizontal
  2. Risco de atraso: o processamento suave do indicador pode causar algum atraso no sinal
  3. Sensibilidade de parâmetros: diferentes combinações de parâmetros podem levar a resultados de transações significativamente diferentes
  4. Dependência do cenário do mercado: melhor desempenho em mercados de forte tendência, mas pode ocorrer uma maior retração em mercados de rápida reversão

Direção de otimização da estratégia

  1. Otimização de parâmetros dinâmicos:
    • Ajustar a largura do canal de acordo com a volatilidade do mercado
    • Parâmetros do RSI estocástico ajustados dinamicamente com base em características do ciclo de mercado
  2. Mecanismo de confirmação do sinal:
    • Adição de indicadores de confirmação de transação
    • Introdução de filtros de intensidade de tendência
  3. Gestão de Riscos:
    • Implementação de Stop Loss Stop
    • Adicionar módulo de gestão de posições
  4. Identificação do cenário de mercado:
    • Desenvolvimento de um classificador de status de mercado
    • Ajustar os parâmetros da estratégia de acordo com diferentes condições de mercado

Resumir

A estratégia, em combinação com o canal de Gauss e o RSI estocástico, constrói um sistema de negociação com características de acompanhamento de tendências e dinâmica. A estratégia é projetada de forma racional, com melhor escalabilidade e adaptabilidade.

Código-fonte da estratégia
/*backtest
start: 2025-01-21 00:00:00
end: 2025-02-20 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Gaussian Channel + Stochastic RSI Filter", overlay=true, margin_long=100, margin_short=100)

// === INPUTS ===
input_length = input.int(100, title="Gaussian Channel Length", minval=1)
input_mult = input.float(2.0, title="Gaussian Channel Multiplier", minval=0.1, step=0.1)
stoch_rsi_period = input.int(14, title="Stochastic RSI Period", minval=1)
stoch_rsi_smoothK = input.int(3, title="Stochastic RSI Smooth K", minval=1)
stoch_rsi_smoothD = input.int(3, title="Stochastic RSI Smooth D", minval=1)
stoch_rsi_overbought = input.float(80.0, title="Stochastic RSI Overbought Level", minval=0, maxval=100)
stoch_rsi_oversold = input.float(20.0, title="Stochastic RSI Oversold Level", minval=0, maxval=100)

// === GAUSSIAN CHANNEL ===
// Gaussian filter calculation with proper initialization
gauss(src, len) =>
    b = math.exp(-1.414 * 3.14159 / len)
    a0 = 1 - b
    var float f = na
    f := na(f[1]) ? src : a0 * src + b * f[1]

// Calculate Gaussian channel
gaussian_channel_mid = gauss(close, input_length)
gaussian_channel_high = gaussian_channel_mid + gaussian_channel_mid * input_mult / 100
gaussian_channel_low = gaussian_channel_mid - gaussian_channel_mid * input_mult / 100

// Plot Gaussian Channel
plot(gaussian_channel_mid, color=color.blue, linewidth=2, title="Gaussian Channel Midline")
plot(gaussian_channel_high, color=color.green, linewidth=1, title="Gaussian Channel Upper Band")
plot(gaussian_channel_low, color=color.red, linewidth=1, title="Gaussian Channel Lower Band")

// === STOCHASTIC RSI ===
k = ta.sma(ta.stoch(close, high, low, stoch_rsi_period), stoch_rsi_smoothK)
d = ta.sma(k, stoch_rsi_smoothD)
is_oversold = k < stoch_rsi_oversold and d < stoch_rsi_oversold
is_overbought = k > stoch_rsi_overbought and d > stoch_rsi_overbought

// Plot Stochastic RSI
hline(stoch_rsi_overbought, "Overbought", color=color.red, linestyle=hline.style_dotted)
hline(stoch_rsi_oversold, "Oversold", color=color.green, linestyle=hline.style_dotted)
plot(k, color=color.blue, title="Stochastic RSI %K")
plot(d, color=color.orange, title="Stochastic RSI %D")

// === ENTRY AND EXIT LOGIC ===
// Long entry: Price crosses above Gaussian Channel lower band and Stochastic RSI is oversold
long_condition = ta.crossover(close, gaussian_channel_low) and is_oversold

// Short entry: Price crosses below Gaussian Channel upper band and Stochastic RSI is overbought
short_condition = ta.crossunder(close, gaussian_channel_high) and is_overbought

// Exit logic
long_exit = ta.crossunder(close, gaussian_channel_mid) or is_overbought
short_exit = ta.crossover(close, gaussian_channel_mid) or is_oversold

// Execute trades
if (long_condition)
    strategy.entry("Long", strategy.long)

if (short_condition)
    strategy.entry("Short", strategy.short)

if (long_exit)
    strategy.close("Long")

if (short_exit)
    strategy.close("Short")

// === SETTINGS ===
// Backtest date range
start_date = timestamp(2023, 1, 1, 0, 0)
end_date = timestamp(2069, 1, 1, 0, 0)
if (time < start_date or time > end_date)
    strategy.close_all()