OPEN-SOURCE SCRIPT
RSI + EMA + Volume Breakout (Robust)

//version=5
indicator("RSI + EMA + Volume Breakout (Robust)", overlay=true)
// === INPUTS ===
ema1_len = input.int(20, "EMA Fast (Short)")
ema2_len = input.int(50, "EMA Slow (Long)")
rsi_len = input.int(14, "RSI Length")
vol_mult = input.float(1.5, "Volume Multiplier", step=0.1)
vol_sma_len = input.int(20, "Volume SMA Length")
// === INDICATORS ===
ema1 = ta.ema(close, ema1_len)
ema2 = ta.ema(close, ema2_len)
rsi = ta.rsi(close, rsi_len)
vol_avg = ta.sma(volume, vol_sma_len)
vol_avg_safe = nz(vol_avg) == 0 ? 1 : vol_avg // protect against zero
// === CONDITIONS ===
bull_cross = ta.crossover(ema1, ema2)
bear_cross = ta.crossunder(ema1, ema2)
vol_break = volume > vol_avg_safe * vol_mult
rsi_bull = rsi > 55
rsi_bear = rsi < 45
buy_signal = bull_cross and vol_break and rsi_bull and close > ema1 and close > ema2
sell_signal = bear_cross and vol_break and rsi_bear and close < ema1 and close < ema2
// === PLOT EMAs ===
plot(ema1, title="EMA 20", linewidth=2)
plot(ema2, title="EMA 50", linewidth=2)
// === SIGNALS ===
plotshape(buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.large)
plotshape(sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.large)
// === ALERTS ===
alertcondition(buy_signal, title="Buy Alert", message="Buy Signal Triggered")
alertcondition(sell_signal, title="Sell Alert", message="Sell Signal Triggered")
indicator("RSI + EMA + Volume Breakout (Robust)", overlay=true)
// === INPUTS ===
ema1_len = input.int(20, "EMA Fast (Short)")
ema2_len = input.int(50, "EMA Slow (Long)")
rsi_len = input.int(14, "RSI Length")
vol_mult = input.float(1.5, "Volume Multiplier", step=0.1)
vol_sma_len = input.int(20, "Volume SMA Length")
// === INDICATORS ===
ema1 = ta.ema(close, ema1_len)
ema2 = ta.ema(close, ema2_len)
rsi = ta.rsi(close, rsi_len)
vol_avg = ta.sma(volume, vol_sma_len)
vol_avg_safe = nz(vol_avg) == 0 ? 1 : vol_avg // protect against zero
// === CONDITIONS ===
bull_cross = ta.crossover(ema1, ema2)
bear_cross = ta.crossunder(ema1, ema2)
vol_break = volume > vol_avg_safe * vol_mult
rsi_bull = rsi > 55
rsi_bear = rsi < 45
buy_signal = bull_cross and vol_break and rsi_bull and close > ema1 and close > ema2
sell_signal = bear_cross and vol_break and rsi_bear and close < ema1 and close < ema2
// === PLOT EMAs ===
plot(ema1, title="EMA 20", linewidth=2)
plot(ema2, title="EMA 50", linewidth=2)
// === SIGNALS ===
plotshape(buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.large)
plotshape(sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.large)
// === ALERTS ===
alertcondition(buy_signal, title="Buy Alert", message="Buy Signal Triggered")
alertcondition(sell_signal, title="Sell Alert", message="Sell Signal Triggered")
오픈 소스 스크립트
진정한 트레이딩뷰 정신에 따라 이 스크립트 작성자는 트레이더가 기능을 검토하고 검증할 수 있도록 오픈소스로 공개했습니다. 작성자에게 찬사를 보냅니다! 무료로 사용할 수 있지만 코드를 다시 게시할 경우 하우스 룰이 적용된다는 점을 기억하세요.
면책사항
이 정보와 게시물은 TradingView에서 제공하거나 보증하는 금융, 투자, 거래 또는 기타 유형의 조언이나 권고 사항을 의미하거나 구성하지 않습니다. 자세한 내용은 이용 약관을 참고하세요.
오픈 소스 스크립트
진정한 트레이딩뷰 정신에 따라 이 스크립트 작성자는 트레이더가 기능을 검토하고 검증할 수 있도록 오픈소스로 공개했습니다. 작성자에게 찬사를 보냅니다! 무료로 사용할 수 있지만 코드를 다시 게시할 경우 하우스 룰이 적용된다는 점을 기억하세요.
면책사항
이 정보와 게시물은 TradingView에서 제공하거나 보증하는 금융, 투자, 거래 또는 기타 유형의 조언이나 권고 사항을 의미하거나 구성하지 않습니다. 자세한 내용은 이용 약관을 참고하세요.