PyraTime True Trend Line (PTTL)PTTL builds a dynamic, vector-based geometric framework utilizing two extreme market pivots (A and B) and projects their mathematical structure forward in price and time. Because it processes its own internal OHLCV data array, it bypasses native TradingView history constraints, allowing historical vectors to act on live price action without breaking down.
Why This Works
Standard trend lines are notoriously subjective, often skewed by the user pulling lines to fit a narrative. PTTL removes user bias by hard-locking purely to mathematical extremes.
Furthermore, instead of relying on a generalized Volume Profile across the entire screen, PTTL isolates its Vector POC strictly within the A-B impulse leg. This explicitly traps the liquidity nodes associated only with the trend currently being analyzed, rather than mixing it with unrelated historical chop.
How This Works
The Core Buffer: The indicator continuously records high, low, close, and volume data into a 5,000-bar rolling array. This isolates the calculations from TradingView's visual history and prevents data from dropping out when zooming or scrolling.
Dynamic Geometry: In Auto mode, PTTL perpetually hunts for the most significant A and B pivots. Because this window is dynamic, historical structure migrates as stronger dominant highs/lows appear.
Harmonic Divisions: By treating the maximum price deviation from the true A-B line as a 100% boundary, the tool mathematically slices the resulting channel into exact geometric fractions (1/8, 1/3, 1/2, etc.) to highlight internal support/resistance nodes.
Time & Price Squaring (AB=CD): PTTL measures the span of the A-B impulse and demands that the Point C retracement validates within a strict time window. Once validated, it targets an identical price/time expansion (Target D), actively grading the setup as Pending, Success, or Failed based on real-time price intersection.
Settings Guide
Mode Selection: Choose between Auto (dynamically scanning) and Manual (locking Point A to a user-defined timestamp).
Manual — One-Click Anchor: Anchor Point A to a specific timestamp and price. Pivot B Search Window dictates how many bars forward the tool should scan before permanently locking Point B into place.
Auto Mode Settings: Adjust the Scan Window to define how many bars back the tool searches for major swings, and set a Minimum AB Span to ensure it doesn't anchor to microscopic, noisy swings.
Features & Visibility: Toggle overlays like the True Trend Line, Vector POC, Parallel Channel, and Reflection angle.
AB=CD Settings: Configure the time allowance for Point C to form. If Hide Failed Patterns is on, invalidated geometries clear immediately to keep the chart clean.
Projection Settings: Decide whether Time Cycles scale against the duration of the A-B leg (× AB duration) or project forward uniformly (Fixed bars).
Alert Triggers: Fire native TradingView alerts the moment price crosses the True Trend Line, the maximum-deviation Channel rail, or the isolated Vector POC. Penunjuk

Penunjuk

Opening Range Gap (ORG) [TH Trader]Opening Range Gap (ORG) Zones
This indicator maps the overnight gap between the prior session's settlement (16:14 NY close) and the regular session open (09:30 NY), then divides that range into Fibonacci-style levels so you can track how price interacts with the gap throughout the day.
How it works:
Anchors are captured via a minute-by-minute walk over 1-minute data on the chart's own symbol, so both the 16:14 settlement price and the 09:30 open are always caught precisely — regardless of your chart's timeframe or Extended Hours setting
The gap range is divided into customizable levels (0/Open, 12.5%, 25%, 37.5%, 50%/CE, 62.5%, 75%, 87.5%, 100%/Close), each individually toggleable with its own color
The midpoint (CE) is highlighted separately as it often acts as a key reference for gap-fill trades
A background box shades the full gap zone, and a label shows the gap size in both points and percentage
Tracks whether each ORG has been "filled" (price has traded back to the settlement price) — fill detection uses your chart's own bars, so toggling Extended Hours changes what counts as filled
Extension styles:
Cap at day end — zone freezes at the end of each session
Cap at time of day — zone freezes at a custom cutoff time
Extend all lines right — zones extend indefinitely
Extend unfilled ORGs — filled zones are removed from the chart, keeping only unfilled gaps visible (with an option to keep the most recent ORG visible even after it fills)
How to use it:
Use the gap size label to gauge overnight volatility relative to recent history
Watch how price reacts at each Fibonacci level within the gap, especially the 50% (CE) level, for potential support/resistance or gap-fill setups
Combine with the CME Overnight Range and Anchored VWAP for additional overnight-positioning context
Works on any intraday timeframe; disabled on Daily/Weekly/Monthly charts since the concept requires intraday anchors Penunjuk

VWAP DeltaVWAP Delta is an oscillator that plots each bar's open, high, low and close as their distance from the volume-weighted average price, instead of showing price and VWAP side by side. It's built for anyone who wants to see how far, and how consistently, price is trading away from its volume-weighted average — for example to judge how stretched an intraday move already is, or how a recent push compares to the pace of previous ones — rather than only whether price sits above or below VWAP.
The delta of each bar is measured against an EMA baseline built from the delta close, and both can optionally be smoothed with a Hull moving average before that comparison. Because VWAP accumulates from the start of each session and depends on volume, it is an intraday tool and returns na on symbols or timeframes where volume data isn't available. The indicator can display this relationship as a filled area or as its own set of candles, with colors that adapt automatically to the current bias and, in candle style, to whether momentum is currently building or fading.
Calculation
VWAP Smoothing: applies a Hull moving average to the delta series before plotting, with an adjustable length.
Baseline Length: EMA length of the baseline that the delta is compared against.
Appearance
Graphic Style: visual style for the delta series: Area or Candle.
Bull / Bear Area Color: (Area style) fill color for when the delta line is above its baseline, and for when it's below.
Bull Candle Color: (Candle style) two colors for a bullish candle body — the left one while the body is expanding versus the previous bar, the right one while it's contracting.
Bear Candle Color: (Candle style) the same pair of colors for a bearish candle body.
In Area style, the delta close is plotted as a single line against its EMA baseline, and the space between them is filled — in Bull Area Color while the delta line is above the baseline, in Bear Area Color while it's below. Only the fill is visible; the delta and baseline lines themselves stay hidden. In Candle style, the fill disappears and the delta is drawn instead as its own set of candles, built from the delta's open, high, low and close relative to VWAP; when smoothing is enabled, the high and low are clamped to the smoothed open and close, so the smoothing itself can never invert a candle's body. Each candle is colored by comparing its own delta open and close: a candle whose delta close sits above its delta open takes a bull color, any other candle — including one where open and close are exactly equal — takes a bear color; within each of those two colors, the shade further distinguishes whether the current body is larger than the previous one (expanding) or smaller (contracting). A zero line marks where price and VWAP coincide.
This indicator is intended solely for market analysis and does not constitute investment advice or a guarantee of success. Use it at your own discretion and risk; past results are not indicative of future performance. Penunjuk

Macro Regime Dashboard█ OVERVIEW
Macro Regime Dashboard is a market-timing checklist for US equities. It evaluates five regime conditions on every daily bar: elevated volatility, a non-rising Fed policy rate, contracting margin debt, the presence of a leading sector, and earnings confirmation from bellwether stocks. It plots the count of conditions met as a stepline in a separate pane, renders a live checklist table, and marks the bars where all conditions and the enabled fail-safes align. The thesis: durable market bottoms tend to form when fear is high, the Fed is not tightening, leverage has been flushed, and a leading theme keeps delivering earnings through the panic.
█ HISTORY / BACKGROUND
The five-condition checklist and its fail-safes are the market-timing framework described by the YouTuber, Defiant Gatekeeper, who distilled it from his buy decisions around volatility spikes. The framework itself synthesizes established concepts: the VIX as a fear gauge, Federal Reserve policy as the dominant liquidity driver, margin debt as a measure of speculative leverage, sector leadership as the engine that attracts institutional capital, and earnings surprises as confirmation that the leading theme is insulated from the broader panic.
The fail-safes address the framework's known failure modes, which the author identifies from historical episodes: leading-sector fundamentals breaking down, systemic accounting fraud destroying trust in reported earnings, a credit freeze that policy easing cannot offset, and inflation high enough to remove the Fed's ability to support asset prices. Two of these are quantifiable and are implemented here as the high-yield credit spread and CPI fail-safes. The concept is his; this Pine implementation, the data-series selections, and the proxy choices are original to this script.
█ HOW IT WORKS
On each daily bar the script requests six external series and evaluates five boolean conditions plus two fail-safes.
Condition 1: Fear. The CBOE Volatility Index (CBOE:VIX) must exceed the threshold input (default 30).
Condition 2: Fed not on an upward trajectory. The effective federal funds rate (FRED:DFF) today must be at or below its value from the lookback number of trading days earlier, with a 0.01 tolerance. The table also flags when the 2-year Treasury yield (TVC:US02Y) sits below the funds rate, indicating that the bond market is pricing cuts; this flag is informational and does not gate the condition. Because the policy trajectory is partly qualitative (guidance, projections), an override input can force this condition to pass or fail.
Condition 3: Margin debt declining. The reference framework uses the monthly FINRA margin debt statistic, which TradingView does not carry. The script substitutes the Federal Reserve Z.1 series for margin accounts at brokers and dealers (FRED:BOGZ1FL663067003Q), requested at 3-month resolution. The condition passes when the latest quarterly value is below the prior quarterly value.
Condition 4: Leading sector. The script loops over eleven S&P sector ETFs plus a semiconductor ETF, computes each one's return over the lookback window, and subtracts the SPY return over the same window. The strongest relative-strength value must exceed the threshold input (default 3 percentage points over 63 days). The table names the current leader.
Condition 5: Bellwether earnings beats. For up to three user-selected bellwether symbols representing the leading theme, the script pulls reported and estimated earnings per share through the earnings request feed and marks a beat when actual is at or above estimate for the most recent report. The condition passes when a majority of the symbols with available data beat. When no earnings data exists for any bellwether, the condition passes neutrally rather than failing, so that missing history does not veto the count. An override input can force this condition either way.
Fail-safes. The ICE BofA US High Yield Option-Adjusted Spread (FRED:BAMLH0A0HYM2) must sit below its threshold (default 10 percent), and CPI year-over-year, computed from FRED:CPIAUCSL as the ratio of the monthly index to its value twelve months earlier, must sit below its threshold (default 2.5 percent). Each fail-safe passes when its data is unavailable. Two toggle inputs decide whether each fail-safe vetoes the composite signal or only displays as a warning. By default the credit fail-safe gates and the CPI fail-safe warns.
Composite. The buy state is true when all five conditions hold and every enabled gate is clear. The script plots the raw condition count (0 to 5) as a stepline, draws a dotted horizontal reference at 5, shades the pane background green while the buy state is active, and prints a green triangle on the first bar of each signal window. A table in the top right shows each condition's current value and pass state, both fail-safe readings, and a composite verdict row. Two alerts are provided: one on the first bar of a new buy signal, and one when the credit spread crosses above its threshold.
█ HOW TO USE
Apply the indicator to a broad US index such as SPX or SPY on the daily timeframe . All inputs and thresholds are calibrated to daily bars; the conditions describe the whole market, so the chart symbol only supplies the bar grid.
Read the stepline as regime pressure. A count of 3 or 4 during a selloff means the setup is forming; a touch of 5 with the background shading and a triangle means every condition and enabled gate aligned on that bar. A count of 5 without shading means a fail-safe is blocking, which is exactly the bull-trap situation the fail-safes exist to flag. The table gives the per-condition diagnosis at a glance.
Using the dashboard in tandem with the Stock Screener
The dashboard times entry and sizing. It does not select stocks. The reference framework pairs it with a fundamental selection layer keyed to the liquidity regime, and most of that layer maps directly onto TradingView's Stock Screener fields: revenue growth, EPS growth, forward price-to-earnings, and debt to EBITDA. The workflow:
Determine the liquidity quadrant. The dashboard's Fed condition covers the rate trajectory. Check the Fed balance sheet direction separately by charting FRED:WALCL: rising means expansion, falling means contraction.
Rate falling and balance sheet rising (maximum liquidity): screen for revenue growth above 50 percent and ignore valuation and leverage fields. Unprofitable hypergrowth is the target profile in this quadrant.
Mixed quadrants (one lever easing, one tightening): screen for revenue growth in the 10 to 20 percent range, a moderate forward price-to-earnings, and debt to EBITDA below roughly 3 to 5 depending on which lever is easing.
Rate rising and balance sheet falling (minimum liquidity): screen for forward price-to-earnings below 15, debt to EBITDA below 1.5, and positive earnings. Stability over growth.
When the dashboard signals, run the screener preset for the current quadrant, restricted to the leading sector the table names, to surface candidates.
The final validation step in the reference framework, a regression of price-to-earnings against expected EPS growth across roughly ten same-industry peers with an R-squared above 0.8, is not screenable and is performed outside TradingView in a spreadsheet.
█ SETTINGS
VIX threshold (default 30): level the volatility index must exceed for condition 1.
Fed rate lookback (default 63 trading days): comparison window for the funds-rate trajectory in condition 2.
Fed trajectory override (default Auto): forces condition 2 to pass or fail when guidance contradicts the rate proxy.
Sector RS lookback (default 63 days): return window for the relative-strength computation in condition 4.
RS outperformance vs SPY (default 3 percent): margin by which the leading sector must beat SPY.
Bellwether 1, 2, 3 (defaults are three large semiconductor names): symbols whose earnings reports confirm the leading theme. Change these whenever the leading theme rotates.
Earnings override (default Auto): forces condition 5 to pass or fail.
HY OAS max (default 10 percent): credit-spread ceiling for the credit fail-safe.
CPI YoY max (default 2.5 percent): inflation ceiling for the CPI fail-safe.
Credit fail-safe gates signal (default on): when on, an elevated credit spread vetoes the composite signal.
CPI fail-safe gates signal (default off): when on, elevated inflation vetoes the composite signal; when off it displays as a warning only.
█ WHAT MAKES IT ORIGINAL
The script consolidates a cross-asset macro checklist into a single gated, auditable pane: an equity volatility index, the policy rate, the Treasury 2-year, a quarterly flow-of-funds leverage series, sector ETF relative strength, per-symbol earnings surprise data, a credit spread, and a computed inflation rate. Each series exists elsewhere in isolation; the contribution here is the joint evaluation with explicit pass/fail logic, the separation of hard vetoes from soft warnings through the gate toggles, and two implementation choices that make the framework computable on TradingView at all: the Z.1 quarterly margin-account series as a proxy for the unavailable monthly FINRA margin debt statistic, and the earnings-beat condition built from the earnings request feed on user-configurable bellwethers, with missing data treated as neutral rather than as a veto.
█ NOTES / LIMITATIONS
Designed for the daily timeframe on a broad US index. Other resolutions misalign the lookbacks and the higher-timeframe requests; other symbol classes add no information because every condition is market-wide.
The margin-debt proxy is quarterly. Monthly FINRA data can show a deleveraging turn up to one quarter before the Z.1 series reflects it, so condition 3 is the slowest leg and produces a step-shaped response.
Monthly and quarterly requests update when those periods complete. Within a forming month or quarter the CPI and margin readings can change until the period closes.
Earnings history depth varies by symbol and generally thins in earlier years. On older bars condition 5 frequently passes neutrally for lack of data, and the override and bellwether inputs are static across the whole chart, so the plotted historical count is indicative rather than point-in-time. Treat the history as illustration, not as a backtest.
Economic series have distinct start dates, and all external requests ignore invalid symbols. Missing data renders as n/a in the table, fail-safes pass when their series is absent, and a sector whose ticker fails to resolve is silently skipped in the relative-strength scan.
The checklist table reflects the last bar only.
The Fed condition is a proxy for a qualitative judgment. During fast easing cycles the fixed lookback can briefly misread the trajectory, which is what the override input is for.
Penunjuk

