EMA + VWAP + Bollinger Bands Combo# EMA + VWAP + Bollinger Bands Combo
This indicator combines three of the most popular technical analysis tools into a single customizable overlay: Exponential Moving Average (EMA), Volume Weighted Average Price (VWAP), and Bollinger Bands.
Instead of adding multiple indicators to your chart, you can manage all three from a single script and enable only the tools you need.
### Features
✅ **Exponential Moving Average (EMA)**
* Customizable length and source
* Optional display toggle
* Useful for identifying trend direction and dynamic support/resistance
✅ **Volume Weighted Average Price (VWAP)**
* Supports Session, Weekly, Monthly, Quarterly, and Yearly anchors
* Optional VWAP deviation bands
* Useful for institutional price analysis and intraday trend confirmation
✅ **Bollinger Bands**
* Customizable length and standard deviation settings
* Supports SMA, EMA, RMA (SMMA), WMA, and VWMA as the basis
* Useful for volatility analysis, breakout detection, and mean-reversion setups
### Display Combinations
The indicator allows any combination of:
* EMA only
* VWAP only
* Bollinger Bands only
* EMA + VWAP
* EMA + Bollinger Bands
* VWAP + Bollinger Bands
* EMA + VWAP + Bollinger Bands
### How Traders Commonly Use It
**Trend Following**
* Price above EMA and VWAP can indicate bullish conditions.
* Price below EMA and VWAP can indicate bearish conditions.
**Intraday Trading**
* VWAP acts as a key institutional reference level.
* VWAP bands can help identify stretched price conditions.
**Volatility Analysis**
* Bollinger Band expansion may indicate increasing volatility.
* Bollinger Band contraction may indicate potential breakout conditions.
**Confluence Zones**
* Areas where EMA, VWAP, and Bollinger Bands align can provide stronger support and resistance levels.
### Notes
This indicator is designed as a convenience tool that combines multiple commonly used overlays into a single script, helping reduce chart clutter while maintaining flexibility and customization.
Penunjuk

Penunjuk

Fear & Greed IndexThe Fear & Greed Index is a synthetic market sentiment indicator designed to convert multiple technical signals into a single 0–100 score.
Its purpose is to quickly identify market phases of fear, neutrality, or greed across any asset or index.
This indicator does not rely on an official VIX.
Instead, it uses synthetic realized volatility, combined with trend and momentum metrics, to provide a visual reading of market sentiment and regime conditions.
Methodology
The score is built from several components:
Realized volatility
used as a market stress proxy: higher volatility pushes the index toward fear.
Momentum
captures recent price acceleration or deterioration.
RSI
evaluates market strength and overbought / oversold conditions.
Trend vs moving average
compares current price to its moving average to assess directional bias.
Drawdown
measures the distance from recent highs to identify stress, correction, or recovery phases.
Score interpretation
The final score is normalized between 0 and 100:
0 – 20 → Extreme Fear
20 – 40 → Fear
40 – 60 → Neutral
60 – 80 → Greed
80 – 100 → Extreme Greed
How to use it
Low readings usually reflect stressed, volatile, or corrective market conditions.
High readings usually reflect confident, bullish, or potentially overheated market conditions.
The indicator is best used as a market regime / sentiment filter, not as a standalone buy or sell signal.
Disclaimer
This script is a synthetic sentiment indicator based on price and volume data.
It is not an official volatility index and should not be considered investment advice. Penunjuk

Adaptive Support & Resistance Pro with EMA Momentum Filter## Description
This indicator is an advanced tool designed to identify adaptive Support and Resistance (S/R) zones and combine them with an Exponential Moving Average (EMA) momentum filter. Unlike static S/R lines, this script uses a combination of momentum oscillators and dynamic pivot calculations to find high-probability reversal zones on higher or current timeframes.
The core philosophy of this indicator is to prevent "knife-catching." Instead of firing a signal immediately when a support or resistance level is formed, it waits for the price to confirm a change in momentum by crossing the EMA line in the direction of the trade.
---
## How It Works (Under the Hood)
### 1. Support & Resistance Detection
The script uses a multi-layered filter to detect true pivot points:
* **Legacy RSI & Modified RSI:** It evaluates overbought (>75) and oversold (<25) conditions using a 9-period Relative Strength Index.
* **Chande Momentum Oscillator (CMO) based on HMA:** It applies a 1-period CMO logic over Hull Moving Averages (HMA 5 and HMA 12) to detect immediate shifts in market velocity.
* **Close Pivots:** It uses deviation-free highest/lowest calculations (`ta.highest` and `ta.lowest`) combined with `ta.valuewhen` to fetch precise structural levels.
A **Support Zone** is formed only when the RSI is oversold, the CMO shows an upward momentum shift (>50), and a local low pivot is confirmed.
A **Resistance Zone** is formed when the RSI is overbought, the CMO shows a downward shift (<-50), and a local high pivot is confirmed.
### 2. S/R Timeframe Flexibility
Through the `request.security` function, users can plot these adaptive levels from higher timeframes (HTF) onto their current chart. To prevent **repainting** and back-shifting signals, the script strictly uses `barmerge.lookahead_off`.
### 3. EMA Momentum Trigger (The Confirmation Filter)
To filter out false breakouts and premature entries during heavy trend extensions, an EMA filter is introduced:
* **BUY Signal:** Triggered only when a new Support level has been established AND the price successfully closes above the EMA (`ta.crossover`).
* **SELL Signal:** Triggered only when a new Resistance level has been established AND the price successfully closes below the EMA (`ta.crossunder`).
**Strict Discipline:** The script uses an internal state machine (`waitForBuyBreak` / `waitForSellBreak`) ensuring that **only ONE signal** is fired per newly created S/R level. This completely eliminates the "whipsaw" effect (multiple false signals) when the price is consolidating or chopping around the moving average.
---
## Settings & Customization
* **Line Width / Colors:** Fully customize the visual thickness and color styling of your Support and Resistance zones.
* **S/R Timeframe:** Leave it blank for the current chart timeframe, or select higher timeframes (e.g., 4H or 1D) for macro level analysis.
* **Enable EMA Filter:** Toggle this option ON to use the momentum confirmation logic, or OFF to see signals immediately upon S/R level creation.
* **EMA Length:** Adjust the period of the confirmation line (Default is 50, but can be set to 20 for faster entries or 200 for macro trend-following).
---
## Alerts
The script includes three built-in alert conditions for automation:
1. `New S/R line` - Triggers whenever a new support or resistance level is plotted.
2. `BUY Signal` - Triggers when the EMA crossover confirms the support bounce.
3. `SELL Signal` - Triggers when the EMA crossunder confirms the resistance rejection.
## Disclaimer
This indicator is meant for educational and analytical purposes only. Past performance does not guarantee future results. Always practice proper risk management. Penunjuk

