Strategi ini menggunakan Bollinger Bands untuk menentukan arah trend pasaran dan menggabungkan penunjuk momentum untuk melaksanakan urus niaga penjejakan trend.
Strategi ini boleh dibahagikan kepada tiga bahagian:
Periksa arah Bollinger Bands. Rel tengah Bollinger Bands mewakili purata bergerak, dan rel atas dan bawah mewakili julat turun naik. Apabila harga berhampiran dengan rel atas, ia terlalu banyak dibeli. Apabila ia berhampiran dengan rel bawah, ia terlalu banyak dijual. Arah Bollinger Bands mewakili arah trend harga.
Mengira momentum. Strategi ini menggunakan Hull Momentum. Momentum Hull berasal dari purata bergerak pantas dikurangkan purata bergerak perlahan. Nilai positif mewakili trend menaik, dan nilai negatif mewakili trend menurun.
Isyarat silang. Apabila purata bergerak pantas melintasi purata bergerak perlahan dari bawah, isyarat panjang dihasilkan. Apabila ia melintasi dari atas, isyarat pendek dihasilkan.
Peraturan dagangan adalah: Arah Bollinger Bands mewakili trend utama, dan penyeberangan penunjuk momentum mewakili masa memasuki pasaran. Isyarat dagangan dihasilkan apabila penyeberangan momentum konsisten dengan arah Bollinger Bands.
Elakkan terobosan palsu dengan menggabungkan trend dan momentum. Mengambil Band Bollinger untuk menilai trend berskala besar, dan kemudian menggunakan penunjuk momentum untuk menentukan titik masuk tertentu untuk mengelakkan risiko formset mengejar terobosan tempatan.
Bollinger Bands menyediakan titik stop-loss, yang lebih berkesan daripada purata bergerak mudah.
Pengesanan trend yang lebih cekap. Penunjuk momentum dapat memastikan kuasa yang mencukupi untuk terus mendorong harga ke arah asal selepas memasuki pasaran, menjadikan pengesanan trend lebih lancar.
Risiko kegagalan penentuan Bollinger Bands. Bollinger Bands tidak selalu menentukan trend dengan tepat, yang mungkin memberikan isyarat arah yang salah dengan itu meningkatkan kadar kerugian.
Risiko pembalikan trend: Walaupun Bollinger Bands mencerminkan dengan betul trend berskala besar, harga mungkin berbalik dalam jangka sederhana dan pendek, yang harus diperhatikan semasa berdagang.
Risiko pengoptimuman parameter. Parameter strategi seperti kitaran pengiraan perlu dioptimumkan untuk data pasaran yang berbeza untuk mencapai kesan perdagangan yang terbaik.
Menggabungkan lebih banyak penunjuk FILTER. Sebagai tambahan kepada Bollinger Bands dan Hull Momentum, penunjuk lain seperti MACD dan KDJ boleh ditambah untuk membentuk penunjuk FILTER untuk meningkatkan ketepatan penilaian.
Pengoptimuman parameter adaptif. Gabungkan algoritma pembelajaran mesin untuk mengoptimumkan parameter dalam masa nyata mengikut pelbagai jenis dan persekitaran pasaran untuk meningkatkan kestabilan strategi.
Mengoptimumkan strategi stop loss. Mengoptimumkan strategi stop loss untuk memaksimumkan keuntungan kunci sebelum perubahan trend utama, dan menghentikan kerugian dengan cepat apabila trend berbalik.
Strategi ini mengintegrasikan Bollinger Bands untuk menentukan trend berskala besar dan penunjuk momentum Hull untuk menentukan titik masuk tertentu, yang secara berkesan mengesan trend. Pada masa yang sama, masih ada ruang untuk penambahbaikan, seperti menambah lebih banyak penapis penunjuk, pengoptimuman parameter adaptif, pengoptimuman strategi stop-loss dan sebagainya untuk meningkatkan kestabilan dan keuntungan.
/*backtest start: 2024-01-26 00:00:00 end: 2024-02-25 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Hull Moving Average Crossover by SeaSide420 strategy("Hull Moving Average Crossover Strategy", overlay=true) keh=input(title="HullMA cross",defval=10) p=input(ohlc4) n2ma=2*ta.wma(p,math.round(keh/2)) nma=ta.wma(p,keh) diff=n2ma-nma sqn=math.round(math.sqrt(keh)) n2ma1=2*ta.wma(p[1],math.round(keh/2)) nma1=ta.wma(p[1],keh) diff1=n2ma1-nma1 sqn1=math.round(math.sqrt(keh)) n1=ta.wma(diff,sqn) n2=ta.wma(diff1,sqn) hullcross1 = n1 hullcross2 = n2 longcross1=(n1[0]-n1[3])+(n1[0]-n2[4])*100 longcross2=(n2[0]-n2[3])+(n2[0]-n1[4])*100 closelong = n1<n2 and longcross1<longcross2 if (closelong) strategy.close("Long") closeshort = n1>n2 and longcross1>longcross2 if (closeshort) strategy.close("Short") longCondition = n1>n2 and longcross1>longcross2 and strategy.opentrades<1 if (longCondition) strategy.entry("Long",strategy.long) shortCondition = n1<n2 and longcross1<longcross2 and strategy.opentrades<1 if (shortCondition) strategy.entry("Short",strategy.short) b=hullcross1>hullcross2?color.green:color.red c=hullcross2>hullcross1?color.green:color.red plot(ta.cross(hullcross1, hullcross2) ? hullcross1 : na,color=c, linewidth = 5, offset=3) barcolor(longcross1 < longcross2 ? color.black : color.white) bgcolor(longcross2 < longcross1 ? color.green : color.black, transp=85) plotshape(ta.cross(longcross2, longcross1) ? longcross2 : na, text="X", style=shape.labeldown, location=location.bottom)