Sumber dimuat naik... memuat...

Trend Momentum Bollinger Bands Berikutan Strategi Kuantitatif

Penulis:ChaoZhang, Tarikh: 2024-11-12 15:53:44
Tag:BBRSIEMASMASDSL

img

Ringkasan

Strategi ini adalah sistem perdagangan komprehensif berdasarkan Bollinger Bands, penunjuk RSI, dan purata bergerak. Ia mengenal pasti peluang perdagangan berpotensi melalui julat turun naik harga Bollinger Bands, tahap overbought / oversold RSI, dan penapisan trend EMA. Sistem ini menyokong kedua-dua perdagangan panjang dan pendek dan menyediakan pelbagai mekanisme keluar untuk melindungi modal.

Prinsip Strategi

Strategi ini berdasarkan komponen teras berikut:

  1. Menggunakan Bollinger Band dengan 1.8 deviasi standard untuk menentukan julat turun naik harga
  2. Menggunakan RSI 7 tempoh untuk keadaan overbought/oversold
  3. EMA 500 tempoh pilihan sebagai penapis trend
  4. Syarat kemasukan:
    • Long: RSI di bawah 25 dan harga pecah di bawah Bollinger Band bawah
    • Pendek: RSI melebihi 75 dan harga pecah di atas Bollinger Band atas
  5. Kaedah keluar menyokong sama ada ambang RSI atau penembusan terbalik Bollinger Band
  6. Perlindungan stop loss berasaskan peratusan pilihan

Kelebihan Strategi

  1. Pelbagai penunjuk teknikal bekerjasama untuk meningkatkan kebolehpercayaan isyarat
  2. Tetapan parameter yang fleksibel membolehkan penyesuaian untuk keadaan pasaran yang berbeza
  3. Menyokong perdagangan dua hala untuk merebut sepenuhnya peluang pasaran
  4. Menyediakan pelbagai mekanisme keluar untuk memenuhi gaya perdagangan yang berbeza
  5. Penapisan trend secara berkesan mengurangkan isyarat palsu
  6. Mekanisme Stop Loss menyediakan kawalan risiko yang baik

Risiko Strategi

  1. Boleh menghasilkan isyarat palsu yang kerap di pasaran yang berbeza
  2. Pelbagai penunjuk boleh menyebabkan isyarat tertunda
  3. Sempadan RSI tetap mungkin tidak cukup fleksibel untuk persekitaran pasaran yang berbeza
  4. Parameter Bollinger Bands perlu diselaraskan berdasarkan turun naik pasaran
  5. Tetapan stop loss boleh dengan mudah dicetuskan semasa turun naik yang ganas

Arahan Pengoptimuman Strategi

  1. Memperkenalkan pengganda Bollinger Bands adaptif berdasarkan turun naik pasaran
  2. Tambah penunjuk jumlah untuk pengesahan
  3. Pertimbangkan untuk menambah penapis masa untuk mengelakkan perdagangan dalam tempoh tertentu
  4. Membangunkan sistem ambang RSI dinamik
  5. Mengintegrasikan lebih banyak penunjuk pengesahan trend
  6. Mengoptimumkan mekanisme stop loss, pertimbangkan untuk menggunakan stop loss dinamik

Ringkasan

Ini adalah strategi perdagangan kuantitatif yang direka dengan baik yang menangkap peluang pasaran melalui pelbagai penunjuk teknikal. Strategi ini sangat boleh dikonfigurasi dan dapat disesuaikan dengan keperluan perdagangan yang berbeza. Walaupun terdapat beberapa risiko yang melekat, kestabilan dan kebolehpercayaannya dapat ditingkatkan lagi melalui pengoptimuman parameter dan penunjuk 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 lanjut