Triangle Pattern Scanner (Symmetric / Ascending / Descending)Triangle Pattern Scanner automatically detects and draws Symmetric,
Ascending, and Descending triangle formations on the chart in real time,
using pivot-based geometry validation to ensure only structurally sound
patterns are displayed. A multi-timeframe table shows at a glance which
triangle types are currently forming across five user-defined timeframes.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
BACKGROUND — WHY TRIANGLE PATTERNS?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Triangle patterns are among the most widely recognized continuation and
reversal formations in technical analysis. They form when price makes a
series of pivot highs and pivot lows that converge toward a single apex
point, compressing volatility before a potential breakout in either
direction.
Identifying them manually requires drawing trendlines across multiple
pivots, verifying that price stays within the boundaries throughout the
formation, checking that the lines actually converge ahead, and
distinguishing between the three types based on the angle of each
boundary line. This indicator automates all of those steps.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
THREE PATTERN TYPES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SYMMETRIC TRIANGLE
Both the upper trendline (connecting pivot highs) and the lower trendline
(connecting pivot lows) slope toward each other — the upper falling, the
lower rising. Neither side is horizontal. The pattern is considered neutral
until the breakout direction is confirmed. A symmetry ratio check ensures
the two slopes are reasonably balanced rather than one side being nearly
flat while the other is very steep.
ASCENDING TRIANGLE
The upper trendline is nearly horizontal (price repeatedly tests the same
resistance level) while the lower trendline slopes upward (higher lows).
The pattern is considered bullish by structure, with the expectation of
an upward breakout through the flat resistance. The angle tolerance for
the horizontal line is configurable, giving you control over how strictly
"flat" the upper line must be.
DESCENDING TRIANGLE
The lower trendline is nearly horizontal (price repeatedly tests the same
support level) while the upper trendline slopes downward (lower highs).
The pattern is considered bearish by structure, with the expectation of
a downward breakout through the flat support. The same configurable angle
tolerance applies to the lower line.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW IT WORKS — TECHNICAL DETAIL
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PIVOT DETECTION
The indicator uses Pine Script's ta.pivothigh() and ta.pivotlow() to
collect recent swing highs and swing lows. The Pivot Length input controls
the symmetric left-right lookback used by both functions — a pivot high
requires the highest high compared to an equal number of bars on both
sides. Up to 8 recent pivots of each type are stored in memory for
pattern scanning.
GEOMETRY VALIDATION
For each combination of two pivot highs and two pivot lows, the indicator
calculates the slopes and intercepts of the upper and lower trendlines,
then verifies:
— Convergence: the two lines must actually meet ahead of the current
bar (apex in the future), not behind it
— Containment: every bar between the formation's start and end must
have its high below the upper trendline and its low above the lower
trendline — no violations allowed
— Slope direction: upper falling + lower rising for symmetric; upper
flat + lower rising for ascending; lower flat + upper falling for
descending
— Alternating pivots: the four pivot points (2 highs, 2 lows) must
alternate in time order (H, L, H, L or L, H, L, H) — this prevents
false formations where all highs come before all lows or vice versa
— Symmetry ratio (symmetric only): the ratio of the two slopes must
exceed a minimum threshold so neither side dominates
ANGLE NORMALIZATION
The angle calculation normalizes price change against the formation's
own height and bar count rather than using raw price differences. This
makes the angle tolerance behave consistently across different symbols,
price ranges, and timeframes — the same degree setting works on a $1
stock and a $50,000 asset alike.
DUPLICATE FILTERING
Once a valid formation is found, its starting bar position is recorded.
Any subsequent formation of the same type starting within a short
distance of an existing one is treated as a duplicate and skipped,
preventing the same structure from being drawn multiple times with
slightly different pivot combinations.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MULTI-TIMEFRAME TABLE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
A table in the bottom-right corner runs the same pattern detection
logic across five user-defined timeframes simultaneously and displays
whether each triangle type is currently detected on each timeframe.
A ✅ marks a detected pattern; — means none found.
This gives you a fast structural overview without switching charts —
if the 1H and 4H both show an ascending triangle, that confluence may
carry more weight than a pattern on a single timeframe alone.
The MTF scan uses a sampled bar validation (checking approximately 12
evenly-spaced points within the formation rather than every bar) to
keep performance reasonable across multiple timeframes.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW TO USE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. SET PIVOT LENGTH
Controls how significant a swing high or low must be. Lower values
(2–5) detect more frequent, shorter-term pivots. Higher values
(10–20) require more surrounding bars and detect only major structure.
2. SET LOOKBACK
Maximum bar span a formation can cover. Increase this to allow
larger, longer-term formations; decrease it to focus on recent
structure only.
3. ADJUST FLAT LINE ANGLE TOLERANCE
For ascending and descending triangles, this controls how strictly
the flat boundary must be horizontal. At 0° only perfectly
horizontal lines qualify; at 10–15° a moderate slope is allowed.
Increase if you want more patterns detected; decrease for stricter
horizontal requirement.
4. CONTROL MAX PATTERNS
Each pattern type has a separate maximum count. Set to 1 to show
only the most recent valid formation per type, or increase to see
multiple simultaneous formations.
5. SET LINE EXTENSION
How many bars beyond the formation the trendlines extend, giving
a visual projection of where the boundaries will be in the future.
6. READ THE MTF TABLE
Use the bottom-right table to check whether the same pattern type
is forming on higher timeframes, and prioritize formations that
appear on multiple timeframes.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WHERE TO USE IT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Works on any asset class (crypto, forex, equities, indices, commodities)
and any timeframe. Particularly useful for:
— Breakout traders who want to be positioned before a triangle resolves
— Swing traders looking for compression zones where volatility is
contracting ahead of an expansion move
— Multi-timeframe analysis where higher-timeframe triangle formations
provide context for lower-timeframe entries
— Market structure analysis where triangle patterns help define the
current phase of price action (consolidation vs. expansion)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SETTINGS REFERENCE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Pivot Length — symmetric lookback for swing high/low detection
Lookback — maximum bar span a formation may cover
Max Triangles (each) — maximum formations shown per pattern type
Show/Hide (each type) — toggle each pattern type independently
Line Width — visual thickness of the trendlines
Line Extension (Bars) — how far beyond the formation lines extend
Show Labels — enable/disable the formation labels on chart
Flat Line Angle Tolerance — horizontal strictness for ascending/descending
MTF Timeframes (TF 1–5) — the five timeframes scanned in the MTF table
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ORIGINALITY
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Triangle pattern detection is a known concept, but this indicator's
specific implementation combines several elements not commonly found
together: full bar-by-bar containment validation (not just endpoint
checking), alternating pivot order enforcement, normalized angle
calculation that works consistently across different assets and
timeframes, and a simultaneous five-timeframe detection table — all
within a single indicator. The flat-line angle tolerance using
formation-height normalization is the author's own approach to making
ascending and descending triangle detection robust across varied market
conditions.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DISCLAIMER
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
This indicator is intended for educational and analytical purposes only.
Triangle patterns do not guarantee a breakout in any particular
direction. Always use proper risk management and combine multiple forms
of analysis before making trading decisions. Penunjuk

Volatility, Flow & Liquidity EngineVolatility, Flow & Liquidity Engine (VFL)
Why these parts are ONE tool, not a mashup of separate indicators
The three layers aren't independent studies stacked for show — they are sequential stages of a single trade decision (is a move coming, which way, and can I execute it) and they share one computational core. The same path-dependent volatility forecast is computed once and used by all three: it anchors Layer 1's expected move and implied-vs-realized dislocation, and it de-biases Layer 3's high-low spread estimators and prices its slippage and sizing. A signal is only actionable when Layer 1 says "loaded," Layer 2's order flow confirms the side, and Layer 3 says the spread and impact let you execute at size. Remove any layer and the decision is incomplete — timing without direction is a coin flip; direction without an execution read ignores slippage that can exceed the edge. That dependency, and the shared vol core, is why this lives in one script rather than three.
The three layers
Pressure & regime — when a move is coming. Compression, implied-vs-expected-vol dislocation, basis tension, convexity and trend inefficiency combine into a "pressure" reading. A high-percentile load plus a real range release fires a signal, typed GAMMA BLAST / SQUEEZE / EXPANSION, alongside a variance-ratio regime read and a path-dependent realized-vol forecast with a rolling fit/trust gauge.
Order flow — which way. Reconstructed intrabar buy/sell pressure (bulk-volume by default, with candle-geometry and intrabar tick-rule options) standardized to a z-score plus session CVD. Used only to confirm or veto a release's direction — the one orthogonal read price geometry alone can't give.
Liquidity & execution — can I trade it, and at what cost. Low-frequency effective-spread estimators (EDGE primary, with high-low covariance and high-low range cross-checks), an illiquidity ratio and impact-slope, and a volume-at-price liquidity map (POC, value area, walls, voids, anchored VWAP with σ bands, nearest dense liquidity). These become a liquidity score, slippage estimate, and order-type and size guidance. A structure sub-layer (prior-day value area + untested "naked" POCs) builds a per-bar support/resistance ladder that location-gates the final signal: a long is withheld if it would fire into a resistance shelf, a short if into support.
How to use it
Wait for the consolidated decision table to line up — pressure loaded, order flow confirming the side, liquidity executable, and the trade well-located against the S/R ladder. Read the size and order-type guidance before entering, and treat STRESSED liquidity or Extreme vol as stand-aside flags. The on-chart glow lines map the structure (prior-day value, naked-POC magnets, liquidity support/resistance, nearest shelves, fair-value VWAP); the legend-key panel decodes every line and marker.
Universal — works on any asset, any market
Price source, volume source (with a borrow-volume option for cash indices/FX), companion symbol and volatility index are all configurable inputs. Defaults are tuned for NSE NIFTY index futures (intraday, weekly Tuesday expiry, 09:15–15:30) — change the companion/vol-index symbols, expiry day and session for other instruments. The volatility index and companion symbol are optional; without them the engine runs price-only and re-weights automatically.
Non-repaint
Higher-timeframe confluence reads the last closed HTF bar by default, and every higher-timeframe request uses no-lookahead — confirmed signals don't move after the bar closes. The current bar forms live and settles on close, like any indicator.
Honesty / limitations
Every block is a low-frequency estimator of a quantity normally measured from quote/tick/book data — it approximates, it does not measure. Order flow is reconstructed (≈tick-rule accuracy), not true bid/ask; dealer-flow effects are inferred from price/vol/basis, not read from an option chain. Volume modules need a real volume feed and auto-disable without one. Follow-through statistics are computed on loaded chart history (in-sample), not a forward backtest.
This is a study/education tool, not financial advice. Estimates only; past behaviour does not guarantee future results. Penunjuk

