Strategi ini didasarkan pada indikator Hull Moving Average, menghitung Hull MA pada kerangka waktu yang berbeda dan membandingkan tren Hull MA di seluruh kerangka waktu untuk mengidentifikasi perubahan tren.
Parameter input: periode Hull MA Periode, kerangka waktu HMA2 Resolution2, kerangka waktu HMA3 Resolution3
Menghitung nilai HMA Hull MA bar
Menghitung nilai Hull MA HMA2 pada kerangka waktu Resolution2
Menghitung nilai Hull MA HMA3 pada kerangka waktu Resolution3
Bandingkan hubungan magnitudo antara HMA, HMA2, HMA3
Membuat sinyal beli ketika HMA>HMA2>HMA3
Menghasilkan sinyal jual ketika HMA
Tampilkan Hull MA nilai dan sinyal pada kerangka waktu yang berbeda di atas kiri grafik
Gunakan warna untuk membedakan tren naik dan turun
Menggunakan beberapa kerangka waktu dapat menyaring kebocoran palsu dan menghindari perangkap.
Parameter kerangka waktu yang dapat disesuaikan, dapat disesuaikan dengan periode dan volatilitas yang berbeda.
Tampilan sinyal real-time, operasi intuitif.
Tren Hull MA yang ditampilkan membantu menentukan tren saat ini.
Pengaturan parameter yang tidak tepat dapat menyebabkan overtrading.
Kerangka waktu yang lebih panjang Hull MA memiliki efek keterlambatan, mungkin melewatkan titik balik tren.
Mungkin menghasilkan sinyal palsu di sekitar transisi bull-bear.
Strategi breakout cenderung terjebak oleh breakout palsu.
Komisi perdagangan tidak dipertimbangkan yang berdampak pada keuntungan aktual.
Risiko dapat dikurangi dengan mengoptimalkan parameter, menggabungkan indikator lain untuk penyaringan, dan memungkinkan stop loss yang lebih luas.
Mengoptimalkan periode Hull MA yang dapat disesuaikan dengan periode dan volatilitas yang berbeda.
Tambahkan indikator volume untuk menghindari kebocoran palsu.
Tambahkan osilator untuk menentukan kekuatan tren.
Mengintegrasikan model pembelajaran mesin untuk waktu pembelian/penjualan.
Gabungkan indikator sentimen untuk mendeteksi hype pasar.
Sesuaikan strategi stop loss untuk manajemen risiko yang lebih baik.
Sesuaikan kondisi pembelian/penjualan dengan sinyal indikator lainnya.
Tambahkan saluran harga atau strategi perdagangan berbasis gelombang.
Strategi ini menggunakan multi-timeframe Hull MA untuk menentukan arah tren dengan membandingkan kemiringan rata-rata bergerak di seluruh jangka waktu dan menghasilkan sinyal pada pembalikan tren. Multi-timeframe Hull MA lebih efektif dalam menyaring breakout palsu daripada MA tunggal. Tetapi strategi ini juga memiliki keterbatasan dalam penyesuaian parameter, penentuan tren dll. Mengintegrasikan lebih banyak indikator, mengoptimalkan parameter, meningkatkan stop loss dapat meningkatkan profitabilitas dan mengendalikan risiko.
/*backtest start: 2023-10-07 00:00:00 end: 2023-11-06 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // strategy("wtfBUYorSELLffs",overlay=true,currency="USD",initial_capital=100000,default_qty_type=strategy.percent_of_equity,default_qty_value=100,commission_type=strategy.commission.percent,commission_value=0.1) Period=input(title="Hull MA Period",type=input.integer,defval=6,minval=1) Resolution2=input(title="HMA2 Resolution", type=input.resolution,defval="60") Resolution3=input(title="HMA3 Resolution", type=input.resolution,defval="240") Price=input(title="Source of Price",type=input.source,defval=open) xOffset = input(40, title="Panel offset (X-Axis)") yOffset = input(0, title="Panel offset (y-Axis)") lightgray = #D3D3D3FF pnlTextColor = color.silver pnlColor = color.black HMA = hma(Price,Period) HMA2 = security(syminfo.tickerid, Resolution2, HMA,barmerge.gaps_off,barmerge.lookahead_off) HMA3 = security(syminfo.tickerid, Resolution3, HMA,barmerge.gaps_off,barmerge.lookahead_off) HUP = HMA > HMA[1] H1UP = security(syminfo.tickerid, Resolution2, HUP,barmerge.gaps_off,barmerge.lookahead_off) H2UP = security(syminfo.tickerid, Resolution3, HUP,barmerge.gaps_off,barmerge.lookahead_off) int barSize = timeframe.isdaily ? timeframe.multiplier*86400000 : timeframe.isseconds? timeframe.multiplier*1000 : timeframe.isminutes? timeframe.multiplier*60000 : (time[0]-time[1]) int lapos_x = timenow + barSize*xOffset float lapos_y = highest(20) + yOffset*syminfo.mintick * syminfo.pointvalue f_draw_infopanel(_x, _y, _line, _text)=> _rep_text = "" for _l = 0 to _line _rep_text := _rep_text + "\n" _rep_text := _rep_text + _text // var label _la = na // label.delete(_la) // _la := label.new( // x=_x, y=_y, // text=_rep_text, xloc=xloc.bar_time, yloc=yloc.price, // color=pnlColor, style=label.style_labelup, textcolor=pnlTextColor, size=size.normal) // f_draw_infopanel(lapos_x, lapos_y, 8, "╚═══════════════════════╝") f_draw_infopanel(lapos_x, lapos_y, 6, "HMA3 on TF " + Resolution3 + " = " + tostring(HMA3,"#.####") + (H2UP ? " BUY" : " SELL")) f_draw_infopanel(lapos_x, lapos_y, 4, "HMA2 on TF " + Resolution2 + " = " + tostring(HMA2,"#.####") + (H1UP ? " BUY" : " SELL")) f_draw_infopanel(lapos_x, lapos_y, 2, "HMA1 on TF " + timeframe.period + " = " + tostring(HMA,"#.####") + (HUP ? " BUY" : " SELL")) f_draw_infopanel(lapos_x, lapos_y, 0, "╔═════════ HMA(" + tostring(Period,"#") +") ════════╗") change_color=HMA>HMA3?color.green:color.red change_color2=HMA2>HMA3?color.lime:color.yellow plot1=plot(HMA3,color=change_color2,title="3 Hull MA Line",linewidth=2,transp=75) plot2=plot(HMA2,color=change_color,title="2 Hull MA Line",linewidth=2,transp=75) plot3=plot(HMA,color=color.white,title="Hull MA Line",linewidth=2,transp=75) fill(plot1,plot3,color=change_color,transp=90) fill(plot2,plot3,color=change_color2,transp=75) if (H2UP and H1UP and HUP) strategy.entry("BUY",strategy.long) if (not H2UP and not H1UP and not HUP) strategy.entry("SELL",strategy.short)