Strategy Crossover EMA Berganda

Penulis:ChaoZhang, Tarikh: 2023-10-30 12:27:50
Tag:

img

Ringkasan

Dual EMA Crossover adalah strategi trend berikut yang tipikal. Ia menggunakan dua garis EMA dari tempoh yang berbeza dan menghasilkan isyarat perdagangan berdasarkan silang mereka. Apabila EMA yang lebih cepat melintasi di atas EMA yang lebih perlahan, isyarat beli dihasilkan. Apabila EMA yang lebih cepat melintasi di bawah EMA yang lebih perlahan, isyarat jual dihasilkan. Strategi ini boleh mengesan trend jangka menengah dan panjang dan menangkap peluang perdagangan dalam peringkat permulaan trend.

Logika Strategi

Komponen utama strategi ini ialah:

  1. Tetapkan panjang untuk EMA yang lebih cepat dan EMA yang lebih perlahan.

  2. Hitung EMA yang lebih cepat dan EMA yang lebih perlahan. EMA yang lebih cepat bertindak balas lebih cepat manakala EMA yang lebih perlahan lebih stabil.

  3. Menentukan situasi persilangan EMA untuk menjana isyarat perdagangan. Apabila EMA yang lebih cepat melintasi EMA yang lebih perlahan, isyarat beli dihasilkan. Apabila EMA yang lebih cepat melintasi di bawah EMA yang lebih perlahan, isyarat jual dihasilkan.

  4. Memasuki perdagangan berdasarkan isyarat. Apabila pergi panjang, kedudukan pendek yang sedia ada ditutup terlebih dahulu sebelum membuka kedudukan panjang.

  5. Tetapkan titik stop loss. Apabila pergi panjang, stop loss dicetuskan jika harga jatuh di bawah paras terendah sebelumnya dengan peratusan yang ditetapkan.

  6. Perdagangan keluar berdasarkan isyarat. Posisi panjang ditutup apabila EMA yang lebih cepat melintasi di bawah EMA yang lebih perlahan. Posisi pendek ditutup apabila EMA yang lebih cepat melintasi di atas EMA yang lebih perlahan.

Logiknya mudah dan intuitif. Persalinan EMA menentukan arah trend dan kekuatan. EMA yang lebih cepat bertindak balas terhadap perubahan harga jangka pendek dengan cepat manakala EMA yang lebih perlahan bertindak balas terhadap trend jangka panjang dengan mantap. Persalinan kedua-dua garis adalah cara klasik untuk mengesan perubahan trend.

Analisis Kelebihan

Kelebihan strategi ini ialah:

  1. Konsep mudah difahami dan dilaksanakan. EMA dan crossover dikenali penunjuk dan isyarat yang berkesan.

  2. Dapat mengesan dengan berkesan trend jangka sederhana dan panjang dan menangkap peluang lebih awal.

  3. Persediaan EMA berganda mengelakkan bunyi bising dari turun naik pasaran jangka pendek.

  4. Mempunyai peraturan masuk yang jelas, peraturan keluar dan peraturan stop loss.

  5. Hanya memerlukan beberapa parameter, tidak terdedah kepada pemasangan berlebihan.

  6. Hasil backtest yang baik, boleh digunakan untuk perdagangan langsung.

Analisis Risiko

Beberapa risiko strategi ini:

  1. Dual EMA crossover cenderung untuk menjana isyarat palsu dan whipsaws. Parameter perlu disesuaikan untuk menapis isyarat yang tidak sah.

  2. Tidak dapat menangani situasi pelbagai dan pembalikan trend dengan baik.

  3. Strategi EMA berganda cenderung untuk mengejar tinggi dan menjual rendah. saiz kedudukan dan mengambil keuntungan harus dikawal.

  4. Hasil ujian belakang mungkin terlalu banyak. Sensitiviti parameter harus diuji untuk ketahanan.

  5. Tiada stop loss tepat pada masanya boleh membawa kepada kerugian besar.

  6. Kos transaksi boleh mempengaruhi keuntungan sebenar. Faktor komisen untuk produk yang berbeza harus dipertimbangkan.

