Strategi ini adalah sistem mengikuti tren berdasarkan pada terobosan tinggi historis dan filter rata-rata bergerak bulanan. Strategi ini menghasilkan sinyal beli dengan memantau price breakout di atas rekor tertinggi historis sebelumnya, sambil menggunakan 8-periode Simple Moving Average (8 SMA) pada jangka waktu bulanan sebagai filter jual untuk mengurangi risiko terobosan palsu.
Logika inti terdiri dari dua komponen utama:
Ini adalah tren yang dirancang dengan baik mengikuti strategi dengan logika yang jelas. Melalui kombinasi dari tren tinggi historis dan moving average bulanan, ia mencapai penangkapan tren yang efektif dan pengendalian risiko yang wajar. Meskipun ada risiko yang melekat dari lag dan false breakout, arah optimasi yang disarankan menawarkan potensi untuk peningkatan kinerja lebih lanjut. Strategi ini sangat cocok untuk pasar dengan tren yang jelas dan dapat berfungsi sebagai alat referensi penting untuk investasi jangka menengah hingga panjang.
/*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)