Strategi Mengikuti Tren Crossover Rata-rata Bergerak Ganda


Tanggal Pembuatan: 2023-09-28 11:52:16 Akhirnya memodifikasi: 2023-09-28 11:52:16
menyalin: 0 Jumlah klik: 646
1
fokus pada
1617
Pengikut

Ringkasan

Strategi ini menggunakan prinsip silang dua rata-rata, yang dikombinasikan dengan indikator pelacakan tren, untuk mencapai penilaian dan pelacakan tren. Gagasan utamanya adalah melakukan lebih banyak ketika melewati rata-rata jangka panjang di atas rata-rata jangka pendek, dan kosong ketika melewati rata-rata jangka panjang di bawah rata-rata jangka pendek.

Prinsip Strategi

Strategi ini terutama terdiri dari dua sistem crossover linear dan sistem pelacakan tren.

Sistem persimpangan dua baris yang sama terdiri dari EMA1 dan EMA2. Di mana EMA1 secara default adalah baris ke-10, dan EMA2 secara default adalah baris ke-20. Sinyal beli dihasilkan saat melewati garis lambat di atas baris cepat dan sinyal jual dihasilkan saat melewati garis lambat di bawah baris cepat.

Tambahkan EMA100 untuk menentukan arah tren secara keseluruhan. Hanya ketika harga sedang dalam tren naik (harga di atas rata-rata 100 hari) dan melewati garis lambat di garis cepat akan menghasilkan sinyal beli. Hanya ketika harga sedang dalam tren turun (harga di bawah rata-rata 100 hari) dan melewati garis lambat di bawah garis cepat akan menghasilkan sinyal jual.

Selain itu, di K-Line ditandai dengan panah jual beli untuk menampilkan sinyal perdagangan secara visual.

Sistem pelacakan tren menggunakan garis matahari dalam hari dan dalam siklus untuk mengkonfirmasi kembali arah tren. Penghakiman menggunakan garis rata-rata Heikin-Ashi dalam 5 menit dan 60 menit dalam hari, dan garis rata-rata 8 dan 12 hari dalam siklus.

Sinyal perdagangan yang sebenarnya hanya akan muncul jika penilaian dalam hari dan dalam periode konsisten. Ini dapat lebih memfilter kebisingan dari sebagian besar arah tren non-dominan.

Analisis Keunggulan

Keuntungan terbesar dari strategi ini adalah penggabungan trend tracking dan crossover linear, yang secara efektif dapat menyaring sinyal palsu dan mengendalikan penarikan dalam batas yang dapat diterima.

Secara khusus, keuntungan dari sistem crossover adalah sebagai berikut:

  1. Operasi sederhana, prinsipnya mudah dipahami, cocok untuk pemula;

  2. Operasi yang baik, menghindari yang buruk.

  3. Parameter fastline dan slowline dapat disesuaikan, dapat disesuaikan dengan periode yang berbeda;

  4. “Kemampuan untuk menghasilkan keuntungan yang tinggi, dan keuntungan yang signifikan di bawah tren besar”.

Keuntungan bergabung dengan EMA100:

  1. Filter Operasi Kontra, Mengurangi Kerugian;

  2. Pada saat ini, ada banyak cara untuk mengontrol penurunan harga.

Keuntungan dari sistem pelacakan tren:

  1. Pengadilan multi-dimensi waktu, menghindari pengaruh dari kebisingan dalam satu periode waktu;

  2. Memastikan arah perdagangan konsisten dengan tren tingkat besar dan mengurangi penarikan balik.

  3. Heikin-Ashi: Harga yang lebih rendah, filter noise, hanya menangkap tren.

Analisis risiko

Strategi ini juga memiliki beberapa risiko yang perlu diperhatikan:

  1. Dalam perhitungan jangka panjang, rata-rata garis persilangan sering terjadi, yang menghasilkan terlalu banyak peluang perdagangan dan biaya perdagangan mata uang.

  2. Sinyal perdagangan mungkin terlambat, terlepas dari tahap awal tren.

  3. Jika tren di tingkat besar berbalik, kemungkinan kerugian besar akan terjadi.

  4. Pengaturan parameter perlu dioptimalkan, dan tidak tepat akan mempengaruhi kinerja strategi.

