La estrategia Sunny Supertrend es una estrategia de seguimiento de tendencias basada en los indicadores ATR y SuperTrend. Puede predecir con precisión las reversiones de tendencias y funciona perfectamente como un indicador de tiempo. La estrategia puede aumentar la paciencia y ayudar a los operadores a entrar y salir de los mercados en el momento adecuado.
La estrategia utiliza el indicador SuperTrend para determinar la dirección de la tendencia actual. Cuando el indicador SuperTrend cambia de dirección, creemos que puede ocurrir una inversión de tendencia. Además, la estrategia también utiliza la dirección de los cuerpos de las velas para el juicio auxiliar. Cuando aparece una señal de inversión potencial y la dirección del cuerpo de las velas es consistente con la anterior, la señal no válida se filtra.
Específicamente, la estrategia genera señales comerciales de acuerdo con la siguiente lógica:
El indicador de Supertrend tiende a generar señales redundantes que necesitan ser filtradas Solución: Esta estrategia utiliza la dirección del cuerpo del candelabro para el juicio auxiliar para filtrar eficazmente las señales no válidas
Los parámetros de las súper tendencias son propensos a la sobre-optimización
Solución: Utilice los parámetros predeterminados para evitar ajustes manuales y sobre-optimización
Incapaz de procesar las inversiones de tendencia ultra rápidas Solución: Ajustar el parámetro del período ATR de forma adecuada para hacer frente a movimientos más rápidos del mercado
La estrategia Sunny Supertrend es una estrategia de inversión de tendencia eficiente basada en el indicador SuperTrend. Combina las direcciones del cuerpo del candelabro para el juicio auxiliar, que puede filtrar eficazmente las señales inválidas y mejorar la calidad de la señal.
/*backtest start: 2023-11-12 00:00:00 end: 2023-12-12 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Sunny Supertrend Strategy", overlay=true, default_qty_type=strategy.percent_of_equity) atrPeriod = input(10, "ATR Length") factor = input.float(3.0, "Factor", step = 0.01) [_, direction] = ta.supertrend(factor, atrPeriod) shor= close > open and close[1] > open[1] and close[2] > open[2] lon = open > close and open[1] > close[1] and open[2] > close[2] tt= ta.change(direction) < 0 ss= ta.change(direction) > 0 long= tt longexit = lon or ss short= ss shortexit = shor or tt longPosMem = false longexitPosMem = false shortPosMem = false shortexitPosMem = false longPosMem := long ? true : short ? false : longPosMem[1] longexitPosMem := longexit ? true : shortexit ? false : longexitPosMem[1] shortPosMem := short ? true : long ? false : shortPosMem[1] shortexitPosMem := shortexit ? true : longexit ? false : shortexitPosMem[1] longy = long and not(longPosMem[1]) longexity = longexit and not(longexitPosMem[1]) shorty = short and not(shortPosMem[1]) shortexity = shortexit and not(shortexitPosMem[1]) //Use this to customize the look of the arrows to suit your needs. plotshape(longy, location=location.abovebar, color=color.green, style=shape.arrowup, text="Buy") plotshape(longexity, location=location.top, color=color.green, style=shape.xcross, text="Buy exit") plotshape(shorty, location=location.belowbar, color=color.red, style=shape.arrowdown, text="Sell") plotshape(shortexity, location=location.bottom, color=color.red, style=shape.xcross, text="Sell exit") //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr) // STEP 1: // Make input options that configure backtest date range startDate = input.int(title="Start Date", defval=1, minval=1, maxval=31) startMonth = input.int(title="Start Month", defval=1, minval=1, maxval=12) startYear = input.int(title="Start Year", defval=2021, minval=1800, maxval=2100) endDate = input.int(title="End Date", defval=1, minval=1, maxval=31) endMonth = input.int(title="End Month", defval=2, minval=1, maxval=12) endYear = input.int(title="End Year", defval=2021, minval=1800, maxval=2100) // STEP 2: // Look if the close time of the current bar // falls inside the date range inDateRange = true // STEP 3: // Submit entry orders, but only when bar is inside date range if (inDateRange and longy) strategy.entry("enter long",strategy.long,when= longy) strategy.close("long",when=longexity) if (inDateRange and shorty) strategy.entry("enter short",strategy.short,when = shorty) strategy.close("short", when=shortexity)