Tren Mengikuti Strategi Rata-rata Bergerak

Penulis:ChaoZhang, Tanggal: 2024-02-29 14:00:35
Tag:

img

Gambaran umum

Strategi ini menghitung garis rata-rata bergerak saluran dan menetapkan posisi panjang atau pendek ketika harga menembus garis saluran untuk mengikuti tren harga saham.

Prinsip Strategi

Strategi ini pertama-tama menghitung rata-rata tinggi 20 hari sebagai rel atas saluran, rata-rata rendah 20 hari sebagai rel bawah saluran, dan menghitung garis tengah saluran. Garis tengah saluran mewakili tren harga rata-rata baru-baru ini. Ketika harga menembus garis tengah saluran ke atas, posisi panjang ditetapkan. Ketika harga menembus garis tengah saluran ke bawah, posisi pendek ditetapkan. Ikuti tren harga sampai harga jatuh kembali ke sisi berlawanan dari kisaran saluran, tutup posisi.

Analisis Keuntungan

  • Menggunakan saluran untuk melacak tren harga, menghindari dana yang terkunci di berbagai pasar;
  • Rel saluran membantu menentukan titik masuk dan keluar, sehingga mudah untuk mengontrol masuk;
  • Jangkauan saluran menyaring beberapa kebisingan dan meningkatkan kemungkinan keuntungan;
  • Parameter saluran dapat disesuaikan untuk menyesuaikan sensitivitas strategi;

Analisis Risiko

  • Penembusan garis tengah yang signifikan dapat diikuti oleh tes pullback dari garis tengah, sehingga terjebak;
  • Saham osilasi tidak cocok untuk strategi ini dan dapat menyebabkan perdagangan frekuensi tinggi;
  • Pengaturan parameter yang tidak benar juga dapat mempengaruhi kinerja strategi;

Arahan Optimasi

  • Mengoptimalkan parameter siklus saluran untuk menguji dampak dari parameter yang berbeda;
  • Tambahkan strategi profit taking dan stop loss untuk mengendalikan kerugian tunggal dan total;
  • Menggabungkan indikator lain sebagai penilaian tambahan untuk menghindari sinyal yang salah;
  • Mengambil posisi dalam batch untuk mengurangi kemungkinan terjebak selama tes pullback;

Ringkasan

Secara umum, strategi ini relatif sederhana dan langsung. Ini menilai tren harga saham melalui saluran harga dasar dan termasuk dalam jenis tren berikut. Keuntungannya adalah operasi yang mudah, penggunaan penuh peluang investasi yang dibawa oleh tren harga, dan menghindari kunci dana. Kelemahannya adalah pengaturan parameter yang tidak tepat dapat mempengaruhi kinerja dan ada risiko tes mundur tertentu. Melalui optimalisasi yang wajar, stabilitas strategi dapat ditingkatkan dan kinerja perdagangan nyata dapat ditingkatkan.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//future strategy
//strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2)
//stock strategy
strategy(title = "dc", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=.005)
//forex strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true)
//crypto strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true, commission_type=strategy.commission.percent,commission_value=.25,default_qty_value=20)


testStartYear = input(2000, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testEndYear = input(2019, "Backtest Start Year")
testEndMonth = input(3)
testEndDay = input(31, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)


testPeriod() =>
    true
    //time >= testPeriodStart  ? true : false

dcPeriod = 20

dcUpper = highest(close, dcPeriod)[1]
dcLower = lowest(close, dcPeriod)[1]
dcAverage = (dcUpper + dcLower) / 2

plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)

plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average")

strategy.entry("simpleBuy", strategy.long, when=close > dcAverage)
strategy.close("simpleBuy",when=close < dcLower)
    
strategy.entry("simpleSell", strategy.short,when=close < dcAverage)
strategy.close("simpleSell",when=close > dcAverage)
    



Lebih banyak