Sumber daya yang dimuat... Pemuatan...

Terobosan Tinggi Bersejarah dengan Tren Rata-rata Filter Bergerak Bulanan Mengikuti Strategi

Penulis:ChaoZhang, Tanggal: 2024-12-13 10:25:18
Tag:ATHSMAMA

img

Gambaran umum

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.

Prinsip Strategi

Logika inti terdiri dari dua komponen utama:

  1. Signal Beli: Dihasilkan ketika harga penutupan terakhir melanggar di atas rekor tertinggi sebelumnya (tidak termasuk rekor tertinggi bar saat ini).
  2. Sinyal Jual: Dimulai ketika harga penutupan bulanan jatuh di bawah Rata-rata Gerak Sederhana 8 periode. Kondisi ini membantu dengan stop-loss yang tepat waktu dan mencegah kerugian yang lebih besar dari pembalikan tren. Strategi ini juga mencakup mekanisme pelacakan keadaan sinyal untuk menghindari sinyal berulang dalam keadaan yang sama, meningkatkan stabilitas strategi.

Keuntungan Strategi

  1. Strong Trend Capture: Menangkap tren naik yang kuat secara efektif melalui deteksi terobosan tinggi historis.
  2. Pengendalian Risiko yang Kuat: Menggabungkan rata-rata bergerak bulanan sebagai filter untuk secara efektif menyaring kebocoran palsu.
  3. Stabilitas Sinyal Tinggi: Menggunakan variabel lastSignal untuk melacak keadaan sinyal, mencegah pengulangan sinyal.
  4. Visualisasi yang baik: Menyediakan antarmuka grafis yang jelas termasuk garis tinggi historis, rata-rata bergerak, dan penanda beli / jual.
  5. Adaptabilitas tinggi: Dapat diterapkan pada jangka waktu dan instrumen yang berbeda.

Risiko Strategi

  1. Risiko Lag: Sinyal breakout tinggi historis secara inheren agak tertinggal, berpotensi kehilangan titik masuk yang optimal.
  2. Risiko Pelanggaran Palsu: Meskipun penyaringan rata-rata bergerak bulanan, pembocoran palsu masih dapat terjadi di berbagai pasar.
  3. Risiko penarikan: Strategi dapat mengalami penarikan yang signifikan pada titik pembalikan tren.
  4. Risiko Manajemen Posisi: Strategi tidak memiliki mekanisme ukuran posisi, yang membutuhkan aturan manajemen uang tambahan.

Arah Optimasi Strategi

  1. Konfirmasi Volume: Tambahkan indikator volume sebagai kondisi konfirmasi breakout untuk meningkatkan keandalan sinyal.
  2. Peningkatan Stop-Loss: Mendesain aturan stop-loss yang lebih fleksibel, seperti trailing stop atau volatility-based stop.
  3. Manajemen Posisi: Sesuaikan secara dinamis ukuran posisi berdasarkan volatilitas pasar dan kekuatan tren.
  4. Penyaringan Sinyal: Tambahkan indikator kekuatan tren seperti ADX untuk lebih menyaring sinyal lemah.
  5. Filter Waktu: Tambahkan filter periode waktu untuk menghindari perdagangan selama periode waktu yang tidak sesuai.

Ringkasan

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)


Berkaitan

Lebih banyak