Strategi ini menggunakan penunjuk HMA (Hull Moving Average) dan analisis teknikal K-line untuk merealisasikan penilaian momentum dan operasi terobosan pada harga.
Penunjuk HMA dicipta oleh Alan Hull pada tahun 2005 untuk mewujudkan purata bergerak yang sensitif dan lancar.
(1) Hitung DMA purata Double Smoothing separuh kitaran
(2) Hitung purata SMA kitaran penuh
(3) Hitung perbezaan DIFF antara DMA dan SMA
(4) Hitung garis purata kitaran SQRT ((periode) DIFF untuk mendapatkan HMA
Strategi ini menggunakan terobosan ke atas dan ke bawah penunjuk HMA sebagai isyarat, digabungkan dengan terobosan bahagian entiti garis K, untuk menjana isyarat beli dan jual. Pada masa yang sama, tetapkan prinsip stop loss dan mengambil keuntungan untuk memantau keadaan keuntungan dan kerugian dalam masa nyata untuk melindungi keuntungan.
Ciri
Mekanisme terobosan berganda meningkatkan kebolehpercayaan isyarat dan mengelakkan terperangkap.
Stop loss dinamik dan perlindungan keuntungan mengoptimumkan risiko dan pulangan.
Perdagangan automatik sepenuhnya memudahkan operasi.
Dalam turun naik pasaran yang ganas, kebarangkalian stop loss dipukul lebih besar.
Frekuensi perdagangan yang tinggi meningkatkan kos komisen.
Tetapan parameter yang tidak betul boleh menghasilkan banyak isyarat palsu.
Mengoptimumkan syarat stop loss dan mengambil keuntungan dan menetapkan retracement yang munasabah.
Sesuaikan kekerapan dagangan untuk mengurangkan kesan komisen.
Uji dan optimumkan kitaran HMA dan keadaan terobosan untuk menentukan parameter optimum.
Sertakan penunjuk penilaian trend untuk mengelakkan perdagangan countertrend.
Meningkatkan penilaian automatik pertukaran sumber data untuk menyesuaikan diri dengan lebih banyak persekitaran pasaran.
Meningkatkan algoritma pembelajaran mesin untuk mencapai pengoptimuman parameter automatik.
Menghantar pada pelayan untuk mencapai 24 jam perdagangan hidup pengesahan.
Strategi HMA momentum breakout menggunakan kelebihan unik purata bergerak Hull untuk menangkap momentum pasaran dengan tepat. Mekanisme penapisan breakout berganda meningkatkan kualiti isyarat, dan stop keuntungan dan stop kerugian dinamik melindungi pendapatan. Strategi ini mudah digunakan, berkesan, dan alat perdagangan kuantitatif yang sangat praktikal yang patut dipromosikan.
/*backtest start: 2022-12-28 00:00:00 end: 2024-01-03 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //SeaSide420 strategy("Hull Moving Average and Daily Candle Crossover", shorttitle="Hull&D", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=720, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0) // settings---------------------- q=input(title="HullMA",defval=5) SL = input(defval=-10000.00, title="Stop Loss in $", type=float, step=1) TP = input(defval=500.00, title="Target Point in $", type=float, step=1) price=input(ohlc4,title="Price data") ot=1 p=price[1] // Daily candle crossover--------- dt = 0.0010 Daily=(p-p[1])/p[1] //-------------------------------- // Hull MA's---------------------- n2ma=2*wma(p,round(q/2)) nma=wma(p,q) diff=n2ma-nma sqn=round(sqrt(q)) n2ma1=2*wma(p[1],round(q/2)) nma1=wma(p[1], q) diff1=n2ma1-nma1 sqn1=round(sqrt(q)) n1=wma(diff,sqn) n2=wma(diff1,sqn) //--------------------------------- // Plotting------------------------ z1e=n1>n2?green:black z2e=n1>n2?black:red z3e=n1>n2?green:red n1e=plot(n1, title="HMA1", color=z1e, linewidth=2, offset=2) n2e=plot(n2, title="HMA2", color=z2e, linewidth=2, offset=2) fill(n1e, n2e, color=z3e, transp=80) // Order controls------------------- closelong = n1<n2 and n1[1]<n2[1] and n1[2]<n2[2] or strategy.openprofit<SL or strategy.openprofit>TP if (closelong) strategy.close("Long") closeshort = n1>n2 and n1[1]>n2[1] and n1[2]>n2[2] or strategy.openprofit<SL or strategy.openprofit>TP if (closeshort) strategy.close("Short") longCondition = n1>n2 and n1[1]>n2[1] and n1[2]>n2[2] and strategy.opentrades<ot and Daily>dt and close>n1 if (longCondition) strategy.entry("Long",strategy.long) shortCondition = n1<n2 and n1[1]<n2[1] and n1[2]<n2[2] and strategy.opentrades<ot and Daily<dt and close<n1 if (shortCondition) strategy.entry("Short",strategy.short)