Strategi Dagangan Harian Berdasarkan EMA Mingguan

Penulis:ChaoZhang, Tarikh: 2023-09-20 17:11:52
Tag:

Ringkasan

Idea teras strategi ini adalah untuk memetakan penunjuk EMA dari jangka masa mingguan ke perdagangan harian, untuk mendapatkan sokongan daripada trend jangka panjang dan membimbing keputusan perdagangan harian.

Prinsip Strategi

Strategi ini mula-mula mengira EMA 6 hari, 12 hari, 26 hari, 52 hari pada carta harian, serta EMA 42 hari, 84 hari, 182 hari, 364 hari yang sepadan dengan tetapan parameter EMA mingguan.

Kemudian, persilangan 42 hari EMA dan 84 hari EMA digunakan untuk menentukan trend jangka panjang; persilangan 84 hari EMA dan 182 hari EMA digunakan untuk menentukan trend jangka sederhana.

Apabila EMA tempoh pendek melintasi di atas EMA tempoh panjang, pergi panjang; apabila EMA tempoh pendek melintasi di bawah EMA tempoh panjang, tutup kedudukan.

Melalui kaedah pemetaan ini, kita mendapat sokongan daripada indikator EMA peringkat mingguan dalam perdagangan harian, yang membantu menapis beberapa bunyi bising dan menangkap peluang trend yang lebih besar.

Analisis Kelebihan

Strategi ini menggabungkan fleksibiliti dagangan harian dan kestabilan EMA mingguan, dengan kelebihan berikut:

  1. EMA mingguan dapat menapis bunyi bising pasaran dengan berkesan dan mengenal pasti pergerakan trend sebenar. Dagangan harian kemudian boleh memilih entri yang lebih tepat berdasarkan pembentukan harian.

  2. Parameter EMA mingguan lebih stabil, kurang dipengaruhi oleh turun naik harga jangka pendek.

  3. Pembebasan EMA dapat dengan jelas mengenal pasti titik pembalikan trend siklik. Mengambil keuntungan daripada mereka melalui perdagangan harian membawa kepada kadar kemenangan yang agak tinggi.

  4. Gabungan EMA tempoh yang berbeza menangkap peluang trend dalam jangka panjang, sederhana dan pendek.

  5. Strategi ini mempunyai kekerapan perdagangan yang rendah, sesuai untuk memegang panjang.

Analisis Risiko

Risiko utama strategi ini ialah:

  1. Isyarat kemasukan EMA mingguan mungkin terlambat, tidak dapat menangkap masa perubahan harga yang paling awal.

  2. Keluar bergantung kepada persilangan EMA, tanpa mempertimbangkan pembentukan, turun naik dan lain-lain, boleh menyebabkan keluar lebih awal.

  3. Sedikit penyeberangan EMA cenderung menyebabkan pemegang satu sisi yang terlalu panjang.

  4. Tiada stop loss bermakna risiko pengeluaran yang tinggi, memerlukan pengurusan manusia yang aktif.

  5. Penyesuaian parameter kasar, memerlukan penyesuaian untuk prestasi optimum pada syiling yang berbeza.

Risiko boleh dikurangkan melalui:

  1. Mengenali formasi kemasukan dengan penunjuk lain, mengambil kedudukan sebelum isyarat EMA.

  2. Tambahkan peraturan keluar seperti stop loss, ambil keuntungan untuk mengelakkan memegang.

  3. Mengoptimumkan tempoh EMA, menguji kombinasi tempoh yang sesuai untuk syiling yang berbeza.

  4. Perdagangan pelbagai peringkat, EMA yang berbeza untuk kedudukan berlapis, risiko memegang satu sisi yang lebih rendah.

Arahan pengoptimuman

Strategi ini boleh dioptimumkan lagi dalam aspek berikut:

  1. Tambah peraturan mengenai kemasukan harian, seperti formasi, kelantangan dan lain-lain untuk menapis bunyi bising.

  2. Gabungkan stok, MACD untuk menilai overbought-oversold untuk kemasukan / keluar yang lebih baik.

  3. Tambah stop loss, ambil keuntungan untuk mengurangkan pengeluaran, kunci keuntungan.

  4. Mengoptimumkan tempoh EMA, ujian combos tempoh yang berbeza.

  5. Cuba EMA yang berbeza seperti DEMA, TEMA untuk parameter yang lebih lancar.

  6. Tambah saiz kedudukan berdasarkan isyarat EMA yang berbeza.

  7. Parameter penyelidikan untuk pasangan dagangan yang berbeza.

  8. meneroka kaedah pembelajaran mesin untuk pengoptimuman EMA dinamik.

Kesimpulan

Ini adalah strategi trend berikut yang sangat baik yang sesuai untuk pegangan jangka panjang. Ia dengan bijak menggabungkan penilaian trend mingguan dan pelaksanaan harian. Dengan peningkatan yang betul, ia boleh menjadi sistem perdagangan pelbagai jangka masa yang sangat praktikal.


/*backtest
start: 2023-08-20 00:00:00
end: 2023-09-19 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=1

strategy("Investing Weekly mapped to Daily", overlay=true,  pyramiding=100)


// === PLOTTING EMA ===

plot(ema(close, 6), color=aqua, transp=0, linewidth=2, title="ema6")
plot(ema(close, 12), color=white, transp=0, linewidth=2, title="ema12")
plot(ema(close, 26), color=#9802FF, transp=0, linewidth=2, title="ema26")
plot(ema(close, 52), color=orange, transp=0, linewidth=2, title="ema52")
plot(ema(close, 42), color=aqua, transp=0, linewidth=5, title="W-ema6")
plot(ema(close, 84), color=white, transp=0, linewidth=5, title="W-ema12")
plot(ema(close, 182), color=#9802FF, transp=0, linewidth=5, title="W-ema26")
plot(ema(close, 364), color=orange, transp=0, linewidth=5, title="W-ema52")


// === INPUT BACKTEST RANGE ===

FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2017, title = "From Year", minval = 2017)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2017)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"


// === STRATEGY FOR CRYPTO ===

ema42= ema(close, 42)
ema84= ema(close, 84)
ema182= ema(close, 182)

enterLong1 = cross(ema42, ema84) and ema42 > ema84
exitLong1 = cross(ema42, ema84) and ema42 < ema84

enterLong2 = cross(ema84, ema182) and ema84 > ema182
exitLong2 = cross(ema84, ema182) and ema84 < ema182


strategy.entry(id="Entry_1", long=true, when=enterLong1)
strategy.entry(id="Entry_2", long=true, when=enterLong2)
strategy.entry(id="Exit_1", long=false, when=exitLong1)
strategy.entry(id="Exit_2", long=false, when=exitLong2)


Lebih lanjut