Strategi kuantitatif DPD-RSI-BB menggabungkan tiga indikator - DPD, RSI dan Bollinger Bands untuk perdagangan saham.
Strategi ini terdiri dari komponen utama berikut:
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.
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.
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.
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.
Strategi ini memiliki keuntungan berikut:
Penghakiman yang komprehensif menggunakan beberapa indikator menghindari sinyal palsu dari satu indikator.
Menggunakan indikator RSI untuk menilai kondisi overbought dan oversold memungkinkan pengaturan stop loss dan mengambil poin profit sebelumnya.
Indikator DPD dapat lebih baik menentukan tren harga, sementara Bollinger Bands dapat mengidentifikasi level support dan resistance.
Pengaturan parameter yang fleksibel memungkinkan optimasi untuk stok yang berbeda.
Strategi ini juga memiliki beberapa risiko:
Kombinasi dari beberapa indikator membuat strategi agak kompleks dengan kesulitan dalam penyesuaian parameter.
Indikator seperti DPD dan RSI memiliki keterlambatan tertentu, yang mungkin kehilangan waktu masuk terbaik.
Parameter harus dioptimalkan agar sesuai dengan siklus dan karakteristik stok yang berbeda.
Aspek berikut dapat dioptimalkan:
Sesuaikan parameter indikator untuk mengoptimalkan titik masuk dan keluar.
Tambahkan mekanisme stop loss untuk kontrol ketat per kerugian perdagangan.
Uji pada stok yang berbeda dan parameter siklus untuk mengevaluasi kinerja strategi.
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")