Strategi ini menggunakan persilangan dua Exponential Moving Averages (EMA) sebagai sinyal perdagangan utama, dikombinasikan dengan Relative Strength Index (RSI), Moving Average Convergence Divergence (MACD), dan Average True Range (ATR) sebagai indikator tambahan untuk meningkatkan keandalan sinyal perdagangan. Ketika EMA cepat melintasi EMA lambat, RSI berada di bawah 70, garis MACD berada di atas garis sinyal, dan nilai ATR meningkat lebih dari 10% dari periode sebelumnya, sinyal panjang dihasilkan; sebaliknya, ketika EMA cepat melintasi EMA lambat, RSI berada di atas 30, garis MACD berada di bawah garis sinyal, dan nilai ATR meningkat lebih dari 10% dibandingkan dengan periode sebelumnya, sinyal dihasilkan. Strategi juga mengambil stop loss titik tetap dan mengambil risiko keuntungan pendek.
Strategi ini menghasilkan sinyal perdagangan yang relatif dapat diandalkan dengan menggabungkan beberapa indikator teknis seperti EMA, RSI, MACD, dan ATR, sambil mengendalikan risiko dengan mengatur stop loss dan take profit titik tetap. Meskipun strategi ini masih memiliki beberapa kekurangan, strategi ini dapat ditingkatkan melalui optimalisasi lebih lanjut, seperti memperkenalkan lebih banyak indikator, mengoptimalkan stop loss dan take profit, dan menggabungkan analisis fundamental. Secara keseluruhan, strategi ini jelas dalam logika, mudah dimengerti dan diimplementasikan, dan cocok untuk pemula untuk belajar dan menggunakan.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Enhanced EMA Crossover Strategy", overlay=true) // Indicators ema_fast = ema(close, 8) ema_slow = ema(close, 14) rsi = rsi(close, 14) // Correcting the MACD variable definitions [macd_line, signal_line, _] = macd(close, 12, 26, 9) atr_value = atr(14) // Entry conditions with additional filters long_condition = crossover(ema_fast, ema_slow) and rsi < 70 and (macd_line > signal_line) and atr_value > atr_value[1] * 1.1 short_condition = crossunder(ema_fast, ema_slow) and rsi > 30 and (macd_line < signal_line) and atr_value > atr_value[1] * 1.1 // Adding debug information plotshape(series=long_condition, color=color.green, location=location.belowbar, style=shape.xcross, title="Long Signal") plotshape(series=short_condition, color=color.red, location=location.abovebar, style=shape.xcross, title="Short Signal") // Risk management based on a fixed number of points stop_loss_points = 100 take_profit_points = 200 // Order execution if (long_condition) strategy.entry("Long", strategy.long, comment="Long Entry") strategy.exit("Exit Long", "Long", stop=close - stop_loss_points, limit=close + take_profit_points) if (short_condition) strategy.entry("Short", strategy.short, comment="Short Entry") strategy.exit("Exit Short", "Short", stop=close + stop_loss_points, limit=close - take_profit_points) // Plotting EMAs for reference plot(ema_fast, color=color.blue, title="Fast EMA") plot(ema_slow, color=color.orange, title="Slow EMA")