Sumber daya yang dimuat... Pemuatan...

Adaptive Bollinger Breakout dengan Moving Average Quantitative Strategy System

Penulis:ChaoZhangTanggal: 2024-11-27 15:55:28
Tag:BBMASMA

img

Gambaran umum

Strategi ini adalah sistem perdagangan kuantitatif yang menggabungkan Bollinger Bands breakout dengan tren rata-rata bergerak. Sistem secara otomatis menangkap peluang pasar dengan memantau hubungan harga dengan Bollinger Bands sambil menggunakan rata-rata bergerak 100 hari untuk konfirmasi tren.

Prinsip Strategi

Logika inti didasarkan pada elemen kunci berikut:

  1. Menggunakan 20 periode Bollinger Bands sebagai saluran volatilitas dengan 2 standar deviasi
  2. Menggunakan rata-rata bergerak 100 hari sebagai konfirmasi tren jangka menengah hingga panjang
  3. Menghasilkan sinyal panjang ketika harga menembus band atas dan tidak di atas pada periode sebelumnya
  4. Menghasilkan sinyal pendek ketika harga pecah di bawah band bawah dan tidak di bawah dalam periode sebelumnya
  5. Menghitung ukuran posisi secara dinamis berdasarkan ekuitas rekening berjalan
  6. Otomatis menutup posisi pada sinyal sebaliknya untuk manajemen risiko yang tepat waktu

Keuntungan Strategi

  1. Adaptabilitas tinggi - Bollinger Bands secara otomatis menyesuaikan lebar saluran berdasarkan volatilitas pasar
  2. Risiko Terkontrol - Dimensi posisi dinamis memastikan risiko sesuai dengan ukuran akun
  3. Konfirmasi Tren - Integrasi dengan moving average meningkatkan keandalan sinyal
  4. Stop Loss yang tepat waktu - Kondisi keluar yang jelas mencegah kerugian yang berlebihan
  5. Perdagangan Bilateral - Menangkap baik tren naik dan turun untuk meningkatkan efisiensi modal
  6. Clean Code - Logika strategi yang jelas untuk pemeliharaan dan optimasi yang mudah

Risiko Strategi

  1. Penembusan palsu di pasar yang berbeda dapat menyebabkan kerugian berturut-turut
  2. Parameter Bollinger Bands tetap mungkin tidak sesuai dengan semua kondisi pasar
  3. Kurangnya trailing stop mungkin gagal mengunci keuntungan secara efektif
  4. Periode rata-rata bergerak yang panjang dapat menyebabkan sinyal tertunda
  5. Biaya perdagangan tidak dipertimbangkan, kinerja langsung mungkin berbeda dari backtest

Arahan Optimasi

  1. Tambahkan filter volatilitas untuk mengurangi frekuensi perdagangan di lingkungan volatilitas rendah
  2. Mengimplementasikan mekanisme stop-loss dinamis berdasarkan volatilitas pasar
  3. Mengoptimalkan parameter Bollinger Bands dengan periode adaptif
  4. Tambahkan filter volume dan waktu tunggu
  5. Sertakan indikator teknis tambahan untuk konfirmasi sinyal
  6. Menetapkan batas maksimum penarikan untuk kontrol risiko yang ditingkatkan

Ringkasan

Strategi ini membangun sistem perdagangan kuantitatif yang lengkap dengan menggabungkan Bollinger Bands dan moving average. Sambil mempertahankan logika sederhana, ia menerapkan fungsi inti termasuk generasi sinyal, manajemen posisi, dan kontrol risiko. Meskipun ada area untuk optimasi, desain keseluruhan adalah suara dan memiliki nilai aplikasi praktis.


/*backtest
start: 2024-10-01 00:00:00
end: 2024-10-31 23:59:59
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("BB Breakout with MA 100 Strategy", overlay=true)

// Parameter Bollinger Bands
length = input(20, title="BB Length")
stdDev = input(2.0, title="BB Standard Deviation")

// Hitung Bollinger Bands
basis = ta.sma(close, length)
dev = stdDev * ta.stdev(close, length)
upperBB = basis + dev
lowerBB = basis - dev

// Hitung Moving Average 100
ma100 = ta.sma(close, 100)

// Logika untuk sinyal beli dan jual
longCondition = close > upperBB and close[1] <= upperBB[1]
shortCondition = close < lowerBB and close[1] >= lowerBB[1]

// Menentukan ukuran posisi (jumlah lot)
size = strategy.equity / close // Menentukan ukuran posisi berdasarkan ekuitas saat ini

// Eksekusi order
if (longCondition)
    strategy.entry("Long", strategy.long, qty=size)

if (shortCondition)
    strategy.entry("Short", strategy.short, qty=size)

// Menutup posisi ketika kondisi terbalik
if (longCondition and strategy.position_size < 0)
    strategy.close("Short")

if (shortCondition and strategy.position_size > 0)
    strategy.close("Long")

// Plotting
plot(upperBB, color=color.red, title="Upper BB")
plot(lowerBB, color=color.green, title="Lower BB")
plot(basis, color=color.blue, title="Basis BB")
plot(ma100, color=color.orange, title="MA 100")

// Menambahkan informasi ke grafik
bgcolor(longCondition ? color.new(color.green, 90) : na, title="Buy Signal Background")
bgcolor(shortCondition ? color.new(color.red, 90) : na, title="Sell Signal Background")


Berkaitan

Lebih banyak