BulletProof S/R Engine [3M Capital]

Most S/R tools use pivot highs/lows or wick extremes, which capture where price momentarily touched rather than where it structurally committed. This indicator focuses on the close of the candle body — where the market actually settled — filtering for only the candles that represent genuine institutional-scale displacement.
How It Works
The engine monitors the 4H timeframe using confirmed (closed) bars to eliminate repainting. On each completed 4H candle, it measures the body size against a rolling average. When a candle's body exceeds the average by a user-defined multiplier and volume confirms participation, the body close price is registered as a new level.
- Bullish impulse closes are marked as support
- Bearish impulse closes are marked as resistance
- Levels that are structurally broken on a subsequent 4H close are either flipped in polarity (support becomes resistance and vice versa) or removed, depending on user preference
- Nearby levels are automatically merged to prevent cluster noise
- A FIFO cap ensures the chart stays clean by retiring the oldest levels first
Key Features
- Body-close only — all levels are derived from where the 4H candle body closed, ignoring wick noise entirely
- Non-repainting — uses confirmed prior-bar data on the 4H timeframe; levels never shift or disappear retroactively
- Impulse detection — configurable body size multiplier with optional volume confirmation filters out insignificant candles
- Polarity flip — broken support automatically converts to resistance (and vice versa), preserving structurally relevant price memory
- Proximity merge — prevents redundant levels from stacking when consecutive impulse candles close at similar prices
- Level cap — oldest levels are pruned automatically to maintain chart clarity
- Full alert suite — static alert conditions for new level detection plus dynamic alerts on level breaks and flips, all tagged with the indicator name
Inputs
Detection
- Body Threshold (× average) — how many times larger than the rolling average a 4H body must be to qualify as an impulse. Higher values produce fewer but stronger levels.
- Average Lookback — rolling window in 4H bars for calculating average body size and volume
- Volume Confirmation — toggle and multiplier for requiring above-average volume on impulse candles
Level Management
- Max Active Levels — hard cap on simultaneously displayed levels
- Merge Distance (%) — levels within this percentage of each other are treated as one zone
- Break Buffer (%) — a 4H close must exceed the level by this margin to confirm a structural break
- Flip Broken Levels — when enabled, broken levels convert to the opposite type; when disabled, they are removed
Visuals
- Line width, style (solid, dashed, dotted), and independent colors for support and resistance
- Optional labels pinned to the chart right edge showing level type and price
- Optional impulse markers (triangles) showing where detections occurred
Usage Notes
- Designed for use on chart timeframes at or below 4H (1m, 5m, 15m, 1H, 4H). On daily or higher timeframes, levels still plot but some intra-period impulse candles may not be captured.
- Default settings are calibrated for general use. For higher-volatility instruments, consider raising the body threshold. For lower-volatility instruments or more granular levels, consider lowering it.
- This indicator identifies structural price levels based on historical candle data. It does not generate trade signals and is intended to be used alongside other analysis tools and methods.
Alerts
- BP S/R — New Support
- BP S/R — New Resistance
- BP S/R — Any New Level
- Dynamic alerts fire on level breaks and polarity flips with the specific price included in the alert message
Original implementation by 3M Capital. Part of the BulletProof indicator suite.
Label visibility improvement. Price labels now sit directly below their corresponding S/R line instead of alongside it, eliminating overlap with the level itself. Label text is now white across both support and resistance levels for consistent readability against the colored background badge. Background opacity tightened slightly for improved contrast. No changes to detection logic, level management, or alert behavior.
- Labels repositioned below the line using upward-pointing anchor style
- Text color locked to white on both initial creation and polarity flip events
- Background badge opacity adjusted from 85 to 80 for better text legibility
How It Works
The engine monitors a user-selected source timeframe using confirmed (closed) bars to eliminate repainting. On each completed candle, it measures the body size against a rolling average. When a candle's body exceeds the average by a user-defined multiplier and volume confirms participation, the body close price is registered as a new level.
- Bullish impulse closes are marked as support
- Bearish impulse closes are marked as resistance
- Levels that are structurally broken on a subsequent confirmed close are either flipped in polarity (support becomes resistance and vice versa) or removed, depending on user preference
- Nearby levels are automatically merged to prevent cluster noise
- A FIFO cap ensures the chart stays clean by retiring the oldest levels first
- A warning badge appears when the chart timeframe exceeds the selected source timeframe
Source Timeframe Selection
The indicator provides four intraday timeframe options for S/R detection, selectable from a dropdown in settings
- 4 Hour — broadest structural levels, ideal for swing context on lower timeframe charts
- 1 Hour — intraday structural levels with moderate frequency
- 15 Min — higher-resolution levels for active scalping and session-based trading
- 5 Min — finest granularity for micro-structure and rapid price action
All four options use the same body-close impulse detection logic. The only difference is the timeframe the engine scans for qualifying candles. For best results, the chart timeframe should be at or below the selected source timeframe.
Key Features
- Body-close only — all levels are derived from where the candle body closed, ignoring wick noise entirely
- Non-repainting — uses confirmed prior-bar data on the selected timeframe; levels never shift or disappear retroactively
- Multi-timeframe selection — four focused intraday options covering swing context down to micro-structure
- Impulse detection — configurable body size multiplier with optional volume confirmation filters out insignificant candles
- Polarity flip — broken support automatically converts to resistance (and vice versa), preserving structurally relevant price memory
- Proximity merge — prevents redundant levels from stacking when consecutive impulse candles close at similar prices
- Level cap — oldest levels are pruned automatically to maintain chart clarity
- Full alert suite — static alert conditions for new level detection plus dynamic alerts on level breaks and flips, all tagged with the indicator name
Inputs
Timeframe
- S/R Source Timeframe — dropdown selection: 4 Hour, 1 Hour, 15 Min, or 5 Min
Detection
- Body Threshold (× average) — how many times larger than the rolling average a candle body must be to qualify as an impulse. Higher values produce fewer but stronger levels.
- Average Lookback — rolling window in bars for calculating average body size and volume
- Volume Confirmation — toggle and multiplier for requiring above-average volume on impulse candles
Level Management
- Max Active Levels — hard cap on simultaneously displayed levels
- Merge Distance (%) — levels within this percentage of each other are treated as one zone
- Break Buffer (%) — a confirmed close must exceed the level by this margin to register a structural break
- Flip Broken Levels — when enabled, broken levels convert to the opposite type; when disabled, they are removed
Visuals
- Line width, style (solid, dashed, dotted), and independent colors for support and resistance
- White price labels positioned below each level for clear readability
- Optional impulse markers (triangles) showing where detections occurred
Alerts
- BP S/R — New Support
- BP S/R — New Resistance
- BP S/R — Any New Level
- Dynamic alerts fire on level breaks and polarity flips with the specific price included in the alert message
Usage Notes
- Stacking multiple instances of this indicator with different source timeframes creates a multi-resolution S/R map — for example, 4H levels for structural context and 15m levels for precision entries
- Default settings are calibrated for general use. For higher-volatility instruments, consider raising the body threshold. For lower-volatility instruments or more granular levels, consider lowering it.
- This indicator identifies structural price levels based on historical candle data. It does not generate trade signals and is intended to be used alongside other analysis tools and methods.
Original implementation by 3M Capital. Part of the BulletProof indicator suite.
Four structural improvements to level quality, detection accuracy, and runtime performance. No changes to timeframe selection, visual styling, or alert behavior.
Consolidated Security Call
All five individual request.security calls have been merged into a single tuple call that retrieves open, close, high, low, volume, average body, average volume, and ATR in one pass. This reduces the overhead of repeated context switching between timeframes and improves script execution efficiency.
Body-to-Range Ratio Filter
New input: Min Body Ratio (%). A candle can have an outsized absolute body but also carry large wicks in both directions, indicating indecision rather than directional conviction. The ratio filter requires the body to represent a minimum percentage of the candle's total high-to-low range (default 65%). This removes false impulse detections from candles that previously passed on body size alone despite lacking clean directional structure.
ATR-Adaptive Break Buffer
The break confirmation buffer has been changed from a fixed percentage of price to a multiple of ATR (default 0.5× ATR). A fixed percentage applies the same dollar threshold regardless of market conditions. ATR-scaled buffering widens automatically during volatile periods to prevent premature breaks from noise, and tightens during low-volatility compression to avoid stale levels persisting beyond their structural relevance. This adapts automatically across instruments and market regimes without requiring manual adjustment.
Touch Tracking
Levels now track how many times price has tested them without breaking. A touch registers when a candle wick reaches within 0.5× ATR of the level but the close holds on the correct side. Each confirmed test increments the count and the label updates to display the number of touches. Line width increases progressively with each touch, capped at two increments above the base width. Multi-tested levels are immediately distinguishable from untested ones, providing a visual read on which levels have proven structural significance. Touch count resets when a level undergoes a polarity flip.
New & Changed Inputs
- Min Body Ratio (%) — minimum body-to-range percentage for impulse qualification (default 65%)
- Break Buffer (× ATR) — replaces the previous Break Buffer (%) input with an ATR-scaled equivalent (default 0.5)
Invite-only script
Only users approved by the author can access this script. You'll need to request and get permission to use it. This is typically granted after payment. For more details, follow the author's instructions below or contact CapitalHoldings3M directly.
Note that this private, invite-only script has not been reviewed by script moderators, and its compliance with House Rules is undetermined. TradingView does NOT recommend paying for or using a script unless you fully trust its author and understand how it works. You may also find free, open-source alternatives in our community scripts.
Author's instructions
Disclaimer
Invite-only script
Only users approved by the author can access this script. You'll need to request and get permission to use it. This is typically granted after payment. For more details, follow the author's instructions below or contact CapitalHoldings3M directly.
Note that this private, invite-only script has not been reviewed by script moderators, and its compliance with House Rules is undetermined. TradingView does NOT recommend paying for or using a script unless you fully trust its author and understand how it works. You may also find free, open-source alternatives in our community scripts.