Strategi ini adalah strategi trading berdasarkan Bollinger Bands dan Stochastic Oscillator. Strategi ini menggunakan Bollinger Bands untuk menentukan rentang volatilitas pasar dan menggunakan Stochastic Oscillator untuk menilai keadaan overbought dan oversold di pasar. Ketika harga melanggar di atas Bollinger Band atas, strategi akan panjang; ketika harga jatuh di bawah Bollinger Band bawah, strategi akan pendek. Pada saat yang sama, strategi ini juga menggunakan Stochastic Oscillator untuk menyaring sinyal perdagangan untuk meningkatkan akurasi dan keandalan strategi.
Inti dari strategi ini adalah dua indikator teknis: Bollinger Bands dan Stochastic Oscillator. Bollinger Bands terdiri dari tiga garis: band tengah, band atas, dan band bawah. Band tengah adalah rata-rata bergerak sederhana dari harga, sementara band atas dan bawah adalah band tengah ditambah dan dikurangi beberapa kali lipat dari standar deviasi harga. Ketika harga melanggar band atas, itu menunjukkan bahwa pasar mungkin overbought; ketika harga jatuh di bawah band bawah, itu menunjukkan bahwa pasar mungkin oversold.
Stokastis Osilator terdiri dari dua garis: garis %K dan garis %D. %K garis mengukur posisi harga penutupan dalam harga tertinggi dan terendah selama periode terakhir, dan garis %D adalah rata-rata bergerak dari garis %K. Ketika garis %K melintasi di atas garis %D, itu menunjukkan bahwa pasar mungkin overbought; ketika garis %K melintasi di bawah garis %D, itu menunjukkan bahwa pasar mungkin oversold.
Strategi ini menggabungkan kedua indikator ini. Ketika harga pecah di atas Bollinger Band atas dan garis Stochastic Oscillator %K melintasi di atas garis %D, strategi berjalan panjang; ketika harga jatuh di bawah Bollinger Band bawah dan garis Stochastic Oscillator %K melintasi di bawah garis %D, strategi berjalan pendek. Kombinasi ini dapat secara efektif menangkap tren pasar sambil menghindari perdagangan yang sering di pasar yang tidak stabil.
Strategi ini adalah strategi trading yang sederhana namun efektif yang menggabungkan dua indikator teknis klasik, Bollinger Bands dan Stochastic Oscillator, untuk mencapai pengembalian yang stabil baik dalam kondisi pasar yang sedang tren maupun berosilasi.
/*backtest start: 2023-05-03 00:00:00 end: 2024-05-08 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Unique Bollinger Bands Strategy", overlay=true) src = input(close) length = input.int(34, minval=1) mult = input.float(2.0, minval=0.001, maxval=50) basis = ta.sma(src, length) dev = ta.stdev(src, length) dev2 = mult * dev upper1 = basis + dev lower1 = basis - dev upper2 = basis + dev2 lower2 = basis - dev2 colorBasis = src >= basis ? color.blue : color.orange pBasis = plot(basis, linewidth=2, color=colorBasis) pUpper1 = plot(upper1, color=color.new(color.blue, 0), style=plot.style_circles) pUpper2 = plot(upper2, color=color.new(color.blue, 0)) pLower1 = plot(lower1, color=color.new(color.orange, 0), style=plot.style_circles) pLower2 = plot(lower2, color=color.new(color.orange, 0)) fill(pBasis, pUpper2, color=color.new(color.blue, 80)) fill(pUpper1, pUpper2, color=color.new(color.blue, 80)) fill(pBasis, pLower2, color=color.new(color.orange, 80)) fill(pLower1, pLower2, color=color.new(color.orange, 80)) // Parameters bbLength = input.int(34, title="Length", minval=1) bbMultiplier = input.float(2.0, title="Multiplier", minval=0.001, maxval=50) // Source priceData = close // Unique name for price data source // Bollinger Bands Calculation bbBasis = ta.sma(priceData, bbLength) bbDeviation = ta.stdev(priceData, bbLength) bbDeviationMultiplied = bbMultiplier * bbDeviation bbUpperBand = bbBasis + bbDeviationMultiplied bbLowerBand = bbBasis - bbDeviationMultiplied // Plot Bollinger Bands plot(bbBasis, color=color.blue, linewidth=2) plot(bbUpperBand, color=color.blue) plot(bbLowerBand, color=color.orange) // Strategy Logic for Entry and Exit enterLong = ta.crossover(priceData, bbUpperBand) enterShort = ta.crossunder(priceData, bbLowerBand) // Enter Long when price crosses over upper band if (enterLong) strategy.entry("Long", strategy.long) // Enter Short when price crosses under lower band if (enterShort) strategy.entry("Short", strategy.short) // Close Long when Short condition is met (i.e., price under lower band) if (enterShort) strategy.close("Long") // Close Short when Long condition is met (i.e., price over upper band) if (enterLong) strategy.close("Short")