Bollinger Band Breakout dan Strategi Penapis Volatiliti


Tarikh penciptaan: 2024-03-08 15:28:05 Akhirnya diubah suai: 2024-03-08 15:28:05
Salin: 0 Bilangan klik: 388
1
fokus pada
1234
Pengikut

Bollinger Band Breakout dan Strategi Penapis Volatiliti

Gambaran Keseluruhan Strategi

Strategi penembusan Bollinger Bands dan penapisan kadar turun naik adalah strategi perdagangan berdasarkan indikator Bollinger Bands. Ia menggunakan Bollinger Bands untuk menilai kedudukan dan turun naik harga berbanding purata bergerak, dengan itu membuat keputusan untuk membuka dan menutup kedudukan.

Prinsip Strategi

Strategi ini berpusat pada pengiraan indikator Bollinger Bands. Bollinger Bands terdiri daripada tiga garis: mid-trail adalah purata bergerak sederhana, dan up-trail dan down-trail masing-masing menambah dan mengurangkan perbezaan piawai tertentu berdasarkan mid-trail.

Syarat pembukaan kedudukan strategi berdasarkan kedudukan harga penutupan berbanding dengan jalur Bolling. Jika arah perdagangan ditetapkan untuk melakukan lebih banyak ((tradeDirection> = 0), dan harga penutupan jatuh ke bawah dengan kadar tertentu ((lower_breakout_pct), maka membuka lebih banyak kedudukan; Jika arah perdagangan ditetapkan untuk melakukan lebih sedikit ((tradeDirection< = 0), dan harga penutupan pecah ke atas dengan kadar tertentu ((upper_breakout_pct), maka membuka kedudukan kosong.

Di sisi lain, jika kejatuhan atau penurunan pada dua garis K berturut-turut melebihi nilai terendah kadar turun naik yang dijangkakan ((Volatility), maka strategi tidak akan membuka kedudukan baru jika anda menganggap pasaran semasa lebih berfluktuasi. Penapis kadar turun naik ini dapat mengelakkan keadaan pasaran yang berfluktuasi secara dramatik.

Pada kedudukan rata, jika harga penutupan kedudukan berbilang kepala menyentuh kawasan atas*long_win_pct), atau harga penutupan kedudukan kosong yang menyentuh rel bawah berhampiran dengan*short_win_pct), strategi akan melonggarkan kedudukan yang sesuai untuk mendapat keuntungan. Di samping itu, jika kerugian terapung dari kedudukan melebihi peratusan pengeluaran maksimum yang ditetapkan ((max_drawdown_percent), strategi juga akan melonggarkan kedudukan.

Kelebihan Strategik

  1. Bollinger Bands adalah satu petunjuk teknikal yang telah lama dan digunakan secara meluas, ia menggabungkan moving averages dan maklumat mengenai turun naik harga. Ia digunakan untuk membuat strategi perdagangan yang dapat menangkap perubahan trend dan turun naik.

  2. Strategi ini merangkumi logik terbuka dan terbuka pada masa yang sama, yang membolehkan peluang untuk menangkap peluang secara fleksibel di pasaran dua hala yang terbuka. Tetapan titik terobosan Bollinger Band membuat titik masuk strategi lebih tegas.

  3. Penapis kadar turun naik mengelakkan kedudukan di bawah pasaran yang bergolak, dan mengurangkan risiko perdagangan dan leverage yang kerap.

  4. Strategi ini menggunakan mekanisme hentian dan hentian kerugian, yang dapat secara aktif mengawal kedudukan, dan menutup posisi apabila harga kembali ke kedudukan penting. Ini membantu melindungi keuntungan dan mengawal penarikan balik.

Risiko Strategik

  1. Bollinger Bands pada dasarnya adalah penunjuk ketinggalan, terdapat ketinggalan terhadap tindak balas pasaran. Pada masa-masa penting untuk mengubah trend atau perubahan arah, strategi mungkin kehilangan masa masuk yang terbaik.

  2. Tetapan parameter strategi tidak semestinya berlaku untuk keadaan pasaran yang berbeza. Sebagai contoh, tetapan ambang penapis kadar turun naik mungkin memerlukan perbezaan dalam keadaan yang sedang berkembang dan bergolak.

  3. Walaupun terdapat langkah-langkah untuk menghentikan kerugian, strategi ini mungkin tidak dapat berdagang pada harga yang ditetapkan apabila terdapat celah melompat di pasaran, menyebabkan kerugian yang lebih besar.

  4. Strategi tidak menetapkan stop loss bergerak atau stop loss pengesanan selepas membuka kedudukan, yang mungkin menyebabkan sebahagian keuntungan ditukar.

Arah pengoptimuman

  1. Anda boleh mempertimbangkan untuk memperkenalkan lebih banyak petunjuk teknikal atau penilaian keadaan pasaran, seperti ATR, petunjuk trend, indikator kadar turun naik, dan lain-lain, sebagai syarat penapisan strategi, meningkatkan kualiti dan masa untuk membuka kedudukan.

  2. Untuk penapis kadar turun naik, anda boleh mencuba penggunaan nilai terhad yang dinamik, menyesuaikan diri mengikut varieti yang berbeza atau kitaran masa yang berbeza, untuk meningkatkan kecekapan penapisan.

  3. Dalam hal halangan hentian, mekanisme hentian bergerak atau penjejakan hentian boleh diperkenalkan, supaya strategi memegang kedudukan apabila trend berterusan, dan bukan menetas terlalu awal. Di samping itu, pertimbangan boleh dibuat untuk menetapkan nisbah hentian dan hentian yang berbeza, mengoptimumkan nisbah risiko dan keuntungan.

  4. Pengurusan kedudukan boleh dioptimumkan lebih lanjut, mengikut kekuatan trend, kadar turun naik, tahap risiko dan lain-lain, kadar pembukaan kedudukan boleh disesuaikan secara dinamik, kawalan penarikan balik. Selain itu, anda juga boleh menggunakan dana dengan lebih baik dengan menambah atau mengurangkan kedudukan.

ringkaskan

Strategi penembusan Bollinger Bands dan penyaringan kadar turun naik menggunakan lukisan Bollinger Bands mengenai kedudukan harga dan turun naik untuk membina strategi perdagangan dua arah. Strategi ini unik kerana penyaring kadar turun naik mengelakkan perdagangan di pasaran yang bergelombang dengan kuat, sambil menetapkan syarat berhenti dan kehilangan yang lebih mudah. Secara keseluruhannya, strategi ini lebih lengkap termasuk logik pembukaan dan kawalan risiko, tetapi terdapat ruang untuk pengoptimuman lebih lanjut dalam menangani perubahan pasaran, kebolehgunaan parameter, dan kesan berhenti.

Kod 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")