Strategi ini menggabungkan indikator Supertrend dan indikator Bollinger Bands untuk menangkap peluang tren di pasar. Indikator Supertrend digunakan untuk menentukan arah tren pasar saat ini, sementara indikator Bollinger Bands digunakan untuk mengukur volatilitas pasar. Sinyal panjang dihasilkan ketika harga penutupan melanggar di atas garis Supertrend dan berada di bawah Bollinger Band bawah, dan sinyal pendek dihasilkan ketika harga penutupan melanggar di bawah garis Supertrend dan berada di atas Bollinger Band atas. Keuntungan dari strategi ini adalah bahwa ia dapat memasuki pasar secara tepat waktu ketika tren jelas, sambil menghindari masuknya awal di pasar yang bergolak.
Strategi kombinasi Supertrend Bollinger Band adalah strategi trend-following yang dapat secara efektif menangkap peluang tren dengan menggabungkan dua faktor pasar: tren dan volatilitas. Namun, strategi ini juga memiliki keterbatasan tertentu, seperti sensitif terhadap parameter dan peningkatan risiko di lingkungan dengan volatilitas tinggi. Oleh karena itu, dalam aplikasi yang sebenarnya, perlu untuk mengoptimalkan dan meningkatkan strategi dengan tepat sesuai dengan karakteristik pasar dan preferensi risiko seseorang.
/*backtest start: 2024-03-21 00:00:00 end: 2024-03-28 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © sabhiv27 //@version=4 strategy("Supertrend & Bollinger Bands Strategy", shorttitle="ST_BB_Strategy", overlay=true) // Input options factor = input(3, title="Supertrend Factor") length = input(10, title="ATR Length") bollinger_length = input(20, title="Bollinger Bands Length") bollinger_deviation = input(2, title="Bollinger Bands Deviation") // Calculate True Range for Supertrend truerange = rma(tr, length) // Calculate Supertrend var float up_trend = na var float dn_trend = na var float trend = na up_signal = hl2 - (factor * truerange) dn_signal = hl2 + (factor * truerange) up_trend := close[1] > up_trend[1] ? max(up_signal, up_trend[1]) : up_signal dn_trend := close[1] < dn_trend[1] ? min(dn_signal, dn_trend[1]) : dn_signal trend := close > dn_trend ? 1 : close < up_trend ? -1 : nz(trend[1], 1) // Calculate Bollinger Bands basis = sma(close, bollinger_length) dev = stdev(close, bollinger_length) upper_band = basis + bollinger_deviation * dev lower_band = basis - bollinger_deviation * dev // Entry conditions long_condition = crossover(close, up_trend) and close < lower_band short_condition = crossunder(close, dn_trend) and close > upper_band // Exit conditions exit_long_condition = crossover(close, dn_trend) exit_short_condition = crossunder(close, up_trend) // Plot Supertrend plot(trend == 1 ? up_trend : dn_trend, color=trend == 1 ? color.green : color.red, linewidth=2) // Plot Bollinger Bands plot(upper_band, color=color.blue) plot(lower_band, color=color.blue) // Generate buy and sell signals strategy.entry("Long", strategy.long, when=long_condition) strategy.entry("Short", strategy.short, when=short_condition) strategy.close("Long", when=exit_long_condition) strategy.close("Short", when=exit_short_condition)