StochRSI -- Stochastic RSI
Contents
Overview
Stochastic RSI (StochRSI) applies the Stochastic oscillator formula to RSI values instead of raw price. The result is an indicator that is significantly more sensitive than standard RSI -- it reaches extreme values (0 and 100) far more frequently.
Where RSI might hover around 40--60 for extended periods, StochRSI will swing aggressively between 0 and 100 within the same timeframe. This makes it ideal for catching short-term reversals, but it also means more false signals.
Think of it this way:
- RSI answers: "How strong is the current momentum compared to recent history?"
- StochRSI answers: "Where is RSI right now relative to its own recent range?"
If RSI has ranged between 35 and 65 over the last 14 candles and currently sits at 35, StochRSI would be near 0 -- even though RSI itself is not at a traditional "oversold" level. This relative measurement is what makes StochRSI more reactive.

Format
stoch_rsi_{period}
The period defines the lookback window for both the underlying RSI calculation and the stochastic normalization applied on top.
| Example | Period | Use Case |
|---|---|---|
stoch_rsi_7 | 7 | Very fast, extremely reactive -- ideal for scalping on 1m/5m charts |
stoch_rsi_14 | 14 | Standard -- the most common period, balances sensitivity and reliability |
stoch_rsi_21 | 21 | Smoother, fewer whipsaws -- better for 15m/1h swing entries |
Period range: 1 to 200.
Value range: 0 to 100 (always).
StochRSI Zones
| StochRSI Range | Zone | Interpretation |
|---|---|---|
| Below 10 | Deeply Oversold | RSI is at the very bottom of its recent range. Strong short-term reversal candidate. |
| 10 -- 20 | Oversold | RSI is near the low end of its recent range. Selling pressure may be exhausting. |
| 20 -- 80 | Neutral | StochRSI is mid-range. No strong directional signal from this indicator alone. |
| 80 -- 90 | Overbought | RSI is near the high end of its recent range. Buying pressure may be peaking. |
| Above 90 | Deeply Overbought | RSI is at the very top of its recent range. Strong short-term reversal candidate. |
StochRSI reaches 0 and 100 much more frequently than RSI reaches 30 and 70. A StochRSI value of 0 does not carry the same weight as an RSI of 0 (which would be extraordinary). Treat StochRSI extremes as short-term timing signals, not as strong standalone conviction signals.
Understanding Operators with StochRSI
Each operator behaves differently with StochRSI. Because StochRSI oscillates rapidly, operator choice has a major impact on signal frequency.
< (Less Than) -- State-Based
What it does: The trigger is true on every candle where StochRSI is below the threshold.
On the chart: StochRSI drops below the 10 line. For every candle it remains below 10, this trigger fires. Because StochRSI moves fast, these episodes tend to be short-lived (2--5 candles), but they can still fire multiple times.
[[actions.triggers]]
indicator = "stoch_rsi_14"
operator = "<"
target = "10"
timeframe = "5m"
StochRSI spends more time at extremes than RSI does. Even with a tight threshold like 10, you may get repeated triggers in quick succession. Always use max_count to limit entries, or switch to cross_below for a single-fire signal.
> (Greater Than) -- State-Based
What it does: The trigger is true on every candle where StochRSI is above the threshold.
On the chart: StochRSI climbs above the 80 or 90 line. Every candle it stays there, this trigger fires.
[[actions.triggers]]
indicator = "stoch_rsi_14"
operator = ">"
target = "85"
timeframe = "5m"
Typical use: Exit or take profit when StochRSI signals short-term overbought conditions. Combine with max_count = 1 to fire once.
cross_below -- Event-Based
What it does: Fires once, at the exact candle where StochRSI transitions from above the threshold to below it. The previous candle had StochRSI >= the target, and the current candle has StochRSI < the target.
On the chart: StochRSI pierces the 20 line from above to below. This single moment is the trigger -- it then goes silent until the next crossing.
[[actions.triggers]]
indicator = "stoch_rsi_14"
operator = "cross_below"
target = "20"
timeframe = "5m"
Typical use: Detect the moment StochRSI enters oversold territory. More precise than < because it fires exactly once per entry into the zone, making it useful for timing dip-buy entries without repeated signals.
cross_above -- Event-Based
What it does: Fires once, at the exact candle where StochRSI transitions from below the threshold to above it. The previous candle had StochRSI <= the target, and the current candle has StochRSI > the target.
On the chart: StochRSI climbing up through the 20 line from below. The moment it crosses, the trigger fires once.
[[actions.triggers]]
indicator = "stoch_rsi_14"
operator = "cross_above"
target = "20"
timeframe = "5m"
Typical use: Detect when StochRSI recovers from oversold. Instead of buying while the indicator is still falling, this waits for the first sign of reversal -- StochRSI turning back up through the oversold boundary. This is often a safer entry than raw < 10.
= (Equal) -- Not Recommended for StochRSI
Why: StochRSI produces floating-point values. Exact equality (e.g., stoch_rsi_14 = 50) will almost never match. Use < or > instead.
- Use
</>when you want to act while StochRSI is in an extreme zone (state-based). Always addmax_countto limit repeated firing. - Use
cross_above/cross_belowwhen you want to act at the moment StochRSI enters or leaves a zone (event-based). This is often the better choice for StochRSI because it naturally fires once per event.
TOML Examples
Buy on Deeply Oversold StochRSI
Catch short-term dips when StochRSI drops below 10 on the 5-minute chart. The max_count = 1 prevents repeated entries while StochRSI remains pinned near zero.
[[actions]]
type = "open_long"
amount = "50 USDC"
[[actions.triggers]]
indicator = "stoch_rsi_14"
operator = "<"
target = "10"
timeframe = "5m"
max_count = 1
Sell on Overbought StochRSI
Take profit when short-term momentum peaks. StochRSI above 85 on the 5-minute chart signals the move may be overextended.
[[actions]]
type = "sell"
amount = "100%"
[[actions.triggers]]
indicator = "stoch_rsi_14"
operator = ">"
target = "85"
timeframe = "5m"
max_count = 1
Buy on StochRSI Recovery (Cross Above 20)
Instead of buying while StochRSI is still falling, wait for the first sign of recovery. This catches the reversal rather than the bottom.
[[actions]]
type = "open_long"
amount = "75 USDC"
[[actions.triggers]]
indicator = "stoch_rsi_14"
operator = "cross_above"
target = "20"
timeframe = "5m"
StochRSI with RSI Filter
Combine the sensitivity of StochRSI with the broader context of RSI. Only enter when StochRSI is deeply oversold and RSI confirms the broader momentum is also depressed. This filters out the many false signals StochRSI generates in trending markets.
[[actions]]
type = "open_long"
amount = "100 USDC"
[[actions.triggers]]
indicator = "stoch_rsi_14"
operator = "<"
target = "10"
timeframe = "5m"
max_count = 1
[[actions.triggers]]
indicator = "rsi_14"
operator = "<"
target = "40"
timeframe = "1h"
Tips
StochRSI reaches 0 and 100 routinely -- sometimes multiple times per hour on low timeframes. By itself, a StochRSI extreme is a weak signal. Always combine it with at least one confirmation layer: a trend filter (sma_50 > sma_200), an RSI range check, or a higher-timeframe directional bias.
stoch_rsi_7 is extremely reactive and suitable for ultra-short scalping on 1m charts. Expect many signals, most of them marginal.
stoch_rsi_14 is the standard and the best starting point for most strategies. It balances sensitivity with signal quality.
stoch_rsi_21 smooths out the noise and produces fewer, more reliable signals. Good for 15m or 1h timeframes where you want fewer entries with higher conviction.
StochRSI shines on low timeframes (1m, 5m, 15m) where its sensitivity catches quick reversals. On higher timeframes like 4h or 1d, regular RSI is usually sufficient because momentum shifts play out over more candles. A powerful combination is StochRSI on 5m for entry timing with RSI on 1h for directional confirmation.
In a strong uptrend, StochRSI will repeatedly hit 0 and bounce -- producing oversold signals that look like dip-buy opportunities. But in a sustained downtrend, those dips keep getting deeper. Always gate StochRSI entries with a trend filter to avoid catching falling knives.