
Strategi ini adalah strategi pelacakan tren yang didasarkan pada penembusan tinggi baru dan penyaringan rata-rata garis lunar. Ini mencari sinyal beli dengan memantau apakah harga telah melampaui titik tertinggi sebelumnya, sambil menggunakan garis lunar 8-siklus Simple Moving Average ((8 SMA) sebagai kondisi penyaringan jual, untuk mengurangi risiko penembusan palsu.
Logika inti dari strategi ini terdiri dari dua bagian penting:
Ini adalah strategi pelacakan tren yang dirancang secara rasional, logis dan jelas. Dengan penggunaan gabungan dari rekor baru dan rata-rata garis bulan, pengendalian yang efektif terhadap tren dijamin, tetapi juga pengendalian risiko yang masuk akal. Meskipun ada beberapa keterlambatan dan risiko false breakout, kinerja keseluruhan strategi diharapkan dapat ditingkatkan lebih lanjut dengan arah optimasi yang disarankan. Strategi ini sangat cocok untuk diterapkan dalam lingkungan pasar dengan tren yang jelas dan dapat digunakan sebagai alat referensi penting untuk investasi jangka menengah dan 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)