Strategi ini adalah sistem perdagangan mengikut trend berdasarkan pelbagai Exponential Moving Averages (EMA). Dengan menggunakan tiga EMA dengan tempoh yang berbeza (10, 30, 50), digabungkan dengan penyeberangan harga dan analisis arah trend, ia membina sistem isyarat beli dan jual yang lengkap. Strategi ini mempertimbangkan pembentukan trend, pengesahan, dan pembalikan secara menyeluruh, dengan berkesan menangkap peluang trend utama di pasaran.
Strategi ini menggunakan mekanisme penilaian hierarkik untuk menentukan isyarat perdagangan: 1. Lapisan Penentuan Trend: Menggunakan kedudukan relatif tiga EMA (10/30/50) untuk menilai arah trend. Trend menaik dikenal pasti apabila EMA10 > EMA30 > EMA50; trend menurun apabila EMA50 > EMA30 > EMA10. 2. Lapisan Pemicu Isyarat: Setelah trend ditubuhkan, isyarat perdagangan dipicu oleh persilangan harga dengan EMA30. 3. Lapisan Pengurusan Kedudukan: Apabila EMA30 melintasi EMA50 ke arah yang bertentangan, ia mencetuskan isyarat penutupan kedudukan yang sepadan, menyediakan mekanisme keluar yang sistematik.
Ini adalah trend yang direka dengan baik mengikuti strategi dengan logika yang jelas. Gabungan pelbagai EMA memastikan kedua-dua kestabilan strategi dan isyarat perdagangan yang jelas. Walaupun terdapat beberapa risiko kelewatan yang melekat, strategi ini menunjukkan nilai praktikal yang baik melalui pengoptimuman dan langkah kawalan risiko yang munasabah. Ia sangat sesuai untuk peniaga yang mencari pulangan yang stabil dengan risiko terkawal.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-09 08:00:00 period: 1d basePeriod: 1d 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/ // © banyat6913 //@version=5 strategy("EMA Trend Strategy", overlay=true) // Input Parameters ema_short_length = input.int(10, title="EMA Short Length", minval=1) ema_mid_length = input.int(30, title="EMA Mid Length", minval=1) ema_long_length = input.int(50, title="EMA Long Length", minval=1) // Calculate EMA ema_short = ta.ema(close, ema_short_length) ema_mid = ta.ema(close, ema_mid_length) ema_long = ta.ema(close, ema_long_length) // **TREND UP** // 1. EMA 10 > EMA 30 > EMA 50 uptrend_condition = ema_short > ema_mid and ema_mid > ema_long // 2. Bullish Candle Crossing Up EMA 30 bullish_candle = close > open cross_up_ema_mid = ta.crossover(close, ema_mid) // 3. If EMA 30 crosses down EMA 50 -> Close Buy Order ema_30_cross_down_50 = ta.crossunder(ema_mid, ema_long) // Buy Signal buy_signal = uptrend_condition and cross_up_ema_mid // Sell Signal for closing Buy Order close_buy_signal = ema_30_cross_down_50 // **TREND DOWN** // 1. EMA 50 > EMA 30 > EMA 10 downtrend_condition = ema_long > ema_mid and ema_mid > ema_short // 2. Bearish Candle Crossing Down EMA 30 bearish_candle = close < open cross_down_ema_mid = ta.crossunder(close, ema_mid) // 3. If EMA 30 crosses up EMA 50 -> Close Sell Order ema_30_cross_up_50 = ta.crossover(ema_mid, ema_long) // Sell Signal sell_signal = downtrend_condition and cross_down_ema_mid // Buy Signal for closing Sell Order close_sell_signal = ema_30_cross_up_50 // Backtesting Logic if (buy_signal) strategy.entry("Buy", strategy.long) if (close_buy_signal) strategy.close("Buy") if (sell_signal) strategy.entry("Sell", strategy.short) if (close_sell_signal) strategy.close("Sell") // Plot EMA Lines plot(ema_short, color=color.blue, title="EMA 10") plot(ema_mid, color=color.orange, title="EMA 30") plot(ema_long, color=color.green, title="EMA 50") // Plot Buy and Sell Signals on Chart plotshape(buy_signal, style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), text="BUY", title="Buy Signal") plotshape(close_buy_signal, style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), text="CLOSE BUY", title="Close Buy Signal") plotshape(sell_signal, style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), text="SELL", title="Sell Signal") plotshape(close_sell_signal, style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), text="CLOSE SELL", title="Close Sell Signal")