Strategi EMA RSI Crossover menggabungkan indikator teknis EMA dan Relative Strength Index (RSI) untuk mengidentifikasi sinyal beli atau jual potensial. Ketika garis EMA dan RSI bersilang, menunjukkan penyeberangan, itu menunjukkan perubahan potensial dalam momentum pasar. Misalnya, crossover bullish terjadi ketika EMA yang lebih pendek melintasi EMA yang lebih panjang, disertai dengan penyeberangan RSI di atas ambang batas tertentu, menandakan tren kenaikan potensial. Sebaliknya, crossover bearish menunjukkan tren penurunan ketika EMA yang lebih pendek melintasi EMA yang lebih panjang, dengan RSI melintasi di bawah level yang ditentukan. Pedagang sering menggunakan strategi ini untuk memasuki atau keluar posisi berdasarkan sinyal crossover ini, bertujuan untuk memaksimalkan tren pasar dan membalikkan.
Strategi EMA RSI Crossover adalah strategi trend-following yang sederhana dan mudah digunakan yang menggabungkan indikator dari kedua dimensi tren dan momentum untuk secara komprehensif menilai arah pasar. Strategi ini juga menggunakan beberapa kondisi penyaringan dan stop loss dinamis dan mengambil metode keuntungan untuk meningkatkan kualitas sinyal dan kemampuan kontrol risiko. Namun, strategi ini memiliki beberapa keterbatasan, seperti lag indikator dan perdagangan yang sering. Oleh karena itu, dalam aplikasi praktis, perlu untuk lebih mengoptimalkan dan meningkatkan strategi berdasarkan karakteristik pasar tertentu dan preferensi risiko pribadi.
/*backtest start: 2023-05-28 00:00:00 end: 2024-06-02 00:00:00 period: 1d basePeriod: 1h 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/ // © pritom980 //@version=5 strategy("EMA RSI Cross", overlay=true, margin_long=100, margin_short=100) // add RSI rsi_period = input.int(7,"RSI Period") rsi_val = ta.rsi(close[1],rsi_period) plot(rsi_val, color=color.blue, linewidth=2, title="RSI") buyRsiFlag = rsi_val < 20 sellRsiFlag = rsi_val > 80 // add EMA ema = ta.ema(close, 50) plot(ema, color=color.red, linewidth=2, title="EMA") // check buy // buy when the price is below ema buyFlag = ema > close ? true : false // sell when the price is above ema sellFlag = ema < close ? true : false bgcolor(buyFlag and buyRsiFlag ? color.green : na ) bgcolor(sellFlag and sellRsiFlag ? color.red : na ) // Check if current candle's body is bigger than previous candle's body and of opposite color is_body_bigger_long = math.abs(close - open) > math.abs(close[1] - open[1]) and close > open != close[1] > open[1] greenCandle = close > close[1] redCandle = close < close[1] // Mark the candle bgcolor(is_body_bigger_long and greenCandle and buyFlag ? color.blue : na, transp=70) // ENTRY --------------------- // Input for ATR period atr_length = input(14, title="ATR Length") // Calculate ATR atr_value = ta.atr(atr_length) // Calculate stop loss and take profit levels candleBody = math.abs(close-open) slDist = atr_value + candleBody stop_loss_long = close - slDist take_profit_long = close + (1.2 * slDist) stop_loss_short = high + slDist take_profit_short = high - (1.2 * slDist) // Entry and exit conditions if (buyFlag and buyRsiFlag and strategy.opentrades >= 0 and greenCandle) strategy.entry("Long", strategy.long) strategy.exit("Take Profit/Stop Loss", "Long", stop=stop_loss_long, limit=take_profit_long) // Entry and exit conditions if (sellFlag and sellRsiFlag and strategy.opentrades <= 0 and redCandle) strategy.entry("Short", strategy.short) strategy.exit("Take Profit/Stop Loss", "Short", stop=stop_loss_short, limit=take_profit_short)