Strategi Three EMA trend following menilai arah tren harga dengan menghitung garis EMA dari periode yang berbeda, dan mengikuti tren secara otomatis.
Strategi ini menghitung tiga garis EMA dengan periode yang berbeda, khususnya EMA 10-periode, 20-periode dan 30-periode.
Logika inti adalah untuk menilai konsistensi arah dari tiga garis EMA. Jika ketiga garis EMA naik bersama, sinyal panjang dihasilkan. Jika ketiga garis jatuh bersama, sinyal pendek dihasilkan.
Secara khusus, jika ema1, ema2 dan ema3 semua naik di bar terakhir, enter_long menjadi benar dan sinyal panjang dihasilkan. Jika ema1, ema2 dan ema3 semua jatuh di bar terakhir, enter_short menjadi benar dan sinyal pendek dihasilkan.
Berdasarkan sinyal panjang dan pendek, strategi akan membuka posisi panjang dan pendek yang sesuai. Logika keluar bertentangan dengan sinyal masuk. Jika ema1, ema2 dan ema3 tidak naik bersama di bar saat ini, exit_long menjadi benar dan posisi panjang akan ditutup. Jika ema1, ema2 dan ema3 tidak jatuh bersama di bar saat ini, exit_short menjadi benar dan posisi pendek akan ditutup.
Dengan menilai konsistensi arah dari tiga garis EMA, tren keseluruhan dapat ditentukan dan diikuti.
Menggunakan tiga garis EMA dapat menilai arah tren lebih dapat diandalkan dibandingkan dengan satu garis. Probabilitas sinyal yang salah lebih rendah.
EMA lebih sensitif terhadap perubahan harga dan dapat mencerminkan pembalikan tren seiring waktu.
Kombinasi EMA periode yang berbeda mempertimbangkan tren jangka pendek dan jangka menengah. EMA 10 periode untuk jangka pendek, EMA 20 dan 30 periode untuk tren jangka menengah.
Logika strategi sederhana dan mudah dipahami, cocok untuk pemula. Juga parameter memiliki ruang pengoptimalan yang besar untuk instrumen yang berbeda.
Strategi ini hanya didasarkan pada garis EMA, membutuhkan lebih sedikit sumber daya dan cocok untuk paralel tinggi.
Konsistensi arah garis EMA diperlukan tetapi tidak cukup untuk penilaian tren.
Garis EMA tertinggal dalam pembalikan tren, tidak dapat mencerminkan titik balik dalam waktu, yang dapat menyebabkan kerugian.
EMA sensitif terhadap perubahan harga, seringnya posisi panjang pendek dapat meningkatkan biaya transaksi.
Strategi ini tidak efektif di pasar yang bervariasi dan tidak stabil di mana garis EMA sering berfluktuasi.
Dapat mengoptimalkan perbedaan periode EMA untuk mengurangi sinyal palsu. atau menambahkan indikator lain untuk menyaring breakout palsu.
Tambahkan indikator momentum untuk mengkonfirmasi tren nyata dan mengidentifikasi titik balik, mengurangi kerugian.
Meningkatkan periode EMA untuk mengurangi frekuensi flip posisi.
Menunda strategi ketika pasar rentang diidentifikasi, menghindari perdagangan yang tidak perlu.
Penyesuaian periode: Sesuaikan periode EMA untuk menyesuaikan dengan instrumen yang berbeda.
Tambahkan filter: Tambahkan MA, BOLL dll untuk menghindari EMA palsu.
Stop loss: Stop trailing untuk mengunci keuntungan.
Manajemen risiko: Optimalkan ukuran posisi untuk membatasi dampak kerugian tunggal.
Sistem pasar: Menggunakan volatilitas untuk mengukur osilasi dan mengendalikan keterlibatan strategi.
Parameter adaptif: Otomatis mengoptimalkan periode EMA berdasarkan perubahan pasar untuk meningkatkan ketahanan.
The Three EMA trend following strategy trades by identifying trend direction via EMA lines. Ini sederhana dan praktis dengan ruang optimasi yang besar. Risiko seperti false breakout dan osilasi harus diperhatikan. Dengan optimasi terus menerus, strategi ini dapat menjadi solusi tren berikut yang kuat.
/*backtest start: 2023-10-10 00:00:00 end: 2023-11-09 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © QuantCT //@version=4 strategy("PMA Strategy Idea", shorttitle="PMA", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=1000, commission_type=strategy.commission.percent, commission_value=0.075) // ____ Inputs ema1_period = input(title="EMA1 Period", defval=10) ema2_period = input(title="EMA2 Period", defval=20) ema3_period = input(title="EMA3 Period", defval=30) long_only = input(title="Long Only", defval=false) slp = input(title="Stop-loss (%)", minval=1.0, maxval=25.0, defval=5.0) use_sl = input(title="Use Stop-Loss", defval=false) // ____ Logic ema1 = ema(hlc3, ema1_period) ema2 = ema(hlc3, ema2_period) ema3 = ema(hlc3, ema3_period) enter_long = (rising(ema1, 1) and rising(ema2, 1) and rising(ema3, 1)) exit_long = not enter_long enter_short = (falling(ema1, 1) and falling(ema2, 1) and falling(ema3, 1)) exit_short = not enter_short strategy.entry("Long", strategy.long, when=enter_long) strategy.close("Long", when=exit_long) if (not long_only) strategy.entry("Short", strategy.short, when=enter_short) strategy.close("Short", when=exit_short) // ____ SL sl_long = strategy.position_avg_price * (1- (slp/100)) sl_short = strategy.position_avg_price * (1 + (slp/100)) if (use_sl) strategy.exit(id="SL", from_entry="Long", stop=sl_long) strategy.exit(id="SL", from_entry="Short", stop=sl_short) // ____ Plots colors = enter_long ? #27D600 : enter_short ? #E30202 : color.orange ema1_plot = plot(ema1, color=colors) ema2_plot = plot(ema2, color=colors) ema3_plot = plot(ema3, color=colors) fill(ema1_plot, ema3_plot, color=colors, transp=50)