
Strategi ini adalah sistem perdagangan mengikuti momentum berdasarkan indikator Bollinger Bands. Ia mengidentifikasi peluang penembusan potensial dengan memantau hubungan antara harga dan Bollinger Band bagian atas dan menutup posisi ketika harga turun di bawah Bollinger Band bagian bawah. Bollinger Bands terdiri dari tiga garis: pita tengah (rata-rata bergerak), pita atas, dan pita bawah (dihitung dari deviasi standar). Strategi ini mendukung berbagai jenis rata-rata pergerakan dan dapat menyesuaikan parameter menurut preferensi pedagang.
Logika inti dari strategi ini didasarkan pada poin-poin berikut:
Ini adalah strategi mengikuti tren berdasarkan Bollinger Bands, yang menangkap tren pasar dengan mengamati hubungan antara harga dan Bollinger Bands. Strategi ini dirancang secara wajar dan mempunyai kemampuan penyesuaian serta mekanisme manajemen risiko yang baik. Melalui arah pengoptimalan yang direkomendasikan, stabilitas dan profitabilitas strategi dapat lebih ditingkatkan. Strategi ini sangat cocok untuk pasar dengan volatilitas yang lebih besar, tetapi pedagang diharuskan menyesuaikan parameter dan tindakan pengendalian risiko berdasarkan kondisi aktual.
/*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")