Strategi Perdagangan Ayunan Bollinger Bands


Tanggal Pembuatan: 2024-02-21 14:39:14 Akhirnya memodifikasi: 2024-02-21 14:39:14
menyalin: 0 Jumlah klik: 578
1
fokus pada
1617
Pengikut

Strategi Perdagangan Ayunan Bollinger Bands

Ringkasan

Sebuah strategi perdagangan ketika pasar berada dalam keadaan goyah. Strategi ini menggunakan indikator Bollinger Bands untuk menilai kondisi goyah pasar, dan mengirimkan sinyal perdagangan ketika harga menyentuh Bollinger Bands dan turun. Berbeda dengan strategi mengikuti tren tradisional, strategi ini lebih cocok untuk lingkungan pasar yang disortir secara horizontal.

Prinsip Strategi

Strategi ini terutama didasarkan pada indikator Bollinger Bands. Bollinger Bands terdiri dari mid-trail, up-trail, dan down-trail. Ketika harga mendekati up-trail atau down-trail, yang mewakili pasar yang terlalu bullish atau bearish, maka kemungkinan besar terjadi pembalikan.

Secara khusus, strategi ini pertama-tama menggunakan indikator DMI untuk menentukan apakah pasar berada dalam keadaan goyah. Ketika perbedaan antara + DMI dan - DMI kurang dari 20, pasar dianggap berada dalam goyah horizontal. Dalam kondisi ini, lakukan lebih banyak ketika harga naik melewati orbit bawah, dan kosongkan ketika harga turun melewati orbit bawah.

Keunggulan Strategis

Strategi ini lebih cocok untuk pasar yang bergejolak dan tidak akan rugi karena mengejar tren. Strategi ini menggunakan indikator Brinband yang lebih akurat untuk menilai overbought dan oversold di pasar dibandingkan dengan strategi perdagangan bergejolak tradisional, sehingga meningkatkan kemungkinan masuk.

Risiko Strategis

Strategi ini terutama bergantung pada Bollinger Bands untuk menilai kondisi pasar yang bergejolak dan overbought dan oversold, yang dapat menyebabkan sinyal yang salah ketika Bollinger Bands menyebar atau menyusut secara tidak teratur. Selain itu, stop loss dekat, dan stop loss tunggal mungkin lebih besar.

Arah optimasi strategi

Anda dapat mempertimbangkan untuk memfilter sinyal masuk dengan indikator lain, seperti RSI, untuk meningkatkan akurasi masuk. Selain itu, penting untuk mengoptimalkan strategi stop loss untuk menghindari stop loss tunggal yang lebih besar. Anda juga dapat memilih varietas perdagangan yang lebih cocok untuk strategi ini, seperti mata uang dengan nilai pasar rendah.

Meringkaskan

Strategi ini secara keseluruhan cocok untuk pasar yang bergolak, dan dapat digunakan ketika strategi tren gagal. Namun, masih ada ruang untuk mengoptimalkan efektivitasnya yang bergantung pada indikator untuk menilai keadaan pasar. Kita dapat memperbaiki strategi ini lebih lanjut dengan metode kombinasi multi-indikator, manajemen dana, dan lain-lain, sehingga efeknya lebih stabil dan optimal.

Kode Sumber Strategi
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(shorttitle='Sideways Strategy DMI + Bollinger Bands',title='Sideways Strategy DMI + Bollinger Bands (by Coinrule)', overlay=true, initial_capital = 100, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value=0.1)

// Works on ETHUSD 3h, 1h, 2h, 4h

//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 = 2021, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 12,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 31,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2022, 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()  => true

[pos_dm, neg_dm, adx] = dmi(14, 14)


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)

sideways = (abs(pos_dm - neg_dm) < 20)



//Stop_loss= ((input (3))/100)
//Take_profit= ((input (2))/100)

//longStopPrice  = strategy.position_avg_price * (1 - Stop_loss)
//longTakeProfit = strategy.position_avg_price * (1 + Take_profit)

//closeLong = close < longStopPrice or close > longTakeProfit or StopRSI


//Entry 
strategy.entry(id="long", long = true, when = sideways and (crossover(close, lower)) and window())


//Exit
strategy.close("long", when = (crossunder(close, upper)))