Strategi Kuantitatif DPD-RSI-BB

Penulis:ChaoZhang, Tanggal: 2023-11-22 16:17:52
Tag:

img

Gambaran umum

Strategi kuantitatif DPD-RSI-BB menggabungkan tiga indikator - DPD, RSI dan Bollinger Bands untuk perdagangan saham.

Logika Strategi

Strategi ini terdiri dari komponen utama berikut:

  1. Indikator DPD untuk menentukan tren

    Ini membangun garis DEMA menggunakan rata-rata EMA ganda dan menghitung persentase perbedaan harga terhadap DEMA sebagai indikator penentuan tren.

  2. Indikator RSI untuk menilai kondisi overbought dan oversold

    RSI di atas batas atas dinilai sebagai zona overbought dan RSI di bawah batas bawah dinilai sebagai zona oversold.

  3. Bollinger Bands untuk mengidentifikasi support dan resistance

    Ini menghitung band tengah, band atas dan band bawah selama periode tertentu. Harga mendekati band atas menandakan prospek menurun, sementara harga mendekati band bawah menandakan prospek bullish.

  4. Penghakiman yang komprehensif

    Ketika persentase perbedaan harga DPD lebih rendah dari ambang batas, RSI lebih rendah dari batas bawah zona oversold, dan harga lebih rendah dari Bollinger upper band, sinyal bullish dihasilkan.

Analisis Keuntungan

Strategi ini memiliki keuntungan berikut:

  1. Penghakiman yang komprehensif menggunakan beberapa indikator menghindari sinyal palsu dari satu indikator.

  2. Menggunakan indikator RSI untuk menilai kondisi overbought dan oversold memungkinkan pengaturan stop loss dan mengambil poin profit sebelumnya.

  3. Indikator DPD dapat lebih baik menentukan tren harga, sementara Bollinger Bands dapat mengidentifikasi level support dan resistance.

  4. Pengaturan parameter yang fleksibel memungkinkan optimasi untuk stok yang berbeda.

Risiko dan Optimalisasi

Strategi ini juga memiliki beberapa risiko:

  1. Kombinasi dari beberapa indikator membuat strategi agak kompleks dengan kesulitan dalam penyesuaian parameter.

  2. Indikator seperti DPD dan RSI memiliki keterlambatan tertentu, yang mungkin kehilangan waktu masuk terbaik.

  3. Parameter harus dioptimalkan agar sesuai dengan siklus dan karakteristik stok yang berbeda.

Aspek berikut dapat dioptimalkan:

  1. Sesuaikan parameter indikator untuk mengoptimalkan titik masuk dan keluar.

  2. Tambahkan mekanisme stop loss untuk kontrol ketat per kerugian perdagangan.

  3. Uji pada stok yang berbeda dan parameter siklus untuk mengevaluasi kinerja strategi.

Kesimpulan

Strategi DPD-RSI-BB menggabungkan beberapa indikator untuk penilaian untuk menghindari sinyal palsu dari satu indikator. Melalui optimasi parameter, strategi ini dapat menjadi strategi perdagangan saham yang relatif kuat.


/*backtest
start: 2023-11-14 00:00:00
end: 2023-11-21 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version= 2
strategy("DPD+RSI+BB ",overlay=true)
price=close




//############### DPD  #################


buyper =input(-1,step=0.1)
sellper=input(0,step=0.1)
demalen = input(50,title="Dema Length")
e1= ema(close,demalen)
e2=ema(e1,demalen)
demaprice  =   2 * e1 - e2
demadifper =  ((price-demaprice)/price)*100


//############## DPD #####################

//############# RSI ####################


lengthrsi = input(6)
overSold = input( 20 )
overBought = input( 60 )

vrsi = rsi(price, lengthrsi)

//########## RSI #######################

//############### BB #################

lengthbb = input(50, minval=1)
multlow = input(1.5, minval=0.001, maxval=50,step=0.1)
multup = input(1.5,minval=0.001,maxval=50,step=0.1)

basisup = sma(close, lengthbb)
basislow = sma(close, lengthbb)

devup = multup * stdev(close, lengthbb)

devlow = multlow*stdev(close,lengthbb)

upperbb = basisup + devup
lowerbb = basislow - devlow

p1 = plot(upperbb, color=blue)
p2 = plot(lowerbb, color=blue)
fill(p1, p2)



//########### BB ###################




yearfrom = input(2018)
yearuntil =input(2039)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)



if (  (demadifper<buyper) and crossover(vrsi,overSold) and  (price < upperbb) and   year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",  comment="BUY")
    
else
    strategy.cancel(id="BUY")


if (   price>upperbb and vrsi>overBought and demadifper>sellper   and  year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil ) 

    strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND",  comment="SELL")
else
    strategy.cancel(id="SELL")
    
    
    

Lebih banyak