Penunjuk

Pattern Atlas : Geometric [AxeAlgo]Pattern Atlas : Geometric Patterns
WHAT THIS LIBRARY IS
This is a Pine Script v6 library of 17 classical chart pattern detectors — Head and Shoulders, Double/Triple Tops and Bottoms, triangles, wedges, flags, and the rest of the standard technical-analysis catalog built from swing highs and lows rather than single-candle shape. Unlike candlestick patterns, which read one to a handful of fixed bars, chart patterns span a variable, often large number of bars, so this library carries one small piece of state — a rolling history of confirmed swing pivots — that every pattern function reads from. Beyond that, the same philosophy as Library #1 applies: no plotting, no alerts, and no inputs in this script by design, since a library's job is to hand other scripts a clean, reusable, well-documented API, not to draw on a chart itself (Pine doesn't allow a library to plot anything anyway). If you're looking for a ready-to-use indicator built on top of this library, see the companion "Pattern Atlas : Geometric Indicator " script, which imports every function here and turns it into on-chart signals, measured-move price targets, a live scanner table, and alerts.
Chart pattern analysis is one of the foundational tools of classical technical analysis, going back to Edwards and Magee's original work and refined since by researchers like Thomas Bulkowski, whose statistical studies of pattern behavior are the closest thing this field has to an industry-standard reference. The patterns in this library follow that standard catalog, so anyone who already knows what a Head and Shoulders top or an Ascending Triangle looks like will recognize exactly what each function is checking for.
WHY A LIBRARY INSTEAD OF ONE MONOLITHIC INDICATOR
Splitting detection logic out as an importable library means:
- Any Pine coder building their own strategy, indicator, or screener can pull in exactly the pattern checks they need without copy-pasting swing-pivot and trendline math into every new script.
- The detection logic is tested and maintained in one place. When a threshold gets refined, everything importing this library benefits from the update by bumping one version number.
- It keeps the math separate from presentation — how a pattern gets drawn, colored, or alerted on is a completely separate decision from whether the pattern is actually present, and different users want different presentations.
HOW TO IMPORT AND USE IT
Add this line near the top of your script (adjust the version number to whatever the current published version is):
import AxeAlgo/Pattern_Atlas_Geometric/1 as geo
Unlike Library #1, most of the functions here need a shared pivot history to work from. Call trackPivots() exactly once per bar, then pass its result into every detect*() function that needs it:
pivots = geo.trackPivots()
match = geo.detectDoubleTopBottom(pivots)
if match.found
label.new(bar_index, high, match.patternName)
Four functions — detectSpike(), detectFlag(), detectPennant(), and detectIslandReversal() — read directly off recent price action instead of the shared pivot history, so they're called without a pivots argument: geo.detectSpike().
trackPivots() takes three optional parameters: leftBars and rightBars (how many less-extreme bars must surround a candidate swing point before it confirms as a pivot — higher values mean fewer, more significant pivots, at the cost of a longer confirmation lag), and maxPivots (how much pivot history to retain). All three have sensible defaults.
Every detect*() function returns the same structure, called ChartPatternMatch, so the calling pattern is identical no matter which of the 17 you use. It has nine fields:
- found — true if the pattern matched at the evaluated bar, false otherwise.
- patternName — the specific name of what matched (e.g. "Ascending Triangle"), na when not found.
- direction — "bullish" or "bearish".
- pivotBars — bar_index of each pivot the match was built from, in chronological order.
- pivotPrices — price of each pivot, in the same order as pivotBars.
- breakoutLevel — the support, resistance, or neckline level price broke through to confirm the pattern.
- necklineSlope — slope (price per bar) of the breakout line, na when the pattern's breakout level isn't a sloped line.
- barIndex — the bar_index the pattern completes (breaks out) on.
- description — a full sentence naming the pattern and the actual measured price levels that triggered it — genuinely useful for a tooltip or an alert message, not just a repeat of the pattern name.
Two additional exported functions turn that raw match into something more actionable, and both work on any ChartPatternMatch regardless of which detect*() function produced it:
- patternStrength(match) — a 0-100 score for how decisively the confirmation close broke through breakoutLevel, relative to the pattern's own price range. A breakout that clears the level by a meaningful fraction of the pattern's own size scores higher than a one-tick poke through it.
- patternTarget(match) — a classical measured-move price target, projecting the pattern's own height from the breakout point. Returns na for patterns without a reliable height to project from (V-Top/V-Bottom Spike, Island Reversal, Bump-and-Run Reversal).
Every detect*() function also exposes its own set of tunable threshold parameters — how flat a "flat top" has to be, how much two shoulders can differ and still count as equal, and so on — all with sensible defaults so you don't have to touch them unless you want to tighten or loosen a specific pattern's sensitivity for a particular instrument or timeframe.
THE 17 PATTERNS
Reversal patterns (7) — signal a potential change in the prevailing trend:
- Head and Shoulders / Inverse Head and Shoulders — detectHeadAndShoulders(). Three swing extremes with the middle one more extreme than the two roughly-equal outer ones, confirmed when price breaks the neckline connecting the two points between them.
- Double Top / Double Bottom — detectDoubleTopBottom(). Two roughly equal peaks (or troughs) with a retracement between them, confirmed when price breaks back through that retracement level.
- Triple Top / Triple Bottom — detectTripleTopBottom(). The same idea as a Double Top/Bottom with a third roughly-equal touch, confirmed on the break of the support or resistance formed between the touches.
- Rounding Top / Rounding Bottom — detectRoundingTopBottom(). A gradual, curved advance-and-rollover (or decline-and-recovery) between two similar edge levels. Approximate: read from three swing pivots rather than fitting a true curve.
- Diamond Top / Diamond Bottom — detectDiamondTopBottom(). Swing range that widens and then narrows again, confirmed on a break of the resulting support or resistance. Rare and approximate: read from three pivot pairs rather than a clean diamond outline.
- Broadening Formation — detectBroadeningTopBottom(). Diverging highs and lows forming an increasingly volatile range, confirmed on a break of either edge. Approximate: read from two pivot pairs rather than a hand-fitted diverging channel.
- V-Top / V-Bottom (Spike) — detectSpike(). A single sharp extreme with no rounding — a large move into the pivot and an equally large move away from it, both measured against the recent average bar range, within a handful of bars. Self-contained, no pivots argument needed.
Continuation patterns (8) — typically resolve in the direction of the move that preceded them:
- Ascending Triangle — detectTriangleAscending(). Flat resistance with rising support, confirmed on a break above resistance.
- Descending Triangle — detectTriangleDescending(). Flat support with falling resistance, confirmed on a break below support.
- Symmetrical Triangle — detectTriangleSymmetrical(). Converging highs and rising lows, confirmed (bullish or bearish) whichever side the price actually breaks.
- Rising Wedge / Falling Wedge — detectWedge(). Both trendlines slope the same direction and converge; breaks the opposite way from the slope, since the shared-direction move was already losing momentum.
- Bull Flag / Bear Flag — detectFlag(). A strong directional move (the pole), followed by a tight, roughly parallel pullback, confirmed on a break back out in the pole's direction. Self-contained, no pivots argument needed.
- Bull Pennant / Bear Pennant — detectPennant(). The same pole-and-consolidation structure as a Flag, but the consolidation narrows and converges rather than staying parallel. Self-contained, no pivots argument needed.
- Rectangle — detectRectangle(). Price boxed between flat support and flat resistance, confirmed on a break of either edge.
- Cup and Handle / Inverted Cup and Handle — detectCupAndHandle(). A rounded recovery (or decline) back to its starting rim, then a shallow pullback (the handle), confirmed on a break through the rim.
Structural / gap-based patterns (2):
- Bullish / Bearish Island Reversal — detectIslandReversal(). A bar (or small cluster) isolated by a gap on both sides, then abandoned by a gap the other way — an abrupt reversal. Self-contained, pure gap logic, no pivots argument needed.
- Bump-and-Run Reversal — detectBumpAndRun(). A lead-in trendline, then a "bump" phase accelerating well beyond it, then a "run" breaking back through the lead-in line. Approximate: the lead-in line is read from just two pivots rather than a hand-drawn trendline.
WHAT THIS LIBRARY DELIBERATELY DOES NOT DO
No plotting, no drawing, no alertcondition() calls, and no inputs — Pine doesn't allow any of those inside a library in the first place, since a library can never be added to a chart on its own. If you want signals, price targets, a scanner table, or alerts, import this library into your own script (or use the companion "Pattern Atlas : Chart Pattern Scanner " indicator, which does exactly that) rather than expecting this script to render anything by itself.
This library also does not evaluate multi-timeframe data, volume, or broader market structure — it's swing-pivot and trendline geometry only, on purpose, so its behavior is easy to reason about and easy to reuse as one building block among several.
Four of the seventeen patterns are explicitly noted above as approximate: Rounding Top/Bottom, Diamond Top/Bottom, Broadening Formation, and Bump-and-Run Reversal are read from a small, fixed number of swing pivots rather than fitting a true curve or hand-drawn trendline to the data. They will not catch every textbook-perfect example of these shapes, and they may occasionally flag a looser approximation of one. Treat them as a starting point for further chart review, not a final word.
PART OF A LARGER SERIES
This is Library #2 in the AxeAlgo Pattern Atlas — a planned set of Pine libraries splitting pattern detection by the method actually used to find each kind of pattern: candlestick shape (Library #1, already published), classical chart/geometric patterns (this library), harmonic patterns (Fibonacci-ratio XABCD structures), and market-structure concepts (order blocks, liquidity, Wyckoff-style events). Each library is independent and useful on its own; together they're meant to cover technical pattern analysis without forcing unrelated detection methods into the same function.
A NOTE ON REPAINTING
trackPivots() only confirms a swing pivot once rightBars bars have passed since it happened — the same confirmation lag ta.pivothigh()/ta.pivotlow() use, just written out as plain comparisons so it works safely inside a library's exported functions. That means a pivot never moves or disappears once confirmed; it just takes rightBars bars to become known, which is a normal and unavoidable part of swing-pivot detection, not a defect in this library. On the currently-forming bar, a pattern's found status can still change tick to tick as that bar's own high, low, and close move — that's inherent to reading live price action. If you're building persisted signals, drawings, alerts, or price targets on top of these functions (rather than a live "what's happening right now" readout), gate your usage on barstate.isconfirmed so a signal only fires once the bar it describes has actually closed, exactly like the companion scanner indicator does.
DISCLAIMER
This library is a technical analysis tool for identifying classical chart pattern shapes in historical and live price data. It does not predict future price movement, and a detected pattern — including any projected price target — is a description of past price action, not a signal guaranteed to repeat. Nothing in this script constitutes financial advice. Always combine pattern recognition with your own risk management and broader analysis before making any trading decision.
Perpustakaan

Moving Average CandleMoving Average Candle turns up to three moving averages into full OHLC candles instead of plain lines, so you can read a moving average's shape and momentum the way you'd read a price candle. It's built for anyone who wants to see a moving average's open, high, low and close at a glance — for example to judge a moving average's momentum and turning points the way you would judge price action, or to compare several of these MA candles against each other and against the underlying price on the same chart.
Each of the up to three MA candles can independently be calculated as SMA, EMA, WMA, VWMA, HMA, or RMA — standard formulas from TradingView's own library, with no custom modification.
MA Candle (present three times, MA Candle 1–3, each instance identically structured)
Length: number of bars the average is calculated over.
MA Type: calculation method: SMA, EMA, WMA, VWMA, HMA, or RMA.
Candle Style: Wick or Fill.
Bull / Bear: two colors: one for when the moving average's close is above its previous value, the other for the opposite case.
Each enabled MA candle is built from the moving averages of the bar's open, high, low and close, then colored by whether the moving average's close is rising or falling. The high and low are clamped so they never sit inside the body, which keeps the candle intact even for moving average types like HMA whose weighting can otherwise push a value outside a normal high/low range.
In Wick style, the high and low are drawn as a candle wick, just like a regular price candle. In Fill style, the wick is hidden and the high/low range is shown instead as a shaded band; the candle body stays visible in both styles.
This indicator is intended solely for market analysis and does not constitute investment advice or a guarantee of success. Use it at your own discretion and risk; past results are not indicative of future performance. Penunjuk

