
Strategi ini adalah strategi pengesanan trend versi yang lebih baik berdasarkan indikator Brin Belt. Ia mengesahkan kebolehpercayaan trend dengan memantau harga dengan tiga sentuhan berturut-turut dengan Brin Belt, dan dengan itu melakukan perdagangan dengan kadar kemenangan yang lebih tinggi.
Logik teras strategi ini adalah dengan menggunakan mekanisme pengiraan untuk mengenal pasti harga yang terus menyentuh sempadan Brin Belt. Apabila harga tiga kali berturut-turut menembusi bawah, sistem akan mengeluarkan banyak isyarat; Apabila harga tiga kali berturut-turut menembusi atas, sistem akan mengeluarkan isyarat kosong.
Strategi ini mewujudkan strategi pengesanan trend dengan kebolehpercayaan yang lebih tinggi dengan meningkatkan sistem perdagangan Brin Belt tradisional. Mekanisme pengesahan sentuhan tiga yang unik meningkatkan kemenangan perdagangan dengan berkesan, sementara mekanisme kedudukan kosong berdasarkan purata bergerak memberikan penyelesaian keuntungan yang munasabah. Walaupun strategi ini masih mempunyai beberapa risiko yang wujud, ia dapat meningkatkan lagi kestabilan dan keuntungan strategi dengan memberikan arah pengoptimuman.
/*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")