Strategi ini adalah strategi perdagangan jangka pendek yang didasarkan pada indikator Hull Moving Average. Strategi ini menggunakan salib emas dan salib mati dari garis Hull Moving Average untuk menghasilkan sinyal perdagangan, yang merupakan bagian dari strategi trend-following.
Strategi ini terutama didasarkan pada indikator Hull Moving Average. Garis Hull Moving Average terdiri dari dua rata-rata bergerak. Pertama menghitung garis rata-rata bergerak median nma dari harga, dengan periode hullperiod. Kemudian menghitung garis rata-rata bergerak cepat n2ma, dengan periode setengah dari nma
Untuk menyaring beberapa sinyal palsu, strategi juga memperkenalkan Hull Line (Hull_Line). Hull Line adalah hasil regresi linier dari perbedaan antara nma dan n2ma. Ketika ada divergensi antara harga dan Hull Line, strategi akan melewatkan sinyal perdagangan.
Secara khusus, aturan strategi adalah sebagai berikut:
Menghitung nma, dengan periode hullperiod
Hitung n2ma, dengan periode setengah dari periode nma
Hitung perbedaan diferensi antara n2ma dan nma
Moving average the diff with period sqrt ((hullperiod), mendapatkan and get the Hull Line Hull_Line
Ketika harga melintasi di atas Hull Line, sinyal beli dihasilkan
Ketika harga melintasi di bawah Hull Line, sinyal jual dihasilkan
Jika ada perbedaan antara harga dan Hull Line, skip sinyal
Masuk dengan persentase tertentu dari posisi, mengadopsi stop loss keluar
Keuntungan dari strategi ini meliputi:
Berdasarkan Hull Moving Average, dapat dengan cepat menangkap tren dan mengikuti tren
Gunakan Hull Line untuk menyaring sinyal palsu dan meningkatkan kualitas sinyal
Rasio risiko-manfaat yang baik dan penarikan, cocok untuk perdagangan jangka pendek
Pengaturan parameter yang fleksibel, dapat disesuaikan dengan lingkungan pasar yang berbeda
Mengadopsi pembalikan stop loss, dapat menghentikan kerugian dalam waktu dan risiko kontrol
Menggabungkan musim untuk menghindari risiko sistemik dalam periode waktu tertentu
Strategi ini juga memiliki beberapa risiko:
Tren mengikuti strategi, tidak dapat diperdagangkan sepanjang hari
Kerugian yang lebih besar ketika tren berbalik
Ketinggalan rata-rata bergerak, tidak dapat menangkap titik balik tepat waktu
Frekuensi perdagangan yang tinggi mengarah pada biaya perdagangan yang lebih tinggi
Pengaturan parameter yang tidak tepat dapat menyebabkan penurunan profitabilitas di pasar yang terikat rentang
Untuk mengendalikan risiko ini, kita dapat mengambil langkah-langkah berikut:
Mengadopsi strategi stop loss martingale untuk mengendalikan kerugian tunggal
Mengoptimalkan parameter dan pengujian ketahanan dalam lingkungan pasar yang berbeda
Menggabungkan indikator penilaian tren untuk menghindari mengejar tren selama pembalikan
Meningkatkan waktu penyimpanan untuk mengurangi frekuensi perdagangan
Strategi ini juga dapat dioptimalkan dalam aspek berikut:
Gabungkan indikator momentum untuk menemukan titik awal tren untuk masuk yang lebih baik
Menambahkan model pembelajaran mesin untuk membantu menilai arah tren dan kekuatan
Mengadopsi pengaturan parameter adaptif untuk menyesuaikan parameter berdasarkan dinamika pasar real-time
Mengkonfigurasi sistem Hull multi-timeframe, dengan ukuran posisi yang berbeda untuk jangka waktu yang berbeda
Menggabungkan indikator volume untuk menghindari pecah palsu dengan momentum yang tidak cukup
Menambahkan model ukuran posisi berbasis volatilitas untuk menyesuaikan ukuran posisi secara dinamis berdasarkan volatilitas
Hull Moving Average Swing Trading Strategy adalah strategi yang efisien untuk mengikuti tren jangka pendek secara keseluruhan. Sistem ini menggunakan Hull Moving Average untuk menentukan arah tren untuk tujuan mengikuti tren. Dibandingkan dengan sistem moving average tunggal, memiliki kualitas sinyal yang lebih tinggi dan fleksibilitas Parameter. Keuntungan dari strategi ini terletak pada cepat menangkap perubahan tren dengan penurunan yang relatif kecil. Kelemahannya adalah ketidakmampuan untuk mengatasi pembalikan tren.
/*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