Sumber daya yang dimuat... Pemuatan...

Bollinger Bands Momentum Trend Mengikuti Strategi Kuantitatif

Penulis:ChaoZhangTanggal: 2024-11-12 15:53:44
Tag:BBRSIEMASMASDSL

img

Gambaran umum

Strategi ini adalah sistem perdagangan yang komprehensif berdasarkan Bollinger Bands, indikator RSI, dan moving average. Sistem ini mengidentifikasi peluang perdagangan potensial melalui rentang volatilitas harga Bollinger Bands, tingkat overbought/oversold RSI, dan penyaringan tren EMA. Sistem ini mendukung perdagangan panjang dan pendek dan menyediakan beberapa mekanisme keluar untuk melindungi modal.

Prinsip Strategi

Strategi ini didasarkan pada komponen inti berikut:

  1. Menggunakan Bollinger Bands dengan 1.8 standar deviasi untuk menentukan rentang volatilitas harga
  2. Menggunakan RSI 7-periode untuk kondisi overbought/oversold
  3. EMA 500 periode opsional sebagai filter tren
  4. Ketentuan masuk:
    • Long: RSI di bawah 25 dan price breaks di bawah Bollinger Band bawah
    • Pendek: RSI di atas 75 dan harga pecah di atas Bollinger Band atas
  5. Metode keluar mendukung ambang RSI atau reverse breakout Bollinger Band
  6. Perlindungan stop loss berdasarkan persentase opsional

Keuntungan Strategi

  1. Beberapa indikator teknis bekerja sama untuk meningkatkan keandalan sinyal
  2. Pengaturan parameter yang fleksibel memungkinkan penyesuaian untuk kondisi pasar yang berbeda
  3. Mendukung perdagangan bilateral untuk memanfaatkan peluang pasar sepenuhnya
  4. Menyediakan beberapa mekanisme keluar untuk menyesuaikan gaya perdagangan yang berbeda
  5. Penyaringan tren secara efektif mengurangi sinyal palsu
  6. Mekanisme stop loss memberikan kontrol risiko yang baik

Risiko Strategi

  1. Dapat menghasilkan sinyal palsu yang sering di berbagai pasar
  2. Beberapa indikator dapat menyebabkan sinyal tertunda
  3. Batas RSI tetap mungkin tidak cukup fleksibel untuk lingkungan pasar yang berbeda
  4. Parameter Bollinger Bands perlu disesuaikan berdasarkan volatilitas pasar
  5. Pengaturan stop loss dapat dengan mudah diaktifkan selama fluktuasi yang keras

Arah Optimasi Strategi

  1. Memperkenalkan adaptif Bollinger Bands pengganda berdasarkan volatilitas pasar
  2. Tambahkan indikator volume untuk konfirmasi
  3. Pertimbangkan untuk menambahkan filter waktu untuk menghindari perdagangan selama periode tertentu
  4. Mengembangkan sistem ambang RSI yang dinamis
  5. Mengintegrasikan lebih banyak indikator konfirmasi tren
  6. Optimalkan mekanisme stop loss, pertimbangkan untuk menggunakan stop loss dinamis

Ringkasan

Ini adalah strategi perdagangan kuantitatif yang dirancang dengan baik yang menangkap peluang pasar melalui beberapa indikator teknis. Strategi ini sangat dapat dikonfigurasi dan dapat beradaptasi dengan kebutuhan perdagangan yang berbeda. Meskipun ada beberapa risiko yang melekat, stabilitas dan keandalan dapat ditingkatkan lebih lanjut melalui optimasi parameter dan indikator tambahan.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-11 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands Scalp Pro", overlay=true)

// Inputs for the strategy
length = input(20, title="Bollinger Band Length")
src = input(close, title="Source")
mult = input(1.8, title="Bollinger Band Multiplier")
rsiLength = input(7, title="RSI Length")
rsiOverbought = input(75, title="RSI Overbought Level")
rsiOversold = input(25, title="RSI Oversold Level")

// Custom RSI exit points
rsiExitLong = input(75, title="RSI Exit for Long (Overbought)")
rsiExitShort = input(25, title="RSI Exit for Short (Oversold)")

// Moving Average Inputs
emaLength = input(500, title="EMA Length")
enableEMAFilter = input.bool(true, title="Enable EMA Filter")

// Exit method: Choose between 'RSI' and 'Bollinger Bands'
exitMethod = input.string("RSI", title="Exit Method", options=["RSI", "Bollinger Bands"])

// Enable/Disable Long and Short trades
enableLong = input.bool(true, title="Enable Long Trades")
enableShort = input.bool(false, title="Enable Short Trades")

// Enable/Disable Stop Loss
enableStopLoss = input.bool(false, title="Enable Stop Loss")
stopLossPercent = input.float(1.0, title="Stop Loss Percentage (%)", minval=0.1) / 100

// Bollinger Bands calculation
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upperBB = basis + dev
lowerBB = basis - dev

// RSI calculation
rsi = ta.rsi(src, rsiLength)

// 200 EMA to filter trades (calculated but only used if enabled)
ema200 = ta.ema(src, emaLength)

// Long condition: RSI below oversold, price closes below the lower Bollinger Band, and optionally price is above the 200 EMA
longCondition = enableLong and (rsi < rsiOversold) and (close < lowerBB) and (not enableEMAFilter or close > ema200)
if (longCondition)
    strategy.entry("Long", strategy.long)

// Short condition: RSI above overbought, price closes above the upper Bollinger Band, and optionally price is below the 200 EMA
shortCondition = enableShort and (rsi > rsiOverbought) and (close > upperBB) and (not enableEMAFilter or close < ema200)
if (shortCondition)
    strategy.entry("Short", strategy.short)

// Stop Loss setup
if (enableStopLoss)
    strategy.exit("Long Exit", "Long", stop = strategy.position_avg_price * (1 - stopLossPercent))
    strategy.exit("Short Exit", "Short", stop = strategy.position_avg_price * (1 + stopLossPercent))

// Exit conditions based on the user's choice of exit method
if (exitMethod == "RSI")
    // Exit based on RSI
    exitLongCondition = rsi >= rsiExitLong
    if (exitLongCondition)
        strategy.close("Long")
    
    exitShortCondition = rsi <= rsiExitShort
    if (exitShortCondition)
        strategy.close("Short")
else if (exitMethod == "Bollinger Bands")
    // Exit based on Bollinger Bands
    exitLongConditionBB = close >= upperBB
    if (exitLongConditionBB)
        strategy.close("Long")
    
    exitShortConditionBB = close <= lowerBB
    if (exitShortConditionBB)
        strategy.close("Short")







Berkaitan

Lebih banyak