Tanggapan:

  1. Mengurangi frekuensi operasi untuk menghindari transaksi yang tidak valid.

  2. Mempersingkat siklus rata-rata dengan tepat untuk mendapatkan sinyal awal tren.

  3. Setting Stop Loss Points untuk Mengontrol Kerugian Tunggal

  4. Pengaturan parameter yang dioptimalkan, disesuaikan dengan varietas dan kondisi pasar yang berbeda.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Optimasi siklus rata-rata. Anda dapat menguji lebih banyak kombinasi parameter untuk mencari siklus optimal.

  2. Tambahkan lebih banyak pengukuran periode waktu. Misalnya, tambahkan indikator garis bulan atau garis quarter.

  3. Menambahkan mekanisme stop loss. Mengatur stop loss bergerak atau stop loss indeks.

  4. Tergabung dengan indikator volume transaksi. Misalnya, arus energi bekerja sama dengan indikator seperti KDJ.

  5. Optimalkan waktu masuk. Dapat mempertimbangkan bantuan dari indikator yang lebih sensitif seperti MACD.

  6. Optimasi untuk adaptasi multi-varietas. Penyesuaian parameter untuk lebih banyak varietas.

Meringkaskan

Strategi ini mengintegrasikan crossover dua garis sejajar dan sistem pelacakan tren, yang dapat secara efektif memanfaatkan keuntungan masing-masing dan menghindari masalah sistem tunggal. Pertimbangan multi-dimensi waktu menjamin arah perdagangan yang benar, kontrol penarikan yang baik. Dapat dioptimalkan lebih lanjut, beradaptasi dengan lebih banyak lingkungan pasar, dan memiliki nilai pertempuran nyata.

Kode Sumber Strategi
/*backtest
start: 2023-09-20 00:00:00
end: 2023-09-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © askkuldeeprandhawa

//@version=4

strategy("KSR Strategy", overlay=true)



par1=input(10)
par2=input(20)
ema1=ema(close,par1)
ema2=ema(close,par2)
buy=ema1>ema2
sell=ema2<ema1
mycolor= iff(buy,color.green,iff(sell,color.blue,color.red))
barcolor(color=mycolor)



ema100=ema(close,100)
ibuy=crossover(ema1,ema2)
iSell=crossunder(ema1,ema2)

varp=tostring(close[1])
plotshape(ibuy, "Up Arrow", shape.triangleup, location.belowbar, color.green, 0, 0,"Buy" , color.green, true, size.tiny)
plotshape(iSell, "Down Arrow", shape.triangledown, location.abovebar, color.red, 0, 0, "Sell", color.red, true, size.tiny)

crossed =crossover(ema(close,par1), ema(close,par2))
// if crossed
//     l = label.new(bar_index, na, tostring(close), 
//          color=color.green, 
//          textcolor=color.white,
//          style=label.style_labelup, yloc=yloc.belowbar)
         
crossed2 =crossunder(ema(close,par1), ema(close,par2))
// if crossed2
//     l = label.new(bar_index, na, tostring(close), 
//          color=color.red, 
//          textcolor=color.white,
//          style=label.style_labeldown, yloc=yloc.abovebar)
         
plot(ema(close,par1),"EMA Short",color=color.white)
plot(ema(close,par2),"EMA Long",color=color.orange)


longCondition = crossover(ema(close, par1), ema(close, par2))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = crossunder(ema(close, par1), ema(close, par2))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)




ma1_len = input(title="MA1", type=input.integer, defval=8, minval=1, maxval=100, step=1)
ma2_len = input(title="MA2", type=input.integer, defval=12, minval=1, maxval=100, step=1)

o = ema(open, ma1_len)
c = ema(close, ma1_len)
h = ema(high, ma1_len)
l = ema(low, ma1_len)

tim1=input('D',"Short Time")
tim2=input('W',"Long Time")

ema_p=input(title="EMA Period", type=input.integer, defval=16, minval=1, maxval=100, step=1)
refma = ema(close, ema_p)
plot(refma, title="EMA" , linewidth=1, color=close < refma ? color.orange : color.blue)
ha_t = heikinashi(syminfo.tickerid)
ha_o = security(ha_t, tim2, o)
ha_c = security(ha_t, tim2, c)
ha_h = security(ha_t, tim2, h)
ha_l = security(ha_t, tim2, l)
o2 = ema(ha_o, ma2_len)
c2 = ema(ha_c, ma2_len)
h2 = ema(ha_h, ma2_len)
l2 = ema(ha_l, ma2_len)
ha_col = ha_c > ha_o ? color.red : color.green
plotshape(true, style=shape.circle, color=ha_c > ha_o ? color.green : color.red, location=location.bottom)


ha_t1 = heikinashi(syminfo.tickerid)
ha_o1 = security(ha_t1, tim1, o)
ha_c1 = security(ha_t1, tim1, c)
ha_h1 = security(ha_t1, tim1, h)
ha_l1 = security(ha_t1, tim1, l)
o3 = ema(ha_o1, ma2_len)
c3 = ema(ha_c1, ma2_len)
h3 = ema(ha_h1, ma2_len)
l3 = ema(ha_l1, ma2_len)
ha_col1 = ha_c1 > ha_o1 ? color.red : color.green
plotshape(true, style=shape.circle, color=ha_c1 > ha_o1 ? color.green : color.red, location=location.top)