Strategi ini adalah strategi perdagangan jangka pendek berdasarkan penunjuk Hull Moving Average. Strategi ini menggunakan salib emas dan salib mati garis Hull Moving Average untuk menjana isyarat perdagangan, yang tergolong dalam strategi trend-mengikut.
Strategi ini terutamanya berdasarkan kepada penunjuk Hull Moving Average. Garis Hull Moving Average terdiri daripada dua purata bergerak. Pertama ia mengira garisan purata bergerak median nma harga, dengan tempoh hullperiod. Kemudian ia mengira garisan purata bergerak pantas n2ma, dengan tempoh separuh nma
Untuk menapis beberapa isyarat palsu, strategi juga memperkenalkan Hull Line (Hull_Line). Hull Line adalah hasil regresi linear perbezaan antara nma dan n2ma. Apabila terdapat perbezaan antara harga dan Hull Line, strategi akan melangkau isyarat perdagangan.
Secara khusus, peraturan strategi adalah seperti berikut:
Mengira nma, dengan tempoh hullperiod
Mengira n2ma, dengan tempoh separuh daripada tempoh nma
Mengira perbezaan antara n2ma dan nma
Moving average the diff with period sqrt ((hullperiod), dan mendapatkan Hull Line Hull_Line
Apabila harga melintasi di atas Hull Line, isyarat beli dihasilkan
Apabila harga melintasi di bawah Hull Line, isyarat jual dihasilkan
Jika terdapat perbezaan antara harga dan Hull Line, salurkan isyarat
Masuk dengan peratusan tertentu dari kedudukan, mengambil keluar stop loss
Kelebihan strategi ini termasuk:
Berdasarkan Hull Moving Average, ia boleh dengan cepat menangkap trend dan mengikuti trend
Gunakan Hull Line untuk menapis isyarat palsu dan meningkatkan kualiti isyarat
Nisbah risiko-balasan yang baik dan penggunaan, sesuai untuk perdagangan jangka pendek
Penyesuaian parameter yang fleksibel, dapat disesuaikan dengan persekitaran pasaran yang berbeza
Mengambil pembalikan stop loss, boleh menghentikan kerugian dalam masa dan kawalan risiko
Menggabungkan bermusim untuk mengelakkan risiko sistem dalam tempoh masa tertentu
Strategi ini juga mempunyai beberapa risiko:
Trend mengikut strategi, tidak boleh berdagang sepanjang hari
Kerugian yang lebih besar apabila trend berbalik
Kelewatan purata bergerak, tidak dapat menangkap titik perubahan tepat pada masanya
Frekuensi perdagangan yang tinggi membawa kepada kos perdagangan yang lebih tinggi
Tetapan parameter yang tidak sesuai boleh membawa kepada keuntungan yang lebih rendah di pasaran terikat julat
Untuk mengawal risiko ini, kita boleh mengambil langkah-langkah berikut:
Mengambil strategi stop loss martingale untuk mengawal kerugian tunggal
Mengoptimumkan parameter dan pengujian ketahanan dalam persekitaran pasaran yang berbeza
Gabungkan penunjuk penilaian trend untuk mengelakkan mengejar trend semasa pembalikan
Meningkatkan masa memegang untuk mengurangkan kekerapan dagangan
Strategi ini juga boleh dioptimumkan dalam aspek berikut:
Gabungkan penunjuk momentum untuk mencari titik permulaan trend untuk kemasukan yang lebih baik
Tambah model pembelajaran mesin untuk membantu menilai arah trend dan kekuatan
Mengambil tetapan parameter adaptif untuk menyesuaikan parameter berdasarkan dinamik pasaran masa nyata
Mengkonfigurasi sistem badan pelbagai jangka masa, dengan saiz kedudukan yang berbeza untuk jangka masa yang berbeza
Gabungkan penunjuk jumlah untuk mengelakkan pecah palsu dengan momentum yang tidak mencukupi
Tambah model saiz kedudukan berasaskan turun naik untuk menyesuaikan saiz kedudukan secara dinamik berdasarkan turun naik
Hull Moving Average Swing Trading Strategy adalah strategi trend berikut jangka pendek yang cekap secara keseluruhan. Ia menggunakan sistem Hull Moving Average untuk menentukan arah trend untuk tujuan mengikuti trend. Berbanding dengan sistem purata bergerak tunggal, ia mempunyai kualiti isyarat yang lebih tinggi dan fleksibiliti Parameter. Kelebihan strategi ini terletak pada dengan cepat menangkap perubahan trend dengan penurunan yang agak kecil. Kelemahannya adalah ketidakupayaan untuk mengatasi pembalikan trend.
/*backtest start: 2023-09-06 00:00:00 end: 2023-10-06 00:00:00 period: 6h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // Hull Moving Average Swing Trader by SEASIDE420 strategy("Hull Moving Average Swing Trader", shorttitle="HMA_Swing_Trader", default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0) hullperiod = input(title="HullMA Period", type=input.integer, defval=210, minval=1) price = input(open, type=input.source, title="Price data") FromMonth = input(defval=1, title="From Month", minval=1, maxval=12) FromDay = input(defval=1, title="From Day", minval=1, maxval=31) FromYear = input(defval=2020, title="From Year", minval=2017) ToMonth = input(defval=1, title="To Month", minval=1, maxval=12) ToDay = input(defval=1, title="To Day", minval=1, maxval=31) ToYear = input(defval=9999, title="To Year", minval=2017) start = timestamp(FromYear, FromMonth, FromDay, 00, 00) finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) window() => true n2ma = 2 * wma(price, round(hullperiod / 2)) nma = wma(price, hullperiod) diff = n2ma - nma sqn = round(sqrt(hullperiod)) n2ma1 = 2 * wma(price[1], round(hullperiod / 2)) nma1 = wma(price[1], hullperiod) diff1 = n2ma1 - nma1 n1 = wma(diff, sqn) n2 = wma(diff1, sqn) Hull_Line = n1 / n1 * n2 Hull_retracted = if n1 > n2 Hull_retracted = Hull_Line - 2 else Hull_retracted = Hull_Line + 2 c1 = Hull_retracted + n1 - price c2 = Hull_retracted - n2 + price c4 = n1 > n2 ? color.green : color.red c2p = plot(c2, color=color.black, linewidth=1) c3p = plot(price, color=color.black, linewidth=1) fill(c3p, c2p, color=c4, transp=75) //plot(cross(c1, c2) ? c1 : na, style=plot.style_circles, color=c4, linewidth=4) if price < c2 strategy.close("BUY", when=window()) if price > c2 strategy.close("SELL", when=window()) if price > c2 and price[1] > c1 strategy.entry("BUY", strategy.long, when=window()) if price < c1 and price[1] < c2 strategy.entry("SELL", strategy.short, when=window()) // /L'-, // ,'-. ` ```` / L '-, // . _,--dMMMM\ ` ` ` '`.. / '-, // : _,--, )MMMMMMMMM),. ` ,<> /_ '-,' // ; ___,--. \MM( `-' )M//MM\ ,',.; .-'* ; .' // | \MMMMMM) \MM\ ,dM//MMM/ ___ < ,; `. )`--' / // | \MM()M MMM)__ /MM(/MP' ___, \ \ ` `. `. /__, ,' // | MMMM/ MMMMMM( /MMMMP'__, \ | / `. `-,_\ / // | MM /MMM---' `--'_ \ |-' |/ `./ .\----.___ // | /MM' `--' __,- \"" |-' |_, `.__) . .F. )-. // | `--' \ \ |-' |_, _,-/ J . . . J-'-. `-., // | __ \`. | | | \ / _ |. . . . \ `-. F // | ___ / \ | `| ' __ \ | /-' F . . . . \ '` // | \ \ \ / | __ / \ | |,-' __,- J . . . . . \ // | | / |/ __,- \ ) \ / |_,- __,--' |. .__.----,' // | |/ ___ \ |'. |/ __,--' `.-;;;;;;;;;\ // | ___ \ \ | | ` __,--' /;;;;;;;;;;;;. // | \ \ |-'\ ' __,--' /;;;;;;;;;;;;;;\ // \ | | / | __,--' `--;;/ \;-'\ // \ | |/ __,--' / / \ \ // \ | __,--' / / \ \ // \|__,--' _,-;M-K, ,;-;\ // <;;;;;;;; '-;;;; // :D