
Strategi perdagangan bergolak-golak Burin adalah strategi perdagangan ketika pasaran berada dalam keadaan golak-golak. Strategi ini menggunakan indikator Burin untuk menilai keadaan golak pasaran, dan menghantar isyarat perdagangan apabila harga menyentuh Burin dan turun. Tidak seperti strategi mengikuti trend tradisional, strategi ini lebih sesuai untuk persekitaran pasaran yang disusun secara menyeluruh.
Strategi ini dilaksanakan berdasarkan kepada indikator Brin Belt. Brin Belt terdiri daripada medium, uptrend, dan downtrend. Apabila harga mendekati uptrend atau downtrend, yang mewakili pasaran terlalu bullish atau bearish, maka kemungkinan besar akan berlaku pembalikan.
Khususnya, strategi ini mula-mula menggunakan indikator DMI untuk menentukan sama ada pasaran berada dalam keadaan goyah. Apabila perbezaan antara + DMI dan - DMI kurang dari 20, pasaran dianggap berada dalam goyah horizontal. Dalam keadaan ini, apabila harga naik melalui orbit bawah, lakukan lebih banyak, dan apabila harga turun melalui orbit bawah, lakukan kosong.
Berbanding dengan strategi mengikuti trend, strategi ini lebih sesuai untuk keadaan pasaran yang bergolak di seberang dan tidak akan rugi dengan mengejar trend. Berbanding dengan strategi perdagangan golak tradisional, strategi ini menggunakan indikator Brinband yang lebih tepat untuk menilai keadaan jual beli di pasaran, sehingga meningkatkan kebarangkalian masuk.
Strategi ini terutamanya bergantung pada Bollinger Bands untuk menilai keadaan pasaran yang bergolak dan overbought dan oversold, yang menyebabkan isyarat yang salah apabila Bollinger Bands menyebar atau menyusut secara tidak teratur. Selain itu, titik berhenti berhampiran, dan satu-satunya berhenti mungkin lebih besar.
Anda boleh mempertimbangkan untuk memfilter isyarat masuk anda dengan indikator lain, seperti RSI, untuk meningkatkan ketepatan masuk. Di samping itu, adalah penting untuk mengoptimumkan strategi hentian kerugian anda untuk mengelakkan hentian yang lebih besar. Anda juga boleh memilih jenis perdagangan yang lebih sesuai untuk strategi ini, seperti mata wang bernilai rendah.
Strategi ini secara keseluruhannya sesuai untuk pasaran goyah, boleh digunakan apabila strategi trend gagal. Tetapi kesannya yang bergantung pada indikator untuk menilai keadaan pasaran masih mempunyai ruang untuk pengoptimuman. Kita boleh menyempurnakan lagi strategi ini dengan menggunakan kombinasi pelbagai indikator, pengurusan wang dan sebagainya, untuk menjadikan kesannya lebih stabil.
/*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)))