Hull Moving Average Trend Mengikut Strategi

Penulis:ChaoZhang, Tarikh: 2023-09-19 16:40:00
Tag:

Ringkasan

Strategi ini berdasarkan kepada penunjuk Hull Moving Average yang dicipta oleh Alan Hull, yang tergolong dalam strategi trend berikut. Hull MA boleh mengurangkan lag purata bergerak dan bertindak balas terhadap perubahan harga dengan lebih cepat. Strategi ini menggunakan Hull MA untuk menentukan arah trend dan penapis tambahan untuk menjana isyarat perdagangan.

Prinsip Strategi

  1. Mengira jangka pendek dan jangka panjang Hull MA. jangka pendek untuk arah perdagangan tertentu, jangka panjang untuk trend keseluruhan.

  2. Apabila tempoh pendek Hull MAs menyeberang, menentukan pembalikan trend. penapis dengan arah trend jangka panjang.

  3. Tambah harga penembusan melalui keadaan Hull MA untuk memastikan penembusan berjaya.

  4. Tambah penapis kadar perubahan harga untuk mengelakkan kemasukan pecah yang tidak diingini.

  5. Tetapkan stop loss dan ambil keuntungan untuk mengawal risiko.

Analisis Kelebihan

Berbanding dengan purata bergerak mudah, kelebihan strategi ini termasuk:

  1. Hull MA bertindak balas terhadap perubahan harga lebih cepat, mampu menangkap perubahan trend tepat pada masanya.

  2. Struktur MA Hull Dual boleh menentukan trend pada kedua-dua jangka masa yang panjang dan pendek.

  3. Penapis harga dan penapis kadar perubahan membantu mengelakkan penembusan palsu.

  4. Stop loss dinamik dan mengambil keuntungan mengunci keuntungan dan mengawal risiko.

Analisis Risiko

Risiko strategi ini:

  1. Tetapan parameter yang tidak betul boleh terlepas perubahan trend harga.

  2. Penghakiman trend keseluruhan yang salah boleh menyebabkan perdagangan kontra-trend.

  3. Stop loss yang ditetapkan terlalu luas boleh menyebabkan kerugian besar.

  4. Perdagangan yang terlalu kerap meningkatkan kos transaksi dan risiko tergelincir.

Arahan pengoptimuman

Ia boleh dioptimumkan dalam aspek berikut:

  1. Mengoptimumkan tempoh Hull MA untuk mengimbangi kepekaan dan kelancaran.

  2. Mengoptimumkan parameter masuk dan keluar untuk mencari nilai optimum.

  3. Uji ketahanan parameter di instrument yang berbeza untuk meningkatkan kebolehsesuaian.

  4. Menggabungkan jumlah untuk mengelakkan risiko perbezaan.

  5. Tambah keadaan untuk meningkatkan kestabilan.

Ringkasan

Secara keseluruhannya, strategi ini memanfaatkan daya tanggap Hull MA untuk mengikuti trend tepat pada masanya, dan mempunyai keuntungan yang kuat di bawah kawalan risiko.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-12 22:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//SeaSide420
strategy("SS420FX", 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)
q=input(title="HullMA Short",defval=14)
z=input(title="HullMA Long",defval=14)
dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001)
SL = input(defval=-50000.00, title="Stop Loss in $", type=float, step=1)
TP = input(defval=100000.00, title="Target Point in $", type=float, step=1)
ot=1
n2ma=2*wma(close,round(q/2))
nma=wma(close,q)
diff=n2ma-nma
sqn=round(sqrt(q))
n2ma1=2*wma(close[1],round(q/2))
nma1=wma(close[1], q)
diff1=n2ma1-nma1
sqn1=round(sqrt(q))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
z2ma=2*wma(close[11],round(z/2))
zma=wma(close[11],z)
ziff=n2ma-nma
zqn=round(sqrt(z))
z2ma1=2*wma(close[12],round(z/2))
zma1=wma(close[12], z)
ziff1=n2ma1-nma1
zqn1=round(sqrt(z))
z1=wma(diff,sqn)
z2=wma(diff1,sqn)
z1e=z1>z2?green:black
z2e=z1>z2?black:red
z3e=z1>z2?green:red
n1e=plot(z1, title="HMA1", color=z1e, linewidth=2, offset=2)
n2e=plot(z2, title="HMA2", color=z2e, linewidth=2, offset=2)
fill(n1e, n2e, color=z3e, transp=80)
confidence=(security(syminfo.tickerid, 'D', close)-security(syminfo.tickerid, 'D', close[1]))/security(syminfo.tickerid, 'D', close[1])
closelong = n1<n2 and close<n2 and confidence<dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closelong)
    strategy.close("Long")
closeshort = n1>n2 and close>n2 and confidence>dt or strategy.openprofit<SL or strategy.openprofit>TP
if (closeshort)
    strategy.close("Short")
longCondition = n1>n2 and z1>z2 and strategy.opentrades<ot and confidence>dt and close>n1
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and z1<z2 and strategy.opentrades<ot and confidence<dt and close<n1 
if (shortCondition)
    strategy.entry("Short",strategy.short)

Lebih lanjut