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.
La estrategia consta de tres partes principales:
Indicador de Supertrend: Calcula la línea de ruptura ascendente y descendente para determinar la dirección de la tendencia actual.
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.
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.
La combinación de múltiples indicadores reduce las señales falsas.
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.
La curva lisa de DEMA juzga con precisión y confiabilidad las tendencias a largo plazo.
Las bandas de Bollinger ayudan a determinar los puntos de inversión de tendencia.
Los parámetros de supertendencia demasiado sensibles pueden generar más ruido.
El largo periodo de DEMA da como resultado una mala tendencia en la capacidad de seguimiento.
En este caso, el indicador de supertendencia puede considerarse la señal primaria.
Prueba diferentes períodos ATR y parámetros multiplicadores para encontrar la combinación óptima para el indicador de supertendencia.
Optimice el parámetro del período DEMA.
Añadir otros indicadores auxiliares como KDJ, MACD, etc.
Introduzca estrategias de stop loss.
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")