Strategi Kuantitatif Kombinasi EMAS Bergerak Dinamis


Tanggal Pembuatan: 2024-01-22 12:34:33 Akhirnya memodifikasi: 2024-01-22 12:34:33
menyalin: 1 Jumlah klik: 536
1
fokus pada
1617
Pengikut

Strategi Kuantitatif Kombinasi EMAS Bergerak Dinamis

Ringkasan

Strategi ini adalah strategi kombinasi pergerakan rata-rata dinamis dengan beberapa periode waktu. Strategi ini menggunakan indeks pergerakan rata-rata dengan panjang yang berbeda (EMA) untuk penilaian tren dan masuk dan keluar. Bagan MAX dalam nama strategi menunjukkan penggunaan beberapa EMA, dan Bagan Dinamis menunjukkan bahwa panjang EMA dapat disesuaikan.

Prinsip Strategi

Strategi ini menggunakan 7 EMA dengan kecepatan yang berbeda, mulai dari yang tercepat hingga paling lambat, yaitu: 3 siklus, 15 siklus, 19 siklus, 50 siklus, 100 siklus, 150 siklus, dan 200 siklus EMA.

Selain itu, strategi ini juga menggabungkan dua kondisi harga inovasi tinggi dan harga penutupan memecahkan rekor tertinggi untuk mengkonfirmasi sinyal posisi panjang, menggunakan inovasi rendah dan harga penutupan memecahkan rekor terendah untuk mengkonfirmasi sinyal posisi pendek, sehingga dapat menghindari terobosan palsu.

Kondisi close position adalah ketika harga menutup dari EMA cepat ke EMA lambat, menunjukkan bahwa tren telah berbalik; atau ketika harga terendah atau tertinggi dari garis K terbaru telah melewati empat EMA, menunjukkan bahwa perdagangan harus segera ditutup.

Analisis Keunggulan

  • Menggunakan 7 EMA kecepatan yang berbeda untuk membentuk tangga, dapat lebih akurat menentukan titik perubahan tren
  • Kombinasi posisi tinggi dengan posisi tinggi yang inovatif dan posisi pendek dengan posisi rendah yang inovatif dan posisi rendah yang historis untuk menghindari terobosan palsu
  • Kondisi setelan posisi imbang ganda lebih ketat, dapat menghentikan kerugian tepat waktu

Analisis risiko

  • Tidak ada pengaturan stop loss, ada risiko kerugian besar
  • Kondisi imbang ganda dapat menyebabkan kekalahan prematur
  • EMA berdurasi pendek cenderung menghasilkan lebih banyak kebisingan, meningkatkan frekuensi transaksi dan biaya biaya.

Solusi:

  1. Pengaturan stop loss vertikal dan stop loss bergerak
  2. Menyesuaikan panjang EMA yang dipadamkan untuk mengurangi kekhawatiran dari kondisi yang dipadamkan ganda
  3. Meningkatkan EMA dan mengurangi frekuensi transaksi

Arah optimasi

  • Menambahkan strategi stop loss, seperti stop loss persentase tetap, stop loss bergerak, dan sebagainya
  • Menyesuaikan parameter EMA untuk mencari kombinasi optimal
  • Menambahkan filter indikator lain, seperti MACD, ATR, KDJ, dan lain-lain, untuk meningkatkan kualitas sinyal
  • Menggabungkan strategi band, menangkap fluktuasi sub-level dalam tren
  • Pertimbangkan untuk menambahkan modul pengelolaan dana

Meringkaskan

Strategi ini secara keseluruhan memiliki pemikiran yang jelas, menggunakan 7 EMA kecepatan yang berbeda untuk menilai tren, dan memiliki kondisi posisi terdepan ganda, dapat membuat keputusan yang lebih sensitif terhadap pembalikan tren. Namun, strategi itu sendiri tidak mengatur stop loss, ada risiko kerugian yang sangat besar, selain itu mudah menyebabkan masalah keluar prematur.

Kode Sumber Strategi
/*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(title="Crypto MAX Trend", shorttitle="Crypto MAX", overlay = true  )
Length = input(3, minval=1)
Length2 = input(15, minval=1)
Length3 = input(19, minval=1)
//Length33 = input(25, minval=1)
Length4 = input(50, minval=1)
Length44 = input(100, minval=1)
Length5 = input(150, minval=1)
Length6 = input(171, minval=1)
Length66 = input(172, minval=1)

xPrice = input(close)

xEMA1 = ema(xPrice, Length)
xEMA2 = ema(xPrice, Length2)
xEMA3 = ema(xPrice, Length3)
//xEMA33 = ema(xPrice, Length33)
xEMA4 = ema(xPrice, Length4)
xEMA44 = ema(xPrice, Length44)
xEMA5 = ema(xPrice, Length5)
xEMA6 = ema(xPrice, Length6)
xEMA66 = ema(xPrice, Length66)

// plot(xEMA1, color=color.white)
// plot(xEMA2, color=color.red)
// plot(xEMA3, color=color.green)
// plot(xEMA4, color=color.purple)
// plot(xEMA44, color=color.gray)
// plot(xEMA5, color=color.maroon)
// plot(xEMA6, color=color.blue)
// plot(xEMA66, color=color.orange)


fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input(defval = 2000, title = "From Year", minval = 1970)
 //monday and session 
// To Date Inputs
toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31)
toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
toYear = input(defval = 2020, title = "To Year", minval = 1970)

startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true



long = close >  xEMA1 and xEMA1 > xEMA2 and xEMA2 > xEMA3  and xEMA3 > xEMA4  and xEMA4 > xEMA44 and xEMA44 > xEMA5 and xEMA5> xEMA6  and xEMA6> xEMA66  and close > high[1] and high[1] > high[2] and close > high[3] and close > high[4] and close > high[5] and high[5] > high[6] and time_cond
short = close < xEMA1 and xEMA1 < xEMA2 and xEMA2 < xEMA3  and xEMA3 < xEMA4  and xEMA4 < xEMA44 and xEMA44 < xEMA5 and xEMA5< xEMA6 and  xEMA6< xEMA66 and close < low[1] and low[1] < low[2] and close < low[3] and close < low[4] and close< low[5] and low[5] < low[6] and time_cond

notlong = close < xEMA1
strategy.entry("long",1,when=long)
strategy.entry("short",0,when=short)


exitlong1 = xEMA1 < xEMA2 and xEMA2 < xEMA3 and xEMA3 < xEMA4
exitlong2 = crossunder(low,xEMA1) and crossunder(low,xEMA2) and crossunder(low,xEMA3) and crossunder(low,xEMA4)
exitshort1 = xEMA1 > xEMA2 and xEMA2 > xEMA3 and xEMA3 > xEMA4
exitshort2 = crossover(high,xEMA1) and crossover(high,xEMA2) and crossover(high,xEMA3) and crossover(high,xEMA4)

strategy.close("long", when = exitlong1 or exitlong2)
strategy.close("short", when= exitshort1 or exitshort2)