Strategi kuantitatif DPD-RSI-BB menggabungkan tiga penunjuk - DPD, RSI dan Bollinger Bands untuk perdagangan saham. Ia menggunakan DPD untuk menentukan trend, RSI untuk menilai tahap overbought dan oversold, dan Bollinger Bands untuk mengenal pasti tahap sokongan dan rintangan untuk memasuki pasaran.
Strategi ini terdiri daripada komponen utama berikut:
Penunjuk DPD untuk menentukan trend
Ia membina garis DEMA menggunakan purata EMA berganda dan mengira peratusan perbezaan harga terhadap DEMA sebagai penunjuk penentuan trend. Peratusan perbezaan yang rendah digunakan sebagai isyarat kenaikan.
Indikator RSI untuk menilai keadaan overbought dan oversold
Ia mengira nilai RSI dalam tempoh tertentu. RSI di atas had atas dinilai sebagai zon overbought dan RSI di bawah had bawah dinilai sebagai zon oversold.
Bollinger Band untuk mengenal pasti sokongan dan rintangan
Ia mengira band tengah, band atas dan band bawah dalam tempoh tertentu. Harga mendekati band atas menandakan prospek penurunan, sementara harga mendekati band bawah menandakan prospek kenaikan.
Penghakiman menyeluruh
Apabila peratusan perbezaan harga DPD lebih rendah daripada ambang, RSI lebih rendah daripada had bawah zon oversold, dan harga lebih rendah daripada jalur atas Bollinger, isyarat menaik dihasilkan.
Strategi ini mempunyai kelebihan berikut:
Penghakiman komprehensif menggunakan pelbagai penunjuk mengelakkan isyarat palsu dari satu penunjuk.
Menggunakan penunjuk RSI untuk menilai keadaan overbought dan oversold membolehkan menetapkan stop loss dan mengambil mata keuntungan terlebih dahulu.
Penunjuk DPD dapat menentukan trend harga dengan lebih baik, sementara Bollinger Bands dapat mengenal pasti tahap sokongan dan rintangan.
Tetapan parameter yang fleksibel membolehkan pengoptimuman untuk stok yang berbeza.
Strategi ini juga mempunyai beberapa risiko:
Gabungan pelbagai penunjuk menjadikan strategi agak rumit dengan kesukaran dalam penyesuaian parameter.
Penunjuk seperti DPD dan RSI mempunyai kelewatan tertentu, yang mungkin terlepas masa kemasukan yang terbaik.
Parameter perlu dioptimumkan agar sesuai dengan kitaran dan ciri stok yang berbeza.
Aspek berikut boleh dioptimumkan:
Sesuaikan parameter penunjuk untuk mengoptimumkan titik masuk dan keluar.
Tambahkan mekanisme stop loss untuk mengawal kerugian perdagangan secara ketat.
Ujian pada stok dan parameter kitaran yang berbeza untuk menilai prestasi strategi.
Strategi DPD-RSI-BB menggabungkan beberapa penunjuk untuk penghakiman untuk mengelakkan isyarat palsu dari satu penunjuk. Melalui pengoptimuman parameter, ia boleh menjadi strategi perdagangan saham yang agak kuat. Tetapi kerana kerumitan, ia mungkin masih gagal untuk melindungi sepenuhnya terhadap risiko pasaran dan harus digunakan dengan berhati-hati.
/*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")