Estratégia de tendência de onda de rastreamento dinâmico

EMA SMA HLC MA
Data de criação: 2024-12-20 16:17:27 última modificação: 2024-12-20 16:17:27
cópia: 3 Cliques: 413
1
focar em
1617
Seguidores

Estratégia de tendência de onda de rastreamento dinâmico

Visão geral

A estratégia é um sistema de negociação quantitativa baseado no indicador WaveTrend e no acompanhamento de tendências. Ela forma um quadro de decisão de negociação completo, combinando o indicador WaveTrend com a média móvel. A estratégia usa a EMA e a SMA para calcular o valor da tendência de ondas e a tendência geral do mercado, para identificar os pontos de inflexão do mercado, definindo um limiar de sobrevenda e sobrevenda, e para melhorar a precisão da negociação em combinação com o filtro de tendências.

Princípio da estratégia

O núcleo da estratégia é implementado através das seguintes etapas:

  1. Primeiro, calcule o preço médio do HLC (o valor médio entre o preço máximo, o preço mínimo e o preço de fechamento)
  2. A linha ESA é obtida com o tratamento de suavização do valor médio do HLC com a EMA
  3. Calcule o desvio entre a média HLC e a linha ESA e use a EMA para suavizar
  4. Calcule o valor de K com base no desvio e obtenha a linha TCI final através de dois suavizações de EMA
  5. Usando SMA para calcular a linha de tendência de longo prazo como um filtro de tendência
  6. O sinal de negociação é gerado quando a linha TCI ultrapassa os níveis de sobrevenda e sob a direção da tendência

Vantagens estratégicas

  1. Alta confiabilidade do sinal: reduz efetivamente os falsos sinais através da combinação do indicador WaveTrend com o filtro de tendência
  2. Controle de risco perfeito: configuração de um limiar claro de sobrevenda e sobrevenda para ajudar a parar os prejuízos a tempo
  3. Adaptabilidade: os parâmetros da estratégia podem ser ajustados de forma flexível para diferentes condições de mercado
  4. Lógica de operação clara: condições de entrada e saída claras e fáceis de executar
  5. Análise integrada: aumenta a estabilidade das transações, levando em consideração oscilações de curto prazo e as tendências de longo prazo

Risco estratégico

  1. Risco de reversão de tendência: possível atraso em mercados altamente voláteis
  2. Sensibilidade dos parâmetros: Diferentes combinações de parâmetros podem levar a resultados completamente diferentes
  3. Adaptabilidade do mercado: pode haver transações frequentes em mercados turbulentos
  4. Gerenciamento de fundos: controle racional de posições para lidar com oscilações do mercado
  5. Dependência tecnológica: indicadores de dependência tecnológica podem ignorar fatores fundamentais

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

  1. Adição de filtro de volatilidade: ajuste de margem de negociação em períodos de alta volatilidade
  2. Introdução da análise de múltiplos períodos: aumento da precisão do sinal combinado com diferentes períodos de tempo
  3. Parâmetros de otimização adaptam-se: Ajustar os parâmetros do indicador de acordo com a dinâmica do mercado
  4. Melhorar o Stop Loss: Aumentar o mecanismo de Stop Loss Dinâmico
  5. Adição de confirmação de transação: análise de transação combinada para aumentar a confiabilidade do sinal

Resumir

A estratégia, através da combinação inteligente de indicadores WaveTrend e filtros de tendências, constrói um sistema de negociação robusto. A estratégia, ao mesmo tempo em que mantém a simplicidade de operação, permite uma análise abrangente do mercado. Embora haja um certo risco, a estratégia tem um bom valor de uso e potencial de desenvolvimento com a gestão racional do risco e otimização contínua.

Código-fonte da estratégia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
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/
// © mojomarv

//@version=6
strategy("WaveTrend with Trend Filter", shorttitle="WaveTrend Trend", overlay=false, initial_capital = 100000)

// Inputs for the WaveTrend indicator
inputLength = input.int(10, title="Channel Length", minval=1)
avgLength = input.int(21, title="Average Length", minval=1)
obLevel = input.float(45, title="Overbought Level")
osLevel = input.float(-45, title="Oversold Level")
showSignals = input.bool(true, title="Show Buy/Sell Signals")

// Trend filter input
maLength = input.int(500, title="Trend MA Length", minval=1)

// Calculate WaveTrend values
hlc_avg = (high + low + close) / 3  // Renamed from hlc3 to hlc_avg
esa = ta.ema(hlc_avg, inputLength)
d = ta.ema(math.abs(hlc_avg - esa), inputLength)
k = (hlc_avg - esa) / (0.015 * d)
ci = ta.ema(k, avgLength)
tci = ta.ema(ci, avgLength)

// Moving average for trend detection
trendMA = ta.sma(close, maLength)

// Determine trend
bullishTrend = close > trendMA
bearishTrend = close < trendMA

// Generate signals with trend filter
crossUp = ta.crossover(tci, osLevel)
crossDown = ta.crossunder(tci, obLevel)

// Plot WaveTrend
plot(tci, title="WaveTrend Line", color=color.new(color.blue, 0), linewidth=2)
hline(obLevel, "Overbought", color=color.red, linestyle=hline.style_dotted)
hline(osLevel, "Oversold", color=color.green, linestyle=hline.style_dotted)
hline(0, "Zero Line", color=color.gray, linestyle=hline.style_solid)

// Plot moving average for trend visualization
plot(trendMA, title="Trend MA", color=color.orange, linewidth=1)

// Plot buy and sell signals
plotshape(showSignals and crossUp, title="Buy Signal", location=location.belowbar, style=shape.labelup, color=color.new(color.green, 0), size=size.small)
plotshape(showSignals and crossDown, title="Sell Signal", location=location.abovebar, style=shape.labeldown, color=color.new(color.red, 0), size=size.small)

// Alerts
alertcondition(crossUp, title="Buy Alert", message="WaveTrend Buy Signal (Trend Confirmed)")
alertcondition(crossDown, title="Sell Alert", message="WaveTrend Sell Signal (Trend Confirmed)")
alertcondition(bullishTrend, title="bull", message="WaveTrend Sell Signal (Trend Confirmed)")
alertcondition(bearishTrend, title="bear", message="WaveTrend Sell Signal (Trend Confirmed)")

// Strategy logic
if crossUp and bullishTrend
    strategy.entry("Long", strategy.long)

if crossDown
    strategy.close("Long")

if crossDown and bearishTrend
    strategy.entry("Short", strategy.short)

if crossUp
    strategy.close("Short")