Estrategia de seguimiento de tendencias dual

El autor:¿ Qué pasa?, Fecha: 2024-01-16 15:03:55
Las etiquetas:

img

Resumen general

La Estrategia de seguimiento de tendencias dual es una estrategia compuesta que combina el indicador Supertrend, la media móvil exponencial doble (DEMA) y las bandas de Bollinger.

Estrategia lógica

La estrategia consta de tres partes principales:

  1. Indicador de Supertrend: Calcula la línea de ruptura ascendente y descendente para determinar la dirección de la tendencia actual.

  2. DEMA (Double Exponential Moving Average): Indicador de seguimiento de tendencias que combina las características de una media móvil simple y una media móvil exponencial, que puede responder a los cambios de precios más rápido.

  3. Bandas de Bollinger: Representa el rango de fluctuación de los precios.

Cuando el indicador Supertrend y el DEMA emiten señales de compra/venta, la estrategia entra en la posición correspondiente.

Ventajas

  1. La combinación de múltiples indicadores reduce las señales falsas.

  2. El indicador Supertrend es insensible a cambios menores de precios y sólo genera señales en los puntos de inflexión de la tendencia, evitando la frecuencia excesiva de las operaciones.

  3. La curva lisa de DEMA juzga con precisión y confiabilidad las tendencias a largo plazo.

  4. Las bandas de Bollinger ayudan a determinar los puntos de inversión de tendencia.

Riesgos y soluciones

  1. Los parámetros de supertendencia demasiado sensibles pueden generar más ruido.

  2. El largo periodo de DEMA da como resultado una mala tendencia en la capacidad de seguimiento.

  3. En este caso, el indicador de supertendencia puede considerarse la señal primaria.

Direcciones de optimización

  1. Prueba diferentes períodos ATR y parámetros multiplicadores para encontrar la combinación óptima para el indicador de supertendencia.

  2. Optimice el parámetro del período DEMA.

  3. Añadir otros indicadores auxiliares como KDJ, MACD, etc.

  4. Introduzca estrategias de stop loss.

Resumen de las actividades

La estrategia de seguimiento de tendencias dual combina las fortalezas de Supertrend, DEMA y Bollinger Bands mediante el uso de múltiples indicadores, mejorando la calidad de la señal mientras se capturan las tendencias.


/*backtest
start: 2023-01-09 00:00:00
end: 2024-01-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Supertrend + DEMA + Bollinger Bands", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, precision=2)

// Input parameters for Supertrend
atrLength = input(title="ATR Period", type=input.integer, defval=12)
src = input(hl2, title="Source")
multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR = input(title="Change ATR Calculation Method?", type=input.bool, defval=true)
showSupertrend = input(title="Show Supertrend Indicator?", type=input.bool, defval=true)

// Input parameters for DEMA
demaLength = input(200, title="DEMA Period")
showDEMA = input(title="Show DEMA Indicator?", type=input.bool, defval=true)

// Calculate ATR for Supertrend
atr2 = sma(tr, atrLength)
atr = changeATR ? atr(atrLength) : atr2

// Calculate Supertrend
up = src - (multiplier * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? max(up, up1) : up

dn = src + (multiplier * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn

trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend

// Plot Supertrend
upPlot = plot(showSupertrend ? (trend == 1 ? up : na) : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.green, 0))
plotshape(buySignal ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.new(color.white, 0))

dnPlot = plot(showSupertrend ? (trend == 1 ? na : dn) : na, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.red, 0))
plotshape(sellSignal ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.new(color.white, 0))

mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)

longFillColor = (trend == 1 ? color.new(color.green, 80) : color.new(color.white, 0))
shortFillColor = (trend == -1 ? color.new(color.red, 80) : color.new(color.white, 0))

fill(mPlot, upPlot, title="UpTrend Highlighter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highlighter", color=shortFillColor)

// Alert conditions
alertcondition(buySignal, title="Custom Supertrend Buy", message="Custom Supertrend Buy!")
alertcondition(sellSignal, title="Custom Supertrend Sell", message="Custom Supertrend Sell!")

// Calculate DEMA
ema1 = ema(close, demaLength)
dema = 2 * ema1 - ema(ema1, demaLength)

// Plot DEMA with white color
plot(showDEMA ? dema : na, color=color.new(color.white, 0), title="DEMA", linewidth=2)

// Add push notification on mobile if buy and sell occurred
if (buySignal)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell")
    alert("Buy Signal - Supertrend")

if (sellSignal)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover")
    alert("Sell Signal - Supertrend")


Más.