Estrategia de tendencia de onda de seguimiento dinámico

EMA SMA HLC MA
Fecha de creación: 2024-12-20 16:17:27 Última modificación: 2024-12-20 16:17:27
Copiar: 3 Número de Visitas: 413
1
Seguir
1617
Seguidores

Estrategia de tendencia de onda de seguimiento dinámico

Descripción general

La estrategia es un sistema de trading cuantitativo basado en indicadores de WaveTrend y seguimiento de tendencias. Combina los indicadores de WaveTrend con las medias móviles para formar un marco de decisión de trading completo. La estrategia utiliza EMA y SMA para calcular el valor de la tendencia de las olas y la tendencia general del mercado, para identificar los puntos de inflexión del mercado mediante el establecimiento de un umbral de sobreventa y sobreventa, y para mejorar la precisión de la negociación en combinación con un filtro de tendencias.

Principio de estrategia

El núcleo de la estrategia se desarrolla a través de los siguientes pasos:

  1. Primero se calcula el precio promedio de HLC (la media de los precios máximos, mínimos y finales)
  2. Se obtiene la línea ESA usando la EMA para el tratamiento suavizado del promedio de HLC
  3. Calcular la desviación entre el promedio de HLC y la línea de la ESA y la suavización con EMA
  4. Calcular el valor de K sobre la base de la desviación y obtener la línea TCI final con dos suavizaciones de EMA
  5. Utilizando las SMA para calcular las líneas de tendencia a largo plazo como filtros de tendencia
  6. Cuando la línea TCI supera el nivel de sobreventa y se ajusta a la dirección de la tendencia, genera una señal de negociación

Ventajas estratégicas

  1. Alta fiabilidad de la señal: reduce efectivamente las falsas señales mediante la combinación de indicadores WaveTrend y filtros de tendencias
  2. Control de riesgo: establece un límite claro de sobreventa y sobreventa para ayudar a detener los pérdidas a tiempo
  3. Adaptabilidad: los parámetros de la estrategia se pueden ajustar con flexibilidad según las diferentes condiciones del mercado
  4. Logía de operación clara: las condiciones de entrada y salida son claras y fáciles de ejecutar
  5. Análisis integrado: toma en cuenta las fluctuaciones a corto plazo y las tendencias a largo plazo, lo que mejora la estabilidad de las operaciones

Riesgo estratégico

  1. Riesgo de cambio de tendencia: la posibilidad de retraso en un mercado muy volátil
  2. Sensibilidad de los parámetros: diferentes combinaciones de parámetros pueden dar lugar a resultados completamente diferentes
  3. Adaptabilidad del mercado: puede generar operaciones frecuentes en mercados convulsionados
  4. Gestión de fondos: control razonable de las posiciones para hacer frente a las fluctuaciones del mercado
  5. Dependencia tecnológica: los indicadores de dependencia tecnológica pueden pasar por alto factores fundamentales

Dirección de optimización de la estrategia

  1. Añadir filtro de volatilidad: ajustar el umbral de negociación en períodos de alta volatilidad
  2. Introducción de análisis multi-periódico: mejora de la precisión de las señales combinadas con diferentes períodos de tiempo
  3. Adaptación de los parámetros de optimización: ajuste de los parámetros del indicador en función de la situación dinámica del mercado
  4. Mejorar el frenado de pérdidas: aumentar el mecanismo de frenado dinámico
  5. Adición de confirmación de tráfico: combinación de análisis de tráfico para mejorar la fiabilidad de la señal

Resumir

La estrategia, mediante una combinación ingeniosa de indicadores de WaveTrend y filtros de tendencias, construye un sistema de negociación sólido. La estrategia permite un análisis completo del mercado mientras se mantiene la simplicidad de la operación. Aunque existe cierto riesgo, la estrategia tiene un buen valor de uso y potencial de desarrollo con una gestión razonable del riesgo y una optimización continua.

Código Fuente de la Estrategia
/*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")