BBMA Trend & MomentumBBMA Trend & Momentum
The BBMA structure read as one running sequence rather than a handful of separate signals.
Most tools built on Bollinger Bands and moving averages draw the lines and leave the reading to
you. This one keeps a memory. It knows that momentum came first, that a reversal candle followed it, that the pullback target has already been reached, and it will not report the next step until the ones before it have happened. Each label on the chart is a position in that sequence, not an isolated condition that happened to be true.
Two of those steps are level touches rather than candle patterns, and they are treated
differently from the rest. That distinction is explained below and it matters.
THE LINES
Four families are drawn. Seven individual lines carry every rule in the script.
Bollinger Bands SMA 20 with deviation 2, giving Upper, Mid and Lower
LW MA on the HIGH weighted averages of the candle HIGH, drawn in the upper colour
LW MA on the LOW weighted averages of the candle LOW, drawn in the lower colour
EMA 50 on Close, drawn as a slower reference
The High averages sit above price and the Low averages below it, because of what they are
averaging. That is what forms the two bands the price runs between.
The seven lines every rule is written against are the three Bollinger Bands and the 5 and 10
period LW MAs on each side. Those four averages are drawn SOLID. Periods 6 to 9 are drawn DASHED, exist only to show the shape of the band, and sit on their own switch so you can take them off and see for yourself that nothing is calculated from them. Within each band the 5 sits nearer to price and the 10 further out.
The EMA 50 is drawn and nothing is measured from it either. It is there as background context for your own reading, and it can be switched off without changing a single label.
THE SEQUENCE
Upper and Lower name the band an event belongs to. Every rule below has an exact mirror on the other side, so only the Upper form is spelled out.
CSM - Candlestick Momentum
LW MA 5 High is above the Upper BB, and the candle CLOSES above LW MA 5 High.
The close is therefore beyond the outer band as well, without needing to be tested for it.
EX - Extreme
A CSM has already happened and its Extreme has not been taken yet. LW MA 5 High is still
outside the Upper BB, but a candle now CLOSES back below it. That candle must not reach down to LW MA 5 Low, LW MA 10 Low, or the Mid BB. Touching any one of the three disqualifies it. Exactly one Extreme belongs to one CSM. For another Extreme, a new CSM has to come first.
MTP - Mandatory Take Profit
After an Extreme, the first time price reaches LW MA 5 Low or LW MA 10 Low.
If a new CSM or a new MTM arrives before that touch, the MTP is cancelled and a fresh Extreme
has to form before it can be looked for again.
MLV - Market Volume Lost
After the MTP has been reached, a candle rises to the Upper BB but cannot CLOSE beyond it, and closes at or above the Mid BB. The band was tested and refused.
CSD - Candlestick Direction
A candle that opens on one side of the Mid BB and CLOSES through it, and in the same candle
closes beyond BOTH LW MA 5 and LW MA 10 on the side it broke into. An Upper CSD breaks upward through the Mid BB and both High averages; a Lower CSD breaks downward through the Mid BB and both Low averages. CSD is named by the direction it broke, not by which cycle it interrupted.
MTM - Momentum Push
After a CSM, price falls back below the Upper BB without ever CLOSING below the Mid BB, then
closes above the Upper BB again. That renewed push is the MTM candle. It is not itself a CSM,
which is what separates the two - and because it is not a CSM, it does not open the door to a
new Extreme either. It only clears whatever the previous CSM had left waiting.
RE - Re-Entry
The touch that follows CSM, MTM or CSD. An upper-band sequence looks for LW MA 5 Low or LW MA 10 Low; a lower-band sequence looks for LW MA 5 High or LW MA 10 High. Three kinds are marked separately, because they arrive from three different places:
CSM RE a pullback that was followed by a full CSM
MTM RE a pullback that was followed by an MTM push
CSD RE the pullback after a CSD
WHAT IS READ WHEN
This is the part worth being precise about.
CSM, EX, MLV, CSD and MTM are structure. They are decided on the CLOSE of a candle, and once
decided they never change.
MTP and RE are not patterns, they are level touches. A touch happens at the moment price reaches the level, not when the candle finishes, so both are read on the RUNNING candle. Waiting for the close would report the touch after the level had already been passed, which would describe something other than what happened.
When a running-candle label and a closing label land on the same bar, the running one is
removed and its text is folded into the closing label, so the two never sit on top of each other.
WHAT MAKES THIS DIFFERENT
1. It is a sequence, not a checklist.
An Extreme is not reported unless a CSM came first. An MTP is not looked for until an Extreme has been confirmed, and an MLV not until the MTP has been reached. The same candle shape means different things depending on what came before it, and the script keeps track of that.
2. A step can be cancelled, not only completed.
If momentum resumes with a new CSM or an MTM while an MTP is still waiting for its touch, that MTP is dropped. The market changed its mind, so the sequence restarts rather than reporting a target that no longer belongs to anything.
3. One Extreme per CSM.
An Extreme is the answer to a particular CSM, so it is reported once and then that CSM is spent.
Price can keep closing back inside the band for the next ten candles and none of them will be
called an Extreme. A new CSM has to arrive first. An MTM push does not substitute for one.
4. The Extreme test is deliberately narrow.
Closing back inside the band is not enough. The candle also has to stay clear of the opposite LW
MA 5 and 10 and of the Mid BB. A candle that reaches any of them has done more than fail at the edge, and it is not reported as an Extreme.
5. CSD is named by what it did.
A downward break through the Mid BB and both Low averages is a Lower CSD, wherever it happens to appear. Naming it after the cycle it interrupted would put the wrong word on the chart.
6. Touches are read as touches.
The two events that are levels rather than candle patterns are handled as levels, on the running candle, and the script says so plainly rather than pretending everything is close-based.
READING THE CHART
Each event prints a small label at the candle it belongs to. Upper-band events sit above the
candle, lower-band events below it, and where several land on the same candle they are stacked into one label instead of overlapping.
CSM momentum push beyond the outer band
MTM renewed push after a pullback
EX the reversal candle
MTP first touch of the opposite LW MA 5/10 after an Extreme
MLV the outer band tested and refused
CSD Mid BB and both same-side LW MAs broken together
CSM RE / MTM RE / CSD RE the re-entry touch, named after what preceded it
SETTINGS
Lines
- BB Period and BB Deviations for the Bollinger Bands.
- BB Shift: moves the drawn bands only. The values every rule is measured against are not
moved.
- LW MA 5 to 10 Low and LW MA 5 to 10 High: the twelve weighted average periods. Only 5 and 10 are used by any rule.
- EMA Period.
Pattern Types
- A switch for each of the seven: CSM, MTM, EX, MTP, MLV, CSD and RE.
Line Style
- Show LW MAs: the 5 and 10 period averages, the ones every rule is measured against.
- Show LW MA 6-9 Band: the four decorative periods on each side, on their own switch. Turning
them off is the quickest way to check the claim above - the chart gets simpler and not a single
label moves.
- Show or hide the Bollinger Bands and the EMA.
- Colours for the Bollinger Bands, the LW MA High band, the LW MA Low band and the EMA.
Labels
- Label Size.
ALERTS
Fourteen alert conditions, one for each event on each side:
CSM Upper / CSM Lower
MTM Upper / MTM Lower
EX Upper / EX Lower
MTP Upper / MTP Lower
MLV Upper / MLV Lower
CSD Upper / CSD Lower
Re-Entry Upper / Re-Entry Lower
The structural ones fire once per bar close. MTP and Re-Entry fire once per bar, because they are touches and are read on the running candle.
The same events are also sent through the alert function, so the "Any alert() function call"
alert type can deliver all of them through a single alert. Those messages name the exact
Re-Entry kind - CSM, MTM or CSD - which a fixed alert condition cannot.
REPAINTING
This script does not repaint.
CSM, MTM, EX, MLV and CSD are structure. They are evaluated only after a candle has fully closed and the state memory they drive is updated only on closes, so price moving inside an open candle cannot change the sequence.
MTP and Re-Entry are read on the running candle, and that deserves a straight answer rather than a disclaimer, because a label that can appear mid-candle usually can vanish mid-candle too. Here it cannot, and the reason is in the arithmetic of the level being watched.
A weighted average of the LOW gives the candle still forming a weight of one third at length 5,
and about one fifth at length 10. The running low of that candle falls three to five times faster
than the average it is being compared against. So the moment the low reaches the average, the gap between them can only keep closing. It can never reopen inside that candle. The high side is the exact mirror.
Which means:
- Once an MTP or Re-Entry label is drawn, it stays. It cannot un-touch before the candle closes.
- Reloading the chart gives the same result, because a closed candle is evaluated once using its
final low and high, and those are the most extreme values the candle ever had.
- The only thing that changes at the close is presentation: a running-candle label is folded into
the closing label for that bar so the two do not sit on top of each other. The event itself is
not re-decided.
When you create an alert, TradingView may show a caution banner saying the indicator can repaint.
That banner appears automatically for any script that uses the built in bar state variables, no
matter how they are used, because the platform cannot check the intent behind them. For the
structural alerts, choosing "Once Per Bar Close" is still recommended.
NOTES AND LIMITATIONS
- CSD is the strong form only: the Mid BB and BOTH same-side LW MAs have to be broken by the same candle. A Mid BB break on its own is not reported.
- An Extreme always needs a CSM before it. A reversal candle appearing without that history is
not an Extreme here, whatever it looks like.
- The 6, 7, 8 and 9 period LW MAs and the EMA 50 are drawn but never measured. Changing them, or hiding them, changes the picture and nothing else.
- BB Shift is visual only. Shifting the bands does not shift the rules.
- TradingView caps a script at 500 labels and the oldest are dropped once that cap is reached, so on a long history the earliest labels leave the chart.
- Detection is purely structural. It reports where each step of the sequence occurred and nothing more. It does not rank setups by quality, measure what happened next, or produce entries, targets or stops.
HOW TO USE IT
Read the labels in order rather than one at a time. A CSM on its own says momentum arrived. The same CSM followed by an Extreme says the move ran out of room. That Extreme followed by an MTP and then an MLV says the band was tested again and refused. Each label narrows what the previous one meant.
The two bands are the working area. Price spends most of its time between the LW MA High band and the LW MA Low band, and the Re-Entry marks are where it came back to one of them after a push.
A CSD is the point where the picture changes side. It is the only event in the set that breaks
the Mid BB and both same-side averages in one candle, and everything after it belongs to the new direction.
These are reference points, not entry signals on their own. Use them alongside your own analysis, your own entry method and proper risk management.
DISCLAIMER
This indicator is a pattern detection tool. It is not financial advice and it makes no claim
about profitability. Trading involves risk. Always apply your own analysis and risk management. Penunjuk

Stock StatsStock Stats — Single-Row Stat Dashboard
A compact, single-row table of key stock and crypto stats, displayed as button-style "chips" (label on top, value bold below) in the corner of your chart. Built to give a fast read on liquidity, extension, and volume without cluttering the chart.
Stats shown (each toggleable independently):
- Market cap — labeled by cap-size category (Nano / Micro / Small / Mid / Large / Mega), with the value shown below
- Float — shares float
- ADR% — average daily range %, a volatility measure over a configurable lookback
- ATR — average true range (daily, or weekly on weekly charts)
- LoDD — distance of the close from the low of day, in ATR-normalized %
- 52W High — 52-week high
- VolBuzz — today's volume vs. its 100-day average, as %
- RunRate — a time-of-day-adjusted projection of full-session volume. For regular US equity sessions it corrects for the typical open/close volume skew against the 100-day average; for 24/7 crypto tickers it uses the full UTC day and compares against the trailing average for the same day of week, so weekend volume is judged against past weekends rather than a blended average. Shows "–" whenever there's nothing live to project (market closed, or before/after the session).
All stats are computed on daily bars internally and stay correct regardless of your chart's timeframe — a 5-minute chart and a daily chart show the same numbers.
Customization: every stat can be shown/hidden, and its text color set independently. An optional empty spacer row keeps the pane's own icons from overlapping the table when hovered.
Credit: The original table layout is based on a concept by ArmerSchlucker; the ADR% formula is credited to Qullamaggie, MikeC, TheScrutiniser, and GlinckEastwoot.
Open-source, MPL 2.0 licensed. Penunjuk

