Strategi ini adalah berdasarkan kepada penunjuk Hull Moving Average, mengira Hull MA pada jangka masa yang berbeza dan membandingkan trend Hull MA merentasi jangka masa untuk mengenal pasti perubahan trend.
Parameter input: Tempoh MA Hull Tempoh, kerangka masa HMA2 Resolution2, HMA3 kerangka masa Resolution3
Mengira bar semasa
Mengira nilai Hull MA HMA2 pada jangka masa Resolution2
Mengira nilai Hull MA HMA3 pada jangka masa Resolution3
Bandingkan hubungan besar antara HMA, HMA2, HMA3
Menghasilkan isyarat beli apabila HMA>HMA2>HMA3
Menghasilkan isyarat jual apabila HMA
Tampilkan nilai dan isyarat Hull MA pada jangka masa yang berbeza di bahagian kiri atas carta
Gunakan warna untuk membezakan aliran naik dan turun
Menggunakan pelbagai kerangka masa boleh menapis pelarian palsu dan mengelakkan perangkap.
Parameter jangka masa yang boleh disesuaikan, dapat disesuaikan dengan tempoh dan turun naik yang berbeza.
Penampilan isyarat masa nyata, operasi intuitif.
Tren MA Hull yang dilihat membantu menentukan trend semasa.
Tetapan parameter yang tidak betul boleh menyebabkan perdagangan berlebihan.
Tempoh masa yang lebih panjang Hull MA mempunyai kesan kelewatan, mungkin terlepas titik perubahan trend.
Mungkin menghasilkan isyarat palsu di sekitar peralihan lembu-bull.
Strategi melarikan diri cenderung untuk terperangkap oleh pelarian palsu.
Komisen dagangan tidak dipertimbangkan yang memberi kesan kepada keuntungan sebenar.
Risiko boleh dikurangkan dengan mengoptimumkan parameter, menggabungkan penunjuk lain untuk penapisan, dan membenarkan kerugian berhenti yang lebih luas.
Mengoptimumkan tempoh Hull MA yang dapat disesuaikan dengan tempoh dan turun naik yang berbeza.
Tambah penunjuk kelantangan untuk mengelakkan gangguan palsu.
Tambah pengayun untuk menentukan kekuatan trend.
Memasukkan model pembelajaran mesin untuk masa beli / jual.
Gabungkan penunjuk sentimen untuk mengesan hype pasaran.
Sesuaikan strategi stop loss untuk pengurusan risiko yang lebih baik.
Sesuaikan keadaan beli/jual dengan isyarat penunjuk lain.
Tambah saluran harga atau strategi perdagangan berdasarkan gelombang.
Strategi ini menggunakan Hull MA pelbagai jangka masa untuk menentukan arah trend dengan membandingkan cerun purata bergerak di seluruh jangka masa dan menghasilkan isyarat pada pembalikan trend. Multi-timeframe Hull MA lebih berkesan dalam menapis pecah palsu daripada MA tunggal. Tetapi strategi ini juga mempunyai batasan dalam penyesuaian parameter, penentuan trend dll. Mengintegrasikan lebih banyak penunjuk, mengoptimumkan parameter, meningkatkan stop loss dapat meningkatkan keuntungan dan mengawal 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)