Strategi ini menggunakan indikator HMA (Hull Moving Average) dan analisis teknis K-line untuk mewujudkan penilaian momentum dan operasi terobosan pada harga.
Indikator HMA diciptakan oleh Alan Hull pada tahun 2005 untuk membuat rata-rata bergerak yang sensitif dan halus.
(1) Hitung DMA rata-rata Double Smoothing dari setengah siklus
(2) Hitung SMA rata-rata siklus penuh
(3) Hitung perbedaan DIFF antara DMA dan SMA
(4) Hitung garis rata-rata siklus SQRT ((periode) dari DIFF untuk mendapatkan HMA
Strategi ini menggunakan terobosan ke atas dan ke bawah dari indikator HMA sebagai sinyal, dikombinasikan dengan terobosan bagian entitas dari garis K, untuk menghasilkan sinyal beli dan jual. Pada saat yang sama, tetapkan prinsip stop loss dan take profit untuk memantau situasi laba rugi secara real time untuk melindungi keuntungan.
Karakteristik
Mekanisme terobosan ganda meningkatkan keandalan sinyal dan menghindari terjebak.
Stop loss dan perlindungan keuntungan yang dinamis mengoptimalkan risiko dan pengembalian.
Perdagangan otomatis sepenuhnya menyederhanakan operasi.
Dalam fluktuasi pasar yang keras, kemungkinan stop loss akan terjadi lebih besar.
Frekuensi perdagangan yang tinggi meningkatkan biaya komisi.
Pengaturan parameter yang salah dapat menghasilkan banyak sinyal palsu.
Mengoptimalkan kondisi stop loss dan mengambil keuntungan dan menetapkan retracement yang wajar.
Sesuaikan frekuensi perdagangan untuk mengurangi dampak komisi.
Uji dan optimalkan siklus HMA dan kondisi terobosan untuk menentukan parameter optimal.
Masukkan indikator penilaian tren untuk menghindari perdagangan kontra-tren.
Tingkatkan penilaian otomatis untuk beralih sumber data untuk beradaptasi dengan lebih banyak lingkungan pasar.
Meningkatkan algoritma pembelajaran mesin untuk mencapai optimasi parameter otomatis.
Mengerahkan pada server untuk mencapai verifikasi perdagangan hidup 24 jam.
Strategi HMA momentum breakout memanfaatkan keuntungan unik dari Hull moving average untuk menangkap momentum pasar dengan akurat. Mekanisme penyaringan breakout ganda meningkatkan kualitas sinyal, dan stop profit dan stop loss dinamis melindungi pendapatan. Strategi ini mudah digunakan, efektif, dan merupakan alat perdagangan kuantitatif yang sangat praktis yang layak 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)