Strategi ini menggunakan indikator HMA (Hull Moving Average) dan analisis teknikal K-Line untuk membuat penilaian dinamik harga dan operasi penembusan.
Indeks HMA dicipta oleh Alan Hull pada tahun 2005 dengan tujuan untuk mencipta purata bergerak yang sensitif dan licin.
(1) Hitung DMA purata Double Smoothing pada separuh kitaran
(2) Mengira purata SMA untuk keseluruhan kitaran
(3) Hitung perbezaan DIFF antara DMA dan SMA
(4) Hitung SQRT ((bersiklus) purata bersiklus DIFF, untuk mendapatkan HMA
Strategi ini memberi isyarat kepada penembusan HMA ke atas dan ke bawah, digabungkan dengan penembusan bahagian entiti K-Line, menghasilkan isyarat beli dan jual. Pada masa yang sama, menetapkan prinsip berhenti dan berhenti, memantau keadaan keuntungan dan kerugian dalam masa nyata, untuk melindungi keuntungan.
Ciri ‘konvergensi’ HMA menjadikannya sangat sensitif terhadap perubahan harga, sambil mengekalkan kelancaran purata dan mengelakkan isyarat palsu.
Mekanisme penembusan berganda, meningkatkan kebolehpercayaan isyarat, mengelakkan tersandung.
Dinamika Hentikan Kerosakan dan Pelindung Keuntungan untuk mengawal risiko dan keuntungan.
Perdagangan automatik sepenuhnya, memudahkan operasi.
Apabila pasaran berubah-ubah, kemungkinan besar penutupan akan dipukul.
Lebih kerap transaksi, kos bayaran meningkat.
Penetapan parameter yang tidak betul boleh menghasilkan banyak isyarat palsu.
Optimumkan keadaan hentian kemusnahan dan set semula dengan wajar.
Menyesuaikan frekuensi transaksi untuk mengurangkan kesan caj.
Optimumkan ujian untuk kitaran HMA dan keadaan penembusan untuk menentukan parameter terbaik.
Menggunakan indikator trend untuk mengelakkan dagangan berlawanan arah.
Menambah penilaian automatik untuk menukar sumber data, menyesuaikan diri dengan lebih banyak keadaan pasaran.
Menambah algoritma pembelajaran mesin untuk mengoptimumkan parameter secara automatik.
Menambah penyebaran di pelayan, 24 jam kepastian di tempat kerja.
Strategi HMA Dinamika Pencahayaan menggunakan kelebihan unik Hull Moving Average untuk menangkap pergerakan pasaran dengan tepat. Mekanisme penapisan dua kali pencahayaan meningkatkan kualiti isyarat, dan penghentian hentian dinamik menjamin keberkesanan. Strategi ini mudah digunakan, kesannya jelas, dan merupakan alat perdagangan kuantitatif yang sangat praktikal yang patut digunakan.
/*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)