Sumber daya yang dimuat... Pemuatan...

Bollinger Breakout dengan Reversi Rata-rata 4H Strategi Perdagangan Kuantitatif

Penulis:ChaoZhang, Tanggal: 2024-12-12 11:24:28
Tag:BBANDSSMASDTPSL

img

Gambaran umum

Strategi ini adalah sistem perdagangan kuantitatif jangka waktu 4 jam berdasarkan Bollinger Bands, menggabungkan konsep perdagangan trend breakout dan mean reverson. Strategi ini menangkap momentum pasar melalui breakout Bollinger Bands sambil menggunakan price mean reverson untuk mengambil keuntungan dan menerapkan stop-loss untuk pengendalian risiko.

Prinsip Strategi

Logika inti didasarkan pada elemen kunci berikut:

  1. Menggunakan rata-rata bergerak 20 periode sebagai band tengah, dengan 2 standar deviasi untuk rentang volatilitas
  2. Sinyal masuk: Panjang ketika tubuh lilin (rata-rata terbuka dan dekat) pecah di atas band atas, pendek ketika pecah di bawah band bawah
  3. Sinyal keluar: Tutup posisi panjang ketika dua lilin berturut-turut memiliki harga buka dan tutup di bawah band atas dan tutup di bawah terbuka; logika terbalik untuk posisi pendek
  4. Pengendalian risiko: Menetapkan stop loss pada titik tertinggi/rendah lilin saat ini untuk memastikan kerugian terkendali per perdagangan

Keuntungan Strategi

  1. Logika perdagangan yang jelas: Menggabungkan pendekatan perdagangan tren dan reversi untuk kinerja yang baik dalam berbagai kondisi pasar
  2. Pengendalian risiko yang komprehensif: Mengimplementasikan stop-loss dinamis berdasarkan volatilitas lilin untuk pengendalian penarikan yang efektif
  3. Filter sinyal palsu: Mengkonfirmasi breakout menggunakan posisi tubuh lilin daripada hanya harga penutupan untuk mengurangi kerugian breakout palsu
  4. Manajemen uang yang sehat: Mengatur ukuran posisi secara dinamis berdasarkan ekuitas akun, imbalan pengembalian dan risiko

Risiko Strategi

  1. Risiko pasar sampingan: Dapat memicu sinyal pecah palsu yang sering terjadi di pasar yang berbeda, yang mengarah pada pemberhentian berturut-turut
  2. Risiko leverage: leverage 3x dapat menyebabkan kerugian yang signifikan selama volatilitas ekstrim
  3. Risiko pengaturan stop-loss: Menggunakan titik tinggi/rendah lilin untuk stop mungkin terlalu longgar, meningkatkan kerugian per perdagangan
  4. Ketergantungan jangka waktu: jangka waktu 4 jam dapat bereaksi terlalu lambat dalam kondisi pasar tertentu, kehilangan peluang

Arah Optimasi Strategi

  1. Menerapkan filter tren: Menambahkan indikator tren jangka panjang untuk perdagangan di arah tren utama
  2. Optimalkan pendekatan stop loss: Pertimbangkan untuk menggunakan lebar ATR atau Bollinger Band untuk jarak stop loss dinamis
  3. Meningkatkan manajemen posisi: Sesuaikan leverage secara dinamis berdasarkan volatilitas atau kekuatan tren
  4. Tambahkan analisis kondisi pasar: Masukkan indikator volume atau volatilitas untuk mengidentifikasi keadaan pasar untuk masuk selektif

Ringkasan

Strategi ini menggabungkan karakteristik Bollinger Bands yang mengikuti tren dan membalikkan rata-rata, mencapai pengembalian yang stabil di kedua pasar tren dan rentang melalui kondisi masuk / keluar yang ketat dan langkah-langkah pengendalian risiko.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-10 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger 4H Follow", overlay=true, initial_capital=300, commission_type=strategy.commission.percent, commission_value=0.04)
// StartYear = input(2022,"Backtest Start Year") 
// StartMonth = input(1,"Backtest Start Month") 
// StartDay = input(1,"Backtest Start Day")

// testStart = timestamp(StartYear,StartMonth,StartDay,0,0)

// EndYear = input(2023,"Backtest End Year")
// EndMonth = input(12,"Backtest End Month")
// EndDay = input(31,"Backtest End Day")

// testEnd = timestamp(EndYear,EndMonth,EndDay,0,0)

lev = 3

// Input parameters
length = input.int(20, title="Bollinger Band Length")
mult = input.float(2.0, title="Bollinger Band Multiplier")

// Bollinger Bands calculation
basis = ta.sma(close, length)
upperBand = basis + mult * ta.stdev(close, length)
lowerBand = basis - mult * ta.stdev(close, length)

// Conditions for Open Long
openLongCondition = strategy.position_size == 0 and close > open and (close + open) / 2 > upperBand

// Conditions for Open Short
openShortCondition = strategy.position_size == 0 and close < open and (close + open) / 2 < lowerBand

// Conditions for Close Long
closeLongCondition = strategy.position_size > 0 and strategy.position_size > 0 and (close < upperBand and open < upperBand and close < open)

// Conditions for Close Short
closeShortCondition = strategy.position_size < 0 and strategy.position_size < 0 and (close > lowerBand and open > lowerBand and close > open)


// Long entry
if openLongCondition
    strategy.entry("Long", strategy.long, qty=strategy.equity * lev / close)
    strategy.exit("Long SL", from_entry="Long", stop=low)  // Set Stop-Loss

// Short entry
if openShortCondition
    strategy.entry("Short", strategy.short, qty=strategy.equity * lev / close)
    strategy.exit("Short SL", from_entry="Short", stop=high)  // Set Stop-Loss

// Long exit
if closeLongCondition
    strategy.close("Long", comment = "TP")

// Short exit
if closeShortCondition
    strategy.close("Short", comment = "TP")

// Plot Bollinger Bands
plot(upperBand, color=color.yellow, title="Upper Band")
plot(lowerBand, color=color.yellow, title="Lower Band")

Berkaitan

Lebih banyak