Cette stratégie est un système de suivi des tendances basé sur le filtre des hautes percées historiques et des moyennes mobiles mensuelles. Elle génère des signaux d'achat en surveillant les écarts de prix au-dessus des sommets historiques précédents, tout en utilisant la moyenne mobile simple (8 SMA) sur une période de 8 mois comme filtre de vente pour réduire les risques de fausses ruptures.
La logique de base se compose de deux éléments clés:
C'est une tendance bien conçue qui suit une stratégie avec une logique claire. Grâce à la combinaison de hauts historiques et de moyennes mobiles mensuelles, il permet à la fois de capturer efficacement la tendance et de contrôler raisonnablement les risques. Bien qu'il existe des risques inhérents de retard et de fausses ruptures, les directions d'optimisation suggérées offrent un potentiel d'amélioration de la performance. La stratégie est particulièrement adaptée aux marchés avec des tendances claires et peut servir d'outil de référence important pour les investissements à moyen et long terme.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-11 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Buy Signal on Close Greater Than Previous All-Time High Strategy", overlay=true) // Initialize the previous all-time high var float prevAllTimeHigh = na // Update the all-time high, excluding the current bar's high (use previous bar's high) if (na(prevAllTimeHigh) or high[1] > prevAllTimeHigh) prevAllTimeHigh := high[1] // Monthly closing price and 8 SMA on monthly time frame monthlyClose = request.security(syminfo.tickerid, "M", close) monthlySMA = ta.sma(monthlyClose, 8) // Variables to track the last signal type var int lastSignal = 0 // 0 = None, 1 = Buy, 2 = Sell // Debugging output to check the all-time high and conditions plot(prevAllTimeHigh, color=color.blue, linewidth=1, title="Previous All-Time High") plot(monthlySMA, color=color.green, linewidth=1, title="8 SMA (Monthly)") // Buy signal: when the latest close is greater than the previous all-time high buySignal = close > prevAllTimeHigh and lastSignal != 1 // Sell signal: when the monthly close is below the 8 SMA sellSignal = monthlyClose < monthlySMA and lastSignal != 2 // Update the last signal type after triggering a signal if (buySignal) lastSignal := 1 if (sellSignal) lastSignal := 2 // Execute the strategy orders if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.close("Buy") // Optional: Plot buy and sell signals on the chart for visual reference plotshape(series=buySignal, style=shape.labelup, location=location.belowbar, color=color.green, text="BUY", size=size.small) plotshape(series=sellSignal, style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL", size=size.small)