Strategi dagangan purata pergerakan Hull garis masa silang


Tarikh penciptaan: 2023-11-07 16:54:14 Akhirnya diubah suai: 2023-11-07 16:54:14
Salin: 0 Bilangan klik: 697
1
fokus pada
1617
Pengikut

Strategi dagangan purata pergerakan Hull garis masa silang

Gambaran keseluruhan

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.

Prinsip Strategi

  1. Parameter input: Hull MA Period, HMA2 Resolution2, HMA3 Resolution3

  2. Hull MA HMA pada garis K semasa

  3. Hull MA HMA2 dikira pada garis masa Resolution 2

  4. Hull MA HMA3 dikira pada garis masa Resolution3

  5. Bandingkan hubungan saiz HMA, HMA2, dan HMA3

  6. Apabila HMA>HMA2>HMA3, ia menghasilkan isyarat beli

  7. Apabila HMA

  8. Nilai Hull MA dan isyarat pada garisan masa yang berbeza dipaparkan di bahagian atas kiri antara muka

  9. Menggunakan warna untuk membezakan keadaan turun naik

Analisis kelebihan

  1. Penggunaan pelbagai garis masa boleh menyaring penembusan palsu dan mengelakkan kebocoran.

  2. Parameter time-axis boleh disesuaikan untuk tempoh yang berbeza.

  3. Tanda pada masa nyata, intuitif.

  4. Menggambarkan pergerakan Hull MA untuk menilai trend semasa.

Analisis risiko

  1. Pengaturan parameter yang tidak betul boleh menyebabkan perdagangan yang terlalu kerap.

  2. Hull MA kitaran besar mempunyai keterbelakangan dan mungkin terlepas titik perubahan trend.

  3. Ini adalah strategi untuk menghasilkan isyarat palsu apabila lembu dan beruang bertukar.

  4. Strategi jenis penembusan, mudah untuk dirampas oleh penembusan palsu

  5. 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.

Arah pengoptimuman

  1. Optimumkan parameter kitaran Hull MA untuk menyesuaikan diri dengan kitaran dan kadar turun naik yang berbeza.

  2. Meningkatkan penilaian penunjuk lalu lintas untuk mengelakkan penembusan palsu.

  3. Menambah indikator gegaran untuk menentukan kekuatan trend.

  4. Menambah model pembelajaran mesin untuk menentukan masa untuk membeli atau menjual.

  5. Ia juga boleh digunakan untuk mengkaji trend dalam pasaran.

  6. Menyesuaikan strategi hentikan kerugian dan mengoptimumkan pengurusan risiko

  7. Syarat jual beli tersuai, gabungan isyarat penunjuk lain.

  8. Menambah strategi perdagangan berdasarkan saluran harga dan segmen harga.

ringkaskan

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.

Kod sumber strategi
/*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)