Strategi ini menggabungkan beberapa Exponential Moving Averages (EMA) untuk mengidentifikasi titik masuk dan keluar potensial di pasar. Dengan membandingkan tren EMA dengan periode yang berbeda, ia menentukan tren pasar saat ini dan memasuki perdagangan di awal pembentukan tren dan menutup posisi di awal akhir tren.
Strategi ini menggunakan 4 EMA dengan periode yang berbeda sebagai indikator inti, yaitu EMA jangka pendek (default 8 periode), EMA jangka pendek (default 13 periode), EMA jangka menengah (default 21 periode), dan EMA jangka panjang (default 55 periode).
Dibandingkan dengan Simple Moving Average (SMA), EMA menempatkan lebih banyak penekanan pada harga baru-baru ini dan dengan demikian kecenderungan lebih sensitif dan dapat bereaksi terhadap perubahan harga lebih cepat. Perpindahan EMA dengan periode yang berbeda mencerminkan kekuatan tren pada skala waktu yang berbeda. EMA jangka panjang adalah yang paling stabil dan mewakili tren pasar yang signifikan; EMA jangka menengah dan jangka pendek relatif sensitif dan mencerminkan tren pasar jangka pendek dan menengah. Mereka bersama-sama membentuk logika inti dari strategi ini.
Penerapan luas: Strategi ini didasarkan pada indikator EMA harga itu sendiri dan berlaku untuk sebagian besar varietas dengan likuiditas yang baik dan tren yang relatif lancar, seperti berbagai futures, forex, cryptocurrency arus utama, dll.
Pelacakan tren: Dengan membandingkan hubungan posisi EMA dengan periode yang berbeda untuk menentukan tren, ia dapat menangkap awal pembentukan tren sampai batas tertentu dan melacak tren.
Parameter fleksibel: Parameter periode EMA dapat disesuaikan secara fleksibel sesuai dengan karakteristik varietas, jangka waktu investasi, dll., dan memiliki kemampuan beradaptasi tertentu.
Logika yang jelas: Strategi menghasilkan sinyal perdagangan berdasarkan kombinasi sederhana dari pengaturan EMA panjang dan pendek, dan logikanya jelas dan mudah dipahami dan diimplementasikan.
EMA lag: EMA pada dasarnya merupakan indikator trend-tracking dan memiliki lag tertentu, yang dapat menghasilkan lebih banyak sinyal palsu di pasar yang bergejolak.
Sensitivitas parameter: Pemilihan parameter periode EMA memiliki dampak yang signifikan pada kinerja strategi, dan parameter yang dioptimalkan mungkin tidak mempertahankan kinerja yang baik pada data di luar sampel.
Kurangnya penyaringan: Strategi ini tidak memiliki penyaringan lebih lanjut dari sinyal perdagangan, dan semua sinyal yang dihasilkan akan diperdagangkan, yang dapat mengakibatkan beberapa perdagangan berkualitas rendah.
Posisi tetap: Saat ini, strategi membuka posisi tetap 1 unit setiap kali, tidak memiliki kontrol posisi dinamis berdasarkan risiko, dan manajemen risiko tidak cukup sempurna.
Memperkenalkan penyaringan tren: Berdasarkan sinyal EMA, tambahkan indikator penyaringan kekuatan tren seperti ATR dan ADX untuk menyaring sinyal dari tren lemah dan periode turbulen.
Memperkenalkan penyaringan volatilitas: Berdasarkan penyaringan tren, penyaringan volatilitas seperti lebar Bollinger Band dapat diperkenalkan lebih lanjut untuk menyaring sinyal berkualitas rendah yang mungkin disebabkan oleh volatilitas tinggi.
Optimalkan stop-loss: Saat ini, strategi tidak memiliki logika stop-loss yang jelas. Setelah memperkenalkan trend dan penyaringan volatilitas, stop-loss dinamis berdasarkan ATR atau persentase dapat ditambahkan untuk mengontrol kerugian maksimum dari satu perdagangan.
Posisi dinamis: Berdasarkan volatilitas varietas, proporsi nilai akun, dll., Jumlah posisi yang dibuka oleh strategi setiap kali dapat dikendalikan secara dinamis untuk mengejar pengembalian absolut yang lebih tinggi sambil mengurangi risiko.
Mengoptimalkan parameter: Untuk varietas yang berbeda dan periode yang berbeda, parameter optimal EMA mungkin berbeda, dan optimalisasi parameter perlu dilakukan secara terpisah sesuai dengan karakteristik varietas untuk meningkatkan penerapan strategi.
Strategi ini mengidentifikasi titik balik tren dengan membandingkan kombinasi pengaturan panjang dan pendek dari 4 EMA dengan periode yang berbeda untuk menangkap awal pembentukan tren. Ide ini sederhana dan jelas. Keuntungannya terletak pada berbagai penerapannya, logika yang jelas, dan parameter yang fleksibel, dan dapat melacak tren dengan baik; tetapi pada saat yang sama, juga memiliki keterlambatan yang melekat dari indikator EMA, serta masalah seperti sensitivitas parameter, kurangnya penyaringan, dan posisi tetap. Di masa depan, ketahanan dan profitabilitas strategi ini dapat ditingkatkan dari aspek seperti memperkenalkan penyaringan tren dan volatilitas, mengoptimalkan stop-loss, posisi dinamis, dan pengoptimalan parameter untuk membuatnya lebih lengkap dan dapat diandalkan.
/*backtest start: 2023-03-05 00:00:00 end: 2024-03-10 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © n1ghthawk //@version=5 strategy("donmo's 4ema", overlay=true, margin_long=100, margin_short=100) float long = na float short = na lowestEMAPeriodInput = input.int(8, "Lowest EMA") lowEMAPeriodInput = input.int(13, "Low EMA") medEMAPeriodInput = input.int(21, "Med EMA") highEMAPeriodInput = input.int(55, "High EMA") lowestEMA = ta.ema(close, lowestEMAPeriodInput) lowEMA = ta.ema(close, lowEMAPeriodInput) medEMA = ta.ema(close, medEMAPeriodInput) highEMA = ta.ema(close, highEMAPeriodInput) emaLongCondition = highEMA<medEMA and highEMA<lowEMA and highEMA<lowestEMA emaShortCondition = highEMA>medEMA and highEMA>lowEMA and highEMA>lowestEMA longCondition = ta.change(emaLongCondition) shortCondition = ta.change(emaShortCondition) notInTrade = strategy.position_size <= 0 if longCondition and emaLongCondition and notInTrade long:=high strategy.entry("EL", strategy.long) if shortCondition and emaShortCondition short:=low strategy.close("EL") plot(long+3,title = 'long', color = color.green, linewidth = 4, style = plot.style_cross) plot(short-3,title = 'short', color = color.red, linewidth = 4, style = plot.style_cross) plot(lowestEMA, title = "lowestEMA", color=color.blue) plot(lowEMA, title = "lowEMA", color=color.green) plot(medEMA, title = "medEMA", color=color.orange) plot(highEMA, title = "highEMA", color=color.red)