Strategi ini mengintegrasikan tiga indikator Bollinger Bands, Relative Strength Index (RSI) dan Exponential Moving Average (EMA) untuk menerapkan strategi perdagangan otomatis dengan periode pemegang saham yang panjang. Ini menghasilkan sinyal beli ketika RSI berada di bawah garis oversold dan harga dekat atau menyentuh rel bawah Bollinger Bands, dan menghasilkan sinyal jual ketika harga naik untuk menyentuh rel atas Bollinger Bands, menggunakan Bollinger Bands untuk menentukan tren pasar dan status overbought / oversold untuk konfirmasi ganda.
Strategi ini terutama menilai berdasarkan Bollinger Bands, RSI dan EMA tiga indikator. Rel tengah dalam Bollinger Bands adalah rata-rata pergerakan harga sederhana, dan rel atas dan bawah adalah dua rentang deviasi standar harga. Bollinger Bands dapat menilai status overbought / oversold pasar. Ketika harga dekat dengan rel bawah, itu menunjukkan status oversold, dan ketika harga dekat dengan rel atas, itu menunjukkan status overbought. RSI adalah salah satu indikator penting untuk menilai apakah saham terlalu banyak atau terlalu banyak. RSI di bawah 30 menunjukkan status oversold dan RSI di atas 70 menunjukkan status overbought. EMA adalah rata-rata pergerakan tertimbang eksponensial harga dan dapat menentukan tren harga.
Sinyal beli untuk strategi ini dihasilkan ketika RSI berada di bawah garis oversold 30, dan pada saat yang sama harga telah mendekati atau menyentuh rel bawah Bollinger Bands dalam keadaan oversold.
Sinyal jual dihasilkan ketika harga menyentuh rel atas Bollinger Bands selama tren naik. Ini menggunakan Bollinger Bands untuk menentukan status overbought dan menjual untuk mengambil keuntungan.
Solusi:
Strategi ini dapat dioptimalkan lebih lanjut dalam aspek berikut:
Strategi ini mengintegrasikan Bollinger Bands, RSI dan EMA untuk strategi perdagangan otomatis holding panjang dengan filter konfirmasi ganda. Konfirmasi ganda untuk status overbought/oversold secara efektif menghindari sinyal palsu, dan menggunakan EMA untuk penentuan tren mencegah perdagangan melawan tren. Sementara itu, pengaturan parameter yang fleksibel membuatnya dapat disesuaikan dengan saham yang berbeda. Peningkatan lebih lanjut dalam aspek mekanisme stop loss dan exit dapat meningkatkan efisiensi dan manajemen risiko strategi. Strategi ini memberikan kerangka referensi yang berharga bagi pemula dan memiliki makna praktis.
/*backtest start: 2023-12-21 00:00:00 end: 2023-12-28 00:00:00 period: 3m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Bollinger + RSI + EMA, Double Strategy Long-Only (by ChartArt) v1.3", shorttitle="rsi 30 min ADJ Buy", overlay=true) ///////////// RSI RSIlength = input(2, title="RSI Period Length") // Adjusted RSI period length RSIoverSold = input(30, title="RSI Oversold Level") // Adjustable RSI oversold level RSIoverBought = input(80, title="RSI Overbought Level") // Adjustable RSI overbought level price = close vrsi = rsi(price, RSIlength) ///////////// Bollinger Bands BBlength = input(231, minval=1, title="Bollinger Period Length") // Adjusted Bollinger period length BBmult = 2 BBbasis = sma(price, BBlength) BBdev = BBmult * stdev(price, BBlength) BBupper = BBbasis + BBdev BBlower = BBbasis - BBdev ///////////// EMA useEMA = input(true, title="Use EMA?") emaLength = input(20, title="EMA Period Length") ema = useEMA ? ema(close, emaLength) : na source = close buyEntry = crossover(source, BBlower) or (close < BBlower and close > BBbasis) or (low < BBlower and close > BBbasis) // Add condition for low touching Bollinger Band sellEntry = crossunder(source, BBupper) ///////////// Plotting plot(BBbasis, color=color.aqua, title="Bollinger Bands SMA Basis Line") plot(BBupper, color=color.silver, title="Bollinger Bands Upper Line") plot(BBlower, color=color.silver, title="Bollinger Bands Lower Line") plot(ema, color=color.orange, title="EMA") // Plot EMA ///////////// RSI + Bollinger Bands Strategy long = crossover(vrsi, RSIoverSold) and buyEntry close_long = close >= BBupper if (not na(vrsi)) if long strategy.entry("Buy", strategy.long, qty=10, stop=BBlower, comment="Buy") else strategy.cancel(id="Buy") if close_long strategy.close("Buy")