Strategi ini adalah sistem trend berikut berdasarkan penapis penembusan tinggi sejarah dan purata bergerak bulanan. Ia menjana isyarat beli dengan memantau penembusan harga di atas paras tertinggi sejarah sebelumnya, sambil menggunakan Purata Bergerak Sederhana (8 SMA) 8 tempoh pada jangka masa bulanan sebagai penapis jual untuk mengurangkan risiko penembusan palsu. Reka bentuk strategi sejajar dengan ciri pasaran
Logik teras terdiri daripada dua komponen utama:
Ini adalah trend yang direka dengan baik mengikuti strategi dengan logik yang jelas. Melalui gabungan penembusan tinggi sejarah dan purata bergerak bulanan, ia mencapai kedua-dua penangkapan trend yang berkesan dan kawalan risiko yang munasabah. Walaupun terdapat risiko ketinggalan dan penembusan palsu, arah pengoptimuman yang dicadangkan menawarkan potensi untuk peningkatan prestasi lebih lanjut. Strategi ini sangat sesuai untuk pasaran dengan trend yang jelas dan boleh berfungsi sebagai alat rujukan penting untuk pelaburan 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)