Strategi Breakout Bollinger Band dan Filter Volatilitas


Tanggal Pembuatan: 2024-03-08 15:28:05 Akhirnya memodifikasi: 2024-03-08 15:28:05
menyalin: 0 Jumlah klik: 692
1
fokus pada
1617
Pengikut

Strategi Breakout Bollinger Band dan Filter Volatilitas

Tinjauan Strategi

Bollinger Bands Breakout and Volatility Filter adalah strategi perdagangan berdasarkan indikator Bollinger Bands. Strategi ini menggunakan Bollinger Bands untuk menilai posisi dan volatilitas harga relatif terhadap rata-rata bergerak, sehingga menentukan posisi terbuka dan terbuka. Salah satu keunikan strategi ini adalah bahwa ia menggunakan filter volatilitas, dengan mendeteksi kenaikan dan penurunan garis K berturut-turut untuk menghindari masuk ke perdagangan saat pasar bergejolak.

Prinsip Strategi

Inti dari strategi ini adalah menghitung indikator Bollinger Bands. Bollinger Bands terdiri dari tiga garis: mid-trail adalah rata-rata bergerak sederhana, dan up-trail dan down-trail masing-masing menambah dan mengurangi selisih standar tertentu berdasarkan mid-trail. Ukuran selisih standar dikendalikan oleh parameter mult.

Kondisi pembukaan posisi strategi didasarkan pada posisi harga penutupan terhadap pita Bollinger. Jika arah perdagangan diatur untuk melakukan lebih banyak (tradeDirection> = 0), dan harga penutupan jatuh ke bawah dengan persentase tertentu (lower_breakout_pct), maka membuka posisi lebih banyak; Jika arah perdagangan diatur untuk melakukan lebih sedikit (tradeDirection< = 0), dan harga penutupan pecah ke atas dengan persentase tertentu (upper_breakout_pct), maka membuka posisi kosong.

Di sisi lain, jika penurunan acak pada dua garis K berturut-turut melebihi acak volatilitas yang diantisipasi (Volatility), maka strategi ini tidak akan membuka posisi baru. Filter volatilitas ini dapat menghindari sebagian dari situasi pasar yang sangat berfluktuasi.

Pada posisi terendah, jika posisi multihead ditutup di area upper area*long_win_pct), atau posisi kosong yang ditutup dengan harga mendekati rel bawah*short_win_pct), strategi akan melunasi posisi yang sesuai untuk mendapatkan keuntungan. Selain itu, jika kerugian fluktuasi dari posisi melebihi persentase penarikan maksimum yang ditentukan (max_drawdown_percent), strategi juga akan melunasi posisi.

Keunggulan Strategis

  1. Bollinger Bands adalah indikator teknis yang sudah mapan dan banyak digunakan, yang menggabungkan informasi tentang pergerakan rata-rata dan volatilitas harga. Dengan menggunakan Bollinger Bands untuk membuat strategi perdagangan, Anda dapat menangkap perubahan tren dan fluktuasi.

  2. Strategi ini mencakup logika open plus dan open plus, yang memungkinkan peluang untuk ditangkap secara fleksibel di pasar bi-directional terbuka. Pengaturan titik terobosan Bollinger Bands membuat titik masuk strategi lebih meyakinkan.

  3. Filter volatilitas menghindari posisi di bawah pasar yang sangat berfluktuasi, mengurangi risiko perdagangan dan leverage yang sering terjadi.

  4. Strategi ini menggunakan mekanisme stop loss dan stop loss, yang dapat secara aktif mengontrol posisi, dan melonggarkan posisi ketika harga kembali ke posisi kritis. Ini membantu melindungi keuntungan, dan mengontrol penarikan kembali.

Risiko Strategis

  1. Bollinger Bands pada dasarnya adalah indikator keterbelakangan, ada keterbelakangan dalam reaksi pasar. Pada saat-saat penting dalam pergeseran tren atau perubahan tren, strategi mungkin kehilangan waktu masuk yang optimal.

  2. Pengaturan parameter strategi tidak selalu berlaku untuk kondisi pasar yang berbeda. Misalnya, pengaturan ambang filter tingkat fluktuasi mungkin memerlukan perbedaan dalam situasi yang sedang tren dan bergejolak. Parameter tetap dapat menyebabkan strategi tidak dapat membuka posisi atau terlalu sering membuka posisi dalam situasi tertentu.

  3. Meskipun ada langkah-langkah stop loss, strategi ini mungkin tidak dapat dilakukan dengan harga yang telah ditentukan, yang menyebabkan kerugian lebih besar ketika pasar mengalami lonjakan.

  4. Strategi tidak mengatur stop loss bergerak atau stop loss pelacakan setelah membuka posisi, yang dapat menyebabkan sebagian keuntungan ditukar.

