Bollinger Bands Oscillation Breakthrough Strategi

Penulis:ChaoZhang, Tanggal: 2023-11-01 16:45:54
Tag:

img

Gambaran umum

Strategi ini menggabungkan Bollinger Bands dan indikator Aroon untuk mendapatkan keuntungan dari osilasi dan terobosan di pasar yang tidak stabil.

Logika Strategi

Strategi ini terutama menggunakan dua indikator untuk mengidentifikasi peluang perdagangan dan titik keluar.

Pertama, Bollinger Bands. Ini terdiri dari band tengah, band atas dan band bawah. Band tengah adalah rata-rata bergerak sederhana dari harga penutupan selama n periode. Band atas adalah band tengah + k deviasi standar. Band bawah adalah band tengah - k deviasi standar. Terobosan ke atas dari band tengah dari band bawah menandakan entri panjang. Terobosan ke bawah dari band tengah dari band atas menandakan entri pendek. Strategi ini menggunakan Bollinger Bands untuk mengidentifikasi titik peluang di tengah tren osilasi, memasuki sekitar terobosan band tengah.

Kedua, indikator Aroon. Ini mencerminkan kekuatan relatif harga tertinggi dan terendah selama n periode. Aroon dapat menentukan tren dan peluang. Ketika Aroon Up Line lebih tinggi dari ambang batas, itu menunjukkan tren naik. Ketika Aroon Down Line lebih tinggi dari ambang batas, itu menunjukkan tren turun. Strategi ini menggunakan Aroon Up untuk mengkonfirmasi tren naik dan Aroon Down untuk menentukan stop loss.

Menggabungkan kedua indikator, strategi berjalan panjang ketika terjadinya terobosan Bollinger dan Aroon Up lebih tinggi dari ambang batas.

Keuntungan

  1. Kombinasi beberapa indikator meningkatkan akurasi. indikator tunggal rentan terhadap kebisingan pasar. kombinasi Bollinger Bands dan Aroon dapat menyaring sinyal palsu.

  2. Bollinger Bands memiliki kemampuan identifikasi tren yang kuat dan dapat mendeteksi peluang terobosan jangka pendek. Aroon menilai tren jangka panjang untuk menghindari perdagangan yang berlebihan di berbagai pasar.

  3. Pengendalian risiko yang tepat. Stop loss dan Aroon Down mengendalikan risiko penurunan. Ukuran posisi juga membatasi kerugian per perdagangan.

  4. Strategi ini cocok dengan pasar berosilasi dengan kerugian yang kurang besar.

Risiko

  1. Bollinger Bands bisa tidak akurat. peristiwa pasar tiba-tiba dapat membatalkan Bollinger Bands.

  2. Parameter Aroon perlu dioptimalkan. Pasar yang berbeda membutuhkan parameter Aroon disesuaikan untuk hasil terbaik.

  3. Stop loss yang terlalu ketat menyebabkan pemicu berulang.

  4. Strategi ini cocok untuk pasar yang berosilasi.

Optimisasi

  1. Mengoptimalkan parameter Bollinger, menggunakan adaptif Bollinger Bands.

  2. Mengoptimalkan parameter Aroon dinamis. Aset dan kerangka waktu yang berbeda membutuhkan parameter Aroon yang berbeda. Penelitian optimasi dinamis.

  3. Tambahkan filter seperti RSI untuk menghindari overbought/oversold.

  4. Gunakan pembelajaran mesin untuk mengoptimalkan stop loss. Pelatihan algoritma dapat menemukan metode stop loss yang lebih baik untuk meminimalkan pemicu berulang.

  5. Menggabungkan dengan volume seperti OBV untuk menghindari breakout palsu. indikator volume dapat mencegah sinyal breakout Bollinger palsu.

Kesimpulan

Secara keseluruhan ini adalah strategi perdagangan osilasi yang khas. Ini mengidentifikasi peluang perdagangan dengan menggabungkan Bollinger Bands dan Aroon, yang mampu memanfaatkan osilasi pasar jangka pendek. Dengan stop loss, manajemen risiko dan optimasi parameter yang tepat, ini cocok untuk pasar berkisar. Tetapi optimasi dan pengendalian risiko diperlukan untuk menghindari penerapannya di pasar tren. Dengan perbaikan lebih lanjut, ini dapat menjadi strategi kuantitatif yang sangat praktis.


/*backtest
start: 2023-10-24 00:00:00
end: 2023-10-28 21:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © relevantLeader16058

//@version=4
// strategy(shorttitle='Bollinger bands And Aroon Scalping',title='Bollinger bands And Aroon Scalping (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"


// BB inputs and calculations
lengthBB = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, lengthBB)
dev = mult * stdev(src, lengthBB)
upper = basis + dev
lower = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)


lengthAr = input(288, minval=1)
AroonUP = 100 * (highestbars(high, lengthAr+1) + lengthAr)/lengthAr
AroonDown = 100 * (lowestbars(low, lengthAr+1) + lengthAr)/lengthAr


Confirmation = input(90, "Aroon Confirmation")
Stop = input(70, "Aroon Stop")

Bullish = crossunder (close, basis)
Bearish = crossunder (close, upper)

//Entry 

strategy.entry(id="long", long = true, when = Bullish and AroonUP > Confirmation and window())

//Exit

strategy.close("long", when = Bearish or AroonUP < Stop and window())




Lebih banyak