Institutional Inducement Engine [algotim]Overview
Institutional Inducement Engine is a market-structure analysis tool built around a specific sequence: identify a major swing level, locate a smaller swing positioned between current price and that major level, require structural confirmation, and then monitor the confirmed level for a subsequent liquidity interaction.
The purpose of this workflow is to distinguish a potentially meaningful internal liquidity level from an ordinary minor swing. Instead of treating every internal pivot as an inducement, the script maintains a candidate state and only promotes that candidate after the required structural condition has occurred.
The resulting chart shows the relationship between external liquidity, confirmed internal inducement levels, subsequent sweeps, and the opposing external liquidity level.
Problem Statement
A conventional swing-point indicator treats major and minor pivots largely as the same type of information. This can make it difficult to distinguish a meaningful internal level from ordinary market noise.
This script uses two different structural scales:
* External swings represent the larger liquidity reference.
* Internal swings represent smaller candidate levels.
* The distance between them is optionally evaluated relative to ATR.
* A candidate can remain pending until a subsequent structure break confirms it.
This creates a sequential workflow rather than simply plotting every detected pivot.
Methodology
1. External Structure
The script detects major swing highs and lows using a configurable external pivot length.
A confirmed external high becomes the current bearish-side liquidity reference, while a confirmed external low becomes the current bullish-side liquidity reference.
Only the most recently detected external levels are maintained as the active structural references.
2. Internal Candidate Detection
A separate, shorter pivot length is used to detect internal highs and lows.
For a bullish inducement candidate, the internal low must be above the most recent external low.
For a bearish inducement candidate, the internal high must be below the most recent external high.
The separation between the internal candidate and its corresponding external level can also be filtered using ATR. With the ATR filter enabled, the minimum separation is:
Distance >= ATR x Minimum Distance Multiplier
This prevents very small differences between internal and external pivots from automatically qualifying as separate structural levels.
3. Pending Candidate State
A qualifying internal pivot is not immediately treated as a confirmed inducement.
Instead, the script stores its price and bar position as a pending candidate.
This distinction is important because the indicator is evaluating a sequence rather than a single candle or pivot:
Internal swing -> candidate -> structural confirmation -> confirmed inducement.
4. Break of Structure Confirmation
When BOS confirmation is enabled, the script looks for an internal structure point formed after the candidate.
For a bullish candidate, a subsequent internal high is tracked and a close crossing above that level confirms the bullish inducement.
For a bearish candidate, a subsequent internal low is tracked and a close crossing below that level confirms the bearish inducement.
Once confirmed, the pending candidate is transferred into the confirmed inducement state.
This prevents the initial internal pivot from being presented as a completed signal before the required structural sequence has occurred.
5. Inducement Zone
After confirmation, the inducement price is converted into a chart zone.
The zone height is derived from ATR rather than using a fixed number of ticks, allowing its visual size to scale with the instrument's current volatility.
The zone is then extended for the user-defined number of bars.
6. Liquidity Sweep Tracking
The script separately monitors the active external levels and confirmed inducement levels for price sweeps.
An external low is considered swept when price trades below that level and subsequently closes back above it.
An external high is considered swept when price trades above that level and subsequently closes back below it.
Confirmed inducement levels are also monitored. Once price trades through a confirmed inducement level, its sweep state is recorded so the same level is not repeatedly reported as a new sweep.
7. Liquidity Path Projection
After an inducement is confirmed, the script can draw a visual path from that inducement toward the opposing external liquidity reference.
For a confirmed bullish inducement, the path is drawn toward the current external high.
For a confirmed bearish inducement, the path is drawn toward the current external low.
This line is a structural visualization of the relationship between the two detected liquidity references. It is not a forecast or guarantee that price will reach the projected level.
Signal Workflow
The complete workflow is:
1. Detect a major external swing high or low.
2. Store that swing as the current external liquidity reference.
3. Detect smaller internal swings.
4. Test whether the internal swing is positioned between price structure and the corresponding external level.
5. Apply the optional ATR separation filter.
6. Store a qualifying internal swing as a pending candidate.
7. Identify a subsequent internal structure point.
8. Wait for the required break of that structure.
9. Promote the pending candidate to a confirmed inducement.
10. Draw the inducement zone.
11. Monitor the confirmed inducement and external liquidity for sweeps.
12. Optionally project the structural path toward the opposing external liquidity level.
This sequence is the central analytical framework of the indicator.
Why This Indicator Is Different
A standard pivot indicator answers a relatively simple question: "Where are the recent swing highs and lows?"
This script attempts to answer a different question: "Which smaller swing has a defined structural relationship with a larger liquidity reference, and has that relationship subsequently received structural confirmation?"
The distinction comes from the interaction of the components rather than from simply placing several indicators on the same chart.
The external and internal pivot systems operate at different structural scales. The ATR filter controls the minimum separation between those scales. The pending-state mechanism then prevents a candidate from becoming a confirmed inducement until the required structural event occurs.
After confirmation, the same state is carried forward into the sweep-tracking and opposing-liquidity visualization stages.
Consequently, the output represents a sequence of structural conditions rather than an independent collection of pivot, ATR and sweep markers.
Inputs
Structure
**External Swing Length**
Controls the pivot length used for major external swing detection.
**Internal Swing Length**
Controls the shorter pivot length used for internal candidate detection.
Filters
**Enable ATR Noise Filter**
Enables or disables volatility-adjusted separation between internal and external swings.
**ATR Length**
Controls the ATR calculation used by the distance filter and inducement-zone sizing.
**Min Distance (x ATR)**
Sets the minimum separation between the internal candidate and corresponding external level when the ATR filter is enabled.
**Require BOS Confirmation**
When enabled, an internal candidate must receive the specified structural break before becoming a confirmed inducement.
Visuals
The visual settings control whether external liquidity, inducement zones, sweep markers, path projections and liquidity targets are displayed.
**Path Projection Length** controls how far the projected structural path is drawn.
Style
Colors can be customized independently for bullish-side liquidity, bearish-side liquidity, bullish inducement zones, bearish inducement zones and projected paths.
Alerts
The script can generate alerts for:
* New bullish inducement
* New bearish inducement
* Bullish liquidity sweep
* Bearish liquidity sweep
* BOS confirmation events
These alerts correspond to state transitions in the detection workflow rather than simply alerting whenever an ordinary pivot appears.
Practical Usage
Use the external liquidity levels as the larger structural references and the inducement zones as secondary internal levels.
A typical workflow is to first identify the active external liquidity on the chart, then observe whether an appropriately separated internal swing forms. With BOS confirmation enabled, wait for the subsequent structural break before treating the candidate as confirmed.
After confirmation, monitor the inducement and external liquidity levels for subsequent sweeps.
The projected liquidity path should be interpreted as a visual representation of the detected structural relationship, not as a prediction of future price movement.
The indicator can therefore be used as a framework for studying how internal and external swing structures interact across different instruments and timeframes.
Limitations
The script uses confirmed pivot calculations. A pivot is only known after the required bars to the right have formed, so newly detected structure is inherently delayed by the selected pivot lengths.
Increasing the external or internal swing lengths will generally reduce the number of detected swings while making the structural definitions more selective. Smaller values can produce more candidates and more noise.
ATR filtering adapts the minimum separation to recent volatility, but it does not determine whether a particular market-structure interpretation is correct.
Liquidity sweeps are identified from the price relationship with detected levels. A sweep does not guarantee a reversal or continuation.
Projected liquidity paths are visual aids based on the currently detected opposing external level. They should not be interpreted as future-price forecasts.
The indicator is an analytical tool and should not be treated as a standalone trading system or a guarantee of market behavior.
Notes
The terms "liquidity", "inducement", "sweep" and "break of structure" describe the structural definitions implemented by this script. Different traders and methodologies may define these concepts differently.
For reproducibility, the most important settings are the external swing length, internal swing length, ATR separation threshold and BOS confirmation setting.
Signals and structural markings should be evaluated together with the underlying price action and the characteristics of the instrument and timeframe being analyzed. Penunjuk

AI Trend Strength Meter [algotim]Overview
EMA Cloud Trend Retest Signals is a trend-continuation indicator built around a state-based pullback and retest process.
The purpose of the script is to distinguish an ordinary moving-average touch from a structured retest. Instead of generating a signal simply because price crosses an EMA, the script first requires an established directional regime, then tracks a pullback into the EMA cloud and evaluates how deeply price retraces before attempting to resume the prevailing direction.
The result is a selective retest workflow rather than a standalone moving-average crossover signal.
Problem Statement
A basic EMA crossover can identify direction, but it does not describe what happens after the trend has started. Likewise, a simple moving-average touch can occur repeatedly during sideways markets and can produce many low-quality signals.
This script addresses that problem by separating trend identification from retest validation.
A trend must first establish itself for a configurable number of bars. Price must then interact with the EMA cloud. The script tracks the deepest part of that pullback and can require the depth to exceed a configurable fraction of ATR. Optional volume confirmation adds another condition at the retest candle.
This makes the signal dependent on the sequence of events rather than on one indicator crossing another.
Methodology
The trend engine uses a fast EMA and a slow EMA calculated from the selected price source.
When the fast EMA is above the slow EMA, the regime is bullish. When it is below the slow EMA, the regime is bearish.
The script also measures the percentage distance between the two EMAs:
Spread % = abs(Fast EMA - Slow EMA) / Close x 100
This value is normalized and used primarily to control the visual strength of the EMA cloud rather than to create an independent trading signal.
Trend age is tracked as the number of bars since the EMA regime last changed. A configurable minimum trend age prevents an immediate EMA flip from being treated as an established trend.
Retest Detection
Once a bullish regime is active, the script monitors for price interaction with the EMA cloud. For bearish regimes, the same process is applied in the opposite direction.
Depending on the selected setting, a retest can be recognized using either:
* A wick entering the EMA cloud.
* A candle close entering the EMA cloud.
Once the cloud is touched, a pullback state becomes active.
The script then tracks the most extreme price reached during that active pullback.
For bullish retests:
Pullback depth = Cloud top - Pullback low
For bearish retests:
Pullback depth = Pullback high - Cloud bottom
This allows the depth of the retracement to be compared with current volatility.
ATR Validation
The pullback-depth filter uses ATR as the volatility reference.
A bullish retest must satisfy:
Pullback depth >= ATR x Minimum Depth
A bearish retest uses the corresponding distance from the lower cloud boundary.
Because the threshold is expressed in ATR units, the filter adapts to the current volatility of the instrument instead of relying on a fixed price distance.
Volume Validation
When enabled, the retest candle is compared with a moving average of volume.
Volume confirmation requires:
Current volume >= Average volume x Volume multiplier
This filter is optional and can be disabled when volume data is unsuitable for the instrument.
Signal Workflow
1. Calculate the fast and slow EMAs.
2. Establish the bullish or bearish EMA regime.
3. Reset the signal lock when the EMA regime changes.
4. Count how many bars the current regime has remained active.
5. Ignore retests until the minimum trend-age requirement is satisfied.
6. Detect price interaction with the EMA cloud.
7. Activate a pullback state.
8. Track the deepest price reached during that pullback.
9. Compare pullback depth with the ATR-based minimum.
10. Optionally verify above-average volume.
11. Require price to close back through the appropriate cloud boundary.
12. Generate the retest signal.
13. Lock further signals until the EMA regime changes.
The one-signal-per-trend lock is an important part of the workflow. It prevents repeated cloud interactions during the same EMA regime from continuously producing identical signals.
Signal Strength
When enabled, the script classifies the retest using a simple three-point strength model.
One point is added when the trend has persisted for at least twice the minimum trend-age requirement.
One point is added when current volume reaches 1.5 times the average volume.
One point is added when the measured pullback depth reaches twice the configured minimum ATR depth.
A score of two or more is displayed as a stronger retest classification.
This score is a classification of the conditions present at the retest; it is not a probability or performance estimate.
Why This Indicator Is Different
A conventional EMA indicator normally answers one question: which EMA is above the other?
A basic pullback indicator may add a moving-average touch condition.
This script instead treats the retest as a sequence with persistent state:
EMA regime -> trend age -> cloud interaction -> pullback tracking -> ATR depth validation -> volume validation -> recovery through the cloud -> signal lock.
The distinction is therefore not the use of EMAs, ATR or volume individually. Those are standard analytical tools. The main contribution is the way they are used as sequential validation layers around a tracked pullback state.
The script also prevents multiple signals from the same trend regime by maintaining a signal-fired state until the EMA direction changes.
Inputs
EMA Cloud Settings
* Fast EMA Length
* Slow EMA Length
* Price Source
* EMA Line Width
* Candle coloring
* Cloud opacity and visual options
* ATR Length
Retest Settings
* Minimum Trend Age
* Wick-based or close-based cloud interaction
* Buy/Sell signal visibility
* Volume confirmation
* Volume moving-average length
* Volume multiplier
* Minimum pullback depth in ATR
* Signal-strength display
Risk and Target Settings
The script also provides configurable risk-reward reference levels where enabled, including target multipliers and a selectable stop-loss basis.
Alerts
The indicator provides alert functionality for the retest conditions according to the enabled alert settings.
Alerts should be interpreted as notifications that the defined sequence has completed, not as guarantees of future price movement.
Practical Usage
The indicator is intended primarily for trend-continuation analysis.
For bullish conditions, users can focus on periods where the fast EMA remains above the slow EMA, the trend has established for the required number of bars, and price pulls back into the EMA cloud before recovering above it.
For bearish conditions, the inverse process applies.
The ATR depth filter can be increased when shallow pullbacks generate excessive signals. The volume filter can be enabled when volume data provides useful participation information.
Signals should preferably be evaluated in the context of the broader market structure, timeframe and current volatility rather than treated as automatic entries.
Limitations
EMA-based regimes are lagging by construction and can change frequently during sideways markets.
A cloud interaction does not guarantee continuation. Ranging conditions can produce repeated pullbacks and failed retests.
ATR normalization adjusts the depth requirement to volatility but does not eliminate market noise.
Volume confirmation depends on the quality and meaning of the volume data available for the instrument.
The signal-strength score is a rule-based classification, not a statistical probability of success.
Trend age and pullback depth depend on historical bars and the selected settings, so results can vary substantially between instruments and timeframes.
Signals should be evaluated after bar close and should not be interpreted as guaranteed future price direction.
Notes
This indicator is an analytical framework for identifying structured EMA-cloud retests. It is not a trading strategy with guaranteed performance and should not be treated as financial advice.
The EMA, ATR and volume calculations used by the script are standard technical-analysis concepts. The intended distinction is the state-based workflow that combines them to qualify a single retest within an established trend regime.
Penunjuk

