Strategi ini adalah sistem perdagangan pelacakan momentum berdasarkan indikator Bollinger Bands. Strategi ini mengidentifikasi peluang breakout potensial dengan memantau hubungan antara harga dan Bollinger Band atas, dan menutup posisi ketika harga pecah di bawah band bawah. Bollinger Bands terdiri dari tiga garis: band tengah ( moving average), band atas dan bawah (dihitung menggunakan standar deviasi). Strategi ini mendukung beberapa jenis moving average dan memungkinkan penyesuaian parameter berdasarkan preferensi trader.
Logika inti dari strategi ini didasarkan pada poin-poin berikut:
Ini adalah strategi mengikuti tren berdasarkan Bollinger Bands, menangkap tren pasar dengan mengamati hubungan antara harga dan band. Strategi ini dirancang dengan baik dengan kemampuan beradaptasi dan mekanisme manajemen risiko yang baik. Melalui arah optimasi yang disarankan, stabilitas dan profitabilitas strategi dapat ditingkatkan lebih lanjut.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-04 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title="Demo GPT - Bollinger Bands Strategy", overlay=true, initial_capital=100000, commission_type=strategy.commission.percent, commission_value=0.1, slippage=3) // Inputs length = input.int(20, minval=1, title="Length") maType = input.string("SMA", "Basis MA Type", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"]) src = input(close, title="Source") mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev") offset = input.int(0, "Offset", minval=-500, maxval=500) startDate = input(timestamp('01 Jan 2018 00:00 +0000'), title="Start Date") endDate = input(timestamp('31 Dec 2069 23:59 +0000'), title="End Date") // Moving Average Function ma(source, length, _type) => switch _type "SMA" => ta.sma(source, length) "EMA" => ta.ema(source, length) "SMMA (RMA)" => ta.rma(source, length) "WMA" => ta.wma(source, length) "VWMA" => ta.vwma(source, length) // Calculations basis = ma(src, length, maType) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // Plotting plot(basis, "Basis", color=#2962FF, offset=offset) p1 = plot(upper, "Upper", color=#F23645, offset=offset) p2 = plot(lower, "Lower", color=#089981, offset=offset) fill(p1, p2, title="Background", color=color.rgb(33, 150, 243, 95)) // Strategy Logic inTradeWindow = true longCondition = close > upper and inTradeWindow exitCondition = close < lower and inTradeWindow if (longCondition) strategy.entry("Long", strategy.long, qty=1) if (exitCondition) strategy.close("Long")