
Strategi ini adalah strategi pelacakan tren versi perbaikan yang didasarkan pada indikator Brin Belt. Ini memastikan keandalan tren dengan memantau harga dengan tiga sentuhan berturut-turut di Brin Belt, sehingga perdagangan dilakukan dengan tingkat kemenangan yang lebih tinggi. Strategi ini menggunakan rata-rata bergerak 20 periode sebagai rel tengah, dan berskala 2 kali selisih standar sebagai basis perhitungan untuk rel atas dan bawah.
Logika inti dari strategi ini adalah bahwa dengan mekanisme penghitungan, harga mengidentifikasi sentuhan terus menerus pada batas Brin. Sistem akan mengeluarkan beberapa sinyal ketika harga menerobos tiga kali berturut-turut ke bawah; Sistem akan mengeluarkan sinyal kosong ketika harga menerobos tiga kali berturut-turut ke atas.
Strategi ini memungkinkan strategi pelacakan tren dengan keandalan yang lebih tinggi dengan meningkatkan sistem perdagangan Brin Belt tradisional. Mekanisme konfirmasi triple touch yang unik secara efektif meningkatkan kemenangan perdagangan, sementara mekanisme posisi datar berdasarkan moving averages memberikan penyelesaian yang menguntungkan. Meskipun strategi ini masih memiliki beberapa risiko yang melekat, stabilitas dan profitabilitas strategi dapat ditingkatkan lebih lanjut dengan memberikan arah optimasi.
/*backtest
start: 2024-11-10 00:00:00
end: 2024-12-09 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Bollinger Bands Strategy - 3 Crossings", overlay=true)
// Input Parameters
length = input.int(20, title="Bollinger Bands Length", minval=1)
src = input(close, title="Source")
mult = input.float(2.0, title="Multiplier", step=0.1)
// Calculate Bollinger Bands
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
// Plot Bollinger Bands
plotBasis = plot(basis, color=color.blue, title="Basis")
plotUpper = plot(upper, color=color.red, title="Upper Band")
plotLower = plot(lower, color=color.green, title="Lower Band")
fill(plot1=plotUpper, plot2=plotLower, color=color.new(color.blue, 90), title="Band Fill")
// Counter Variables
var int longCrossCount = 0
var int shortCrossCount = 0
// Detect Crossings
longCondition = close < lower // Price closes below the lower band
shortCondition = close > upper // Price closes above the upper band
if longCondition
longCrossCount += 1 // Increment the counter for long
shortCrossCount := 0 // Reset the short counter
if shortCondition
shortCrossCount += 1 // Increment the counter for short
longCrossCount := 0 // Reset the long counter
if not longCondition and not shortCondition
longCrossCount := 0 // Reset if no crossing
shortCrossCount := 0
// Entry and Exit Rules
if longCrossCount >= 3 and strategy.position_size <= 0
strategy.entry("Long", strategy.long)
longCrossCount := 0 // Reset the counter after entering
if shortCrossCount >= 3 and strategy.position_size >= 0
strategy.entry("Short", strategy.short)
shortCrossCount := 0 // Reset the counter after entering
// Exit Condition (When Price Returns to the Middle Band)
exitCondition = ta.crossover(src, basis) or ta.crossunder(src, basis)
if exitCondition and strategy.position_size > 0
strategy.close("Long")
if exitCondition and strategy.position_size < 0
strategy.close("Short")