Arah optimasi

  1. Anda dapat mempertimbangkan untuk memperkenalkan lebih banyak indikator teknis atau penilaian status pasar, seperti ATR, indikator tren, indikator volatilitas, dan lain-lain, sebagai syarat penyaringan strategi, meningkatkan kualitas dan waktu untuk membuka posisi.

  2. Untuk filter tingkat fluktuasi, Anda dapat mencoba menggunakan nilai terendah yang dinamis, menyesuaikan diri dengan varietas yang berbeda atau siklus waktu yang berbeda, untuk meningkatkan efisiensi penyaringan.

  3. Dalam hal stop loss, dapat diperkenalkan mekanisme stop loss yang bergerak atau yang melacak stop loss, sehingga strategi dapat memegang posisi saat tren berlanjut, dan tidak terlalu dini. Selain itu, dapat dipertimbangkan untuk mengatur rasio stop loss yang berbeda, mengoptimalkan rasio risiko / keuntungan.

  4. Anda dapat lebih mengoptimalkan manajemen posisi, mengadaptasi rasio posisi terbuka dan pengendalian penarikan sesuai dengan dinamika indikator seperti kekuatan tren, volatilitas, dan tingkat risiko. Selain itu, Anda juga dapat menggunakan uang Anda dengan lebih baik melalui operasi seperti menaikkan atau menurunkan posisi.

Meringkaskan

Strategi Bollinger Bands Breakthrough and Volatility Filtering memanfaatkan gambar Bollinger Bands tentang posisi harga dan volatilitas untuk membangun strategi perdagangan dua arah. Strategi ini unik karena filter volatilitas menghindari perdagangan di pasar yang sangat berfluktuasi, dan pada saat yang sama menetapkan kondisi stop loss yang lebih sederhana. Secara keseluruhan, strategi ini lebih lengkap mencakup logika pembukaan posisi dan pengendalian risiko, tetapi ada ruang untuk pengoptimalan lebih lanjut dalam menanggapi perubahan pasar, kelayakan parameter, dan efek stop loss.

Kode Sumber Strategi
/*backtest
start: 2024-02-29 00:00:00
end: 2024-03-07 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("[Oppen Chow] Super BBS 1.0", default_qty_type = strategy.percent_of_equity, default_qty_value =100, initial_capital=500, commission_type=strategy.commission.percent, commission_value=0.08, pyramiding=2 )

// Input parameters
length = 20
mult = 2
max_drawdown_percent = input(5.5, "Maximum Acceptable Drawdown") / 100
upper_breakout_pct = input(50, "Short Entry Breakout Percentage") / 100
lower_breakout_pct = input(25, "Long Entry Breakout Percentage") / 100
tradeDirection = input(1, title="Trade Direction")
Volatility = input(0.5, title="Volatility") / 100
long_win_pct = input(-0.15, title = "Long Settlement Rate Near Boll Upper Limit")
short_win_pct = input(0.4, title = "Short Settlement Rate Near Boll Lower Limit")

// Bollinger Bands calculation
basis = ta.sma(close, length)
dev = mult * ta.stdev(close, length)
upper = basis + dev
lower = basis - dev
area = upper - lower

// Calculate the rate of change for two consecutive candlesticks
var float change1 = na
var float change2 = na
change1 := change2
change2 := ((close - open) / open) 

// Check for two or more consecutive candlesticks with a change rate greater than 0.5%
var bool highVolatility = false
highVolatility := change2 > Volatility

// Trading logic
var float highestPriceSinceOpen = na
var float lowestPriceSinceOpen = na
var int profitableDrawbackCount = 1


// Entry logic - In the absence of high volatility
if not highVolatility and strategy.position_size == 0
    if (tradeDirection >= 0) and (close < lower - area * lower_breakout_pct)
        strategy.entry("Long", strategy.long)
        highestPriceSinceOpen := close
        profitableDrawbackCount := 0
    if (tradeDirection <= 0) and (close > upper + area * upper_breakout_pct)
        strategy.entry("Short", strategy.short)
        lowestPriceSinceOpen := close
        profitableDrawbackCount := 0


if strategy.position_size > 0 and close > upper - area * long_win_pct
    strategy.close("Long", comment = "Take Profit")
if strategy.position_size < 0 and close < lower + area * short_win_pct
    strategy.close("Short", comment = "Take Profit")

// Stop loss logic - Based on drawdown percentage
if strategy.position_size > 0
    if (strategy.position_avg_price - close)/strategy.position_avg_price >= max_drawdown_percent
        strategy.close("Long", comment = "Drawdown Stop Loss")
else if strategy.position_size < 0
    if (close - strategy.position_avg_price)/strategy.position_avg_price >= max_drawdown_percent
        strategy.close("Short", comment = "Drawdown Stop Loss")