Strategi mengikut arah aliran berdasarkan purata bergerak Hull


Tarikh penciptaan: 2023-09-19 16:40:00 Akhirnya diubah suai: 2023-09-19 16:40:00
Salin: 1 Bilangan klik: 638
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini adalah berdasarkan pada Hull Moving Average yang dikemukakan oleh Alan Hull, yang merupakan strategi untuk mengikuti trend. Ia dapat mengurangkan kesan ketinggalan pergerakan rata-rata dan bertindak balas dengan lebih sensitif terhadap perubahan harga. Strategi ini menggunakan Hull Moving Average untuk menentukan arah trend dan menghantar isyarat perdagangan dengan syarat penapis tambahan.

Prinsip Strategi

  1. Hull Moving Average untuk kedua-dua kumpulan jangka pendek dan jangka panjang. Periode pendek menentukan arah perdagangan tertentu, dan jangka panjang menentukan arah trend besar.

  2. Apabila Hull MA pada kitaran pendek berputar, ia menilai bahawa trend berbalik. Ia disatukan dengan perdagangan bunyi penapis arah trend besar.

  3. Meningkatkan harga untuk menembusi Hull MA untuk memastikan kejayaan penembusan tersebut.

  4. Menambah syarat kadar perubahan harga untuk mengelakkan penembusan yang tidak diingini.

  5. Tetapkan keadaan hentikan dan hentikan, mengawal risiko.

Analisis kelebihan

Berbanding dengan purata bergerak biasa, strategi ini mempunyai kelebihan berikut:

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

  2. Struktur Hull MA ganda dapat menilai trend dalam dua dimensi masa yang besar dan kecil.

  3. Penembusan harga dan perubahan kadar syarat boleh menapis penembusan palsu dengan berkesan.

  4. Hentian kerugian dinamik boleh mengunci keuntungan dan mengawal risiko.

Analisis risiko

Strategi ini juga mempunyai risiko:

  1. Pengaturan parameter yang tidak betul mungkin terlepas perubahan trend harga.

  2. Salah persepsi mengenai trend utama boleh menyebabkan perdagangan berlawanan arah.

  3. Stop Loss yang ditetapkan terlalu lebar boleh menyebabkan kerugian yang lebih besar.

  4. Terlalu banyak transaksi meningkatkan kos transaksi dan risiko tergelincir.

Arah pengoptimuman

Ia boleh dioptimumkan dalam beberapa aspek:

  1. Mengoptimumkan kitaran Hull MA, mengimbangi sensitiviti dan kelancaran.

  2. Mengoptimumkan parameter Entry dan Exit untuk mencari nilai optimum.

  3. Uji kekuatan parameter pelbagai jenis untuk meningkatkan adaptasi strategi.

  4. Penunjuk kuantiti gabungan untuk mengelakkan risiko yang disebabkan oleh penyimpangan.

  5. Menambah syarat untuk meningkatkan kestabilan strategi.

ringkaskan

Secara keseluruhannya, strategi ini menggunakan kelajuan tindak balas Hull MA untuk menjejaki trend tepat pada masanya, dengan kebolehan keuntungan yang lebih kuat dengan risiko yang terkawal. Tetapi perlu berhati-hati dengan pengoptimuman parameter dan mencegah beberapa risiko sistematik yang lebih sukar dielakkan.

Kod sumber strategi
/*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)