
Strategi ini adalah sistem perdagangan kuantitatif yang didasarkan pada Bollinger Bands. Strategi ini menggabungkan berbagai jenis rata-rata bergerak (termasuk SMA, EMA, SMMA, WMA, VWMA) untuk membangun Bollinger Bands, dan membuat keputusan perdagangan melalui hubungan harga dengan Bollinger Bands naik dan turun.
Prinsip operasi strategi ini terdiri dari beberapa elemen utama:
Ini adalah sistem perdagangan yang lengkap berdasarkan Brinband, dengan adaptabilitas dan skalabilitas yang baik. Dengan pilihan berbagai jenis rata-rata bergerak dan pengaturan parameter yang fleksibel, dapat beradaptasi dengan lingkungan pasar yang berbeda.
/*backtest
start: 2024-06-30 00:00:00
end: 2025-02-18 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Binance","currency":"DOGE_USDT"}]
*/
//@version=6
strategy(shorttitle="BB Demo", title="Demo GPT - Bollinger Bands", overlay=true, commission_type=strategy.commission.percent, commission_value=0.1, slippage=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// 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.source(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
offset = input.int(0, "Offset", minval=-500, maxval=500)
// MA Calculation 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)
// Indicator Calculations
basis = ma(src, length, maType)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
// Visual Plots
plot(basis, "Basis", color=color.new(#2962FF, 0), offset=offset)
p1 = plot(upper, "Upper", color=color.new(#F23645, 0), offset=offset)
p2 = plot(lower, "Lower", color=color.new(#089981, 0), offset=offset)
fill(p1, p2, color=color.rgb(33, 150, 243, 95), title="Background")
// Strategy Logic
longCondition = close > upper
exitCondition = close < lower
if longCondition
strategy.entry("Long", strategy.long)
if exitCondition
strategy.close("Long")