Diese Strategie ist ein Trendfolgensystem, das auf historischem hohem Durchbruch und monatlichem gleitenden Durchschnittsfilter basiert. Es erzeugt Kaufsignale, indem es Preisdurchbrüche über frühere historische Höchststände überwacht, während es den 8-Perioden-Simple Moving Average (8 SMA) auf monatlichem Zeitrahmen als Verkaufsfilter verwendet, um falsche Breakout-Risiken zu reduzieren. Das Strategiedesign entspricht dem Marktcharakteristikum
Die Kernlogik besteht aus zwei Schlüsselelementen:
Dies ist ein gut konzipierter Trend nach Strategie mit klarer Logik. Durch die Kombination von historischen hohen Breakouts und monatlichen gleitenden Durchschnitten wird sowohl eine effektive Trendfassung als auch eine angemessene Risikokontrolle erreicht. Während es inhärente Risiken von Verzögerungen und falschen Breakouts gibt, bieten die vorgeschlagenen Optimierungsrichtungen Potenzial für eine weitere Leistungssteigerung. Die Strategie eignet sich besonders für Märkte mit klaren Trends und kann als wichtiges Referenzwerkzeug für mittelfristige bis langfristige Investitionen dienen.
/*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)