DAKELAX-XRPUSDT Bollinger Band Mean Reverssion Strategi

Penulis:ChaoZhang, Tanggal: 2023-11-02 16:18:34
Tag:

img

Gambaran umum

DAKELAX-XRPUSDT adalah strategi bot perdagangan untuk XRPUSDT di Binance. Ini adalah strategi terbalik sederhana yang menggunakan Bollinger Bands, dan berkinerja baik dalam backtest pada kerangka waktu H1 dari Mei hingga Agustus 2019, serta berjalan langsung.

Logika Strategi

Strategi ini pertama-tama menghitung SMA 20 periode dan Bollinger Bands atas/bawah. Band atas adalah SMA + 1.5 standar deviasi, dan band bawah adalah SMA - 2.2 standar deviasi. Kemudian menghitung tingkat kontraksi band. Band diisi hitam jika kontraksi > 1.3, kuning jika < 0.1, sebaliknya merah.

Ketika harga close berada di bawah band bawah, ia pergi panjang dengan 20 koin.

Strategi ini juga menghitung garis cepat EMA 7 periode dan garis lambat EMA 18 periode. Crossover dari garis cepat di atas garis lambat adalah sinyal beli, dan crossover di bawah adalah sinyal jual.

Analisis Keuntungan

  • Bollinger Bands dan tingkat kontraksi secara intuitif mengidentifikasi tren dan volatilitas
  • Menggabungkan dengan EMA crossover menambah kekuatan sinyal
  • Hasil backtest yang baik dan relatif stabil dalam perdagangan langsung

Analisis Risiko

  • Kemungkinan kegagalan yang tinggi ketika pecah setelah kontraksi pita
  • Pembelian dengan jumlah tetap tanpa risiko ukuran posisi yang berlebihan
  • Terlalu banyak crossover di berbagai pasar berisiko kerugian
  • Hanya mempertimbangkan faktor harian, kehilangan tren jangka waktu yang lebih besar

Pertimbangkan ukuran posisi dinamis atau stop loss untuk mengendalikan risiko. Optimalkan strategi crossover untuk menghindari whipsaws di pasar yang bervariasi. Tambahkan indikator tren jangka waktu yang lebih tinggi untuk mengidentifikasi pergerakan yang lebih besar.

Arahan Optimasi

  • Sesuaikan jumlah pembelian berdasarkan lebar pita, kurang ketika dikontrak dan lebih ketika diperluas

  • Pertimbangkan untuk mengumpulkan posisi ketika kontraksi terlihat tetapi sinyal belum dipicu

  • Tambahkan indikator tren jangka waktu yang lebih lama untuk menentukan arah keseluruhan, jeda strategi ketika tidak jelas

  • Menggabungkan stop loss untuk mengendalikan risiko, dapat ditetapkan di dekat terendah baru-baru ini dari band

  • Mengoptimalkan crossover parameter seperti periode EMA untuk menghindari terjebak

Ringkasan

DAKELAX-XRPUSDT adalah strategi trading bot yang menggunakan kontraksi Bollinger Band dengan crossover EMA. Ini intuitif dan memiliki hasil backtest yang baik tetapi mengandung beberapa risiko. Ini dapat dikurangi melalui ukuran posisi, strategi stop, menambahkan stop loss dan mengoptimalkan logika crossover. Secara keseluruhan ini memberikan contoh yang jelas dari strategi Bollinger Band, tetapi membutuhkan optimasi spesifik pasangan untuk keuntungan hidup yang stabil.


/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//study(title="Tradebotler DAKELAX Binance:XRPUSDT Study-strategy", overlay=true)
strategy(title="Tradebotler DAKELAX Binance:XRPUSDT Strategy", overlay=true)

buyAmount = input(20, minval=1)

// SMA20
len2 = input(20, minval=1)
src2 = input(close)
out2 = sma(src2, len2)

// BB contraction value (medium tight)
contraction_value = 1.3
// BB contraction value (very tight)
contraction_value2 = 0.1

// 2xSTDEV BB calculation
dev = stdev(src2, len2)
upper_BB = out2  + 1.5*dev
lower_BB = out2  - 2.2*dev
x1 = plot(upper_BB, color=blue, linewidth = 2)
x2 = plot(lower_BB, color=blue, linewidth = 2)

contraction = (upper_BB-lower_BB)/out2

//fills the BBands according to the contraction value (threshold)

// Calculate values
fastMA  = ema(close, 7)
slowMA  = ema(close, 18)

// Determine alert setups
crossUp   = crossover(fastMA, slowMA)
crossDown = crossunder(fastMA, slowMA)

buySignal   = (crossUp or crossUp[1]) and (low > slowMA)
shortSignal = (crossDown or crossDown[1]) and (high < slowMA)

// Highlight alerts on the chart
bgColour =
     (buySignal and barstate.isrealtime) ? green :
     (shortSignal and barstate.isrealtime) ? red :
     na

signalBuy = (buySignal ) ? true : false
signalSell = (shortSignal ) ? true : false

test = true

test := not test[1]

closesBelowLowerBB = close < lower_BB
closesAboveUpperBB = close > upper_BB

tmptext = "blah"

// Plot values
plot(series=fastMA, color=teal)
plot(series=slowMA, color=orange)

plot(out2, color=black, linewidth = 1)
fill(x1, x2, color = contraction > contraction_value ? black : contraction < contraction_value2 ? yellow: red)

isInRed = contraction < contraction_value and contraction >= contraction_value2
isInYellow = contraction < contraction_value and contraction < contraction_value2

if ( closesBelowLowerBB )
    strategy.order('Buy', strategy.long, buyAmount)

if ( closesAboveUpperBB )
    strategy.close_all()



Lebih banyak