Strategi ini memperdagangkan persilangan EMA cepat dan lambat untuk menentukan dan melacak tren harga.
Logika Strategi:
Menghitung EMA cepat dan lambat, biasanya 13 dan 48 periode.
Masukkan panjang ketika EMA cepat melintasi EMA lambat.
Keluar panjang ketika harga melintasi di bawah EMA cepat.
Opsi untuk menambahkan aturan samping pendek untuk perdagangan dua arah.
Keuntungan:
Kombinasi EMA cepat/lambat secara efektif mengidentifikasi tren perantara.
Perdagangan breakout memungkinkan entri tren tepat waktu.
Mekanisme stop loss sederhana mengontrol kerugian per perdagangan.
Risiko:
EMA lag menyebabkan kehilangan titik masuk terbaik.
Lepaskan stop untuk menghindari whipsaws yang berlebihan.
Sulit untuk menentukan arah tren yang jelas selama rentang.
Singkatnya, strategi ini menggunakan silang EMA untuk identifikasi dan pelacakan tren. Optimasi pada parameter dan pengendalian risiko dapat meningkatkan kinerja untuk berbagai pasar.
/*backtest start: 2022-09-05 00:00:00 end: 2023-09-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 // strategy("EMA Strategy 13 48", shorttitle = "EMA Strategy 13 48", overlay=true, pyramiding = 3,default_qty_type = strategy.percent_of_equity, default_qty_value = 1000) // === Inputs === // short ma maFastSource = input(defval = close, title = "Fast MA Source") maFastLength = input(defval = 13, title = "Fast MA Period", minval = 1) // long ma maSlowSource = input(defval = close, title = "Slow MA Source") maSlowLength = input(defval = 48, title = "Slow MA Period", minval = 1) // === Vars and Series === fastMA = ema(maFastSource, maFastLength) slowMA = ema(maSlowSource, maSlowLength) plot(fastMA, color=blue) plot(slowMA, color=purple) goLong() => crossover(fastMA, slowMA) killLong() => crossunder(close, fastMA) strategy.entry("Buy", strategy.long, when = goLong()) strategy.close("Buy", when = killLong()) // Shorting if using goShort() => crossunder (fastMA, slowMA) killShort() => crossover(fastMA, slowMA) //strategy.entry("Sell", strategy.short, when = goShort()) //strategy.close("Sell", when = killShort())