RSI compresses recent up-moves vs down-moves into 0-100. Useful in ranges, dangerous in trends: in a strong move it pins at the extreme while you keep catching knives.
RSI(14) measures how one-sided the last 14 bars were: 100 = every bar closed up, 0 = every bar closed down. "Oversold < 30 → buy" is a mean-reversion bet: it assumes the selling was an overreaction.
RSI = 100 − 100/(1+RS), where RS = Wilder-smoothed average gain / average loss over N bars. Note the smoothing: Wilder's is an EMA with α=1/N, so RSI reacts slower than a naive rolling mean version — two "RSI(14)" from different libraries can disagree.
Our engine uses Wilder smoothing (α=1/N). RSI-like bounded series are also the only place we recommend percentile thresholds — unbounded prices make percentiles drift. Try both in the playground.
Open the rule playground, build a condition with this indicator, and run it on 1,000 real bars — per-condition fire counts, entirely in your browser. Or lint it in Python with rulelint (MIT).
Research and education. Not investment advice. No indicator makes money by itself — our own arenas' honest records (losses included) are on the scoreboard.