Engulfing Confirmation Signals [algotim]Overview
Engulfing Confirmation Signals is a two-stage price action indicator designed to distinguish basic engulfing candle formations from engulfing setups that receive additional confirmation from market context.
The script does not treat every bullish or bearish engulfing candle as a signal. First, an engulfing candle must satisfy structural requirements and pass a rule-based quality score using trend alignment, relative volume, and ATR expansion. A qualifying engulfing candle then creates a temporary confirmation zone based on its full high-low range.
The second stage waits for price to close beyond that range within a configurable number of bars. This separates the initial pattern from the subsequent breakout confirmation.
Problem Statement
A traditional engulfing detector can produce a large number of signals because the candlestick pattern itself only describes the relationship between the current candle and the previous candle.
This script adds a filtering and confirmation process around that pattern.
Instead of treating the engulfing candle as the final event, the indicator asks two separate questions:
1. Does the engulfing candle have sufficient structural and market-context quality?
2. After qualification, does price subsequently break the engulfing candle's range before the setup expires?
This creates a distinction between a qualified engulfing setup and a confirmed breakout.
Methodology
Stage 1: Engulfing Structure
A bullish engulfing candle must close above its open while the previous candle is bearish.
A bearish engulfing candle must close below its open while the previous candle is bullish.
When full-body engulfing is enabled, the current candle must also open and close beyond the previous candle's corresponding open and close.
The current candle body must be at least the configured multiple of the previous candle's body. The default minimum is 1.05 times the previous candle body.
The pattern is evaluated on the confirmed bar close.
### Stage 2: Quality Score
A qualifying engulfing candle receives a score from three rule-based components.
**Trend alignment - 40 points**
For bullish setups, the close is compared with the configured EMA. A close above the EMA receives the full 40 points. A close within the defined 0.2% proximity band receives 20 points.
For bearish setups, the corresponding relationship is reversed.
**Relative volume - 30 points**
Volume is compared with its simple moving average:
Volume ratio = Current volume / Average volume
The resulting value is converted into a score and capped at 30 points.
This allows the scoring engine to distinguish an engulfing candle occurring with relatively high participation from one occurring on comparatively weak volume.
**ATR expansion - 30 points**
Current ATR is compared with an average of ATR values.
ATR expansion contributes additional points when current volatility is above its ATR baseline, with the contribution capped at 30 points.
The three components are added together. An engulfing candle is accepted only when its total score reaches the user-defined minimum score.
The score is a rule-based filter and should not be interpreted as a probability or expected win rate.
Signal Workflow
Bullish workflow
1. Detect a bullish engulfing candle.
2. Verify the required body relationship with the previous candle.
3. Calculate trend, volume, and ATR components.
4. Add the components into the 0-100 quality score.
5. Ignore the setup if the score is below the minimum threshold.
6. If qualified, create a bullish confirmation zone using the engulfing candle's high and low.
7. Monitor subsequent bars for a close above the engulfing candle high.
8. Generate the confirmed bullish signal when that breakout occurs.
9. Expire the zone if the breakout does not occur within the configured waiting period.
Bearish workflow
1. Detect a bearish engulfing candle.
2. Verify the required body relationship with the previous candle.
3. Calculate trend, volume, and ATR components.
4. Add the components into the 0-100 quality score.
5. Ignore the setup if the score is below the minimum threshold.
6. If qualified, create a bearish confirmation zone using the engulfing candle's high and low.
7. Monitor subsequent bars for a close below the engulfing candle low.
8. Generate the confirmed bearish signal when that breakout occurs.
9. Expire the zone if the breakout does not occur within the configured waiting period.
Why This Indicator Is Different
A conventional engulfing indicator normally stops at identifying the candlestick pattern.
This script uses the engulfing candle as the beginning of a two-stage process.
The first stage evaluates whether the pattern has sufficient contextual support using three measurable conditions: its position relative to an EMA, current volume relative to average volume, and current ATR relative to its ATR baseline.
The second stage does not immediately convert a qualified engulfing candle into a confirmed breakout signal. Instead, the engulfing candle's range becomes a temporary state that is monitored for a subsequent closing breakout.
This distinction is the main purpose of the indicator: the initial engulfing event and the later range break are treated as separate analytical events.
Inputs
Engulfing Detection
**Min Body Size vs Prior Candle**
Controls how large the engulfing candle's body must be relative to the previous candle.
**Require Full Body Engulf**
When enabled, the current candle's open and close must fully engulf the previous candle's body.
Confirmation Engine
**Trend EMA Length**
Sets the EMA used for the trend-alignment component of the score.
**Volume Average Length**
Controls the moving-average baseline used to evaluate relative volume.
**ATR Length**
Controls the ATR calculation used by the volatility component.
**Minimum Quality Score**
Sets the minimum combined score required for an engulfing candle to create a confirmation zone.
Confirmation Zone
**Max Bars to Wait for Confirmation**
Defines how long an active engulfing zone remains valid while waiting for a breakout.
**Extend Zone Box While Active**
Controls whether the active zone visually extends as subsequent bars are processed.
Visual Style
The visual inputs control bullish and bearish colors, zone transparency, Stage 1 markers, and whether the numerical quality score is displayed.
Alerts
The script provides alerts for:
* Qualified bullish engulfing
* Qualified bearish engulfing
* Confirmed bullish breakout
* Confirmed bearish breakout
Qualified alerts identify the first stage of the process. Confirmed breakout alerts identify the second stage.
Practical Usage
The Stage 1 marker can be used to locate engulfing candles that have passed the configured contextual filters.
The Stage 2 confirmation marker can then be used to identify cases where price subsequently closes beyond the qualified engulfing candle's range.
Users can adjust the minimum score to control selectivity. Higher thresholds require stronger combined trend, volume, and volatility conditions and will generally produce fewer qualifying setups.
The confirmation window can also be adjusted depending on how long the user wants an engulfing setup to remain valid.
The indicator is intended for chart analysis and can be evaluated across different instruments and timeframes. Settings should be tested against the characteristics of the market being analyzed.
Limitations
The quality score is a rule-based classification and is not a statistical probability, accuracy percentage, or guarantee of future performance.
Engulfing patterns can fail, and a confirmed range breakout does not guarantee continued price movement.
Volume behavior varies between instruments, particularly where volume data is limited or represents different types of market activity.
EMA, volume, and ATR parameters can produce different results across instruments and timeframes.
Signals are generated from completed bar conditions, but the confirmation process can still produce false breakouts during volatile or ranging conditions.
The indicator does not provide trade management, position sizing, stop-loss, or take-profit recommendations.
Notes
The script is designed as a structured confirmation framework around engulfing price action.
Its output should be interpreted as analytical information rather than a standalone trading decision. Users should evaluate the indicator with their own market context, risk management, and trading methodology. Penunjuk

