HMA Momentum Strategy Terobosan

Penulis:ChaoZhang, Tarikh: 2024-01-04 15:34:52
Tag:

img

II. Ringkasan Strategi

Strategi ini menggunakan penunjuk HMA (Hull Moving Average) dan analisis teknikal K-line untuk merealisasikan penilaian momentum dan operasi terobosan pada harga.

III. Prinsip Strategi

  1. Prinsip Penunjuk HMA

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

  1. Strategi Perdagangan

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.

IV. Kelebihan Strategi

  1. Ciri konvergensi penunjuk HMA menjadikannya sangat sensitif terhadap perubahan harga sambil mengekalkan kelancaran purata bergerak untuk mengelakkan isyarat palsu.

  2. Mekanisme terobosan berganda meningkatkan kebolehpercayaan isyarat dan mengelakkan terperangkap.

  3. Stop loss dinamik dan perlindungan keuntungan mengoptimumkan risiko dan pulangan.

  4. Perdagangan automatik sepenuhnya memudahkan operasi.

V. Risiko Strategi

  1. Dalam turun naik pasaran yang ganas, kebarangkalian stop loss dipukul lebih besar.

  2. Frekuensi perdagangan yang tinggi meningkatkan kos komisen.

  3. Tetapan parameter yang tidak betul boleh menghasilkan banyak isyarat palsu.

Penyelesaian

  1. Mengoptimumkan syarat stop loss dan mengambil keuntungan dan menetapkan retracement yang munasabah.

  2. Sesuaikan kekerapan dagangan untuk mengurangkan kesan komisen.

  3. Uji dan optimumkan kitaran HMA dan keadaan terobosan untuk menentukan parameter optimum.

VI. Arahan Optimum Strategi

  1. Sertakan penunjuk penilaian trend untuk mengelakkan perdagangan countertrend.

  2. Meningkatkan penilaian automatik pertukaran sumber data untuk menyesuaikan diri dengan lebih banyak persekitaran pasaran.

  3. Meningkatkan algoritma pembelajaran mesin untuk mencapai pengoptimuman parameter automatik.

  4. Menghantar pada pelayan untuk mencapai 24 jam perdagangan hidup pengesahan.

VII. Ringkasan

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)

Lebih lanjut