
Cette stratégie est une stratégie de suivi de la tendance basée sur les nouvelles hautes historiques et le filtrage de la ligne moyenne de la ligne lunaire. Elle recherche des signaux d’achat en surveillant si les prix ont atteint les plus hauts historiques précédents, tout en utilisant la ligne lunaire 8 cycles moyenne mobile simple ((8 SMA) comme conditions de filtrage de vente, afin de réduire le risque de fausses ruptures. La conception de cette stratégie est conforme à la caractéristique du marché de la “continuité de la tendance” et est particulièrement adaptée pour capturer les conditions de marché à grande échelle dans les tendances à forte hausse.
La logique centrale de la stratégie comprend deux éléments clés:
Il s’agit d’une stratégie de suivi de tendance conçue de manière rationnelle et logique. L’utilisation combinée de la rupture historique et de la moyenne lunaire garantit une maîtrise efficace de la tendance et une maîtrise raisonnable du risque. Bien qu’il existe un certain retard et un risque de fausse rupture, la performance globale de la stratégie est susceptible d’être encore améliorée grâce à l’orientation optimisée proposée.
/*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)