Strategi Trend Perpindahan HullMA Purata Pergerakan Berganda


Tarikh penciptaan: 2024-02-26 11:21:45 Akhirnya diubah suai: 2024-02-26 11:21:45
Salin: 0 Bilangan klik: 588
1
fokus pada
1617
Pengikut

Strategi Trend Perpindahan HullMA Purata Pergerakan Berganda

Gambaran keseluruhan

HullMA adalah strategi trend-following yang berdasarkan pada persilangan dua purata bergerak. Ia menggunakan purata bergerak bertimbangan WMA untuk membina sistem purata bergerak berganda dan menghasilkan isyarat dagangan apabila mereka bersilang.

Prinsip Strategi

HullMA menggunakan tiga garis WMA dengan tempoh yang berbeza, termasuk wma1, wma2 dan wma3. Wma2 dan wma3 membina sistem purata bergerak ganda, memberi isyarat bullish apabila wma3 melintasi wma2 dan isyarat bearish apabila wma2 melintasi wma3.

Strategi ini menggunakan Hull Moving Average untuk meningkatkan penilaian isyarat tambahan. Khususnya, ia mengira perbezaan n2ma dan nma dua kali ganda daripada purata bergerak bertimbangan 2 hari dan mengukur perubahan dalam nilai perbezaan. Isyarat bullish hanya disahkan apabila perbezaan naik, dan isyarat bearish disahkan apabila perbezaan turun.

Strategi ini digabungkan dengan penilaian harga. Hanya apabila harga lebih tinggi daripada harga hari sebelumnya, isyarat bullish akan dipastikan untuk menghasilkan lebih banyak pesanan.

Analisis kelebihan

Strategi tren persilangan HullMA berganda yang menggabungkan persilangan dua rata-rata bergerak dan penilaian harga dapat menghapuskan isyarat palsu dengan berkesan, yang merupakan kelebihan utamanya. Selain itu, strategi ini menggunakan purata bergerak tiga kitaran yang berbeza untuk menangkap pelbagai tahap trend, yang dapat memasuki pasaran pada awal trend.

Analisis risiko

HullMA cross trend strategi sebagai satu strategi trend-following, mudah untuk menghasilkan lebih banyak jumlah dagangan dan kehilangan titik slippage dalam keadaan menyusun. Di samping itu, dua sistem cross-sistem moving averages adalah terlalu sensitif, dan mungkin menghantar isyarat yang salah di sideways.

Arah pengoptimuman

HullMA cross trend strategi boleh dioptimumkan dari beberapa aspek:

  1. Mengoptimumkan parameter purata bergerak untuk mencari kombinasi parameter yang optimum

  2. Meningkatkan penapis seperti jumlah atau kadar turun naik untuk menghapuskan penembusan palsu

  3. Meningkatkan kualiti isyarat dengan menggunakan petunjuk lain sebagai penilaian tambahan

  4. Parameter purata bergerak optimasi dinamik

ringkaskan

HullMA crossover adalah strategi yang stabil dan boleh dipercayai. Ia menggabungkan crossover dan harga untuk menghasilkan isyarat berkualiti tinggi. Dengan pengoptimuman parameter dan penapis tambahan, isyarat yang salah dapat dikurangkan lebih jauh, yang akan memberikan prestasi strategi yang lebih baik.

Kod sumber strategi
/*backtest
start: 2023-02-25 00:00:00
end: 2024-02-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("ZendicatoR", overlay=true)
dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001)
keh=input(title="Double HullMA Cross",defval=7, minval=1)
che1=input(title="MA 1",defval=34,minval=1)
che2=input(title="MA 2",defval=144,minval=1)
che3=input(title="MA 3",defval=377,minval=1)
amnt=input(title="TP ($)",defval=4200,minval=1)
wma1=wma(close,che1)
wma2=wma(close,che2)
wma3=wma(close,che3)
tms=10000000000000
A=request.security(syminfo.tickerid, 'D', close)*tms
B=request.security(syminfo.tickerid, 'D', close[1])*tms
C=A>B?green:red
D=wma2>wma3?green:red
plot(wma1,style=line,color=C,linewidth=4)
p1=plot(wma2,style=line,color=D)
p2=plot(wma3,style=line,color=D)
fill(p1, p2, color=D, transp=75)
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma,sqn=round(sqrt(keh))
n2ma1=2*wma(close[2],round(keh/2))
nma1=wma(close[2],keh)
diff1=n2ma1-nma1,sqn1=round(sqrt(keh))
n1=wma(diff,sqn)*tms
n2=wma(diff1,sqn)*tms
closelong = A*tms<B*tms and n2*tms>n1*tms and strategy.openprofit>amnt
if (closelong)
    strategy.close("Long")
closeshort = A*tms>B*tms and n1*tms>n2*tms and strategy.openprofit>amnt
if (closeshort)
    strategy.close("Short") 
longCondition = A*tms>B*tms and n1*tms>n2*tms
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = A*tms<B*tms and n1*tms<n2*tms
if (shortCondition)
    strategy.entry("Short",strategy.short)