Optimal Trade Entry (OTE) Zone Plotter [algotim]Optimal Trade Entry (OTE) Zone Plotter locates the 62%-79% institutional retracement zone of a confirmed impulsive swing and keeps only the single most relevant zone per direction on the chart, fading it through disclosed mitigation states as price interacts with it.
Problem Statement
The Optimal Trade Entry concept, retracing into the 62%-79% region of an impulsive leg before continuation, is a well-known Fibonacci convention, but most public implementations simply plot every Fibonacci level on every swing they detect. This produces charts covered in overlapping retracement boxes, most of which come from insignificant swings that carry no real weight, and gives no visual indication of which zones are still fresh, already tested, or fully invalidated.
This indicator addresses that gap by filtering which swings are allowed to generate a zone in the first place, by showing only the current zone per direction at full strength, and by changing each zone's appearance as price actually interacts with it.
Methodology
Swing highs and lows are identified with ta.pivothigh/ta.pivotlow using a user-defined Pivot Length, so every swing referenced by the script is a confirmed pivot, evaluated only after barstate.isconfirmed is true.
Consecutive pivots of the same type extend a running swing extreme; a leg is only registered when the pivot type alternates (a low following a high, or a high following a low). Each candidate leg must then clear three disclosed checks before it is allowed to create a zone: the leg's price range must reach a minimum multiple of ATR, the swing candle's own body-to-range ratio must reach a minimum threshold, and, if the Break of Structure filter is enabled, the new swing must exceed the prior swing of the same type. Legs that fail any check produce no zone, no label, and no alert.
A qualifying leg generates one OTE zone: the shaded region between the 62% and 79% retracement of that leg, with the 70.5% level drawn as a two-layer glowing midline inside it. Only one bullish and one bearish zone are ever active at a time. When a new qualifying leg forms, the previous zone of that direction is frozen in place and, if enabled, kept as a single low-opacity historical reference rather than removed outright or left overlapping the new zone.
Each active zone tracks its own mitigation state on every confirmed bar: Fresh (untouched), Touched (price has wicked into the 62%-79% region), Mitigated (a confirmed close through the 79% boundary), or Invalidated (a confirmed close back through the leg's own origin point). State can only advance forward, and the zone's fill opacity and border color update automatically at each transition, so the chart communicates a zone's condition without any additional label or panel.
Signal Workflow
Step 1 — a confirmed swing pivot alternates direction, registering a candidate leg from the prior opposite pivot to the new one.
Step 2 — the leg is checked against the Minimum Swing Size, Body Ratio, and optional Break of Structure filters; legs that fail are discarded with no chart output.
Step 3 — a qualifying leg creates a new active OTE zone (62%-79%) with its 70.5% midline, and the previous zone of the same direction is frozen and faded.
Step 4 — the active zone's state advances from Fresh to Touched as price wicks into the zone on a confirmed bar.
Step 5 — the zone advances to Mitigated on a confirmed close through the 79% boundary, or to Invalidated on a confirmed close back through the leg's origin, at which point it is greyed out.
Step 6 — each transition and each zone entry/exit can trigger its own alert, gated by the corresponding toggle in the Alerts group.
Why This Indicator Is Different
Most public OTE/Fibonacci scripts draw a zone for every detected swing regardless of its significance, leaving multiple overlapping retracement boxes on the chart at once.
This script applies a disclosed three-part quality filter (ATR-relative swing size, swing candle body ratio, optional break-of-structure confirmation) before a swing is even allowed to generate a zone.
Only one zone per direction is ever shown at full strength; the prior zone automatically fades to a quiet historical reference the moment a new qualifying swing appears, keeping the chart focused on the current opportunity.
Zone fill opacity and border color are driven entirely by a four-state mitigation engine (Fresh/Touched/Mitigated/Invalidated) computed from confirmed price action against the zone's own boundaries, so the visual state of a zone is informative rather than purely decorative.
The 70.5% equilibrium level is rendered as a two-layer glow line rather than a plain dashed line, giving the zone's mid-point a distinct, non-generic appearance.
Inputs
Swing Detection
Pivot Length
ATR Length
OTE Quality Filter
Minimum Swing Size (x ATR)
Minimum Swing Candle Body Ratio
Require Break of Structure
OTE Zone
Show Bullish OTE Zones
Show Bearish OTE Zones
Zone Extension (bars)
Show Institutional Midline (70.5%)
Fade Previous Zone on New Swing
Visual Settings
Bullish/Bearish Zone Colour
Bullish/Bearish Midline Colour
Label Size
Alerts
Alert: New OTE Zone Created
Alert: Price Entered OTE Zone
Alert: Price Left OTE Zone
Alert: OTE Zone Mitigated
Alert: OTE Zone Invalidated
Alerts
Alerts are available for:
New Bullish/Bearish OTE Zone Created
Price Entered Bullish/Bearish OTE Zone
Price Left Bullish/Bearish OTE Zone
Bullish/Bearish OTE Zone Mitigated
Bullish/Bearish OTE Zone Invalidated
Practical Usage
Treat an active, Fresh OTE zone in the direction of the prevailing structure as a region to watch for a retracement entry, not a standalone entry signal by itself.
Use the Break of Structure filter on trending instruments to restrict zones to swings that genuinely extended structure, and disable it on ranging instruments where internal swings may still be meaningful.
Raise the Minimum Swing Size and Body Ratio filters on lower timeframes or noisy instruments to reduce the number of zones generated.
Watch the zone's fill opacity as a quick visual read of its condition: a bold zone has not been tested, a lighter fill has already been touched or mitigated, and a greyed zone has been invalidated and should generally be disregarded.
Combine the Entered/Exited alerts with your own confirmation criteria (candlestick behavior, lower-timeframe structure, etc.) rather than treating zone entry alone as a trigger.
Limitations
Swing pivots require bars to form on both sides before they confirm, so every zone is inherently placed a Pivot Length number of bars after the actual swing extreme occurred.
The quality filter reduces the number of zones shown but does not evaluate or predict the outcome of any individual retracement.
Only one active zone per direction is displayed at a time; if you want to review multiple historical zones simultaneously, enable "Fade Previous Zone on New Swing" and note that only the single most recent prior zone is retained, not a full history.
As with any retracement-based tool, results will vary across instruments, timeframes, and market regimes.
Notes
This indicator is a zone-location tool intended to highlight the current, quality-filtered Optimal Trade Entry region and its mitigation state through a disclosed, rule-based process.
All swing confirmations, zone creation, mitigation-state transitions, and invalidations are evaluated on confirmed bar closes only, so no element of the script repaints once drawn.
The output is intended to support retracement-based analysis and is not a standalone buy or sell recommendation. Penunjuk

Inducement Sweep Strategy [algotim]Inducement Sweep Strategy enters trades only after the classic ICT inducement sequence has fully played out: an external liquidity pool is identified, an internal swing (the inducement) forms in front of it, that inducement is swept with genuine displacement, and price then confirms a Market Structure Shift back in the real direction. Every qualifying setup is scored by the Inducement Quality Index (IQI), a 0-to-100 composite that ranks how convincing the engineered move actually was before an entry signal is ever shown.
Problem Statement
Most public inducement or "sweep and BOS" scripts fire a signal the instant any minor swing is tagged and broken. They do not distinguish between an inducement that formed in front of a meaningful liquidity pool with a violent, high-conviction reversal, and a shallow internal wiggle that happened to get tapped during normal noise. Traders end up manually filtering every alert, checking chart context by hand, which defeats the purpose of automating inducement detection in the first place. This script instead separates structure identification from signal display: the full pipeline runs on every bar, but only setups that pass the quality bar are shown as entries.
Methodology
Two pivot lengths run in parallel. A longer length confirms External Structure — the major swing highs and lows that represent the real liquidity pool the market is engineered toward. A shorter length confirms Internal Structure — the minor swings that sit closer to current price. When a confirmed internal low forms above the most recent confirmed external low (or, for shorts, an internal high forms below the most recent external high), that internal point is flagged as an Inducement Candidate: a level structurally positioned to attract retail stops in front of the real liquidity pool.
The candidate remains active until price wicks through it and closes back on the correct side with a reversal body at least a user-defined ATR multiple in size — this is the Sweep, and the ATR displacement requirement filters out shallow wicks that reflect noise rather than an engineered stop run. Once swept, the script watches for a Market Structure Shift: a close beyond the internal high or low that sat between the external level and the inducement. Only this break confirms the real directional move is underway, and only then does the entry logic activate.
Each confirmed setup is scored by the IQI engine across four factors — displacement strength, sweep freshness, liquidity depth, and rejection wick quality — combined into a single 0-to-100 score. An entry signal is only displayed on the chart when the score meets the user's configured minimum, so lower-quality setups are tracked internally but never clutter the chart or trigger alerts.
If price fails to sweep the inducement within a maximum bar window, breaks the external level before the sweep, fails to confirm the MSS within its own bar window, or fails an optional retest, the setup is invalidated and the pipeline resets automatically. All structure is derived from confirmed pivots only, so nothing in the detection logic repaints.
Signal Workflow
1. Confirm a major external swing high or low using the External Structure Length.
2. Confirm a minor internal swing forming on the inducing side of that external level — this becomes the active Inducement Candidate.
3. Wait for price to wick through the inducement level and close back on the correct side with a reversal body meeting the ATR displacement threshold — this is the Sweep.
4. Wait for a confirmed close beyond the internal high/low recorded between the external level and the inducement — this is the Market Structure Shift.
5. Calculate the Inducement Quality Index from displacement, freshness, depth, and rejection wick quality.
6. If Require Retest is enabled, wait for price to pull back and hold the broken MSS level before confirming.
7. Display the entry signal with its IQI score only if the score meets the configured minimum, and fire the corresponding alert.
Why This Indicator Is Different
Standard inducement or liquidity-sweep-plus-BOS scripts treat every sweep-and-break sequence identically, regardless of how convincing the move actually was.
The Inducement Quality Index is a composite score built specifically around the mechanics of an engineered inducement move rather than a generic volatility or volume filter — it weighs how fresh the sweep was relative to the inducement, how deep the underlying liquidity pool is in ATR terms, how strong the displacement candle was, and how decisively the sweep bar rejected its extreme.
Because setups below the quality threshold are still tracked internally and simply not displayed, the pipeline status label can show a user exactly where an unfolding setup stands without forcing premature signals onto the chart.
The optional retest requirement gives discretionary traders a way to demand confirmation of the broken structure as new support or resistance before treating the setup as valid, without changing the core detection logic.
Inputs
Structure Settings
External Structure Length — pivot length confirming the major swing that anchors the real liquidity pool
Internal Structure Length — pivot length confirming the minor swing used as the inducement candidate
Inducement Settings
Max Bars to Sweep — maximum age allowed for an inducement candidate before it is discarded as stale
Max Bars to Confirm MSS — maximum age allowed between the sweep and the structure shift confirmation
Displacement Filter
ATR Length — period for the ATR used in the displacement requirement
Min Displacement (x ATR) — minimum reversal candle body, as an ATR multiple, required to validate a sweep
Signal Quality
Minimum IQI to Show Signal — setups scoring below this 0-100 threshold are tracked but not displayed
Entry Options
Require Retest Before Entry — waits for a pullback that holds the broken MSS level before confirming the signal
Trade Levels
Show Entry / Stop / Target Lines — visual-only projected levels, not a managed strategy
Reward : Risk Ratio — target distance as a multiple of the stop distance
Level Projection Length — how far right the projected lines extend
Visual Settings
Show Inducement Level, Show Sweep Marker, Show MSS Break Line, Show Pipeline Status Label
Bullish / Bearish / Inducement / MSS / Sweep Marker colors
Alert Settings
Alert: Inducement Identified, Alert: Inducement Swept, Alert: Entry Signal, Alert: Setup Invalidated
Alerts
Alerts are available for:
Bullish Inducement Identified
Bearish Inducement Identified
Bullish Inducement Swept
Bearish Inducement Swept
Long Entry Signal (with IQI score, entry, and stop level)
Short Entry Signal (with IQI score, entry, and stop level)
Setup Invalidated (bullish and bearish, optional)
Practical Usage
Raise the Minimum IQI threshold on lower timeframes or noisy instruments to surface only the most convincing engineered moves.
Enable Require Retest for a more conservative entry style that waits for the broken structure to hold before committing.
Use the pipeline status label to monitor an unfolding setup in real time without needing a signal to already have fired.
The projected trade levels are a visual reference only — position sizing and trade management remain the trader's responsibility.
Combine with a higher timeframe bias tool to only act on Inducement Sweep signals that align with the broader directional context.
Limitations
Structure confirmation requires the full pivot look-right period to elapse before a swing is confirmed, so entries occur after price has already moved past the exact reversal point. This is standard confirmed-pivot behavior and is not repainting.
The IQI score is a relative ranking based on the four factors described above and does not guarantee trade outcomes. It should be used as a filtering aid, not a standalone trading signal.
The displacement filter is ATR-relative; on instruments with unusually low volatility, the ATR multiple may need to be reduced to detect qualifying sweeps.
The indicator does not manage open positions, calculate position size, or provide exits beyond the single visual target line. It identifies potential inducement-based entries only.
Notes
All structure levels and signals are drawn at the bar index of the actual pivot or event, not the confirmation bar, ensuring accurate visual placement.
The state machine for bullish and bearish setups runs independently and concurrently, so both directions can be tracked at the same time on ranging instruments.
For best results combine with Market Structure Break BOS/CHoCH Tracker to cross-check the higher timeframe structural context before acting on a signal. Penunjuk

Perpustakaan

Converging Triangles [The_lurker]🔻 CONVERGING TRIANGLES — المثلثات المتقاربة 🔺
No repaint. Nothing that appears ever moves, shifts, or disappears.
Converging Triangles identifies contracting price structures built from confirmed swing pivots: a falling resistance line and a rising support line that coexist in time and close on each other. It runs three independent scales at once, freezes each structure the moment it is identified, and reports the two boundary prices and the exact bar they were crossed.
🔶 1 — THE STRUCTURE
A converging triangle here is not a shape matched against a template. It is a state: two independently valid trendlines, alive at the same time, closing on each other.
Upper boundary — anchored on the two most recent confirmed swing highs, sloping down.
Lower boundary — anchored on the two most recent confirmed swing lows, sloping up.
Because the constraint is on the sign of each slope, the detected family covers symmetric triangles and the near-flat ascending and descending variants. Wedges, where both boundaries slope the same way, are excluded by construction and never appear.
🔶 2 — HOW A STRUCTURE IS ADMITTED
Each boundary must pass every test below, and both boundaries must pass simultaneously before a structure is drawn. One failed test drops the whole structure.
🔸 PER BOUNDARY — five conditions
Pivot confirmation — both anchors are swing points confirmed by "length" bars on each side.
Span — at least 3 bars between anchors, at most length × Max span.
Slope direction — the upper boundary must fall, the lower must rise.
Interior containment — no bar between the two anchors violates the line.
Forward containment — no bar from the second anchor to the present violates the line.
🔸 PER STRUCTURE — three conditions
Both sides live — neither boundary has been broken.
Time overlap — the two boundaries share a common bar range, so no line is drawn across a region where it has no anchors.
Convergence horizon — the projected intersection falls inside Min bars to apex … Max bars to apex.
🔒 Once admitted, the geometry is frozen. Anchor points and slopes never change for the life of that structure.
🔶 3 — READING THE DRAWING
Each boundary is drawn in two segments, and the difference is deliberate.
Solid segment — spans the boundary's own two anchors. This is measured containment, confirmed by the market.
Dotted segment — from the last anchor to the present bar. This is pure extrapolation.
You can always see where the confirmed part ends and the projected part begins.
A single fill binds the two boundaries into one object rather than two unrelated strokes. Its corners are the two starting anchors and the two current endpoints, so the left edge is a slant, not a vertical cut, and the wedge tip is filled.
🔸 COLOUR STATES
⚪ Forming — neutral grey. No directional claim is made before resolution.
🟢 Broken up — green. Lines and fill together.
🔴 Broken down — red. Lines and fill together.
The structure stays neutral for its entire life. Direction is asserted only after a break is confirmed at bar close.
🔶 4 — BREAK DETECTION
On every confirmed bar, the break source is compared against both boundaries at that bar.
If one boundary is violated, the structure resolves in that direction.
If a single bar violates both boundaries, resolution goes to the side with the larger excursion beyond its line.
The shape is then redrawn in the break colour and frozen at the break bar. It does not extend forward afterward.
🏷️ A break label is placed at the bar, carrying its layer letter and any tags that fired.
🔶 5 — THREE INDEPENDENT SCALES
📏 Large (21) · Mid (14) · Small (5)
Contraction is not a single event. A large structure can be narrowing while a small one narrows inside it, and each can resolve in the opposite direction to the other. That is information worth seeing, not a conflict to hide.
Each layer detects, tracks, and resolves independently. Break labels carry L, M, or S, so the scale is always identifiable. Any layer can be switched off.
🔶 6 — HISTORICAL ARCHIVE
🗂️ Optional, off by default.
When enabled, a resolved structure is not deleted but redrawn at a faded shade. Over time this builds a map of where previous contractions broke on that symbol, under a count cap you control, with oldest-first eviction.
The fade is a separate control: set it to zero and archived structures render identically to live ones.
A structure that expires at the apex without resolving is not archived, since there is no event in it to keep.
Archived structures carry no label. Their colour and position already carry the direction.
🔶 7 — INFORMATION PANEL
📋 Reports the nearest live structure, or the nearest recently resolved one if none is live.
Layer — Large / Mid / Small. Coloured by resolution direction once broken.
Upper — the exact upper boundary price, ready to place an order against.
Lower — the same for the lower boundary.
Width (ATR) — current width in ATR units. After a break it becomes "Width at break", measured against the ATR recorded at that same bar, so the number stays fixed for a frozen structure and does not drift as volatility changes.
Projected apex — bars until the two boundaries intersect. After a break it becomes "Since break".
Status — Active · Break pending at close · Broken up · Broken down.
⚠️ The status row alone reads the live bar. It can move between pending and active within a single bar as price crosses back and forth. That is a live readout, labelled as such, not a repaint. The drawn geometry does not move.
🔶 8 — BREAK TAGS
Two optional descriptive measurements, shown on the break bar when they occur.
📊 V — break-bar volume exceeded its moving average by the configured multiplier.
📐 E — break-bar true range exceeded ATR by the configured multiplier.
These describe what happened on that bar. They are not quality scores or confidence grades, and they do not filter anything.
🔶 9 — ALERTS
🔔 Pattern formed — a new structure is admitted.
🔔 Break up — upper boundary broken.
🔔 Break down — lower boundary broken.
🔔 Any resolution — either break.
All alerts fire once per bar close, never before.
🔶 10 — SETTINGS REFERENCE
The icons below match the group headers you see inside the indicator's settings window.
🔸 ⚙️ SETUP
Language — default English. Switching to Arabic changes the entire interface.
Log scale — default Off. Must be matched to your chart's scale manually. See section 12.
ATR length — default 14. Feeds the E tag, the demote distance, and the panel width reading.
🔸 📏 LAYERS
Large L — default On, length 21.
Mid M — default On, length 14.
Small S — default On, length 5.
🔸 🔎 DETECTION
Close-only pivots — default Off. Off anchors on highs and lows; On anchors on closes.
Break source — default Close. One switch governing three things at once: interior containment, forward containment, and break detection.
Max span (× length) — default 5. Ceiling on bars between a boundary's two anchors.
Min side overlap — default 0. Required shared bar range between the two boundaries.
Min bars to apex — default 2.
Max bars to apex — default 200.
🔸 🎨 APPEARANCE
Fill triangle — default On, transparency 78.
Line width 2, line transparency 15.
Colours — grey while forming, green for an upward break, red for a downward break.
🔸 🗂️ HISTORY AND LIFETIME
Keep as current (bars) — default 30. After this the structure is demoted to the archive, or deleted if the archive is off.
Demote beyond (ATR) — default 8.0. Measured against current ATR by design: the question is how far price is now, in today's volatility.
Show historical patterns — default Off.
Historical kept — default 12, a cap across all three layers combined.
Historical fade — default 30, added on top of line and fill transparency.
🔸 🏷️ LABELS
Show labels — default On, 2 kept.
Volume tag V — default On. MA 20, multiplier 1.5.
Range expansion E — default On. Multiplier 1.4.
🔸 📋 PANEL
Show panel — default On, positioned top right.
🔶 11 — ON ACCURACY
Two different things get called accuracy. Only one of them is claimed here.
✅ Structural accuracy is exact and independently verifiable. Every anchor is a confirmed pivot, never a guess. Every line satisfies its containment test at the bar it is drawn. Geometry closes at formation and is never recalculated. A break is settled by a single unambiguous test on a closed bar. Nothing is repainted, backfilled, or silently adjusted. Replay any chart and trace any element yourself.
❌ Predictive accuracy is not claimed. You will find no win rate here, no signal grade, and no price target.
The indicator tells you precisely where the boundaries are and precisely when they were crossed. What that is worth in your strategy, on your instrument, at your timeframe, is yours to determine and yours to risk.
🔶 12 — BEHAVIOUR TO UNDERSTAND BEFORE TRUSTING THE CHART
⚠️ Why a structure appears late. A pivot is not a pivot until its full confirmation bars have passed. That delay is the price of the promise in the first line: nothing appears before its time, and nothing that appears is taken back afterward.
⚠️ A wick may cross a line. By default, anchors sit on highs and lows while containment and break detection are tested on the close. A wick can pierce a boundary while the structure remains valid. Set Break source = Wick for a shape no wick ever touches, and expect noticeably fewer structures from that considerably stricter test.
⚠️ Log scale is manual. Pine cannot read your chart's scale setting. If your chart is logarithmic, enable Log scale. When the two disagree, the computed break level diverges from the drawn line: negligible on narrow structures, material on wide ones. The tell is visible on the chart itself, as the left fill edge separates from the boundary at the second anchor.
⚠️ Where anchors come from. Each boundary is built from the two most recent pivots on its own side. A line that would skip an intermediate pivot is outside the detection scope.
⚠️ Density. Three layers with a full archive weighs the chart down. Disable the layers you do not need, and use the archive cap and the fade to control it.
═════════════════════════════════════════════════════════════
⚠️ DISCLAIMER
═════════════════════════════════════════════════════════════
This indicator is for educational and analytical purposes only. It does not constitute financial, investment, or trading advice. Use it alongside your own strategy and risk management. Neither TradingView nor the developer is responsible for any financial decisions or losses.
═════════════════════════════════════════════════════════════
🔻 المثلثات المتقاربة — Converging Triangles 🔺
ما يظهر على الشارت لا يتحرك ولا ينزاح ولا يُسحب لاحقاً. لا إعادة رسم.
يبحث المؤشر عن حالة واحدة لا عن شكل: أن يجتمع خط مقاومة هابط مع خط دعم صاعد في الوقت نفسه، وأن يضيق ما بينهما شمعةً بعد شمعة. فإذا اجتمعا واستوفى كلٌّ منهما شروطه، رُسم النطاق وتجمّدت هندسته في اللحظة نفسها، فلا تتغيّر بعدها مهما فعل السعر.
🔶 أول ما ينبغي أن تعرفه
لأنه لا يبحث عن شكل يطابقه بقالب جاهز، فهو لا يفرض عليك تسمية. هو يعطيك حدّين بسعرين محدّدين، ويخبرك متى عُبر أحدهما بالضبط. أما ما تفعله بذلك فأنت وحدك.
الحد العلوي — مرسي على آخر قمتين مؤكَّدتين، هابط.
الحد السفلي — مرسي على آخر قاعين مؤكَّدين، صاعد.
ولأن الشرط على إشارة كل ميل، فالعائلة المكتشَفة تشمل المثلث المتماثل والنسخ شبه المستوية من الصاعد والهابط. أما الوتدان، حيث يميل الحدّان في اتجاه واحد، فمستبعدان بالبناء ولا يظهران أبداً.
ويعمل على ثلاثة مقاييس في وقت واحد، لكل مقياس نموذجه المستقل.
🔶 متى يُرسم النطاق؟
لا يُرسم شيء ما لم يستوفِ كل حد شروطه الخمسة، ثم يجتمع الحدّان معاً على ثلاثة شروط أخرى. وأي شرط يسقط يُسقط النموذج كله.
🔸 الحد الواحد — خمسة شروط
أن يقوم على محورين مؤكَّدين. والمحور لا يُعدّ مؤكَّداً إلا بعد أن تمرّ عليه شموع التأكيد كاملة على الجانبين.
أن تكون المسافة بين المحورين ثلاث شموع فأكثر، ولا تتجاوز الطول مضروباً في «أقصى مسافة».
أن يكون العلوي هابطاً والسفلي صاعداً.
ألا تخرق أي شمعة الخط في الفترة الواقعة بين المحورين.
ألا تخرقه أي شمعة من المحور الثاني إلى اللحظة الحالية.
🔸 الحدّان معاً — ثلاثة شروط
أن يكون كلاهما سليماً لم يُكسر.
أن يتعايشا على فترة زمنية مشتركة. وهذا الشرط يمنع أن يُرسم خط في منطقة لا محاور له فيها أصلاً.
أن يقع تقاطعهما المتوقَّع ضمن المدى الذي تحدّده بين «أدنى مسافة للرأس» و«أقصاها».
🔒 وبعد القبول تُغلق الهندسة نهائياً: المحاور ثابتة والميلان ثابتان، ولا شيء يُعاد حسابه.
🔶 كيف تقرأ ما تراه
لكل حد مقطعان، والفرق بينهما مقصود لا زخرفي:
المقطع الصلب يمتد بين محوري ذلك الحد، وهو ما تحقّق فعلاً واحتواه السوق.
المقطع المنقّط يمتد من المحور الأخير إلى الشمعة الحالية، وهو استقراء لا أكثر.
فأنت ترى في كل لحظة أين ينتهي المؤكَّد ويبدأ المتوقَّع.
وتربط بين الحدّين تعبئة واحدة تجعلهما كياناً واحداً لا خطّين منفصلين. وقد أُخذت أركانها من محورَي البداية الفعليين، ولذلك جاءت الحافة اليسرى مائلة يمتلئ عندها رأس الشكل، لا مقطوعة عمودياً.
🔸 واللون يحمل الحالة وحدها
⚪ رمادي محايد ما دام النطاق حيّاً. فلا اتجاه يُدّعى قبل أن يُحسم.
🟢 أخضر إذا حُسم بالخروج من الأعلى. الخطوط والتعبئة معاً.
🔴 أحمر إذا حُسم بالخروج من الأسفل. الخطوط والتعبئة معاً.
فالنطاق يبقى محايداً طوال حياته، ولا يُعلن الاتجاه إلا بعد أن تُغلق الشمعة خارج أحد الحدّين.
🔶 متى يُعدّ النطاق مكسوراً
عند إغلاق كل شمعة يُقاس السعر على الحدّين معاً.
فإن خرج من أحدهما حُسم النطاق في اتجاهه.
وقد تأتي شمعة عنيفة تخرج من الحدّين كليهما، وعندها يُحسم للجهة التي ابتعد عنها السعر أكثر.
ثم يُعاد رسم الشكل بلون الخروج ويُثبَّت عند شمعته، فلا يمتد بعدها إلى الأمام.
🏷️ وتوضع عندها تسمية تحمل حرف المقياس (L أو M أو S) ووسوم الشمعة إن تحقّقت.
🔶 لماذا ثلاثة مقاييس
📏 كبير 21 · متوسط 14 · صغير 5
لأن الانضغاط ليس حدثاً واحداً. فقد يضيق نطاق كبير بينما يضيق داخله نطاق صغير، ويخرج كلٌّ منهما في اتجاه مضاد للآخر. وهذا في نفسه معلومة تستحق أن تُرى، لا تعارضاً يجب إخفاؤه.
ولذلك تعمل الطبقات الثلاث باستقلال تام، ويحمل كل خروج حرف مقياسه فلا يختلط عليك من أين جاء. وتستطيع إطفاء أي طبقة لا تحتاجها.
🔶 النماذج السابقة
🗂️ خيار مطفأ افتراضياً.
إن شغّلته، لم يُمحَ النموذج بعد حسمه، بل بقي مرسوماً بدرجة خافتة. وبمرور الوقت تتكوّن لديك خريطة لمواضع الخروج السابقة على الرمز نفسه، بسقف عددي تحدّده أنت، ويُخلى الأقدم فالأقدم.
ودرجة الخفوت مستقلة بيدك: إن أنزلتها إلى الصفر صارت النماذج القديمة كالحيّة تماماً.
والنموذج الذي انتهى عمره دون خروج لا يدخل الأرشيف، إذ لا حدث فيه يُحفظ.
والنماذج المؤرشفة بلا تسميات، فلونها وموضعها يكفيان.
🔶 لوحة المعلومات
📋 تعرض اللوحة أقرب نطاق حيّ إليك، فإن لم يوجد عرضت أقرب نطاق حُسم حديثاً.
الطبقة — كبير أو متوسط أو صغير، وتُلوَّن باتجاه الخروج بعد حسمه.
الحد العلوي — سعره بالضبط، جاهزاً لوضع أمر عليه.
الحد السفلي — كذلك.
العرض بوحدات ATR — وبعد الخروج يصير «العرض عند الكسر»، محسوباً بـ ATR المسجّل في تلك الشمعة نفسها. فالرقم يبقى ثابتاً لنموذج مجمّد ولا ينزاح بتغيّر التقلّب.
الرأس المتوقَّع — كم شمعة تفصل عن تقاطع الحدّين. وبعد الخروج يصير «منذ الكسر».
الحالة — نشط، أو كسر معلّق يثبت بالإغلاق، أو كُسر لأعلى، أو كُسر لأسفل.
⚠️ وسطر الحالة وحده يقرأ الشمعة الجارية، فقد ينتقل داخلها بين «معلّق» و«نشط» كلما دخل السعر وخرج. وهذه قراءة لحظية مكتوب فيها صراحة أنها تثبت بالإغلاق، وليست إعادة رسم: الشكل المرسوم لا يتحرك.
🔶 الوسمان V و E
يظهران على شمعة الخروج إن تحقّقا:
📊 V — تجاوز حجم الشمعة متوسطه بالمضاعف الذي ضبطته.
📐 E — تجاوز مداها الحقيقي مؤشر ATR بالمضاعف الذي ضبطته.
وهما وصفٌ لما جرى في تلك الشمعة، لا حكم على جودة الخروج ولا درجة ثقة فيه. ولا يمنعان ظهور أي نموذج.
🔶 التنبيهات
🔔 تكوّن نموذج
🔔 كسر لأعلى
🔔 كسر لأسفل
🔔 أي حل — يجمع الاثنين
وجميعها تشتعل مرة واحدة عند إغلاق الشمعة لا قبله.
🔶 الإعدادات
الرموز أدناه هي نفسها التي تراها على رؤوس المجموعات داخل نافذة إعدادات المؤشر.
🔸 ⚙️ الإعداد
اللغة — إنجليزي افتراضاً، وتبديلها إلى العربية يغيّر الواجهة كلها.
المقياس اللوغاريتمي — مطفأ افتراضاً. اضبطه ليطابق شارتك، وانظر آخر قسم.
طول ATR — 14. يخدم وسم E ومسافة إخلاء النماذج وقراءة العرض في اللوحة.
🔸 📏 الطبقات
كبير L — مفعّل، بطول 21.
متوسط M — مفعّل، بطول 14.
صغير S — مفعّل، بطول 5.
🔸 🔎 الكشف
محاور على الإغلاق فقط — مطفأ. فتُؤخذ المحاور من القمم والقيعان. وبتشغيله تُؤخذ من الإغلاقات وحدها.
مصدر الكسر — Close. وهو مفتاح واحد يحكم ثلاثة أشياء دفعة واحدة: الاحتواء بين المحورين، والاحتواء بعدهما، وكشف الخروج.
أقصى مسافة مضروبة في الطول — 5. سقف ما بين محورَي الحد الواحد.
أدنى تداخل بين الضلعين — 0. الفترة المشتركة المطلوبة بين الحدّين.
أدنى مسافة للرأس — 2.
أقصى مسافة للرأس — 200.
🔸 🎨 المظهر
تعبئة المثلث — مفعّلة، بشفافية 78.
عرض الخط 2، وشفافيته 15.
الألوان — رمادي للتكوّن، أخضر للخروج علواً، أحمر للخروج هبوطاً.
🔸 🗂️ التاريخ والعمر
إبقاؤه كالحالي — 30 شمعة، ثم يُنزَّل إلى الأرشيف أو يُحذف إن كان الأرشيف مطفأً.
التنزيل عند البُعد — 8 من ATR. ويُقاس بـ ATR الحالي عن قصد، لأن السؤال هنا عن بُعد السعر الآن بمقياس تقلّب اليوم لا تقلّب الأمس.
إظهار النماذج السابقة — مطفأ.
عدد النماذج المحفوظة — 12، وهو سقف على الطبقات الثلاث مجتمعة.
خفوت التاريخية — 30، تُضاف فوق شفافية الخط والتعبئة.
🔸 🏷️ التسميات
إظهار التسميات — مفعّل، ويُحفظ منها 2.
وسم الحجم V — مفعّل، بمتوسط 20 ومضاعف 1.5.
وسم التمدد E — مفعّل، بمضاعف 1.4.
🔸 📋 اللوحة
مفعّلة، وموضعها أعلى اليمين.
🔶 الدقة: أي دقة؟
تُطلق كلمة «الدقة» على معنيين مختلفين، ولا يُدّعى هنا إلا واحد منهما.
✅ فأما دقة البناء فمضبوطة، وتستطيع التحقق منها بنفسك دون أن تصدّقني: كل محور مؤكَّد لا مظنون، وكل خط يستوفي شرط احتوائه عند الشمعة التي رُسم فيها، والهندسة تُغلق عند التكوّن فلا يُعاد حسابها، والخروج يُحسم باختبار واحد على شمعة مغلقة. لا شيء يُعاد رسمه، ولا يُملأ بأثر رجعي، ولا يُعدَّل في الخفاء. أعد تشغيل أي شارت وتتبّع أي عنصر.
❌ وأما الدقة التنبؤية فغير مُدّعاة، ولن تجد هنا نسبة نجاح ولا درجة إشارة ولا هدفاً سعرياً.
المؤشر يخبرك أين الحدّان ومتى عُبرا، بدقة. أما قيمة ذلك في استراتيجيتك أنت، على أداتك أنت، وفي إطارك الزمني أنت، فتقديرك ومسؤوليتك.
🔶 أمور تعرفها قبل أن تعتمد عليه
⚠️ لماذا يظهر النموذج متأخراً. لأن المحور لا يُعدّ محوراً حتى تمرّ شموع تأكيده كاملة. وهذا التأخّر هو ثمن ما وعدناك به في السطر الأول: لا شيء يظهر قبل أوانه، ولا شيء ظهر يُسحب منك بعد ذلك.
⚠️ قد تجد ذيلاً عابراً للخط. فالمحاور افتراضياً على القمم والقيعان، بينما يُقاس الاحتواء والخروج على الإغلاق. فيجوز أن يخترق ذيلٌ حداً والنموذج ما زال سليماً. وإن أردت شكلاً لا يمسّه ذيل فاضبط مصدر الكسر على Wick، واعلم أنه اختبار أصرم بكثير وأن النماذج ستقلّ بوضوح.
⚠️ المقياس اللوغاريتمي يدوي. فـ Pine لا يستطيع قراءة إعداد شارتك. وإذا كان شارتك لوغاريتمياً فشغّل الخيار. وعند اختلاف الاثنين ينحرف مستوى الخروج المحسوب عن الخط الذي تراه: انحرافاً مهملاً على النماذج الضيّقة، ومادّياً على الواسعة. وعلامته أمام عينك مباشرة، إذ تنفصل حافة التعبئة اليسرى عن الحد عند المحور الثاني.
⚠️ من أين تُؤخذ المحاور. كل حد يُبنى من آخر محورين على جهته. فالخط الذي يتجاوز محوراً وسيطاً خارج عن نطاق الكشف.
⚠️ الكثافة. ثلاث طبقات مع أرشيف ممتلئ تُثقل الشارت. أطفئ ما لا تحتاجه، واستعن بسقف الأرشيف ودرجة الخفوت.
═════════════════════════════════════════════════════════════
⚠️ إخلاء المسؤولية
═════════════════════════════════════════════════════════════
هذا المؤشر لأغراض تعليمية وتحليلية فقط. لا يُمثل نصيحة مالية أو استثمارية أو تداولية. استخدمه بالتزامن مع استراتيجيتك الخاصة وإدارة المخاطر. لا يتحمل TradingView ولا المطور مسؤولية أي قرارات مالية أو خسائر.
═════════════════════════════════════════════════════════════ Penunjuk

Chaufer-Engine ProChaufer-Engine Pro — ORB/ARB · EMA · VWAP · Liquidity
Four independent intraday signal engines in one overlay, sharing a single confluence core (VWAP / Volume / RSI / ADX / ATR) so nothing is calculated twice. Every engine can be toggled on/off, and all signals confirm on closed bars (non-repainting).
The four engines
① ORB/ARB — Opening-Range and Afternoon-Range breakouts with 2-candle confirmation, graded A/B/C by confluence, plus rejection reversions back inside the range edges.
② EMA Pullback + Continuation — In an established 9/20/50 trend, waits for a pullback into the fast EMA then a break-of-structure to fire a continuation entry.
③ VWAP Reversal — Touch-and-reverse off VWAP with same-colour confirmation, an advancing reference candle, and a cooldown so you don't get back-to-back same-direction signals.
④ Liquidity Sweeps — Wick-through-then-close-back stop-runs of key levels (PDH/PDL, PDC, PMH/PML, OR, ARB, weekly, equal highs/lows). A single ⚡ label names the swept level; a sweep above = bearish hint, below = bullish hint.
Plus a Key Levels overlay (independent of the engines): PDH/PDL, PMH/PML, session Open, Weekly H/L (previous week on Monday) and OR/ARB — each drawn as a labelled line for the current session, or the previous active day on nights/weekends/holidays.
How to use
Add to an intraday chart — best on 1m–5m so the opening range has enough bars.
Confirm the Session and Timezone inputs match your market (default 0930–1600, America/New_York). Enable Extended Hours on the chart if you want premarket (PMH/PML) levels.
In Master Toggles, turn on only the engines you trade. ④ Liquidity is off by default.
Tune the Confluence Core (VWAP/Vol/RSI/ADX). Use "Require full confluence" and "Suppress grade-C" to keep only the highest-quality breakouts.
Read signals:
▲/▼ A/B/C = ORB/ARB breakout (letter = confluence grade; hover for the reason).
Rev ↑/↓ = range-edge rejection reversion.
Circles = EMA continuation. V triangles = VWAP reversal. ⚡ = liquidity sweep.
Watch the status table (top-right) for engine states and current bias.
Set alerts from any of the built-in alertconditions (one per signal type).
Notes
Signals are non-repainting (confirmed on bar close); the OR box only extends for the first 2 hours (configurable), then freezes.
This is an analysis tool, not financial advice — combine with your own risk management.
Penunjuk

DATEOFBIRTH Strategy)# Date of Birth Strategy — Annual High & Low Levels
## Overview
The **Date of Birth Strategy** is an experimental market-analysis tool based on the concept of identifying and tracking the High and Low of a market's historically significant "Date of Birth."
For example, if an index or instrument has a defined inception/date-of-birth date, this script identifies the High and Low formed on that particular calendar date and plots those levels across subsequent years.
The objective is to provide a **historical reference framework** that traders can use alongside conventional technical analysis, price action, market structure, and risk-management techniques.
## How It Works
The script:
* Uses a user-defined **Date of Birth**.
* Identifies the corresponding calendar day for each year.
* Captures the **High and Low** of that day's trading session.
* Plots the levels as horizontal reference lines.
* Extends the levels so traders can observe how price reacts around historically derived levels.
* Can be used for historical analysis as well as monitoring future occurrences of the selected calendar date.
### Example
If the selected Date of Birth is **3 November**, the script attempts to identify the High and Low of 3 November for each available year.
These historical levels can then be studied for:
* Support and resistance reactions
* Breakouts and breakdowns
* Price rejection
* Market structure
* Confluence with technical indicators
* Historical price behavior around the annual date
## Important Considerations
This indicator is intended as a **research and educational tool**. Historical price levels do not necessarily have predictive power, and the appearance of a reaction around a DOB level should not be interpreted as proof of a causal relationship.
The results may vary depending on:
* The selected symbol
* Exchange trading calendar
* Historical data availability
* Timeframe
* Session settings
* Corporate actions or contract changes
* Data-feed differences between brokers and exchanges
Users should independently verify important historical levels against reliable market data.
## Suggested Usage
For better analysis, consider combining the DOB levels with established methods such as:
* Price action
* Market structure
* Volume analysis
* Support and resistance
* Moving averages
* Volatility analysis
* Trend analysis
* Risk/reward assessment
Do not use the DOB levels as a standalone signal for entering or exiting a trade.
## Disclaimer
**Educational and informational purposes only.**
This script is provided for research, educational, and analytical purposes and does **not constitute investment advice, financial advice, trading advice, or a recommendation to buy or sell any security, derivative, cryptocurrency, commodity, index, or other financial instrument.
Past performance or historical market behavior does not guarantee or imply future results. No representation is made that the levels, signals, or observations generated by this script will accurately predict future market movements.
Trading and investing involve substantial risk, including the possible loss of capital. Users are solely responsible for their own trading and investment decisions.
Always conduct your own research and use appropriate risk-management practices. If required, consult a qualified financial professional before making investment decisions.
## Transparency
This script is based on a **calendar-date / historical-level methodology** and should not be interpreted as a guaranteed forecasting system.
The author makes no guarantee regarding the accuracy, completeness, reliability, or future performance of the levels or observations generated by the script.
**Use at your own risk.**
---
**Tags:** `Date of Birth` `DOB Strategy` `Annual Levels` `Support Resistance` `Technical Analysis` `Market Analysis` `Trading Strategy` `Price Action` `Historical Levels`
Penunjuk

