Estrategia de seguimiento de tendencias basada en el indicador WaveTrend

EMA SMA HLCC3 ESA
Fecha de creación: 2024-04-28 13:56:27 Última modificación: 2024-04-28 13:56:27
Copiar: 1 Número de Visitas: 1517
1
Seguir
1617
Seguidores

Estrategia de seguimiento de tendencias basada en el indicador WaveTrend

Descripción general

La estrategia WaveTrend Cross LazyBear es una estrategia de negociación basada en el indicador WaveTrend. La estrategia utiliza dos líneas de indicadores WaveTrend de diferentes períodos, generando una señal de compra cuando la línea de indicadores WaveTrend de períodos más rápidos atraviesa la línea de indicadores WaveTrend de períodos más lentos y una señal de venta cuando la línea de indicadores WaveTrend de períodos más rápidos atraviesa la línea de indicadores WaveTrend de períodos más lentos.

Principio de estrategia

El núcleo de la estrategia es el indicador WaveTrend, que se calcula en los siguientes pasos:

  1. Calcula el precio típico (AP) que es igual al promedio entre el precio más alto, el precio más bajo y el precio de cierre.
  2. Calcula el promedio móvil exponencial de AP (ESA) con un período de n1
  3. Calcula el promedio móvil d del índice de valores absolutos de la diferencia entre el AP y el ESA, con un período de n1。
  4. Calcula el indicador CI, que es igual a ((AP - ESA) / (0.015 * d) ◦
  5. Calcule el promedio móvil del índice de CI TCI, con un período de n2, obteniendo el indicador WaveTrend.

La estrategia utiliza dos líneas de indicadores de WaveTrend de dos períodos diferentes (default 10 y 21), denominadas WT1 y WT2 respectivamente. Cuando WT1 atraviesa WT2, genera una señal de compra; cuando WT1 atraviesa WT2, genera una señal de venta. Además, la estrategia también establece 4 niveles de juicio auxiliar: nivel de sobreventa 1, nivel de sobreventa 2, nivel de sobreventa 1 y nivel de sobreventa 2, para ayudar a juzgar el estado del mercado.

Ventajas estratégicas

  1. El indicador WaveTrend combina las características de la dinámica y la volatilidad para capturar mejor las tendencias del mercado.
  2. El indicador de WaveTrend de doble ciclo puede filtrar eficazmente algunas señales de ruido.
  3. La configuración de un nivel de sobrecompra y sobreventa puede, en cierta medida, evitar que la estrategia se negocie con frecuencia cuando el mercado es más volátil.
  4. La lógica de la estrategia es clara, fácil de entender e implementar.

Riesgo estratégico

  1. Esta estrategia podría generar más señales falsas en ciudades convulsionadas.
  2. La elección de los parámetros tiene una gran influencia en el rendimiento de la estrategia, y los diferentes parámetros pueden causar grandes diferencias en el rendimiento de la estrategia.
  3. La estrategia no tiene en cuenta el control de riesgos, y en casos extremos podría haber un retiro mayor.

Dirección de optimización de la estrategia

  1. Se puede considerar la inclusión de condiciones de filtro de tendencia, como la dirección de la línea media a largo plazo, para reducir las falsas señales en mercados convulsivos.
  2. Se puede optimizar la configuración de los niveles de sobreventa y sobrecompra para adaptarse más dinámicamente a las diferentes condiciones del mercado.
  3. Se puede agregar un mecanismo de stop loss y stop-loss para controlar el riesgo de una sola transacción.
  4. Se puede buscar la combinación óptima de parámetros mediante optimización de parámetros.

Resumir

La estrategia WaveTrend Cross LazyBear es una estrategia de seguimiento de tendencias basada en el indicador WaveTrend, diseñada con el indicador de doble ciclo y el juicio auxiliar de los niveles de sobreventa y sobreventa, al mismo tiempo que se captura la tendencia. Sin embargo, la estrategia puede presentar más señales falsas en mercados convulsos y carece de medidas estrictas de gestión de riesgos.

Código Fuente de la Estrategia
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
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/
// © burakaydingr

//@version=5
strategy("WaveTrend with Crosses [LazyBear]", shorttitle="WT_CROSS_LB", overlay=true)

// Kullanıcı girişleri
n1 = input(10, title="Channel Length")
n2 = input(21, title="Average Length")
obLevel1 = input(60, title="Over Bought Level 1")
obLevel2 = input(53, title="Over Bought Level 2")
osLevel1 = input(-60, title="Over Sold Level 1")
osLevel2 = input(-53, title="Over Sold Level 2")

// Temel hesaplamalar
ap = hlc3
esa = ta.ema(ap, n1)
d = ta.ema(math.abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ta.ema(ci, n2)

// WaveTrend göstergeleri
wt1 = tci
wt2 = ta.sma(wt1, 4)

// Al ve Sat Sinyalleri
buySignal = ta.crossover(wt1, wt2)
sellSignal = ta.crossunder(wt1, wt2)

// Alım ve Satım pozisyonları
if (buySignal)
    if (strategy.position_size <= 0) // Eğer şu anda açık bir satış pozisyonu varsa, onu kapat
        strategy.close("Sell")
    strategy.entry("Buy", strategy.long, comment="Buy Signal: Price crossed above WT2")

if (sellSignal)
    if (strategy.position_size >= 0) // Eğer şu anda açık bir alım pozisyonu varsa, onu kapat
        strategy.close("Buy")
    strategy.entry("Sell", strategy.short, comment="Sell Signal: Price crossed below WT2")

// Renkler ve diğer görseller
plot(0, color=color.new(color.gray, 0), title="Zero Level")
plot(obLevel1, color=color.new(color.red, 0), title="Overbought Level 1")
plot(osLevel1, color=color.new(color.green, 0), title="Oversold Level 1")
plot(obLevel2, color=color.new(color.purple, 0), title="Overbought Level 2")
plot(osLevel2, color=color.new(color.orange, 0), title="Oversold Level 2")

plot(wt1, color=color.new(color.red, 0), title="WT1")
plot(wt2, color=color.new(color.blue, 0), title="WT2")
plot(wt1-wt2, color=color.new(color.purple, 80), style=plot.style_area, title="WT1-WT2 Area")

// İşaretler
plotshape(buySignal, location=location.absolute, color=color.new(color.yellow, 0), style=shape.circle, size=size.small, title="Buy Signal")
plotshape(sellSignal, location=location.absolute, color=color.new(color.red, 0), style=shape.circle, size=size.small, title="Sell Signal")