
Die Strategie ist eine Trend-Tracking-Strategie, die auf historischen Neuhöhen und Mondlinie-Gewinnfiltern basiert. Sie sucht nach Kaufsignalen, indem sie beobachtet, ob die Preise die vorherigen historischen Höchststände überschritten haben, und nutzt die 8-Zyklus-Simple Moving Average (SMA) der Mondlinie als Verkaufskondition, um das Risiko von falschen Durchbrüchen zu verringern. Die Strategie ist so konzipiert, dass sie der Markteinheit “Trendkontinuität” entspricht.
Die Kernlogik der Strategie besteht aus zwei wichtigen Teilen:
Es handelt sich um eine Strategie zur Trendverfolgung, die vernünftig und logisch klar ausgelegt ist. Durch die kombinierte Verwendung von historischen Neuerhöhungen und Mondline-Mitteln wird sowohl eine effektive Beherrschung der Trends als auch eine vernünftige Risikokontrolle gewährleistet. Obwohl ein gewisser Rückstand und ein Risiko für falsche Durchbrüche vorhanden sind, wird die Gesamtperformance der Strategie durch die empfohlene Optimierungsrichtung voraussichtlich weiter verbessert.
/*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)