Strategi Perdagangan Crossover Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2024-01-24 11:48:29
Tag:

img

Ringkasan

Strategi perdagangan crossover purata bergerak menghasilkan isyarat beli dan jual dengan mengira persilangan garis EMA pantas (fastLength) dan EMA perlahan (slowLength). Apabila garis pantas melintasi di atas garis perlahan, isyarat beli dihasilkan. Apabila garis pantas melintasi di bawah garis perlahan, isyarat jual dihasilkan. Strategi ini mudah dan praktikal, sesuai untuk perdagangan jangka sederhana dan pendek.

Prinsip Strategi

Strategi ini menggunakan dua garis purata bergerak, garisan pantas dan garis perlahan. Parameter garisan pantas EMAfastLength lalai ke garisan 9 hari, dan parameter garisan perlahan EMAslowLength lalai ke garisan 26 hari. Hitung persilangan kedua-dua garis EMA untuk menentukan isyarat beli dan jual pasaran:

  1. Apabila garisan pantas pecah ke atas melalui garisan perlahan, isyarat beli enterLong() dihasilkan.
  2. Apabila garisan pantas pecah ke bawah melalui garisan perlahan, isyarat jual enterShort() dihasilkan.

Isyarat perdagangan dan peraturan strategi khusus adalah seperti berikut:

  1. Apabila garis pantas melintasi di atas garis perlahan, pergi panjang; apabila garis pantas melintasi di bawah garis perlahan, kedudukan dekat.
  2. Keuntungan mengambil jangka panjang adalah Targetpercentage (default 0.15%) daripada harga, iaitu untuk menutup kedudukan apabila keuntungan mencapai 15%.
  3. Stop loss untuk panjang adalah StopLosspercentage (default 0.20%) daripada harga, iaitu untuk menutup kedudukan apabila kerugian mencapai 20%.
  4. Posisi pendek berfungsi dengan cara yang sama.

Jadi strategi ini berdagang berdasarkan salib emas dan salib mati dari dua garis purata bergerak.

Analisis Kelebihan

  1. Strategi ini mudah dan mudah difahami.
  2. Penggunaan purata bergerak menapis beberapa bunyi pasaran dan menjadikan isyarat perdagangan lebih tepat.
  3. Peraturan perdagangan jelas dengan mengambil keuntungan dan berhenti kerugian yang pasti.
  4. Parameter ujian boleh diselaraskan dengan fleksibel untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.

Analisis Risiko

  1. Purata bergerak sendiri mempunyai kelewatan, yang mungkin terlepas perubahan harga jangka pendek, yang membawa kepada titik beli dan jual yang tidak tepat.
  2. Parameter purata bergerak kitaran yang berbeza boleh menghasilkan isyarat palsu dan membawa kerugian.
  3. Mengandalkan hanya beberapa parameter, strategi ini mempunyai keperluan pengoptimuman hiperparameter yang tinggi untuk mencari kombinasi parameter terbaik.
  4. Dalam beberapa trend utama tertentu, strategi ini cenderung gagal.

Untuk menangani risiko, parameter yang boleh dioptimumkan termasuk kitaran purata bergerak, pelbagai dagangan, mengambil keuntungan dan nisbah hentian kerugian, dll. Ujian yang meluas diperlukan untuk mengurangkan risiko.

Arahan pengoptimuman

Idea persilangan purata bergerak strategi ini adalah mudah dan praktikal.

  1. Mengubah jenis purata bergerak: Selain EMA, juga menguji SMA, LWMA, HMA dan jenis lain.
  2. Tambah penunjuk lain: Gabungkan dengan RSI, MACD dan penunjuk lain.
  3. Pengoptimuman parameter: Otomatik mengoptimumkan kedua-dua parameter kitaran EMA untuk mencari kombinasi parameter terbaik.
  4. Penapisan trend: Berdagang secara selektif berdasarkan situasi trend utama.
  5. Pengoptimuman mengambil keuntungan dan menghentikan kerugian: Meningkatkan pengambilan keuntungan peratusan tetap dan menghentikan kerugian untuk menjadikannya lebih praktikal.

Melalui ujian pengoptimuman ini, kesan praktikal dan kestabilan strategi dapat ditingkatkan dengan ketara.

Ringkasan

idea strategi crossover purata bergerak adalah mudah, tetapi penerapan praktikal memerlukan pengoptimuman berterusan. strategi ini memberikan logik menghasilkan isyarat perdagangan dan peraturan perdagangan asas. atas asas ini, ia boleh dioptimumkan dengan baik untuk menjadi strategi kuantitatif yang boleh digunakan. penerapan purata bergerak juga memberi kita idea untuk strategi, berdasarkan yang kita boleh berinovasi dan meningkatkan.


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

//@version=4
strategy("EMA Cross by MarketAlpha", overlay=true)
EMAfastLength = input(defval = 9, minval = 2)
EMAslowLength = input(defval = 26, minval = 2)
Targetpercentage = input(defval = 0.15, title = "Profit Target in percentage", minval = 0.05)
StopLosspercentage = input(defval = 0.20, title = "Stop Loss in percentage", minval = 0.05)
profitpoints = close*Targetpercentage
stoplosspoints = close*StopLosspercentage
price = close

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 = 2018, title = "From Year", minval = 2000)
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"

emafast = ema(price, EMAfastLength)
emaslow = sma(price, EMAslowLength)
plot(emafast,color=green)
plot(emaslow,color=red)

enterLong() => crossover(emafast, emaslow)
strategy.entry(id = "MarketAlpha Long", long = true, when = window() and enterLong())
strategy.exit("Exit Long", from_entry = "MarketAlpha Long", profit = profitpoints,loss = stoplosspoints)

enterShort() => crossunder(emafast, emaslow)
strategy.entry(id = "MarketAlpha Short", long = false, when = window() and enterShort())
strategy.exit("Exit Short", from_entry = "MarketAlpha Short", profit = profitpoints,loss = stoplosspoints)



Lebih lanjut