VD Gann LevelsVD Gann Levels — by Vinith Dcosta & | Financepedia
A time-based Gann level indicator that automates what would otherwise be a manual charting process.
What it does
On the daily timeframe, the indicator identifies a significant unbroken swing high or low within a 6–12 month window and uses that pivot as an anchor. From the anchor date, it projects a series of Gann solar-degree intervals (90, 120, 144, 180, 216, 240, 270, 360) forward in time, converting each degree into a calendar date using mean solar motion (1° ≈ 1.0146 days). For every projected date that has already occurred, the indicator marks that day's high and low as horizontal levels.
Levels are calculated on the daily timeframe but render on all timeframes, so you can move down to intraday and see where price sits relative to each level.
The table
A summary table lists every degree, its classification (Major/Minor), the projected date, and the high/low of that date's candle. Dates that haven't occurred yet still show their projected date, with the high/low marked as "unplotted" until the candle forms. Each row carries an accuracy note: Minor degrees resolve to an exact date, while Major (cardinal) degrees may differ by up to one day due to seasonal variation in solar motion.
Inputs
Anchor: Auto-detect (default) selects the most extreme unbroken swing in the window, or switch to Manual to choose any anchor date from the calendar.
Pivot Lookback: Adjusts swing-detection sensitivity in auto mode.
Visual settings: Colors for the anchor and degree lines, line width, and a right-extension toggle.
How to use it
The plotted levels are intended as potential points of interest for confluence with your own analysis. The anchor and its degree projections give you a time-and-price map derived from a single significant swing. Use it alongside your existing method rather than in isolation.
Notes
Designed for the daily timeframe as the calculation base; displays across all timeframes.
The solar-degree dates approximate the classical Gann time method; cardinal degrees carry a ±1 day tolerance as noted in the table.
This script is for educational and informational purposes only. It does not produce buy or sell signals and is not financial advice. Trading decisions and their outcomes are solely your own responsibility. Always apply independent analysis and sound risk management.
Built by The Liquidity Architect" Penunjuk

Penunjuk

Daily Key LevelsDaily Key Levels marks important New York-session opening prices directly on the chart, helping intraday traders keep the current session’s main reference levels visible without carrying old historical lines forward.
The indicator captures each level from 1-minute data and projects it across the active session only. The session resets at 18:00 New York time, matching the common futures session structure.
Key Features
Marks the 18:00 market open, 8:30 news level, 9:30 New York open, and 10:00 macro level.
Optional 4-hour opening prices: 18:00, 22:00, 02:00, 06:00, 10:00, and 14:00.
Optional 6-hour opening prices: 18:00, 00:00, 06:00, and 12:00.
Automatically avoids duplicate stacked lines when the same timestamp belongs to multiple groups.
Only displays levels for the current active session.
Overlap Logic
When multiple level groups share the same timestamp, the indicator uses a clean priority rule:
Dedicated key levels > 4-hour opens > 6-hour opens
For example, the standalone 18:00 market-open level takes priority over both 4H and 6H 18:00 levels. The standalone 10:00 macro level takes priority over the 4H 10:00 level.
Notes
This indicator is designed as a visual reference tool for intraday context, planning, and level awareness. It does not generate trade signals, entries, exits, or alerts. Level accuracy depends on the chart symbol’s available 1-minute data and TradingView’s session/feed data. Penunjuk

Tomukas Daily Scale-In
I used to think entries were everything.
The more I trade, the more I think most traders are obsessed with the wrong thing.
Everyone wants the perfect entry.
Nobody talks about what happens after the trade is open.
This strategy is built around an idea I've been testing for a long time:
Build the position. Don't marry the entry.
The Daily timeframe is where this framework makes the most sense.
Less noise.
Less stress.
Less staring at charts.
You get a signal, build the position if needed, and let the market do its thing.
Current forward testing is sitting around 7.8% drawdown, which is one of the reasons I keep pushing this framework forward.
Not because it's perfect.
Because it's realistic.
No martingale.
No doubling forever.
No holy grail.
Just trend, position building, and patience.
Most of my scripts end up evolving around the same thing:
Scale-ins.
Because after years of testing indicators, filters, confirmations, and fancy ideas, position management ended up mattering more than almost everything else.
If you decide to test it, let me know what market you're running it on.
And if you find value in the work, boost the script.
It genuinely helps.
Forward testing tools, tracker, and the full framework are in the link in my bio.
— Tomukas
Strategi

All-Time High/Low Fibonacci Retracement (with Flip)Tired of manually dragging the Fibonacci tool across macro charts every time an asset makes a new high or low? This indicator automates the entire process. It scans the absolute historical data of any asset to identify its true All-Time High (ATH) and All-Time Low (ATL), then dynamically projects standard Fibonacci retracement levels between them.
Whether you are analyzing a stock's decades-long macro cycle or looking for major historical support and resistance levels, this script keeps your charts perfectly anchored without the manual clutter.
Key Features
100% Automated Tracking: Uses historical state variables (var) to lock onto the ultimate lowest and highest prices ever printed on your current chart.
Real-Time Dynamic Updates: If the asset breaks out into price discovery (new ATH) or capitulates to a new bottom (new ATL), the script recalculates and shifts all Fibonacci lines instantly.
One-Click Flip Toggle: Built-in calculation flip. Measure retracements from the top down (bearish retracement) or flip it from the bottom up (bullish expansion) right from the settings menu.
Clean Visuals: Hard-coded with classic Fibonacci ratios (23.6%, 38.2%, 50.0%, 61.8%, 78.6%) using a subtle, non-intrusive color gradient that won't crowd your daily price action.
How to Use the Settings
Flip Retracement (Checkbox): * Unchecked (Default): Places 0% at the All-Time High and 100% at the All-Time Low (Ideal for finding support levels during a pullback from macro highs).
Checked: Places 0% at the All-Time Low and 100% at the All-Time High (Ideal for tracking major resistance levels and targets on the way back up).
💡 Pro-Tip: Because TradingView loads a limited number of historical bars on lower timeframes (like 5-minute or 15-minute charts), always load this indicator on a Daily (D), Weekly (W), or Monthly (M) chart first. This ensures the script catches the true historical inception highs and lows of the asset! Penunjuk

EMA Ride Scanner V2.a (Toggle) - AshishShort Description
A dual-mode EMA9/21/50 trend-ride scanner with volume classification and a relative-strength "Grinder Mode" for stocks that trend without ever coiling tight enough to trigger a squeeze. Use alongside its companion, SQZ_SCAN, for momentum timing.
What it does
EMA Ride Scanner V2.a finds stocks in a clean, established uptrend and flags healthy pullback zones to buy — instead of chasing breakouts after the move has happened. Built on ideas from Qullamaggie's Episodic Pivot framework, Stockbee's price-neglect filter, and VCPSwing's 10/20-MA ride philosophy.
It checks: EMA9>21>50 stack alignment, minimum ride duration, distance from 52-week low, and volatility contraction. Volume bars are color-coded as EP surges, distribution, or healthy dips.
Two modes (single toggle)
Standard Mode (toggle OFF) — for stocks that coil and release. Flags a 0-5% pullback to EMA9, ideally on light volume. Pair with SQZ_SCAN for the breakout-timing signal.
Grinder Mode (toggle ON) — for stocks that never coil. Some strong trends have such low, steady volatility that they never compress enough to trigger a squeeze — by the time SQZ_SCAN fires, they've already run too far from EMA9 to count as a dip. Grinder Mode drops the squeeze requirement and instead checks: low ATR, long ride above EMA21, and meaningful outperformance vs a benchmark index (momentum begets momentum). If price is also near EMA9/21, it flags a Grinder Setup.
Note: cloud-bounce count is shown for visual reference only, not used as a filter — low-ATR stocks often show very few bounces simply because they ride EMA9 continuously rather than dipping and recovering.
Companion: SQZ_SCAN
SQZ_SCAN shows when volatility compression releases into a confirmed move — WATCH (squeeze building), EARLY FIRE (just released), or BUY (released + volume confirmed). NOTE: As with most indicators, this is a lagging indicator on a daily timeframe, and accuracy reduces significantly on lower timeframes.
Workflow:
Screen with EMA Ride Scanner (Standard Mode) for clean pullback candidates.
Check SQZ_SCAN on each — prioritize WATCH/EARLY FIRE/BUY.
Separately, screen Grinder Mode for low-volatility names — don't require SQZ confirmation here, it structurally won't fire for this archetype.
Sanity-check on hourly before entry — only to rule out an active breakdown, not as a hard gate. Both indicators are daily-timeframe tools; hourly readings are noisy and shouldn't override a valid daily setup.
What this isn't
A screening tool, not a full trading system — no buy/sell signals, no risk management built in. Combine with your own entry timing, sizing, and stops. Penunjuk

