Strategi ini dibangun berdasarkan indikator EMA ganda untuk tujuan mengenali tren harga dan mengikuti tren. Pertama-tama menghitung EMA jangka menengah hingga panjang dan EMA jangka pendek, dan kemudian menerapkan posisi panjang ketika ada salib emas dan posisi pendek ketika ada salib kematian antara kedua EMA. Sementara itu, penyaringan tertinggi / terendah juga diperkenalkan untuk lebih menghilangkan sinyal palsu.
Indikator inti dari strategi ini adalah EMA ganda, yang satu jangka pendek dan yang lainnya jangka panjang.
ema1: Periode EMA jangka menengah hingga panjang, default hingga 34 hari
Ema2: Periode EMA jangka pendek, default hingga 13 hari
ema_sr: EMA jangka menengah hingga panjang berdasarkan harga penutupan
highest_ema: EMA tertinggi dari ema_sr, periode adalah ema2
lowest_ema: EMA terendah dari ema_sr, periode adalah ema2
ema_ysl: EMA yang digunakan untuk menghasilkan sinyal perdagangan, dihitung berdasarkan hubungan antara ema_sr dan tertinggi/terendah_ema
salib mendeteksi salib emas dan kematian antara ema_sl dan ema_ysl, dan dengan demikian mencapai tren berikut.
Kombinasi EMA ganda dapat menilai tren harga dengan lebih akurat. EMA jangka menengah hingga panjang menyaring kebisingan jangka pendek, sementara EMA jangka pendek dapat melacak perubahan tren jangka menengah tepat waktu. Pengenalan EMA tertinggi / terendah dapat lebih menghilangkan sinyal palsu dan mengurangi perdagangan yang tidak perlu.
Keuntungan terbesar dari strategi ini terletak pada identifikasi tren yang akurat. EMA ganda itu sendiri lebih unggul dari EMA tunggal, SMA dan indikator lain untuk menangkap perubahan tren. Dan penerapan highest/lowest_ema dapat secara efektif menyaring sinyal palsu yang disebabkan oleh pullbacks jangka pendek, yang sangat penting untuk strategi trend berikut.
Selain itu, parameter strategi ini sederhana dan mudah disesuaikan dan dioptimalkan. Pengguna hanya perlu fokus pada dua parameter EMA, yang sangat intuitif. Ini juga membuat strategi mudah dipahami dan digunakan.
Risiko utama dari strategi ini adalah bahwa ia gagal mengidentifikasi pembalikan tren. Ketika harga membentuk penyesuaian jangka panjang atau perubahan besar, keterlambatan EMA ganda dapat menyebabkan kehilangan titik masuk terbaik. Pada saat ini, posisi yang terlalu besar dapat menyebabkan kerugian lebih besar.
Selain itu, EMA sendiri tidak memiliki kemampuan untuk menanggapi keadaan darurat.
Untuk mengurangi risiko di atas, kami merekomendasikan memperpendek panjang EMA jangka menengah hingga panjang secara tepat, atau memperkenalkan indikator seperti MACD untuk mengatasi keadaan darurat.
Ada ruang untuk optimalisasi lebih lanjut dari strategi ini, khususnya arah utama adalah sebagai berikut:
Uji lebih banyak kombinasi parameter EMA untuk menemukan parameter yang optimal;
Tambahkan penilaian volume untuk menghindari mengeluarkan sinyal yang salah ketika harga berosilasi;
Menggabungkan garis tren, saluran dan alat lain untuk menilai titik balik tren dengan lebih akurat.
Melalui optimasi parameter, penambahan kondisi filter dan cara lain, itu menjanjikan untuk meningkatkan stabilitas dan profitabilitas strategi lebih lanjut.
Secara umum, strategi ini memiliki kemampuan yang relatif kuat untuk mengidentifikasi tren dengan menyaring kebisingan dengan EMA ganda dan secara efektif meratakan kurva harga.
Namun, strategi itu sendiri memiliki beberapa keterlambatan dalam mengidentifikasi pembalikan tren tepat waktu. Ini adalah risiko utama yang dihadapi dan juga arah utama untuk optimasi di masa depan. Kami berharap untuk lebih meningkatkan ketahanan strategi melalui penyesuaian parameter, penyaringan sinyal dan sarana lainnya, sehingga dapat mencapai pengembalian yang stabil di bawah lebih banyak lingkungan pasar.
/*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=3 // Modified from kivancfr3762's A2MK script strategy("EMA STRATEGY", overlay=true) ema2=input(13, "EMA2 Length") ema1=input(34, "EMA1 Length") ema_sr = ema((max(close[1], high) + min(close[1], low)) / 2, ema1) highest_ema = ema(highest(ema_sr, 3), ema2) lowest_ema = ema(lowest(ema_sr, 3), ema2) k1 = ema_sr > highest_ema k2 = ema_sr < lowest_ema ema_ysl = iff(k1, lowest_ema, highest_ema) longCondition = crossover(ema_ysl, ema_sr) if (longCondition) strategy.entry("Short", strategy.short) shortCondition = crossunder(ema_ysl, ema_sr) if (shortCondition) strategy.entry("Long", strategy.long)