Sumber dimuat naik... memuat...

Bollinger Breakout adaptif dengan Sistem Strategi Kuantitatif Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2024-11-27 15:55:28
Tag:BBMASMA

img

Ringkasan

Strategi ini adalah sistem perdagangan kuantitatif yang menggabungkan penembusan Bollinger Bands dengan trend purata bergerak. Sistem ini secara automatik menangkap peluang pasaran dengan memantau hubungan harga dengan Bollinger Bands sambil menggunakan purata bergerak 100 hari untuk pengesahan trend. Ia melaksanakan ukuran kedudukan dinamik berdasarkan ekuiti akaun untuk pengurusan risiko automatik.

Prinsip Strategi

Logik teras adalah berdasarkan elemen utama berikut:

  1. Menggunakan 20 tempoh Bollinger Bands sebagai saluran turun naik dengan 2 penyimpangan standard
  2. Menggunakan purata bergerak 100 hari sebagai pengesahan trend jangka sederhana hingga panjang
  3. Menghasilkan isyarat panjang apabila harga melanggar band atas dan tidak di atas dalam tempoh sebelumnya
  4. Menghasilkan isyarat pendek apabila harga pecah di bawah jalur bawah dan tidak di bawah dalam tempoh sebelumnya
  5. Mengira saiz kedudukan secara dinamik berdasarkan ekuiti akaun semasa
  6. Menutup kedudukan secara automatik pada isyarat yang bertentangan untuk pengurusan risiko yang tepat pada masanya

Kelebihan Strategi

  1. Kebolehsesuaian Tinggi - Bollinger Bands menyesuaikan lebar saluran secara automatik berdasarkan turun naik pasaran
  2. Risiko terkawal - Ukuran kedudukan dinamik memastikan risiko sepadan dengan saiz akaun
  3. Pengesahan Trend - Integrasi dengan purata bergerak meningkatkan kebolehpercayaan isyarat
  4. Stop Loss yang tepat pada masanya - Syarat keluar yang jelas menghalang kerugian yang berlebihan
  5. Perdagangan Dua hala - Mencatatkan kedua-dua aliran menaik dan menurun untuk meningkatkan kecekapan modal
  6. Kod bersih - Logik strategi yang jelas untuk penyelenggaraan dan pengoptimuman yang mudah

Risiko Strategi

  1. Penembusan palsu di pasaran yang berbeza boleh membawa kepada kerugian berturut-turut
  2. Parameter Bollinger Bands tetap mungkin tidak sesuai dengan semua keadaan pasaran
  3. Kekurangan penangguhan penghantaran mungkin gagal untuk mengunci keuntungan dengan berkesan
  4. Tempoh purata bergerak yang panjang boleh menyebabkan isyarat tertunda
  5. Kos dagangan tidak dipertimbangkan, prestasi langsung mungkin berbeza dari backtests

Arahan pengoptimuman

  1. Tambah penapis turun naik untuk mengurangkan kekerapan dagangan dalam persekitaran turun naik yang rendah
  2. Melaksanakan mekanisme stop-loss dinamik berdasarkan turun naik pasaran
  3. Mengoptimumkan parameter Bollinger Bands dengan tempoh penyesuaian
  4. Tambahkan penapis kelantangan dan masa tahan
  5. Sertakan penunjuk teknikal tambahan untuk pengesahan isyarat
  6. Menetapkan had pengeluaran maksimum untuk kawalan risiko yang lebih baik

Ringkasan

Strategi ini membina sistem perdagangan kuantitatif yang lengkap dengan menggabungkan Bollinger Bands dan purata bergerak. Walaupun mengekalkan logika yang mudah, ia melaksanakan fungsi teras termasuk penjanaan isyarat, pengurusan kedudukan, dan kawalan risiko. Walaupun terdapat kawasan untuk pengoptimuman, reka bentuk keseluruhan adalah bunyi dan mempunyai nilai aplikasi praktikal.


/*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 lanjut