La stratégie Sunny Supertrend est une stratégie de suivi des tendances basée sur les indicateurs ATR et SuperTrend. Elle peut prédire avec précision les renversements de tendance et fonctionne parfaitement comme un indicateur de timing.
La stratégie utilise l'indicateur SuperTrend pour déterminer la direction de la tendance actuelle. Lorsque l'indicateur SuperTrend change de direction, nous pensons qu'un renversement de tendance peut se produire. En outre, la stratégie utilise également la direction des corps de chandeliers pour un jugement auxiliaire. Lorsqu'un signal de renversement potentiel apparaît et que la direction du corps de chandelier est conforme à la précédente, le signal invalide est filtré.
Plus précisément, la stratégie génère des signaux de trading selon la logique suivante:
L'indicateur Supertrend tend à générer des signaux redondants qui doivent être filtrés Solution: Cette stratégie utilise la direction du corps du chandelier pour le jugement auxiliaire pour filtrer efficacement les signaux invalides
Les paramètres de super-tendance sont sujets à une optimisation excessive
Solution: Utilisez les paramètres par défaut pour éviter les ajustements manuels et la surexploitation
Impossible de traiter les renversements de tendance ultra-rapides Solution: ajuster le paramètre de la période ATR de manière appropriée pour faire face à des mouvements de marché plus rapides
La stratégie Sunny Supertrend est une stratégie efficace d'inversion de tendance basée sur l'indicateur SuperTrend. Elle combine les directions du corps du chandelier pour un jugement auxiliaire, ce qui peut filtrer efficacement les signaux invalides et améliorer la qualité du signal.
/*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)