Ini adalah strategi mengikuti tren berdasarkan sinyal crossover Exponential Moving Average (EMA) tiga kali lipat. Strategi ini menggabungkan EMA 9-periode, 15-periode, dan 50-periode, memanfaatkan sinyal crossover antara EMA jangka pendek dan menengah sambil menggunakan EMA jangka panjang sebagai filter tren, ditambah dengan mekanisme stop-loss dan take-profit dinamis untuk manajemen risiko. Desain strategi ini sepenuhnya mempertimbangkan persyaratan mengikuti tren dan manajemen risiko, membuatnya cocok untuk perdagangan jangka menengah hingga panjang.
Logika inti didasarkan pada pemantauan sinyal silang antara EMA 9 periode dan 15 periode sambil menggunakan EMA 50 periode sebagai indikator konfirmasi tren.
Ini adalah strategi trend-following yang dirancang dengan baik dengan logika yang jelas. Kombinasi beberapa EMA memastikan keandalan sinyal sambil mencapai trend yang efektif. Mekanisme manajemen risiko bawaan memberikan stabilitas untuk operasi strategi. Melalui arah optimasi yang disarankan, ada ruang untuk perbaikan lebih lanjut. Strategi ini cocok untuk pedagang yang mencari pengembalian yang stabil, tetapi membutuhkan pengujian menyeluruh dan optimasi parameter untuk karakteristik pasar tertentu sebelum implementasi.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Strategy with 50 EMA Filter", overlay=true) // Customizable Inputs ema9Length = input(9, title="EMA 9 Length") ema15Length = input(15, title="EMA 15 Length") ema50Length = input(50, title="EMA 50 Length") stopLossPoints = input(100, title="Stop Loss Points") takeProfitPoints = input(200, title="Take Profit Points") // Calculate EMAs ema9 = ta.ema(close, ema9Length) ema15 = ta.ema(close, ema15Length) ema50 = ta.ema(close, ema50Length) // Detect crossovers crossover_above = ta.crossover(ema9, ema15) crossover_below = ta.crossunder(ema9, ema15) // Plot EMAs plot(ema9, color=color.blue, title="EMA 9") plot(ema15, color=color.red, title="EMA 15") // Make the 50 EMA invisible plot(ema50, color=color.new(color.white, 100), title="EMA 50", display=display.none) // Plot buy and sell signals as shapes plotshape(crossover_above and close > ema50, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(crossover_below and close < ema50, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Execute trades if (crossover_above and close > ema50) strategy.entry("Buy", strategy.long) if (crossover_below and close < ema50) strategy.close("Buy") // Apply stop loss and take profit if (crossover_above and close > ema50) strategy.exit("Exit", from_entry="Buy", loss=stopLossPoints, profit=takeProfitPoints) // Alerts for notifications if (crossover_above and close > ema50) alert("EMA 9 crossed above EMA 15 with price above EMA 50 - Buy Signal", alert.freq_once_per_bar_close) if (crossover_below and close < ema50) alert("EMA 9 crossed below EMA 15 with price below EMA 50 - Sell Signal", alert.freq_once_per_bar_close)