DynamicZoneRsiDown
DynamicZoneRsiDown in ProBuilder returns the lower dynamic threshold of the Dynamic Zone RSI, a Bollinger Band applied to RSI values. Syntax and examples.
Syntax
DynamicZoneRsiDown[RSIperiod, BBperiod](price)Parameters
| Name | Type | Default | Description |
|---|---|---|---|
RSIperiod | integer | 14 | Period of the underlying RSI calculation. |
BBperiod | integer | 20 | Period of the Bollinger Band statistics (mean and standard deviation) applied to the RSI values. |
price | price source | close | Price series fed into the RSI, typically close. |
Formula
DynamicZoneRsiDown = Average[BBperiod](RSI[RSIperiod](price))
- STD[BBperiod](RSI[RSIperiod](price)) * 0.8A Bollinger-style lower band, computed on the RSI series instead of price, with a 0.8 standard deviation multiplier.
How it works
The classic RSI uses fixed thresholds, 30 for oversold and 70 for overbought, regardless of the instrument or regime. The Dynamic Zone approach replaces those constants with bands derived from the RSI's own recent distribution. DynamicZoneRsiDown computes the mean of the RSI over BBperiod bars and subtracts 0.8 times the RSI's standard deviation over the same window.
The result is an oversold line that moves. In quiet periods, when RSI readings cluster tightly, the band sits close to the RSI average and reacts to smaller deviations. In volatile periods the band widens, demanding a larger RSI drop before a reading qualifies as oversold. In persistent downtrends, where a fixed level of 30 would flag oversold almost continuously, the dynamic band drifts down with the RSI and keeps the threshold meaningful.
The function returns the band only. To generate signals, compute the RSI separately with the same RSIperiod and price, then compare the two series, typically watching for the RSI to cross back above the lower band. The companion function DynamicZoneRsiUp produces the matching upper band.
Examples
Example 1, Plotting the lower dynamic band (Indicator)
// Lower Dynamic Zone RSI band, 14-period RSI, 20-period bands
a = dynamiczonersidown[14,20](close)
return a coloured(255,0,0) style(line,1)Draws the lower dynamic threshold as a red line. Displayed together with the RSI it marks the adaptive oversold zone.
Example 2, Full dynamic zone with RSI overlay (Indicator)
// RSI with both dynamic bands in one panel
myRSI = RSI[14](close)
lowerband = DynamicZoneRsiDown[14,20](close)
upperband = DynamicZoneRsiUp[14,20](close)
RETURN myRSI, lowerband COLOURED(255,0,0), upperband COLOURED(0,180,0)Plots the RSI between its adaptive oversold and overbought boundaries. Signals are read at the touches and re-crossings of the bands rather than at fixed levels.
Example 3, Adaptive oversold entry (ProOrder)
// Buy when RSI recovers above its dynamic oversold band in an uptrend
trend = Average[200](close)
myRSI = RSI[14](close)
lowerband = DynamicZoneRsiDown[14,20](close)
IF NOT LongOnMarket AND close > trend AND myRSI CROSSES OVER lowerband THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF LongOnMarket AND myRSI > 60 THEN
SELL AT MARKET
ENDIFEnters long when the RSI crosses back above the adaptive lower band while price trades above the 200-period average, then exits once momentum normalizes.
Interpretation
| Condition | Reading |
|---|---|
| RSI below the lower band | Momentum is unusually weak relative to its own recent range, adaptive oversold. |
| RSI crosses back above the band | Candidate bullish signal, recovery from the oversold zone. |
| Band far below the RSI average | High RSI volatility, only strong washouts register as oversold. |
| Band hugging the RSI average | Quiet momentum regime, small dips already qualify. |
Compared with the fixed 30 level, the dynamic band flags fewer false oversold readings in trending markets and more usable ones in low-volatility markets. As with any oversold measure, a reading below the band describes conditions, not a guaranteed reversal.
Common errors and gotchas
- Mismatched RSI settings. Comparing
RSI[14](close)againstDynamicZoneRsiDown[7,20](close)produces incoherent signals. TheRSIperiodandpriceof both series must match. - Using the band as the oscillator. The function returns the threshold line, not the RSI itself. Conditions like
DynamicZoneRsiDown[14,20](close) < 30test the band level, which is rarely what a strategy intends. - Bracket order. The two periods share one pair of square brackets and the price source sits in parentheses,
DynamicZoneRsiDown[14,20](close). Splitting the periods into separate brackets raises a syntax error. - Fixed 0.8 multiplier. The standard deviation factor is built in and cannot be passed as a parameter. For a wider or narrower zone, rebuild the band manually from
Average,STD, andRSI.
Related instructions
DynamicZoneRsiUp, the matching upper dynamic threshold of the Dynamic Zone RSI.DynamicZoneStochasticDown, the same concept applied to the Stochastic oscillator.DynamicZoneStochasticUp, upper dynamic band of the Dynamic Zone Stochastic.RSI, the underlying Relative Strength Index.BollingerDown, lower Bollinger band on price, the same band construction.STD, standard deviation, one building block of the band.Average, simple moving average, the other building block.Stochastic, alternative bounded oscillator usable with dynamic zones.
