Stratégie de tendance ensoleillée

Auteur:ChaoZhang est là., Date: 2023-12-13 14h40 et 24h
Les étiquettes:

img

Résumé

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 logique de la stratégie

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:

  1. Utiliser l'indicateur SuperTrend pour déterminer la direction de la tendance principale
  2. Lorsque la direction de l'indicateur SuperTrend change, un signal d'inversion potentiel est généré
  3. Si la direction du corps du chandelier est conforme à la précédente à ce moment, le signal d'inversion est filtré
  4. Si la direction du corps du chandelier change, le signal d'inversion est confirmé et un signal de trading est généré

Analyse des avantages

  1. Sur la base de l'indicateur Supertrend, il peut déterminer avec précision les points d'inversion de tendance
  2. Filtrer les signaux non valides en combinant les directions du corps du chandelier pour améliorer la qualité du signal
  3. Convient comme indicateur de calendrier pour guider les investisseurs dans le choix d'un moment d'entrée et de sortie raisonnable
  4. Largement applicable à tout laps de temps et à différentes variétés avec une forte adaptabilité

Risques et solutions

  1. 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

  2. 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

  3. 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

Directions d'optimisation

  1. Essayez différentes combinaisons de paramètres de la période ATR
  2. Ajouter des indicateurs de volume ou de volatilité pour filtrer les signaux
  3. Combiner avec d'autres systèmes pour améliorer les performances de la stratégie
  4. Développer des mécanismes de stop loss pour contrôler les pertes uniques

Conclusion

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)


Plus de