Strategi Penjejakan Purata Pergerakan Dinamik


Tarikh penciptaan: 2023-12-04 15:38:09 Akhirnya diubah suai: 2023-12-04 15:38:09
Salin: 5 Bilangan klik: 699
1
fokus pada
1619
Pengikut

Strategi Penjejakan Purata Pergerakan Dinamik

Gambaran keseluruhan

Strategi ini menggunakan strategi yang dijelaskan oleh Larry Williams dalam buku beliau, Long Term Secret Short Term Trading, yang menggunakan dua purata bergerak 3 tempoh, satu mewakili tinggi dan satu lagi mewakili rendah. Apabila harga berada di bawah purata bergerak 3 tempoh rendah, kita mempunyai isyarat kedudukan panjang.

Prinsip Strategi

Logik teras strategi ini adalah mengira purata bergerak 3 fasa dengan titik rendah dan tinggi. Khususnya, ia menggunakan fungsi ta.ema untuk mengira purata bergerak indeks dengan titik tinggi dan rendah 3 bar terakhir untuk menghasilkan sokongan dan rintangan yang dinamik. Apabila harga jatuh di bawah titik rata-rata yang rendah, ini menunjukkan bahawa kita sedang berada dalam penurunan, jadi kita boleh melakukan lebih banyak; apabila harga kembali naik ke atas titik rata-rata yang tinggi, ini menunjukkan bahawa trend naik telah berakhir, kita akan melonggarkan kedudukan.

Analisis kelebihan

Kelebihan terbesar strategi ini adalah kesederhanaan dan dinamik. Berbanding dengan purata tinggi dan rendah dalam tempoh tertentu, strategi ini menggunakan purata bergerak jangka pendek yang dikira secara berturut-turut, yang lebih sensitif dan tepat pada masanya untuk menangkap perubahan harga. Ini membolehkan ia mengenal pasti titik jual beli dengan cepat, sehingga memasuki dan keluar dari pasaran.

Risiko dan penyelesaian

Risiko utama strategi ini adalah bahawa ia bertindak balas lambat terhadap peristiwa mengejut seperti peristiwa berita utama. Oleh kerana kitaran purata bergerak yang pendek, ia memerlukan masa untuk menyesuaikan kedudukan garis rata-rata apabila terdapat turun naik harga yang kuat. Ini boleh menyebabkan kerugian atau kehilangan peluang. Selain itu, terlalu sensitif juga boleh menyebabkan perdagangan yang salah. Untuk mengurangkan risiko ini, kita boleh memanjangkan jumlah kitaran rata-rata bergerak dengan sewajarnya, atau menambah syarat penapisan untuk mengelakkan isyarat yang salah.

Arah pengoptimuman

Strategi ini masih mempunyai banyak ruang untuk pengoptimuman. Pertama, kita boleh menggabungkan indikator lain seperti indikator goyah untuk penapisan, menjadikan isyarat lebih dipercayai. Kedua, kita juga boleh menambah logik stop-loss untuk mengawal risiko. Kedua, kita juga boleh menyesuaikan parameter purata bergerak mengikut keadaan pasaran yang dinamik, memanjangkan kitaran di pasaran yang sedang tren, memendekkan kitaran di pasaran goyah.

ringkaskan

Strategi ini secara keseluruhan sangat mudah dan praktikal, untuk membuat keputusan mengenai trend melalui garis rata-rata jangka pendek yang tinggi dan rendah. Kelebihannya adalah dinamik, pengiraan kecil, realiti tinggi, sesuai untuk perdagangan yang kerap. Tetapi ada juga masalah yang tidak sensitif terhadap tindak balas kejadian yang tidak disangka-sangka dan kadar kesilapan isyarat yang tinggi.

Kod sumber strategi
/*backtest
start: 2023-11-26 00:00:00
end: 2023-12-03 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(
     "Larry Williams 3 Period EMAs strategy",
     overlay=true,
     calc_on_every_tick=true,
     currency=currency.USD
     )

// Time range for backtesting
startDate = input.int(title="Start Date", defval=1, minval=1, maxval=31)
startMonth = input.int(title="Start Month", defval=1, minval=1, maxval=12)
startYear = input.int(title="Start Year", defval=2018, minval=1800, maxval=2100)

endDate = input.int(title="End Date", defval=31, minval=1, maxval=31)
endMonth = input.int(title="End Month", defval=12, minval=1, maxval=12)
endYear = input.int(title="End Year", defval=2041, minval=1800, maxval=2100)

inDateRange = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0)) and
     (time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0))

// EMA
period = 3

emaH = ta.ema(high, period)
emaL = ta.ema(low, period)

// PLOT:
// Draw the EMA lines on the chart
plot(series=emaH, color=color.green, linewidth=2)
plot(series=emaL, color=color.red, linewidth=2)

// Conditions
if(inDateRange and close < emaL)
    strategy.entry("Long", strategy.long, comment="Long")
if(close > emaH)
    strategy.close("Long", comment="Close Long")

// Uncomment to enable short entries
//if(inDateRange and close > emaH)                                    
//    strategy.entry("Short", strategy.short, comment="Short")    
//if(close < emaL)
//    strategy.close("Short", comment="Close Short")