Buy / Sell Signals
EMA crossover + RSI + volume confluence — the default "something is happening" alarm.
A multi-factor confluence script that fires when momentum, trend and volume agree on a direction.
The idea
Every indicator on its own is noisy. A single RSI dip to 30 means little. An EMA crossover alone gets chopped in sideways markets. But when three independent lenses agree — momentum, trend and volume — the probability of a real move goes up.
Buy / Sell Signals is a minimal implementation of that idea. It scores five inputs on every new candle, keeps only the setups that clear a confluence threshold, and suppresses follow-up triggers for 5 bars.
How it scores
| Input | Buy points | Sell points |
|---|---|---|
| EMA 7 crosses above/below EMA 25 | +3 | +3 |
| RSI exits oversold (crosses back above 30) or overbought (back below 70) | +2 | +2 |
| RSI currently extreme (below 30 or above 70) | +2 | +2 |
| Candle reversal (red → green or green → red) | +1 | +1 |
| Current volume above 1.5× 20-bar average (aligned with direction) | +1 | +1 |
Minimum score to print: 3. Strong signal (✓✓): 5+.
How to use it
- Enable the Buy / Sell Signals script in the DataLayerPanel under Scripts.
- Green ▲ markers appear under candles that triggered a buy, red ▼ for sells. Double-checked variants have the ✓✓ suffix.
- Combine with structural context: a strong buy near a clean support level is very different from a strong buy in mid-range.
- Do not trade every signal blindly. A 5-bar gap means you will still get plenty of entries — be selective.
Limits
- EMA-based core means this script lags. In fast markets it prints after the best entry.
- RSI-based extremes tilt it toward mean-reversion bias, which misfires in strong trends.
- Volume confirmation assumes reliable exchange volume. Low-liquidity perps can produce noisy triggers.
Pair it with Trend Following when the market is trending and with Mean Reversion in ranges.