Opening Range Breakout & Liquidity EngineOpening Range Breakout & Liquidity Engine
Overview
A complete intraday opening-range-breakout engine. For each session it auto-detects the open, builds the opening range (the high–low band of the first N minutes, where the day's initial balance is set), and then does the three things most opening-range scripts leave out: it filters the day for tradability, it projects a trade map (targets and a stop) scaled to that day's own volatility, and it keeps an honest, on-chart win-rate tally of how often breaks actually reach their first target before the stop. It draws the structure and the map; it does not place orders. Analytical tool, not advice.
What makes it different — why these pieces are ONE engine (mashup rationale)
The opening range is the substrate — the reference band the whole day is measured against (ORH / ORL / midpoint).
The relative-volume ("in play") filter asks whether the range formed on above-average volume — the single biggest edge driver in the research. A break on a quiet day and a break on an active day are not the same event, so the engine measures the range's volume against a rolling average of prior sessions' opening-range volume and flags it.
The direction filter can require the break to agree with the opening-range candle's own direction, dropping the counter-range breaks that fare worst.
The accepted-break logic (close beyond the edge, optionally held a bar) separates a real initiative move from a wick.
The trade map projects targets (as range multiples or risk/R multiples) and a stop (opposite edge, range midpoint, or an ATR distance), so the plan scales to each day's volatility instead of fixed points — and reports the resulting R:R.
The win-rate harness closes the loop: it tracks every break until it tags target 1 or the stop and reports a real, path-aware Hit % and Edge on your instrument (optionally in-play only), logging unresolved breaks as end-of-day exits separately.
The failed-break module handles the other half of reality: a break that closes back inside the range traps breakout traders, so the engine flags it, projects the reversal to the opposite edge (stop at the failure extreme), and runs a second harness measuring how often that fade reaches the opposite edge before the failure is re-broken. A retest-hold flag marks the high-probability continuation entry; a trap flag marks both-edges-broken days; a range-state read (compressed / normal / wide) says what kind of break you're looking at.
Split apart, each piece is a fragment: a box without the filters is noise, targets without the harness are guesses, and a break with no failure case is half the picture. Chained, they answer one question — is this opening-range break worth taking here, and if it fails, is the fade? That interdependence is why it's a single engine, not a bundle.
What this adds over a standard opening-range script
Most ORB scripts stop at drawing the box and the two breakout lines. This engine adds the parts that decide and verify:
Relative-volume "in play" filter. Flags whether today's opening range formed on above-average volume — research-shown to be the dominant driver of opening-range edge — with an optional toggle to count only in-play days in the stats.
Range-direction filter. Optionally restricts breaks to the direction the opening-range candle closed, removing the weakest counter-range trades.
Volatility-scaled trade map. Targets as range or R (risk) multiples; stop at the opposite edge, the range midpoint, or an ATR distance — with the live R:R shown.
Path-aware win-rate harness. Tracks each break to target 1 or stop and reports an honest Hit % / Edge (vs a 50% coin-flip), counting end-of-day exits separately — a real, in-sample reality check, not a curve-fit claim.
Failed-break reversal module. Detects the break that closes back inside the range (a fakeout — research puts breakout failure rates in the 60–80% range), projects the fade toward the opposite edge with the failure extreme as its stop, and runs a second harness reporting how often the fade reaches that edge first. A failed break is often the better trade, and almost no ORB script measures it.
Retest-hold, trap and range-state context. A retest-hold flag marks the broken edge holding as support/resistance (the higher-probability continuation entry); a trap flag marks both-edges-broken whipsaw days; a range-state read (compressed / normal / wide vs the rolling average) says whether the break is likely to run or fail.
Reference levels with built-in legends. Current-day H/L, prior-day H/L (PDH/PDL) and prior-week H/L (PWH/PWL) — the most-watched intraday liquidity pools — are drawn as labelled lines that extend right, each tagged (DH/DL/PDH/PDL/PWH/PWL) so every line identifies itself. A Day position read shows whether price is above PDH, inside the prior-day range, or below PDL.
Liquidity-sweep detection, fused with the failure logic. A sweep — price wicks beyond PDH/PDL/PWH/PWL and closes back inside, taking the stops there — is flagged with a marker and in the dashboard. Because the opening-range edges are themselves prime liquidity, a failed ORB break that sweeps a level is the highest-conviction version of the fade; the engine ties the two together.
Institution-grade, readable visuals. Events are compact bar-anchored markers (triangle / cross / circle / flag) instead of stacked labels; key levels are drawn as glowing lines with bold colour-coded legend chips at the right edge; a legend-key panel decodes every mark and line; and only the most recent sessions' drawings are kept, so the chart stays clean even after months of history. The dashboard and legend key are theme-adaptive — they auto-match a light or dark chart background for proper contrast.
Auto-session that works where others break. New-session detection keys off a calendar-day change in the instrument's own timezone, so it resets correctly even on feeds with no out-of-session bars (NSE index futures only print 09:15–15:30) — where edge-detection scripts silently fail.
Fused decision dashboard. Break state, ORH/ORL, range, range state, range direction, relative volume / in-play, targets, stop, R:R, day position vs the prior day, liquidity-sweep status, the running Hit % / Edge, the failed-break fade and its Hit % / Edge, and retest/trap status — theme-adaptive to your chart.
How it works
Session: Auto groups by the instrument's trading day in its native timezone (works even with no out-of-session bars); Manual pins a window. Range: the high/low of the first N minutes become ORH/ORL; the midpoint is the pivot; the range candle's close-vs-open sets the range direction; its volume vs a rolling average gives the relative-volume "in play" read; its size vs a rolling average gives the range state (compressed / normal / wide). Break: the first close beyond ORH (long) or ORL (short) after the range completes, optionally held a bar and optionally restricted to the range direction. Map: targets = break edge + range multiples, or entry + risk (R) multiples; stop = opposite edge, range midpoint, or an ATR distance. Harness: each break is followed until it tags target 1 or the stop; unresolved breaks at the close are logged as end-of-day exits, separate from the Hit %. Failure: if an accepted break closes back inside the range it is flagged failed; the reversal targets the opposite edge with the failure extreme as stop, and a separate fade harness reports how often that reversal reaches the opposite edge before the failure extreme is re-broken. A retest of the broken edge that holds is flagged continuation; both edges breaking is flagged a trap. Levels: current-day H/L (tracked live), prior-day H/L and prior-week H/L (from the weekly series) are drawn as labelled lines (DH/DL, PDH/PDL, PWH/PWL) extending right. Liquidity: a sweep is a bar that wicks a set fraction of ATR beyond PDH/PDL/PWH/PWL then closes back inside — the stops there are taken and price rejects — flagged with a marker and in the dashboard alongside the day-position read.
How to use
Trade with an accepted break toward target 1 / 2, invalidated back inside the range (or at the chosen stop); favour in-play, range-direction and compressed-range breaks, and breaks that also clear PDH / PWH (genuine acceptance through liquidity) — all shown to carry the edge. When a break fails back inside, or sweeps a key level and rejects, the fade toward the opposite edge is often the better trade — the dashboard's fade Hit % / Edge tells you whether it has paid here. A retest that holds confirms continuation; a trap (both edges broken) is usually a stand-aside. Use the Hit % / Edge reads as a reality check before relying on any of it. Context for your decisions — not a standalone trigger.
Universal across markets (configurable data source)
High / low / close sources, the session mode / window / timezone and the range length are all inputs, so the engine runs on any instrument and intraday timeframe. Defaults target NSE NIFTY index futures with a first-15-minute range (the research tested 5 / 15 / 30 / 60 minutes; 5 was best on US single stocks). Change the sources, session and range for any other market. Use an intraday chart; the relative-volume filter needs a real volume feed and degrades gracefully without one.
Originality
The opening-range, fakeout-reversal and liquidity concepts are public (credited below); the original work is the assembly and the code — auto-session detection that works on instruments with no out-of-session bars, the relative-volume "in play" / range-direction / range-state filters, the range / R-multiple trade map with ATR stop and end-of-day exit, the path-aware win-rate harness, the failed-break reversal module with its own fade harness, and the reference-level + liquidity-sweep engine that ties the break to prior-day / prior-week liquidity. No third-party code is reused.
Companion drawings (TradingView compliance note)
Everything this plots is part of the one engine and is explained above — the opening-range box, the ORH/ORL/midpoint lines, the day/week reference levels (DH/DL, PDH/PDL, PWH/PWL) with their right-edge legends, the bar-anchored break / failed / retest / sweep markers, the target / stop / reversal lines, the legend-key panel, and the dashboard. There are no unrelated studies. Before publishing, clean the chart so only this indicator is shown.
Concept credit
The opening-range-breakout concept is long-standing market lore, formalised by Toby Crabel ("Day Trading with Short Term Price Patterns and Opening Range Breakout") and related to Mark B. Fisher's ACD method ("The Logical Trader"). The relative-volume "stocks in play" filter and the range-direction entry follow the empirical study of Zarattini, Barbon & Aziz (2023–24). The failed-breakout (fakeout) reversal and retest-hold continuation are classic price-action concepts, and prior-day / prior-week liquidity with the liquidity-sweep (stop-raid-then-reject) read are general price-action / Smart-Money-Concept ideas in wide public use. Implementation is original; not affiliated with, nor endorsed by, any third party, and no third-party code is reused.
Honesty / limitations
The Hit % is path-aware but in-sample, ignores costs and slippage, assumes the target/stop fills exactly at touch, and counts one break per session — descriptive context, not a verified backtest. Opening-range behaviour varies by instrument, session and regime. This engine maps structure; it does not predict which breaks will work.
Disclaimer
Research / educational only. NOT financial advice; no guarantee of profitability or accuracy. Indicators describe past behaviour; they do not predict the future. Trading carries risk of loss. Test out-of-sample and make your own decisions. The author accepts no liability Penunjuk

Volume Supply and Demand [TradingIQ]The Next Generation of Supply and Demand
You haven't seen a single good Supply and Demand indicator until today.
Let's be honest: almost every S/D indicator you've tried is either too late, constantly repaints, or simply flags every single random pivot on the chart as a "zone." That is not how institutional trading works. Traditional support and resistance might teach you to draw lines at every turning point, but if you've been trading for more than two weeks, you know that not every pivot holds weight in the future.
This tool was built to fix that. It is designed to filter out the low-quality noise, bypass the common structural flaws of basic chart metrics, and isolate nothing but genuine liquidity shock events where massive market orders actually took place.
Welcome to the Volume Supply and Demand engine.
---
How the Algorithm Works (The "Why")
Easier said than done, right? Finding a level that actually has institutional defense behind it requires deep mathematical screening. Instead of just looking for simple highs and lows, this algorithm detects explosive price moves via an advanced multi-step screening system.
First, the script calculates the True Range of consecutive candles to establish a baseline of normal market volatility. Once that baseline is set, it actively scans for sudden, abnormal expansions in price. It analyzes the specific angle, slope, and velocity of the expansion to ensure the move is statistically anomalous.
Demand Zones: These are flagged when extreme buying pressure forces a rapid, high-velocity move upwards, leaving behind a massive footprint of unfilled passive limit orders.
Supply Zones: These are flagged when intense selling aggression ramps up instantly, completely rejecting higher prices and driving the market down with severe negative velocity.
We strictly filter out the low-quality, minor pivot points. Once the strict qualifications of velocity and range expansion are met, the zone is detected and locked in instantly.
---
Structure vs. Normal Support & Resistance
To trade effectively, you must understand why these zones behave differently than standard horizontal support and resistance lines.
Traditional support and resistance lines can theoretically be drawn anywhere the market decides to turn around, regardless of the volume or speed behind the move. This creates messy charts cluttered with hundreds of psychological lines that offer no real edge.
This engine is different because it maps out an entire premium or discount zone based on the exact candle structural properties where the initial institutional imbalance occurred. It targets the literal origin of the reaction , creating a highly precise boundary where a major market participant stepped in aggressively to flip the auction control.
---
Deep-Dive Order Flow Features
We didn't just build a box-drawing tool. We added an entirely new dimension of volume analysis to help you gauge the actual internal strength of these levels.
Origin Volume Profiles: This is the game-changer. For every valid Supply or Demand zone generated, the indicator dynamically projects a micro Volume Profile directly inside the specific structural move that created the zone . You get an immediate, visually clear picture of exactly where the heavy volume was transacted during that specific liquidity event.
Delta & POC Lines: The algorithm identifies the Point of Control (POC) for both the buy-volume side and the sell-volume side independently. By plotting these lines, you can see precisely where the buyers or sellers exhibited their maximum aggression right before the major expansion occurred.
Time-Based Profiles: Volume isn't the only metric that matters. You can change the profile type inside the settings to "Time" to generate a profile that maps out exactly where the price spent the most time consolidating before exploding out of the zone.
Auto Hit-Deletion: The more a level is traded into, the weaker it gets as the resting passive orders are continuously matched and filled. To prevent you from trading dead levels, the indicator includes an automated hit-deletion toggle. The moment the price decisively pierces through a zone, the script recognizes the liquidity exhaustion and wipes the zone from your chart.
---
Settings & Optimization Guidelines
Because this script relies on heavy historical array calculations and complex request structures, proper optimization is essential for a smooth charting experience:
S/D Zone Style (Wick, Body, Candle): This dictates the strictness of your zone boundaries.
Wick (Default & Strongly Recommended): Draws the zone across the precise wick of the origin candle, capturing the maximum premium/discount extremity.
Body / Candle: Alternative constraints that alter the vertical width of the boxes based on the candle open and close values.
Max Zone Age (Bars): A zone created hundreds of bars ago losing its relevance because the participants holding those orders have likely closed their positions. This setting expires old zones to keep your chart fresh. If your chart experiences loading delays, lower this setting to roughly 200 bars.
Calculated Bars: To manage the calculation weight of the Epanechnikov kernel filtering and volume slice matrices, you can adjust the total calculation window. If your chart shows a red runtime error, lower this setting from 5000 down to 2000 bars.
Show Volume at Level: Turning this on overlays the raw numerical transaction data over each individual profile block, allowing for precise order flow calculation.
---
The Core Trading Logic
When a zone is formed by a massive imbalance of aggressive market orders, institutional participants frequently leave resting passive limit orders behind because the market moved too quickly to fill their entire block. When price returns to this exact zone for the first time, those resting orders are triggered. This acts as a defense line, forcing an aggressive, fast reversal.
If price returns to a zone multiple times, or if it begins to grind and spend a long time consolidating inside a box, that is a major warning sign. It means liquidity is actively depleting, the passive orders are being entirely consumed, and a massive liquidity shock breakout is right around the corner.
Disclaimer: This is not financial advice. Always test the mechanics against your own personal edge, backtest thoroughly, and integrate it properly within your broader risk management plan. Penunjuk

5 Advanced MAs MTF🔵 OVERVIEW
5 Advanced MAs MTF is a professional moving averages indicator designed for traders who need to see multiple trend layers on a single chart simultaneously, each one with its own independent configuration and — above all — its own timeframe.
Unlike typical "ribbon" or "multi-MA" indicators on the market, which display several averages all computed on the active chart's timeframe, this indicator allows each of the 5 averages to have its own timeframe. You can have your EMA 8 on the 15-minute chart, your EMA 20 on the 1-hour, your EMA 50 on the 4-hour, and your SMA 200 on the daily, all plotted on the same 15-minute chart. That turns the indicator into a complete multi-timeframe control panel without needing to open four separate charts or saturate your installed indicators list.
🔶 KEY FEATURES
• 5 fully independent moving averages — each one configured separately and enabled or disabled individually.
• True multi-timeframe per MA — the core differentiator. Each MA can read its value from a higher, lower, or equal timeframe relative to the active chart. Leave it empty to use the chart's current timeframe.
• 9 moving average types — SMA, EMA, WMA, RMA, HMA, VWMA, TEMA, KAMA, and JMA. The last three (TEMA, KAMA, JMA) are implemented with their original formulas, no shortcuts. JMA uses Mark Jurik's standard defaults (Phase = 50, Power = 2).
• Configurable source per MA — Close, Open, High, Low, hl2, hlc3, ohlc4.
• Full visual styling per MA — color, width (1 to 10), and line style (solid, dashed, or dotted).
• Smart labels — each MA can show its label directly on the line, with configurable content (type, length, timeframe, or any combination of the three). Adjustable horizontal bar offset and text size.
• Interactive summary table — placed at any of the 9 chart anchors, displaying color column, type, length, timeframe, and price distance from each MA (in percentage and absolute value). Toggle to include or exclude hidden MAs.
• 22-alert system — 10 for Price↔MA crosses (bullish and bearish for each MA), 10 for MA↔MA crosses across 5 configurable slots (you pick which MA pairs to monitor), and 2 wildcard "any cross detected" alerts. All compatible with webhooks and automation.
• Works on any market and any timeframe — equities, futures, crypto, forex, commodities. From tick charts to monthly charts.
🔹 USE CASES BY TRADER STYLE
▪️ Day trader / scalper
Configure the first 3 MAs as short EMAs (8, 20, 50) on the chart's timeframe (5m or 15m) and leave MAs 4 and 5 as SMA 200 and VWMA 100 but reading them from a higher timeframe (1H, 4H, or daily). Result: you see your fast entry signals and the higher-timeframe bias at the same time without switching charts.
▪️ Swing trader
Recommended setup: EMA 20 and EMA 50 on the active chart (1H or 4H) + SMA 200 read from daily + VWMA 100 read from weekly. This lets you watch pullbacks against the EMA 20 on your operative timeframe with immediate confirmation that the higher-timeframe bias is aligned, plus the weekly VWMA as a volume-weighted "fair price" reference.
▪️ Position trader / long-term
Enable all 5 MAs on daily or weekly to build a complete structural map of the asset. The default configuration (EMA 8, EMA 20, EMA 50, SMA 200, and VWMA 100, all on daily) covers everything from fast momentum to the institutional level, combining pure-price references (SMA 200) with volume-weighted references (VWMA 100). The summary table shows the exact distance of price from each one.
▪️ Systematic crossover trader
The MA↔MA alert slots let you configure up to 5 specific crossovers simultaneously. Classic Golden Cross / Death Cross setup: Slot 1 with MA 3 (EMA 50) crossing MA 4 (SMA 200) on daily, with an automatic alert sent to your bot's webhook or notification system.
▪️ Multi-timeframe confluence trader
The most differentiating use case. Assign each MA to a different timeframe: MA 1 on 5m, MA 2 on 15m, MA 3 on 1H, MA 4 on 4H, MA 5 on daily or weekly. The summary table shows you in real time the distance of current price from the key level of each of those timeframes. When several MAs from different timeframes converge on the same price zone, that zone becomes a high-density structural level — one of the most-used concepts among institutional traders.
⚙️ INPUTS & CUSTOMIZATION
The entire indicator is 100% configurable from the Inputs panel. Each MA has its own expandable group with 14 controls. The summary table is also fully customizable (position, text size, background/border/text colors). The JMA global parameters (Phase and Power) live in their own section so advanced users can adjust them without cluttering the individual groups.
By default, all 5 MAs are enabled with a configuration tailored for daily and swing use: EMA 8 (blue, 1D), EMA 20 (red, 1D), EMA 50 (yellow, 1D), SMA 200 (green dashed, 1D), and VWMA 100 (pink dotted, 1D). The user can modify any of the parameters or reassign the MAs to other timeframes at any moment.
🔔 ALERTS
The indicator ships with 22 precompiled alerts ready to use:
• 5 alerts "Price crosses above MA N"
• 5 alerts "Price crosses below MA N"
• 10 alerts across 5 configurable slots for MA↔MA crossovers (bullish and bearish per slot)
• 2 wildcard alerts "any cross detected"
All messages include the {{ticker}} and {{close}} placeholders so they are directly parseable by webhooks, bots, and automation systems.
❓ FAQ
Does the indicator repaint?
No. The moving averages are computed on confirmed historical data. Cross alerts fire on the bar of the cross and values are not modified retroactively. To avoid signals that appear and disappear intra-bar, set the alerts to "Once per bar close".
Does it work on any timeframe?
Yes. From tick charts to monthly. In addition, each MA can have its own higher, lower, or equal timeframe relative to the active chart. The default timeframe is the current chart's timeframe.
Why 9 MA types?
Because each type behaves differently. SMA is the pure average; EMA weights recent bars more; HMA virtually eliminates lag; KAMA adapts to volatility; JMA is the smoothest while staying responsive; VWMA weights by volume. Having all of them available lets you use the right tool for each analysis without installing several separate indicators.
What are the 5 MA↔MA alert slots for?
They let you configure specific crossovers between any pair of MAs without having to create all possible combinations. In each slot you pick the fast MA and slow MA from dropdowns and receive alerts for the bullish and bearish crossovers of that pair. Example: Slot 1 = MA 3 crosses MA 4 (classic Golden Cross / Death Cross when MA 3 = EMA 50 and MA 4 = SMA 200).
What is the best MA combination?
There is no single "best" — it depends on the trading style and the asset. The Use Cases section above includes recommended configurations for the 5 most common profiles.
Is it compatible with webhooks and automation?
Yes. The 22 alerts use {{ticker}} and {{close}} placeholders in their messages, making them directly compatible with TradingView Webhooks, copy-trading platforms, Telegram/Discord bots, and any system that parses JSON.
Is it free to use?
Yes. Open-source indicator under the Mozilla Public License 2.0. You can review the full code, use it freely on TradingView, and create derivative copies while respecting the license terms.
⚠️ DISCLAIMER
This indicator is a technical analysis tool provided solely for educational and informational purposes. It does not constitute financial advice, an investment recommendation, or an invitation to trade any instrument. Moving averages are reactive (not predictive) indicators: they are based on historical data and, by their nature, can produce delayed signals in markets with sharp trend changes. In ranging or low-volatility market contexts, crossovers can be frequent and not particularly informative. Every trading decision is the sole responsibility of the trader. Past performance does not guarantee future results.
© 2026 Lic. Farias Foresi, Leandro M. — License: Mozilla Public License 2.0
Penunjuk

Sweep and Cluster [JOAT]SWEEP AND CLUSTER
A two-stage liquidity-sweep engine. Most public "sweep" indicators print a label on every wick that pokes past a recent high or low — which is mostly noise. Sweep and Cluster requires two separate events to register a tradeable signal: first a strict 5-condition sweep, then a confirming cluster of price action in the rejection direction. The label that actually appears on the chart is the rare intersection — the moments where institutional stop-running is followed by genuine commitment in the opposite direction.
Stage 1 — Strict 5-condition sweep detection
A sweep is registered only when all of these are true on the same bar:
Real pivot reference — the swept level is an actual minor pivot (ta.pivothigh / ta.pivotlow) from the rolling cache, not a rolling max/min. A scan-depth input controls how far back to look; a minimum-age gate prevents self-reference.
Wick magnitude — the wick that exceeds the pivot must be at least Wick ATR Multiplier × ATR(14) (default 0.8 ATR). The KB-published strict threshold.
Wick dominance — wick length must be at least Wick/Range Ratio of the candle's total range (default 35%). The wick must dominate the bar's shape, not be a side-effect of a large body.
Closing direction — close must be back inside the swept level. A clean wick that closed beyond the pivot is a breakout, not a sweep — and is filtered out by construction.
Cooldown — at least N bars (default 8) since the last same-side sweep. Prevents one stop-run from being counted as multiple sweeps when the wick prints over several bars.
If all five conditions are met a pending marker is placed (optional). Pending markers represent "a sweep happened" but not yet "the sweep was meaningful" — until the cluster confirms, the sweep is not actionable.
Stage 2 — Cluster confirmation
After a sweep fires, the next N bars (cluster window, default 5) are monitored for confirming follow-through. The cluster confirms only when:
At least M bars (default 1) close against the swept direction inside the window.
Average body/range across the qualifying cluster bars exceeds the Min Body Ratio (default 0.25) — the rejection candles must be impulsive, not micro-bodies.
Cumulative volume across the cluster window is at least Volume Multiplier × Average Volume (default 0.8×). Without volume the cluster is not commitment.
When all three confirm, the script fires the SAC (Sweep And Cluster) label — the actionable signal. A cluster strength badge (body sum / ATR) is rendered next to the label so you can rank one SAC vs another at a glance.
A failed sweep marker (toggleable, off by default) tracks sweeps that expired without confirming — useful for auditing the false-positive rate visually and for choosing thresholds.
Visual system
Sweep wick highlight — a thin coloured line at the swept reference price, extended right by a configurable number of bars. Makes the rejection unmistakable.
Reference level triangle — small glyph at the actual pivot level that was swept.
Cluster candle override — when SAC fires, the confirming cluster candles are repainted in the active-side theme colour via plotcandle so the move stands out from background.
Optional background tint — fading directional bgcolor for a few bars after a confirmed SAC.
Optional bar paint by active bias — every bar painted bull/bear based on the most recent SAC. Off by default to preserve chart neutrality.
A locked Quantum palette (cyan-quantum bull / pink-quantum bear on a deep void) gives the chart a distinctive sweep-and-reverse identity.
Dashboard + rolling statistics
A monospaced table, positionable to any of nine corners, with vertical row-fade for premium feel. Surfaces:
Total sweeps and total SACs since the last session/day/week reset (configurable reset frame).
Rolling Confirmation Rate (% of recent sweeps that became SACs) over a configurable window (default 50). The script's own success metric.
Pending sweep status with bars-remaining-in-cluster-window.
Last SAC direction with strength badge and bars-ago.
Last failed sweep tag (when failed markers are enabled).
Confirmation Rate is the headline read — it lets you see whether the current threshold settings are producing meaningful or sparse signals on the instrument you are trading.
Alerts
Three alert conditions, each independently controllable:
Pending Sweep (Stage 1 fires)
SAC Confirmed (Stage 2 confirms)
SAC Failed (Stage 2 expires without confirming) — off by default
How to read it
Two reads, in order of conviction:
SAC Confirmed alert with a high strength badge — the script's intended signal. Liquidity was swept, a real rejection followed inside the window, and the rejection had body and volume. This is the actionable read.
Pending Sweep at a known structural level (S/R, supply/demand) — useful as a "watch for the cluster" warning. If the cluster confirms, you have a high-conviction reversal at a structural location.
In persistent trends the failed-sweep rate climbs — that is the script telling you the regime does not currently favour sweep-and-reverse setups; stand aside or use the script in the trend direction only.
Suggested settings
Defaults (pivot lookback 8, wick ATR 0.8, body ratio 0.35, cluster window 5) are tuned for 15m–1H on liquid markets. For scalping (1m–5m), drop pivot lookback to 4 and cluster window to 3. For HTF macro reads (4H+), raise pivot lookback to 12–20 and cluster window to 8. The strict-threshold wick filters (0.8 ATR + 35%) are intentionally institutional — loosen for less liquid instruments.
Originality
The implementation — the five-condition strict sweep gate, the rolling minor-pivot cache with age and scan-depth filters, the three-condition cluster confirmation, the cluster-strength badge calculation, the pending → confirmed → failed state machine, the wick-level highlight render, the plotcandle override for confirming bars, the rolling confirmation-rate metric, and the session-reset counter — is JOAT-original. No third-party code reused. The "sweep + reaction" pattern is well-known to professional tape readers; the strict double-gate implementation is built specifically for chart-based Pine data.
Limitations
A confirmed SAC requires the cluster window to elapse — by definition the signal carries the cluster window bars of lag relative to the sweep. This is intentional; the cluster is what makes the signal meaningful. Failed sweeps are expected — the confirmation rate metric is there for you to see and tune accordingly. The script is structure-aware (uses real pivots) but does not know about HTF structure; combine with a higher-timeframe S/R indicator for best fit.
—
—
-made with passion by jackofalltrades
Penunjuk

Penunjuk

Penunjuk

Macro Candle OverlayMacro Candle Overlay is a higher-timeframe candle visualization tool designed to display selected macro candles directly on the active chart.
The script draws candles from a selected higher timeframe, such as 15m, 30m, 1H, 2H, 4H, Daily, Weekly, or Monthly. Each higher-timeframe candle is represented with its own body and wick, allowing traders to view larger candle structure without switching away from the current chart timeframe.
This can help with visual analysis of broader market context, including higher-timeframe candle direction, wick behavior, candle body size, and developing macro candle structure.
Main features:
* Higher-timeframe candle overlay on the current chart;
* Selectable candle timeframe;
* Bullish and bearish body color settings;
* Wick and border color settings;
* Adjustable body transparency;
* Automatic candle updating while the current higher-timeframe candle is still developing;
* Clean chart-based visualization with no signal logic.
How it works:
The indicator uses the selected higher timeframe to define candle open, high, low, close, start time, and end time. It then draws each candle as a chart object, including a candle body and a wick. The active candle updates as new price data appears.
This script does not generate buy or sell signals. It does not include strategy logic, alerts, backtesting, win-rate calculations, or performance projections. It is intended only as a visual charting tool for reading higher-timeframe candle structure.
Traders can use it as an additional visual reference together with their own analysis, market structure, risk management, and trading plan.
Penunjuk

Candle LevelsCandle Levels is a rebuild of my original Candle Levels Pro framework, designed to map important completed-candle and session reference levels directly on the price chart. This script focuses on current day/session levels, previous close, lower-timeframe completed candle levels, daily candle levels, weekly candle levels, and monthly candle levels. It also includes source-aware line starts and compact right-side labels so users can quickly see the level price, current distance from price, and level tag.
────────────────────────────
Core Idea
────────────────────────────
Markets often react around prior candle highs, lows, closes, session opens, and active-session extremes.
Candle Levels turns those reference points into organized horizontal levels:
• Current High of Day / Low of Day
• Regular-session open
• Premarket open
• Current close reference
• Previous close
• Previous completed LTF candle highs/lows/closes
• Previous completed daily candle highs/lows/closes
• Previous completed weekly candle highs/lows/closes
• Previous completed monthly candle highs/lows/closes
Instead of plotting every possible historical line, the script focuses on the active references that matter most to you now.
────────────────────────────
Asset-Aware Source Logic
────────────────────────────
The script separates stock/fund/ADR behavior from crypto behavior. It is not currently set up for futures. Futures have different session structures, settlement behavior, overnight handling, contract-specific calendars, and reference-level needs. A separate futures-focused version will be handled as its own script so the logic can be built specifically around futures sessions instead of forcing futures into the stock/crypto model.
For US-session stocks, funds, and ADRs:
• Close references use regular-session close data
• High/low references use extended/full-session high-low data when available
• HOD / LOD track the current full-session high and low
• PCL uses the prior regular-session daily close
• OPEN uses the regular-session open
• PMO uses the first premarket open
For crypto:
• Levels use the native 24-hour chart stream
• Daily levels follow the native 24-hour daily cycle
• US-session-only references such as PMO and CC are hidden automatically
This source split is intentional. Many traders want regular-session closes but still want premarket and after-hours highs/lows visible when those extremes matter.
────────────────────────────
Current Session Levels
────────────────────────────
The current-session block tracks:
• HOD
• LOD
• OPEN
• PMO
• CCL
• PCL
HOD and LOD update as the active day makes new extremes. Their lines can begin at the candle that created the current high or low, making the source of the level visually clear.
PCL has its own dedicated input group, label padding, and bull/bear color controls so it can be styled separately from the daily high/low rows.
────────────────────────────
Lower-Timeframe Candle Levels
────────────────────────────
The LTF section includes hardcoded completed-candle references for:
• 10m
• 15m
• 30m
• 1h
• 2h
• 4h
• 8h
Each row can show the previous completed candle’s:
• High
• Low
• Close
The “ ” tag means previous completed candle for that timeframe. For example, 1h means the prior completed one-hour candle, not a rolling last-60-minutes window.
────────────────────────────
Daily Candle Levels
────────────────────────────
The Daily section includes:
• D High / Low
• D High / Low / Close
• D High / Low / Close
D is the most recent completed daily candle. D is the single daily candle two completed sessions back. D is the single daily candle three completed sessions back.
These are candle offsets, not rolling multiday ranges.
For US-session equities, Daily Hi/Lo levels can include premarket or after-hours extremes when full-session history is available. This means a D Hi or D Lo may not always match the visible regular-session-only TradingView daily candle.
Daily Close levels use the regular-session close source for US-session equities.
────────────────────────────
Weekly And Monthly Candle Levels
────────────────────────────
The Weekly section includes:
• W High / Low / Close
• W High / Low / Close
W means the prior completed 1-week candle. W means the single 1-week candle two completed weeks back. W is not a 2-week candle.
The Monthly section includes:
• M High / Low / Close
• M High / Low / Close
• M High / Low / Close
M means the prior completed 1-month candle. M means the single 1-month candle three completed months back. These are not rolling multi-month ranges.
Weekly and Monthly rows have independent high/low label controls, close label controls, and per-row label padding inputs.
────────────────────────────
Line Start Modes
────────────────────────────
Daily, Weekly, and Monthly levels include source-aware line-start controls.
Active Period:
Starts the level from the current active period. This keeps the chart cleaner and avoids long historical spans.
Source Window:
Starts the level from the beginning of the completed source candle window used for that offset.
Source Candle:
Starts high/low lines from the chart candle that created the completed source high or low when that source timing is available. Close lines start from the completed source close candle when available.
If the exact source candle is not available, the script falls back to Source Window when available, then Active Period.
────────────────────────────
Right-Side Labels
────────────────────────────
All labels are right-side text labels only.
Each label can show:
• price row
• dollar difference from current price
• percent difference from current price
• level tag row
Labels use EM-space padding instead of x-offset tricks, which helps keep the labels visually staggered while still pinned to the current bar.
Different level groups have their own padding controls, and the newer Daily / Weekly / Monthly sections include more granular row padding so overlapping labels can be separated cleanly.
────────────────────────────
Important Levels Library
────────────────────────────
This version now uses my shared ImportantLevelsLinesLabels_Utilities library:
That library handles the reusable output infrastructure:
• right-side label text
• price / dollar / percent formatting
• line style resolution
• label size resolution
• bar-time horizontal level lines
• transparent text labels
• object slot arrays
• history-array pruning
• source-aware line-start routing
The script itself still owns the source engine, session behavior, candle tracking, request.security() logic, and final visibility conditions.
This keeps Candle Levels Pro cleaner internally while making the level-output system more consistent with future scripts.
────────────────────────────
How I Use It
────────────────────────────
I use Candle Levels as a price-map tool.
A few practical reads:
• HOD / LOD show where the active session has expanded.
• OPEN and PMO help frame current price against the regular and premarket starts.
• PCL shows where price is relative to the prior regular-session close.
• LTF levels help identify nearby short-term reference points.
• Daily, Weekly, and Monthly levels help organize higher-timeframe context.
• Source Candle mode helps show where a completed candle high, low, or close actually came from.
• Right-side labels make it easier to compare distance from current price without manually measuring every level.
This is not intended to be a standalone buy/sell signal tool. It is a visual reference framework for organizing important price levels, session context, and completed candle structure.
────────────────────────────
Chart Examples
────────────────────────────
Penunjuk

Flow Pressure OscillatorFlow Pressure Oscillator visualizes directional market pressure, trend alignment, regime quality, pullback pressure, and extended pressure conditions in a separate oscillator pane.
The tool is built to help traders read whether market pressure is leaning bullish, bearish, or neutral. It combines trend structure, EMA alignment, ATR-normalized movement, ADX, directional efficiency, volatility behavior, and volume participation into a bounded flow reading between -100 and +100.
The main Flow Trail shows the current pressure direction and strength. Positive readings indicate bullish pressure, negative readings indicate bearish pressure, and values near the zero line suggest a more neutral or mixed environment.
Regime Dots show the internal market regime state. Upper dots represent bullish regime pressure, lower dots represent bearish regime pressure, and neutral readings show that no strong directional regime is active.
The Pullback Reload Line is designed to highlight pullback pressure inside an existing bullish or bearish regime. It is not an entry signal by itself. It is meant to be used as context together with the Flow Trail, regime state, and the user’s own chart analysis.
The oscillator also highlights expansion and exhaustion-style pressure conditions. These areas can help identify when pressure is becoming stretched, accelerating, or losing momentum. They should be treated as market-context readings, not as guaranteed reversal or continuation points.
Core components
Flow Trail:
The main pressure line. It reacts to trend pressure, momentum slope, acceleration, structure alignment, volatility, and volume participation.
Zero Line:
A neutral reference level. Readings above zero show bullish pressure dominance. Readings below zero show bearish pressure dominance.
Regime Dots:
A visual regime filter for bullish, bearish, or neutral pressure conditions.
Pullback Reload Line:
A secondary pressure line designed to show pullback or reload behavior inside an active regime.
Pressure Fill:
A visual fill between the Flow Trail and the zero line to make pressure direction easier to read.
Extreme Pressure Coloring:
Highlights expanded, stretched, or exhaustion-style pressure states.
A simple way to use the oscillator is:
- Flow Trail above zero = bullish pressure is dominant;
- Flow Trail below zero = bearish pressure is dominant;
- Rising Flow Trail = pressure is strengthening;
- Falling Flow Trail = pressure is weakening;
- Regime Dots help confirm whether the broader pressure environment supports the current flow direction;
- Reload Line can help identify pullback pressure during an existing bullish or bearish regime;
- Extreme pressure areas should be used for awareness, not as automatic trade signals.
Important notes
Flow Pressure Oscillator is a market-pressure visualization tool only. It does not provide financial advice, trade recommendations, profit targets, stop losses, win-rate calculations, or performance guarantees.
The script should be used together with the trader’s own market structure, support and resistance, risk management, and confirmation process. No single oscillator should be used as a complete trading system. Penunjuk

The Acute Grief CurveACUTE GRIEF CURVE - a momentum oscillator for a market in mourning, for crypto
Price action is just is a grief chart. It's a running tally of how a few
million strangers feel about money they no longer have.
WHERE IT COMES FROM
In 1962 a technician named Edwin Coppock got hired by the Episcopal Church to
tell them when to buy after a crash. He decided a market clawing out of a bear
feels like a person clawing out of mourning - same shock, same numbness, same
long stupid crawl back - so he asked the clergy how long grief lasts.
They said 11 to 14 months. He typed those two numbers into a rate-of-change formula and
called it a day. That is the Coppock Curve.
WHY THE ORIGINAL DIES ON CRYPTO
Point standard Coppock at the total crypto market cap and it flatlines. Crypto went from three billion to four trillion. Early on it printed 16,000% moves; lately it prints 50% and calls it a bull run. On raw percentages the toddler years bury everything that came after, so the curve pins itself above zero for eight straight years and only dips under in 2022, once, like a smoke detector that exclusively activates during cremation.
An indicator that signals once a decade is just a commemorative plate.
So I rebuilt it.
HOW IT'S DIFFERENT
1. The Yale Bereavement Study (JAMA 2007) tracked grieving people month by month and found yearning peaks around month 4 and depression bottoms out around month 6. That's the wound. Coppock's 11–14 months is the part where the widow has already repainted the kitchen. This curve uses the 6- and 4-month rate-of-change - the actual bottom of the despair - smoothed over 5 periods, because a crowd of leveraged strangers speedruns the five stages of grief in about a long weekend, and you want the indicator watching the screaming, not the kitchen.
2. Log price, because crypto has no sense of scale. Comparing a 16,000% move to
a 50% move on a normal axis is like comparing a supernova to a birthday candle
and concluding they're both fire. Log pricing makes the math behave so the
curve oscillates around zero like a functioning adult across every cycle. You
can switch it off and watch it relapse into the classic version if you enjoy
that sort of thing.
3. A volatility filter that knows hope is a liar. This comes from the Dual
Process Model of grieving (Stroebe & Schut), which says recovery isn't a line,
it's a flailing back-and-forth nightmare, and the tell that you're really healing is
that the flailing gets quieter. Volatility is a market's flailing. So every
time the curve turns up, the indicator checks whether the shaking is calming
down or just catching its breath.
THE TWO SIGNALS
ACCEPTANCE ONSET (green): the curve turns up from below zero AND volatility is
contracting. The thrashing is subsiding. Acceptance is winning. In a market
this is the closest thing to good news, which is to say you've stopped
screaming and you're choosing to interpret that optimistically.
FALSE REPRIEVE (amber): same turn up, but volatility is still expanding. This
is the corpse twitching. You see the twitch, you call it a recovery, you re-
long with conviction, and the corpse remains, professionally, a corpse. Every
bear-market rally that ever ruined someone lives here.
Telling those two apart is the whole job. It's the difference between "the
worst is over" and "the worst would like a word."
HOW TO READ IT
Blue line is the curve. The shaded bit below zero is the acute grief zone, aka
where your timeline goes silent and the inspirational posters come out.
Background tint shows the volatility type - teal means contracting (healing),
red means expanding (don't). Signals print in the pane and on price. Optional
comparison curves let you plot the original 11–14 month clergy Coppock and the
useless-for-crypto 12–24 month integration version, so you can see, in public,
why the slow one would still be holding bags.
INPUTS
Periods are defined in MONTHS and auto-scale to your timeframe, so the grief
stays the same length whether you're on monthly, weekly, or daily. Everything's
adjustable - the peaks, the smoothing, the volatility window, the log toggle,
the filter, the shading. Alerts included, in case you want to be notified the
exact moment the market accepts its fate.
OMG USE YOUR HEAD, THIS IS A WORK IN PROGRESS
This is a context gauge, not a trade trigger. The filter is conservative - it distrusts sharp V-bottoms, because on those the volatility never calms down, which means it flagged the COVID low as suspicious. The COVID low was the buy of the decade. So yes, it's cautious the way a man on his third divorce is cautious about second dates: not always right, but you
understand where it's coming from. Volatility can also fake the green light
mid-bounce. Use it next to real market structure and your own judgment, both
of which are also flawed, but at least they're free.
It describes the emotional state of a market. It does not predict the future.
Neither do you. Neither do I (well, privately to myself I do). Now you have company.
This is an original reworking of the Coppock Curve - different periods, a log
construction, and a volatility-regime classifier bolted on from grief research,
not a stock indicator with the inputs nudged. Credit where due: Edwin Coppock
(1962), Maciejewski et al. (JAMA, 2007), and Stroebe & Schut.
Not financial advice. If you lose money using a grief indicator... I have nothing.
Penunjuk

Boshmann's Volatility HistBoshmann's Volatility Hist
The theory behind tracking normalized volatility is that market movement is highly cyclical, constantly alternating between periods of tight contraction and explosive expansion. Using raw volatility measures (like a flat Average True Range value) is flawed because the meaning of those points changes drastically as an asset's price scales up or down over time. By applying a statistical Z-Score to the ATR, we normalize the volatility relative to the asset's own historical baseline, allowing traders to objectively identify when price action is anomalously quiet (predicting a breakout) or unsustainably aggressive (predicting exhaustion or mean-reversion).
How the Script Works: The script calculates a standard 14-period Average True Range (ATR) to measure current price movement. It then runs a 250-period lookback to compute the rolling mean and standard deviation of that ATR, ultimately calculating a real-time Z-Score. This Z-Score is plotted as an oscillating histogram below the chart. The script uses fixed thresholds to color the histogram bars: Green for "Quiet" (Z-score < -0.5), Yellow for "Normal" (Z-score between -0.5 and 0.5), and Red for "Volatile" (Z-score > 0.5). It also plots dotted threshold lines so you can instantly see when volatility crosses into extreme territory.
Why You Should Use It: This script is the final pillar of the Boshmann's suite, engineered to be used in strict combination with the Regime Counters and the Market Direction Hist .
While the Regime Counter gives you the structural trend and the Direction Hist gives you the momentum conviction, this Volatility Hist reveals the energy state of the market. You should use this indicator because knowing the market's speed dictates your risk management and strategy timing. For example, if you spot a long string of "Quiet" (green) volatility bars while the Regime Counter just flipped to Bullish, you have found an optimal, low-risk entry before an explosive breakout. Conversely, if you are riding a trend and this histogram spikes deep into the "Volatile" (red) zone, it serves as a mathematical warning that the market is overextended, signaling that you should tighten stops or take profits before the inevitable pullback. Penunjuk
