
Strategi ini adalah berdasarkan pada Hull Moving Average, yang mengira Hull MA pada waktu yang berlainan, dan membandingkan pergerakan Hull MA pada waktu yang berlainan untuk mencari perubahan trend. Ia menghasilkan isyarat beli apabila Hull MA berkala pendek melintasi Hull MA berkala panjang; ia menghasilkan isyarat jual apabila Hull MA berkala pendek melintasi Hull MA berkala panjang.
Parameter input: Hull MA Period, HMA2 Resolution2, HMA3 Resolution3
Hull MA HMA pada garis K semasa
Hull MA HMA2 dikira pada garis masa Resolution 2
Hull MA HMA3 dikira pada garis masa Resolution3
Bandingkan hubungan saiz HMA, HMA2, dan HMA3
Apabila HMA>HMA2>HMA3, ia menghasilkan isyarat beli
Apabila HMA
Nilai Hull MA dan isyarat pada garisan masa yang berbeza dipaparkan di bahagian atas kiri antara muka
Menggunakan warna untuk membezakan keadaan turun naik
Penggunaan pelbagai garis masa boleh menyaring penembusan palsu dan mengelakkan kebocoran.
Parameter time-axis boleh disesuaikan untuk tempoh yang berbeza.
Tanda pada masa nyata, intuitif.
Menggambarkan pergerakan Hull MA untuk menilai trend semasa.
Pengaturan parameter yang tidak betul boleh menyebabkan perdagangan yang terlalu kerap.
Hull MA kitaran besar mempunyai keterbelakangan dan mungkin terlepas titik perubahan trend.
Ini adalah strategi untuk menghasilkan isyarat palsu apabila lembu dan beruang bertukar.
Strategi jenis penembusan, mudah untuk dirampas oleh penembusan palsu
Tidak mengambil kira bayaran urus niaga, ia akan menjejaskan pendapatan sebenar.
Risiko boleh dikurangkan dengan mengoptimumkan parameter, menggabungkan indikator lain sebagai penapis, dan melepaskan garis penangguhan yang sesuai.
Optimumkan parameter kitaran Hull MA untuk menyesuaikan diri dengan kitaran dan kadar turun naik yang berbeza.
Meningkatkan penilaian penunjuk lalu lintas untuk mengelakkan penembusan palsu.
Menambah indikator gegaran untuk menentukan kekuatan trend.
Menambah model pembelajaran mesin untuk menentukan masa untuk membeli atau menjual.
Ia juga boleh digunakan untuk mengkaji trend dalam pasaran.
Menyesuaikan strategi hentikan kerugian dan mengoptimumkan pengurusan risiko
Syarat jual beli tersuai, gabungan isyarat penunjuk lain.
Menambah strategi perdagangan berdasarkan saluran harga dan segmen harga.
Strategi ini didasarkan pada perbandingan Hull MA dengan pergerakan rata-rata pada garis masa yang berbeza, untuk menilai arah trend semasa, dan menghasilkan isyarat membeli dan menjual apabila trend bertukar. Berbanding dengan garis rata-rata tunggal, Hull MA berjangka masa yang banyak dapat menyaring penembusan palsu dengan berkesan. Tetapi strategi ini juga mempunyai masalah seperti penetapan parameter, penghakiman trend. Dengan mengintegrasikan lebih banyak indikator, pengoptimuman penetapan parameter, dan meningkatkan strategi stop loss, strategi ini dapat meningkatkan Profitebility 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)