Penunjuk

CISD Fractal HTF BY HDSXN This script is a highly specialized indicator designed around the **ICT (Inner Circle Trader)** concept of **CISD (Change in State of Delivery)**. Its main purpose is to identify and track structural shifts in market delivery across both your current timeframe and Higher Timeframes (HTF).
Here is a detailed breakdown of what this indicator does and its main features:
**1. Core Concept: CISD (Change in State of Delivery)**
In ICT theory, a "State of Delivery" refers to consecutive candles moving in the same direction (e.g., a series of down candles meaning the algorithm is delivering sell-side price). A **CISD** occurs when the market shifts this state:
* **Bullish CISD:** Occurs when price closes *above the opening price* of the last bearish delivery sequence. It signals that the market has shifted from selling to buying. The script plots a Blue line at this key level.
* **Bearish CISD:** Occurs when price closes *below the opening price* of the last bullish delivery sequence. It signals a shift from buying to selling. The script plots a Red line at this level.
These lines act as highly sensitive institutional support and resistance levels.
**2. Fractal Higher Timeframe (HTF) System**
Instead of just looking at the chart you have open, the indicator runs the CISD logic on multiple timeframes simultaneously:
* **Fractal Mode (Automatic):** It dynamically calculates the appropriate higher timeframes based on the chart you are viewing. For example, if you are on a 1-minute chart, it might look for 15m CISDs; if you are on a 5-minute chart, it looks for 1H and Daily CISDs.
* **Fixed Modes:** You can override the automatic system and force the indicator to *only* look for CISDs on the **1 Hour**, **4 Hour**, or **1H + 4H** timeframes, regardless of what chart you are looking at.
* **Current Timeframe:** It also tracks the CISDs of your current chart (Level 0) so you can align micro structure with macro structure.
**3. Invalidation and Chart Cleanliness (Mitigation)**
To keep your chart clean and relevant, the script uses strict invalidation rules:
* When a CISD is formed, the script remembers the absolute extreme of that move (the lowest low for a bullish CISD, or the highest high for a bearish CISD).
* **Automatic Deletion:** If price comes back and breaks that extreme (sweeps the low/high that created the CISD), the setup is considered **invalidated**. The indicator will instantly delete the line and label from your chart, leaving only the active, unviolated CISD levels.
**4. Visual Customization & Labels**
* **Labels:** The indicator automatically tags the lines with labels like `CISD ▲ 1H` or `CISD ▼ 4H` so you know exactly which timeframe caused the shift in delivery.
* **Styling:** You can fully customize the thickness of the lines, change them to Solid, Dashed, or Dotted, and adjust the Bullish/Bearish colors for up to 3 different levels (Current TF, HTF Level 1, and HTF Level 2).
**In summary:** This is an algorithmic structure tracker. It eliminates the need to constantly switch between timeframes to find where the market shifted its state of delivery. It plots macro CISD levels on your micro charts automatically, and removes them when they are no longer valid, keeping you aligned with the Higher Timeframe institutional order flow. Penunjuk