Kawasan Peningkatan

Beberapa cara untuk meningkatkan strategi:

  1. Mengoptimumkan parameter tempoh EMA untuk mencari kombinasi terbaik, menggunakan pengoptimuman berjalan ke hadapan dan pembelajaran mesin.

  2. Tambah penapis trend seperti ADX, CCI dan lain-lain untuk mengelakkan perdagangan dalam trend yang tidak pasti.

  3. Tambahkan penunjuk jumlah seperti jumlah dagangan, pada jumlah baki untuk memastikan perdagangan sebenar memandu isyarat.

  4. Melaksanakan stop loss dinamik untuk menyesuaikan stop secara automatik berdasarkan turun naik pasaran.

  5. Menggabungkan produk yang berkaitan untuk menggunakan korelasi untuk pengurusan risiko.

  6. Memperkenalkan pembelajaran mesin untuk pengoptimuman parameter, kejuruteraan ciri, penapisan isyarat dll.

  7. Pertimbangkan kos transaksi, sesuaikan berhenti dan saiz untuk mengurangkan kekerapan perdagangan.

  8. Sesuaikan parameter berdasarkan ciri produk untuk meningkatkan daya adaptasi.

  9. Merancang kerangka strategi komposit, digabungkan dengan strategi lain untuk meningkatkan ketahanan.

Penambahbaikan ini boleh menjadikan strategi lebih kukuh dan menguntungkan untuk perdagangan langsung.

Kesimpulan

Strategi ini menggunakan silang EMA berganda untuk menjana isyarat perdagangan dan dapat dengan berkesan mengesan trend jangka menengah dan panjang. Kelebihannya terletak pada kesederhanaan dan hasil backtest yang baik, menjadikannya mudah digunakan oleh pemula. Tetapi risiko ada dan harus dikendalikan melalui pengoptimuman parameter, menambah penunjuk, berhenti dinamik, mengoptimumkan kos perdagangan dll. Strategi ini boleh digunakan secara bebas atau digabungkan dengan yang lain untuk kepraktisan tambahan.


/*backtest
start: 2022-10-23 00:00:00
end: 2023-10-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2

strategy(title = "EMA Cross Strategy", shorttitle = "EMA Cross",calc_on_order_fills=true,calc_on_every_tick =true, initial_capital=21000,commission_value=.25,overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
StartYear = input(2018, "Backtest Start Year")
StartMonth = input(1, "Backtest Start Month")
StartDay = input(1, "Backtest Start Day")
UseStopLoss = input(true,"UseStopLoss")

window() => time >=  timestamp(StartYear, StartMonth, StartDay,00,00) ? true : false

stopLoss = input(20, title = "Stop loss percentage(0.1%)")


maFastSource   = input(defval = open, title = "Fast MA Source")
maFastLength   = input(defval = 12, title = "Fast MA Period", minval = 1)
// long ma
maSlowSource   = input(defval = open, title = "Slow MA Source")
maSlowLength   = input(defval = 26, title = "Slow MA Period", minval = 1)

maFast = ema(maFastSource, maFastLength)
maSlow = ema(maSlowSource, maSlowLength)


fast = plot(maFast, title = "Fast MA", color = #7a8598, linewidth = 2, style = line, transp = 50)
slow = plot(maSlow, title = "Slow MA", color = #e08937, linewidth = 2, style = line, transp = 50)


longEMA = crossover(maFast, maSlow)
exitLong = crossunder(maFast, maSlow)

shortEMA = crossover(maSlow, maFast)
exitShort = crossover(maFast, maSlow)


if (longEMA)
    strategy.entry("LongId", strategy.long, when=window())
 
if (shortEMA)
    strategy.entry("ShortId", strategy.short, when=window())


if (UseStopLoss)
    strategy.exit("StopLoss", "LongId", loss = close * stopLoss / 1000 / syminfo.mintick)
    strategy.exit("StopLoss", "ShortId", loss = close * stopLoss / 1000 / syminfo.mintick)

Lebih lanjut