Strategi ini menggunakan rata-rata bergerak cepat dan lambat untuk mengidentifikasi dan mengikuti tren. Ini menghasilkan sinyal beli ketika garis cepat melintasi garis lambat dan sinyal jual ketika garis cepat melintasi di bawah garis lambat. Strategi ini cocok untuk melacak tren jangka menengah dan panjang dan menyaring kebisingan pasar secara efektif.
Ketika EMA cepat melintasi EMA lambat dari bawah, ini menunjukkan pasar memasuki tren naik dan menghasilkan sinyal beli.
Keuntungan dari strategi ini meliputi:
Ada juga beberapa risiko:
Beberapa arah optimasi:
Strategi ini membangun sistem perdagangan berdasarkan crossover EMA ganda, menggunakan hubungan EMA cepat dan lambat untuk menentukan tren pasar. Generasi sinyal sederhana dan jelas. Ini menyaring beberapa kebisingan dan mengikuti tren, cocok untuk perdagangan tren jangka menengah hingga panjang. Ada ruang untuk meningkatkan universalitas dan efisiensi melalui pengoptimalan multi-indikator dan pengendalian risiko.
/*backtest start: 2023-01-21 00:00:00 end: 2024-01-21 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("EMA Strategy v2", shorttitle = "EMA Strategy v2", overlay=true, pyramiding = 3,default_qty_type = strategy.percent_of_equity, default_qty_value = 10) // === Inputs === // short ma maFastSource = input(defval = close, title = "Fast MA Source") maFastLength = input(defval = 30, title = "Fast MA Period", minval = 1) // long ma maSlowSource = input(defval = close, title = "Slow MA Source") maSlowLength = input(defval = 100, title = "Slow MA Period", minval = 1) // invert trade direction tradeInvert = input(defval = false, title = "Invert Trade Direction?") // risk management useStop = input(defval = true, title = "Use Initial Stop Loss?") slPoints = input(defval = 0, title = "Initial Stop Loss Points", minval = 1) useTS = input(defval = true, title = "Use Trailing Stop?") tslPoints = input(defval = 0, title = "Trail Points", minval = 1) useTSO = input(defval = false, title = "Use Offset For Trailing Stop?") tslOffset = input(defval = 0, title = "Trail Offset Points", 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(fastMA, slowMA) 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()) if (useStop) strategy.exit("XLS", from_entry ="Buy", stop = strategy.position_avg_price / 1.08 ) strategy.exit("XSS", from_entry ="Sell", stop = strategy.position_avg_price * 1.58)