SB/ISB FVG/IFVGThis script is a specialized indicator designed for **ICT (Inner Circle Trader)** and **Smart Money Concepts (SMC)**. Its primary focus is on automatically identifying, drawing, and managing **Fair Value Gaps (FVG)** and **Suspension Blocks (SB)**, as well as their **Inverted** counterparts.
Here is a detailed breakdown of what this indicator does and its main features:
**1. FVG & IFVG (Fair Value Gaps & Inversions)**
* **FVG (Fair Value Gap):** The script scans for traditional 3-bar imbalances. If it finds a Bullish FVG (default teal) or a Bearish FVG (default red), it draws a box projecting the zone forward.
* **IFVG (Inverted Fair Value Gap):** In ICT theory, when a Fair Value Gap fails to hold the price and gets decisively broken (price closes through it), it changes polarity. This script automatically detects when an FVG is violated, deletes the old FVG box, and creates a new **IFVG** box (default orange). A violated support FVG becomes a resistance IFVG, and vice versa.
**2. SB & ISB (Suspension Blocks & Inversions)**
* **SB (Suspension Block):** This is a specific price action pattern where a candle's body is completely "suspended" or isolated by gaps from the preceding and succeeding candles. The script calculates the tolerance and draws a box around this suspended body, projecting it as a zone of support or resistance.
* **Mean Threshold (Middle Line):** For every Suspension Block, the indicator automatically draws a line directly through the middle (50% level) of the block, which is a highly sensitive algorithmic level in SMC.
* **ISB (Inverted Suspension Block):** Just like the FVGs, if a Suspension Block is violated (price closes completely through it), the indicator flips it into an **ISB** (default orange). The old label changes from "+ suspension" to "+ISB", indicating the zone has flipped its polarity.
**3. Dynamic Chart Management (Mitigation)**
To prevent your chart from looking like a messy coloring book, the script has strict dynamic management rules:
* **Zone Deletion:** Once a zone (FVG, IFVG, SB, or ISB) is fully mitigated or invalidated by price action according to the script's rules, it stops drawing the box.
* **History Limits:** You can define exactly how many active FVGs, IFVGs, SBs, and ISBs you want to keep on the screen at a time (e.g., maximum 5 FVGs and 3 ISBs). Older zones are automatically deleted as new ones form.
**4. Customization & Visuals**
* **Labels:** Automatically tags the blocks on your chart (e.g., "+ suspension" or "-ISB") so you know exactly what zone you are looking at.
* **Tolerances:** You can adjust the "Tolerance %" for how strict the script should be when identifying the gaps for Suspension Blocks.
* **Aesthetics:** Full control over colors, box transparencies, and the style of the middle line (Solid, Dashed, Dotted).
**In summary:** This is a dynamic supply/demand and imbalance tracker. Instead of manually drawing FVGs and Order Blocks and adjusting them when they break, this indicator automates the entire lifecycle of these zones—drawing them when they form, inverting them when they fail, and deleting them when they are no longer relevant to the current price action. Penunjuk

TRUE OPEN AND OPENING PRICE BY HDSXN This script is a comprehensive indicator designed for **ICT (Inner Circle Trader)** and **Smart Money Concepts (SMC)** traders. Its primary focus is on automatically identifying, drawing, and tracking **Opening Prices (OP)** and algorithmic **True Opens (TO)** across various timeframes and specific macro windows.
Here is a detailed breakdown of what this indicator does and its main features:
**1. Custom Opening Prices (Time Slots)**
The first module allows you to highlight specific intraday opening times.
* **Customizable Time Slots:** It features 4 independent slots where you can define a start and end time (e.g., 08:30 AM for the critical economic news open, or 09:30 AM for the NY Equities open).
* **Line Projection:** It grabs the exact opening price at that minute and projects a horizontal line across your chart until the designated end time, acting as a crucial intraday level (support/resistance or accumulation/manipulation reference).
**2. True Open (TO) Module**
Standard charts often plot the "Daily" or "Weekly" open at midnight based on the broker's timezone. This module recalculates the **"True Open"** based on real market mechanics (like the Sunday 6:00 PM EST futures open) and ICT algorithmic cycles:
* **Macro Timeframes:** Plots the True Year, True Quarter, True Month, True Week, and True Day opens using specific algorithmic rules (e.g., calculating the monthly open based on the 2nd Sunday of the month at 6:00 PM EST).
* **Session Opens (Killzones):** Automatically plots the opening prices for key trading sessions: Asia (19:30), London (01:30), NY AM (07:30), and NY PM (13:30).
* **90-Minute Cycles:** It tracks and plots the highly specific ICT 90-minute algorithmic cycles, triggering at precise macro minutes (e.g., xx:23 and xx:53).
**3. Advanced Chart Management (Visibility & History)**
To prevent the chart from becoming cluttered with dozens of lines, the script includes smart visibility rules:
* **Timeframe Boundaries:** You can set rules so that Yearly and Monthly opens only show on higher timeframes (like the 4H or Daily), while Session and 90-minute opens only appear on the 1m to 15m charts.
* **History Control:** You can choose exactly how many past "True Opens" to keep on the screen (e.g., keeping only the current active day's open, or saving the last 3 days for backtesting).
* **Auto-Styling:** Lines can automatically change from a dotted style (when the period is active) to a solid style (when the period has ended and becomes historical data).
**4. Real-Time Price Tracking Dashboard (Table)**
It features a built-in HUD (Heads-Up Display) table that sits in the corner of your screen.
* This table dynamically tracks the current price in relation to the True Opens.
* It tells you instantly if the current price is **"Above"** (highlighted in blue) or **"Below"** (highlighted in red) the Daily, Weekly, Monthly, Session, or 90-minute open. This is extremely useful for quickly determining if you are in a Premium (above the open) or Discount (below the open) condition for the day or week.
**In summary:** It is an all-in-one institutional time and price tracker. Instead of manually drawing horizontal lines at 8:30 AM or midnight EST every single day, this script automates the process and provides a dashboard to tell you exactly where the current price sits relative to these key algorithmic opening prices. Penunjuk
