Strategi ini menghasilkan sinyal perdagangan berdasarkan indikator Bollinger Bands dan mengelola posisi menggunakan stop-loss / take-profit. Ini memantau perpecahan band atas dan bawah Bollinger Bands, pergi panjang ketika harga melanggar band atas, pergi pendek ketika harga melanggar band bawah, dan keluar ketika harga melanggar band terbalik menggunakan perintah stop-loss.
Strategi ini menggunakan band tengah, atas dan bawah dari indikator Bollinger Bands. Band tengah adalah moving average, band atas adalah band tengah ditambah 2 standar deviasi, dan band bawah adalah band tengah dikurangi 2 standar deviasi.
Pertama-tama ia menghitung Bollinger Bands band tengah, atas dan bawah. Kemudian ia memeriksa apakah harga pecah di atas band atas atau di bawah band bawah. Jika harga pecah di atas band atas, itu pergi panjang. Jika harga pecah di bawah band bawah, itu pergi pendek. Juga jika harga memecahkan band kebalik, itu keluar posisi menggunakan perintah stop-loss.
Secara khusus, logika strategi adalah:
Hal ini memungkinkan menangkap tren ketika harga bergerak besar, sementara membatasi kerugian menggunakan stop-loss.
Dapat mengoptimalkan melalui penggabungan indikator, penyesuaian unit stop loss dll.
Ini adalah tren yang relatif sederhana mengikuti strategi berdasarkan Bollinger Bands. Ini dapat dengan cepat mengambil posisi ketika harga pecah dan menggunakan stop-loss untuk mengendalikan risiko. Tetapi hanya mengandalkan harga dapat menyebabkan penilaian yang salah, sementara stop-loss sensitif dapat meningkatkan frekuensi perdagangan. Kita dapat lebih memperbaikinya melalui penyesuaian parameter, menggabungkan indikator, menyesuaikan stop dll. Secara keseluruhan, ini memberikan kerangka perdagangan kuantitatif yang sederhana dan andal.
/*backtest start: 2023-09-26 00:00:00 end: 2023-10-26 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © ROBO_Trading //@version=5 strategy(title = "Bollinger Stop Strategy", shorttitle = "BBStop", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 10000, default_qty_value = 100, commission_value = 0.1) //Settings long = input(true) short = input(true) length = input.int(20, minval=1) mult = input.float(2.0, minval=0.001, maxval=50) source = input(close) showbb = input(true, title = "Show Bollinger Bands") showof = input(true, title = "Show Offset") startTime = input(defval = timestamp("01 Jan 2000 00:00 +0000"), title = "Start Time", inline = "time1") finalTime = input(defval = timestamp("31 Dec 2099 23:59 +0000"), title = "Final Time", inline = "time1") //Bollinger Bands basis = ta.sma(source, length) dev = mult * ta.stdev(source, length) upper = basis + dev lower = basis - dev //Show indicator offset = showof ? 1 : 0 colorBasis = showbb ? color.gray : na colorUpper = showbb ? color.blue : na colorLower = showbb ? color.blue : na colorBands = showbb ? color.blue : na p0 = plot(basis, "Basis", color = colorBasis, offset = offset) p1 = plot(upper, "Upper", color = colorUpper, offset = offset) p2 = plot(lower, "Lower", color = colorLower, offset = offset) fill(p1, p2, title = "Background", color = colorBands, transp = 90) //Trading truetime = true if basis > 0 and truetime if long strategy.entry("Long", strategy.long, stop = upper, when = truetime) if short strategy.entry("Short", strategy.short, stop = lower, when = truetime) if long == false strategy.exit("Exit", "Short", stop = upper) if short == false strategy.exit("Exit", "Long", stop = lower) if time > finalTime strategy.close_all()