Indicator

Indicator

Strategy

Auto Swing RulerAuto Swing Ruler is a visual measurement tool that automatically identifies confirmed price swings and measures each completed leg directly on the chart.
Its purpose is to replace repeated manual use of the measuring tool by displaying compact information for each swing, including movement size, duration, historical rank, and optional volume participation.
The indicator does not generate buy or sell signals. It is designed to help users compare the structure, speed, and relative importance of price swings.
HOW SWINGS ARE DETECTED
The script uses confirmed pivot highs and pivot lows to construct an alternating swing chain.
A pivot is confirmed only after the number of bars selected in the Pivot strength setting has passed on its right side.
When two consecutive pivots are of the same type, the script retains the more extreme value:
- For consecutive pivot highs, the higher pivot is retained.
- For consecutive pivot lows, the lower pivot is retained.
This prevents the swing chain from creating unnecessary same-direction segments.
Higher Pivot strength values identify broader and cleaner swings, while lower values produce more frequent and shorter swing legs.
LEG MEASUREMENTS
Each confirmed swing leg can display the following information:
- Percentage movement or ATR multiples.
- Duration in bars.
- Historical percentile rank.
- Relative volume during the leg.
Example:
+12.4% / 14b / P85 / V1.3x
This means:
- The leg advanced by 12.4%.
- The movement lasted 14 bars.
- Its absolute size ranked at approximately the 85th percentile of the stored completed-leg history.
- Average volume during the leg was approximately 1.3 times the current 50-bar average volume.
Users can choose between two measurement modes:
1. Percent
Displays the percentage change between the beginning and end of the swing leg.
2. ATR multiples
Displays the absolute price movement divided by ATR(14), allowing swing size to be viewed relative to recent volatility.
HISTORICAL PERCENTILE
The script stores the absolute percentage size of up to the most recent 100 finalized legs.
Before adding a newly completed leg to the history, the indicator compares its size with the existing stored legs and calculates its percentile rank.
A reading such as P85 means that the leg was larger than approximately 85% of the stored comparison legs.
The percentile is a descriptive ranking of historical swing size. It is not a probability, success rate, or prediction of future price movement.
VOLUME RATIO
When enabled, the indicator calculates the average volume recorded during the completed leg and compares it with the current 50-bar average volume.
For example:
- V1.5x means average volume during the leg was approximately 1.5 times the reference average.
- V0.8x means average volume during the leg was below the reference average.
The volume field is skipped when usable volume data is unavailable. Volume comparisons may also be less meaningful on markets that provide synthetic, tick-based, or incomplete volume.
PROVISIONAL AND FINALIZED LEGS
A newly detected leg remains provisional until the next opposite pivot is confirmed.
Provisional measurements are prefixed with the ~ symbol because the current same-direction extreme may still be replaced by a more extreme pivot.
For example:
~+6.8% / 9b
When the next opposite pivot is confirmed, the previous leg becomes finalized. Its endpoint, line, and measurement label are then fixed during normal chart operation.
LIVE LEG
The optional dashed live line connects the latest confirmed pivot to the current closing price.
It provides a real-time visual estimate of the movement currently developing after the latest confirmed pivot.
The live leg is not a confirmed swing. Its size, direction, endpoint, and duration can change while price develops.
An optional state label can display the live percentage movement, bar count, and percentile comparison. This label is disabled by default to keep the chart clean.
VISUAL-DENSITY CONTROLS
The indicator includes several options designed to reduce chart clutter:
- Show or hide all completed-leg labels.
- Show or hide movement size.
- Show or hide bar count.
- Show or hide percentile rank.
- Show or hide volume ratio.
- Show or hide the live leg.
- Show or hide the live state label.
- Select label size.
- Limit the number of completed legs displayed on the chart.
- Adjust swing-line width and style.
- Select separate colors for rising and falling legs.
The Visible completed legs setting limits only the number of drawings shown on the chart. Historical leg measurements used by the percentile calculation are stored separately.
The default display shows movement size and bar count, while percentile rank, volume ratio, and the state label are disabled to maintain a cleaner chart.
ALERTS
The indicator provides alert conditions for:
- A newly confirmed swing high.
- A newly confirmed swing low.
- A finalized leg reaching or exceeding the selected Big leg alert percentile.
The Big leg alert requires at least ten finalized legs in the stored history before it can trigger.
REPAINTING AND CONFIRMATION
Auto Swing Ruler uses confirmed pivots.
Because a pivot requires future bars on its right side, swing points appear with a natural delay equal to the selected Pivot strength.
The current provisional leg may extend or change when a more extreme same-direction pivot is confirmed.
The live leg changes continuously because it connects the latest confirmed pivot to the current market price.
After an opposite pivot confirms and a leg becomes finalized, its stored measurement and drawing are no longer modified during normal chart operation.
Changing the symbol, timeframe, Pivot strength, measurement settings, or available chart history causes the script to recalculate its swing structure.
LIMITATIONS
Pivot-based swing detection is inherently delayed and is not intended to identify turning points at the exact moment they occur.
Lower Pivot strength settings may create many small legs in volatile or sideways markets. Higher settings may omit smaller price movements.
ATR measurements use the ATR value available when the leg is finalized rather than an average ATR calculated across the full leg.
The volume ratio compares the leg's average volume with the 50-bar volume average available when the leg is finalized.
Percentile results depend on the completed legs available in the loaded chart history and should not be treated as universal market statistics.
Auto Swing Ruler is a visual measurement and historical-comparison tool. It does not forecast future price direction, place orders, or provide standalone trading recommendations. Indicator

Trend Age MapTrend Age Map is a visual trend-segmentation and historical-context indicator.
Instead of displaying only the current market direction, the script divides the chart into completed and active uptrend and downtrend segments. Each segment is measured by its duration in bars and its percentage magnitude, allowing the current trend to be viewed in the context of previous trends from the same chart.
HOW IT WORKS
During an uptrend, the script tracks the highest price reached by the active segment. The uptrend ends when the closing price retraces from that extreme by the selected reversal distance.
During a downtrend, the script tracks the lowest price reached by the active segment. The downtrend ends when the closing price rises from that extreme by the selected reversal distance.
When a reversal is confirmed, the completed trend is stored as a historical sample and a new segment begins from the previous trend's extreme.
REVERSAL MODES
1. Adaptive ATR
This is the default mode.
The reversal distance is calculated from ATR on the active chart timeframe. Because each timeframe uses its own bars and volatility, changing from a daily chart to an hourly or minute chart recalculates the trend structure for that timeframe.
Three adaptive sensitivity settings are available:
- Fast: uses 2.0 x ATR and produces more frequent, shorter segments.
- Balanced: uses 3.5 x ATR and provides a middle-ground structure.
- Slow: uses 5.0 x ATR and retains only larger trend movements.
2. Percent
The reversal distance is a fixed percentage of the latest trend extreme.
Because the percentage is independent of timeframe volatility, the same major trend structure may remain visible across several timeframes.
3. ATR
This mode allows the user to select a manual ATR multiplier.
TREND BOXES
Completed uptrends are displayed with teal boxes.
Completed downtrends are displayed with red boxes.
The vertical range of each completed box represents the movement from the segment's starting price to its final extreme. Its horizontal width represents the segment's duration.
The active trend is displayed as a provisional box with a dashed border. This box continues to extend and update until a qualifying reversal is confirmed.
Historical duration and percentage labels are optional and disabled by default to keep lower-timeframe charts clean.
HISTORICAL CONTEXT
The script maintains separate historical samples for completed uptrends and downtrends.
For the active trend, it calculates:
- Current direction.
- Current age in bars.
- Current percentage magnitude.
- Age percentile relative to previous trends in the same direction.
- Magnitude percentile relative to previous trends in the same direction.
- Number of comparable completed trends.
- Effective ATR multiplier when an ATR-based mode is active.
These values are available in the Data Window and are not displayed as an information box on the chart.
The percentile values describe where the current trend ranks within the loaded chart history. They are descriptive comparisons, not probabilities that the trend will continue or reverse.
USER CONTROLS
The script includes controls for:
- Reversal calculation mode.
- Adaptive sensitivity.
- Manual percentage or ATR threshold.
- ATR calculation length.
- Minimum trend duration.
- Reversal confirmation on candle close.
- Historical and current trend-box visibility.
- Optional duration and magnitude labels.
- Maximum number of retained drawings.
- Maximum number of retained statistical samples.
- Box transparency.
- Uptrend and downtrend colors.
LOW-TIMEFRAME HANDLING
Drawings use time-based coordinates so the indicator can operate across long intraday datasets without relying on distant bar-index coordinates.
The number of historical drawings and statistical samples is capped. When a selected limit is exceeded, the oldest retained item is removed. Lower drawing limits may improve chart performance on small timeframes.
ALERTS
Alert conditions are available when:
- A new uptrend segment is confirmed.
- A new downtrend segment is confirmed.
When candle-close confirmation is enabled, these events are confirmed only after the active bar closes.
REPAINTING AND BEHAVIOR
The current trend box is provisional by design. It changes as the active trend extends, forms a new extreme, or eventually reverses.
With "Confirm reversals on candle close" enabled, a trend-direction change is accepted only after the candle closes.
After a reversal is confirmed, the completed trend box is no longer modified during normal chart operation.
Changing the symbol, timeframe, historical dataset, reversal mode, sensitivity, or other calculation settings causes the indicator to recalculate its historical segmentation.
If candle-close confirmation is disabled, the current trend state can change while the realtime candle is forming.
The first trend begins from the first available bar in the loaded dataset, so its starting point should be considered approximate.
LIMITATIONS
Trend segmentation depends on the selected reversal threshold. A faster setting creates more segments and reacts to smaller movements, while a slower setting retains broader movements.
ATR-based calculations adapt to the volatility of the active timeframe, so structures are not expected to remain identical when the timeframe changes.
The displayed history is limited by the selected maximum drawing and sample settings.
Percentile readings depend entirely on the completed trends available in the loaded chart dataset. They do not represent universal market statistics.
Trend Age Map is a descriptive visual-analysis tool. It does not predict when a trend will end, does not place orders, and should not be interpreted as a standalone buy or sell system. Indicator

Asia Session High/Low/Mid + Range Deviations## Asia Session Range and Deviation Levels
This indicator identifies the high, low, and midpoint established during a configurable Asian trading session. After the session closes, the completed range is projected forward as a set of reference levels that can be used to observe support, resistance, breakouts, retests, and intraday price expansion during later sessions.
### How It Works
The script tracks price throughout the selected Asian session and continuously updates:
* Asian session high
* Asian session low
* Range midpoint
* Full-range deviation levels
* Optional half-range deviation levels
Once the Asian session ends, all values are locked and remain unchanged until the next session begins.
Deviation levels are calculated from the completed Asian range:
* 0.5x, 1.5x, and 2.5x range extensions
* 1x, 2x, and 3x range extensions
The same completed range measurement is projected above the session high and below the session low.
### Line Extension Modes
The indicator provides two projection modes:
**End of Trading Day**
Completed levels extend to a configurable trading-day closing time. Their common endpoint provides a visual reference for where the selected trading day ends.
**Next Asian Session**
Completed levels remain active throughout the following sessions and terminate when the next Asian session begins.
### Session and Timezone Controls
Users can configure:
* Asian session start and end times
* Session timezone
* DST-aware timezone presets
* Manual timezone selection
* Trading-day closing hour and minute
* Number of historical sessions retained
Because Pine Script cannot automatically read the chart’s selected timezone, the indicator uses the timezone selected in its settings.
### Display Controls
The appearance of each component can be customized independently, including:
* High and low line colors
* Midpoint visibility and styling
* Full-deviation line styling
* Half-deviation line styling
* Line width and pattern
* Asian session range box
* Number of deviation levels displayed
### Intended Use
The indicator is designed as an intraday reference tool. Traders may use the completed Asian range to study how price responds to established overnight boundaries and measured range expansions during London, New York, or other subsequent sessions.
The script does not generate entries, exits, trade signals, or performance projections. Its levels are descriptive references derived from historical session prices and should be combined with the trader’s own analysis and risk-management process.
Indicator

Support and Resistance with Probability% VolumeRelease Notes — Support and Resistance with Probability% Volume
What this script does
This indicator automatically plots Support and Resistance zones using confirmed pivot highs/lows from two higher-timeframe “banks”. Each level tracks:
Touch count (how many times price has interacted with the level)
Respect probability % (how often touches resulted in a bounce vs a break)
Volume context for each touch (bucketed into Low → Extra High)
It is designed for both scalping and day trading, with one preset selector.
Key Features
1) Scalp / Day Trade presets (2-bank framework)
A single dropdown sets the two internal timeframes:
Scalp mode: Bank A = 1m, Bank B = 5m
Day Trade mode: Bank A = 15m, Bank B = 1H
This gives you a fast bank (near-term structure) and a slower bank (bigger structure) at the same time.
2) Confirmed Pivot Levels (non-repainting level creation)
Levels are created only from confirmed pivot highs/lows, using:
Left Bars / Right Bars to confirm pivots
Levels are added only when the source timeframe prints a new bar
Because pivots are confirmed and request.security() uses lookahead_off, levels are stable (no future leakage).
3) Level merging (de-clutter / reduce duplicates)
When a new pivot prints, the script checks if it’s close to an existing level.
If within Merge Similar Levels (%), it merges into the existing level (averages the price)
Otherwise it creates a new level
This keeps the chart clean and prevents “stacked” levels at nearly the same price.
4) Level management & pruning (Live vs Historical depth)
The script maintains a rolling “active level set” using a time window:
Include Historical Levels OFF → uses Bars Window For Levels
Include Historical Levels ON → uses Historical Bars
Old levels automatically drop off once they exceed the selected window, and the bank is also capped with:
Max Levels (Bank A / Bank B)
So it stays fast and avoids clutter.
5) Touch detection (wick-based, ATR-scaled tolerance)
Touches are detected using a wick-based method (more realistic than close-only tests), with tolerance based on ATR:
Touch Tolerance (ATR x) defines how close price must get to count as a touch
Cooldown Between Touches prevents counting repeated taps too quickly
This works well for volatile symbols where “near misses” matter.
6) Respect Probability % (bounce vs break outcome)
After a touch, the script opens a “pending outcome” and measures whether price:
Bounces by reaching a bounce threshold, or
Breaks by crossing a break threshold
Both thresholds are ATR-scaled:
Bounce Distance (ATR x)
Break Threshold (ATR x)
The result updates counters:
ok = respected (bounce)
bad = failed (break)
Respect % = ok / (ok + bad) × 100
Lookahead windows control how long the script waits for an outcome:
Lookahead Bars for Respect (Bank A / Bank B)
If neither bounce nor break occurs within the lookahead window, the pending state expires without scoring.
7) Wick Zones (largest excursion visualization)
Each level maintains a “worst case” wick excursion seen so far:
Support tracks the largest wick below the level
Resistance tracks the largest wick above the level
These are drawn as zones (boxes), so you can visually see how “thick” the level behaves in practice.
Controls include:
Show Zones
Min Zone Height (ATR x)
Zone fill / border opacity settings
Optional:
Show Center Line (lvl) to draw a clean line through the zone midpoint.
8) Volume bucket breakdown per touch (HMV-style)
Each touch is classified into a volume “bucket” using Z-score:
Uses Volume MA and Volume StDev
Categorizes touches into: Low / Normal / Medium / High / Extra High
Counts how many touches occurred in each bucket
You can choose what to display with:
Show Low / Normal / Medium / High / Extra High
Show Volume Breakdown in Labels
This lets you quickly spot whether a level is being tested mostly on heavy volume (more meaningful) or low volume (often less meaningful).
9) Clean chart rendering + label controls
The indicator uses object “pools” (lines/labels/boxes) to stay efficient.
You can control appearance with:
Per-bank colors + line widths
Label on/off
Label background opacity + text opacity
Back-extend (how far zones/lines extend left)
Interpreting the labels
Each plotted level label displays:
Sup. / Res.
Bank timeframe (e.g., 1m, 5m, 15m, 1H)
Touch count
Resp % (respect probability)
Optional volume bucket counts for touches
Example:
Sup. (5m) | Touch: 6 | Resp: 83% | Vol M:3 H:2 XH:1
How to Use — Support and Resistance with Probability% Volume
1) Pick your mode first (Scalp vs Day Trade)
Use Preset Mode to set the two timeframe banks:
Scalp = Bank A 1m (micro structure) + Bank B 5m (local structure)
Day Trade = Bank A 15m (intraday structure) + Bank B 1H (session structure)
Rule of thumb:
If you’re trading off a 1m–5m chart → Scalp
If you’re trading 5m–15m entries / session moves → Day Trade
2) Understand what the script plots
Each bank creates levels from confirmed pivot highs/lows and draws them as:
A wick zone (filled box): shows “where price really stabs” around the level
Optional center line: a clean line at the level price
A label: shows Touches, Respect%, and optional Volume bucket counts
Support/Resistance is decided dynamically:
If current price is above the level → it will label it as Support
If current price is below the level → it will label it as Resistance
3) Use Touches + Respect% as the “quality filter”
The two most useful numbers are:
Touch count: how often the level has been interacted with
Respect %: how often touches resulted in a bounce vs a break
(higher usually = more reliable in that market context)
Practical guidance:
Touches 1–2: “new / unproven” levels (use cautiously)
Touches 3–5: good working levels
Touches 6+: strong structure but can become “obvious” (watch for stop runs)
Respect% guidance:
70–100%: level has recently held well
50–70%: mixed, often tradable only with confirmation
<50%: level is getting chewed through (treat as weak / likely to break)
4) Use the Volume breakdown to judge “meaningful” touches
If Show Volume Breakdown in Labels is on, you’ll see counts like:
M:3 H:2 XH:1 (Medium/High/Extra High volume touches)
How to read it:
More H/XH touches → level tests happened when participation was strong
(usually more meaningful than low-volume taps)
Mostly Low/Normal touches → the level may be “technical” but not defended
Tip for scalping:
A level with high Respect% and multiple High/Extra High touches is often a great “reaction zone” to stalk entries around.
5) Tune “how strict” a touch is (Touch Tolerance)
Touch Tolerance (ATR x) controls how close price must get to count as a touch.
Smaller = stricter touches (fewer, cleaner)
Larger = looser touches (more, but noisier)
Common starting points:
XAUUSD 1m scalping: 0.08 – 0.15
15m / 1H day trading: 0.10 – 0.25
If you feel touches are “too easy” → reduce tolerance.
If it misses obvious taps → increase tolerance slightly.
6) Tune Respect% behavior (Bounce / Break thresholds)
These are ATR-based, so they adapt to volatility:
Bounce Distance (ATR x): how far price must move away to count as a bounce
Break Threshold (ATR x): how far through the level counts as a failure/break
Lookahead Bars: how long the script waits for bounce/break confirmation
Practical tuning:
If Respect% feels too optimistic (too many bounces) → increase Bounce Distance
If Respect% feels too harsh (too many breaks) → increase Break Threshold
If outcomes often remain unresolved → increase Lookahead Bars slightly
7) Use Zones (wick thickness) for entries and stops
Zones show the largest wick excursion seen at that level. This helps with:
Entry placement: enter near the “edge” of the zone rather than the center
Stop placement: stops often need to sit outside the wick zone to avoid noise
Avoiding fakeouts: if the zone is thick, expect deeper probes
Controls:
Min Zone Height (ATR x) prevents tiny/meaningless zones
Zone opacity lets you keep the chart readable
8) De-clutter with merging + level limits
If you see too many levels stacked:
Increase Merge Similar Levels (%)
Reduce Max Levels per bank
Reduce the Bars Window (or don’t enable Historical)
If you want broader structure:
Enable Include Historical Levels and increase historical bars (careful—more clutter)
9) A simple workflow for trading with it
For longs
Identify nearest Support zone (from either bank)
Prefer levels with higher touches + higher Respect%
Prefer levels with multiple High/Extra High volume touches
Wait for your entry trigger (your system/confirmation)
Use the zone thickness to judge stop distance
For shorts
Same logic using Resistance zones.
Attribution
This indicator incorporates ideas from several open-source PulseWire projects.
Heatmap Volume (xdecow)
The volume classification system used for touch analysis is inspired by the open-source
Heatmap Volume indicator by xdecow.
Specifically, this script adapts the statistical volume classification methodology based on:
Moving Average of Volume
Standard Deviation of Volume
Relative Volume (Z-Score) Buckets
The original Heatmap Volume indicator was designed to visualise abnormal market participation.
In this indicator, that methodology has been substantially extended and integrated into an entirely different Support & Resistance framework where volume buckets are used to:
Classify every support/resistance touch.
Build historical volume-touch statistics.
Measure how often high participation defends or breaks levels.
Display volume participation directly within each level label.
All Support & Resistance detection, probability calculations, touch engine, wick zone calculations, buyer/seller control analysis, level management, historical statistics and rendering were independently developed for this project.
Special thanks to xdecow for releasing the original Heatmap Volume indicator as open source. Indicator

Pivot Sniper Method [trade_w_samet]🎯 Pivot Sniper Method
Pivot Sniper Method is a confirmed pivot-reversal, signal-quality, session-filtering, trade-mapping, alert, and loaded-history statistics indicator designed to convert confirmed price pivots into a structured chart-review workflow.
The script is built around one central idea:
Not every confirmed pivot should be treated as an equal-quality reversal setup.
Instead of displaying every pivot as an identical signal, Pivot Sniper Method evaluates each confirmed pivot through a five-part Signal Strength model, applies the selected directional and session rules, maps a complete Entry / Stop Loss / TP1 / TP2 / TP3 structure, manages optional Break-Even behavior, and records the result through an internal R-based tracker.
When an eligible pivot is confirmed, the script can:
• Display a confirmed BUY or SELL label
• Show the calculated Signal Strength percentage directly below the direction label
• Evaluate Pivot Distance, Wick Quality, Confirmation Candle, Volume Participation, and Trend Alignment
• Apply Bullish, Bearish, or Both directional bias
• Restrict new signals to London, New York, London + New York, All Sessions, or a Custom session
• Apply an adjustable signal cooldown
• Calculate the Entry at the confirmation-candle close
• Calculate Stop Loss using ATR, Pivot Level, Pivot + ATR Buffer, or Signal Candle
• Calculate independently adjustable TP1, TP2, and TP3 targets
• Move the active Stop Loss to Break-Even after TP1 or TP2
• Add an optional favorable Break-Even tick offset
• Replace the current active tracked trade when a new eligible signal appears
• Display active Entry, Stop / Break-Even, TP1, TP2, and TP3 lines and labels
• Remove the separate Entry line and label after Break-Even becomes active
• Display compact tooltips containing signal, price, risk, target, and status information
• Track Trades, Win Rate, NET R, Average R, TP1 / TP2 / TP3 hit rates, and Break-Even results
• Display a compact premium desktop dashboard
• Display a reduced Phone Mode dashboard
• Move the dashboard to any chart corner
• Support Auto, Dark, Light, and Phone visual modes
• Support static alertcondition() events
• Support one combined “Any alert() function call” workflow
• Include symbol, timeframe, strength, Entry, Stop, targets, Stop Loss mode, Break-Even mode, and session context in dynamic alerts
The purpose of the script is to provide a transparent framework for studying confirmed pivots, setup quality, session context, predefined risk, multiple reward targets, Break-Even behavior, and bar-based historical outcomes.
It is not financial advice.
It is not an automated trading system.
It does not execute broker orders.
It does not calculate position size.
It does not guarantee that a confirmed pivot will produce a reversal.
It does not guarantee that historical Win Rate or NET R will continue in future market conditions.
It does not include spread, commission, slippage, latency, financing, taxes, partial fills, or broker-specific execution.
It does not reconstruct the exact intrabar path inside historical candles.
━━━━━━━━━━━━━━━━━━━━━━
📌 OVERVIEW
━━━━━━━━━━━━━━━━━━━━━━
At a high level, Pivot Sniper Method performs the following sequence:
• Searches price for confirmed pivot lows and pivot highs.
• Requires the selected number of completed candles on the right side of a pivot.
• Rejects simultaneous bullish and bearish pivot confirmation on the same calculation.
• Evaluates the selected Trend Bias.
• Evaluates the selected Trading Session.
• Evaluates the signal cooldown.
• Calculates a 0–100 Signal Strength score.
• Rejects signals below the selected minimum strength when the strength filter is enabled.
• Displays a BUY or SELL label only when all active signal rules pass.
• Opens a tracked trade at the close of the confirmation candle.
• Selects a Stop Loss using the active Stop Loss Mode.
• Uses ATR as a safety fallback when a structural Stop Loss is invalid.
• Calculates TP1, TP2, and TP3 from the actual Entry-to-Stop risk distance.
• Tracks target and stop touches from the candle after entry.
• Moves the active Stop Loss to Break-Even after the selected target condition.
• Replaces an active tracked trade at the current close when a new eligible signal appears.
• Records each completed trade in R.
• Updates a compact dashboard with state, trade, performance, and quality information.
• Generates static and dynamic PulseWire alert events.
The script does not use machine learning.
It does not claim to predict every market reversal.
Its dashboard is not PulseWire Strategy Tester.
Its statistics are calculated internally from the script’s own confirmed-signal, OHLC-touch, replacement-exit, and Break-Even rules.
━━━━━━━━━━━━━━━━━━━━━━
🧠 CORE IDEA
━━━━━━━━━━━━━━━━━━━━━━
A pivot low identifies a price point that is lower than the selected number of candles on both sides.
A pivot high identifies a price point that is higher than the selected number of candles on both sides.
Confirmed pivots can provide useful reversal context, but a pivot alone does not answer:
• whether the setup agrees with the selected directional bias
• whether the setup occurs during the selected trading session
• whether the pivot candle contains a meaningful rejection wick
• whether price has moved sufficiently away from the confirmed pivot
• whether the confirmation candle supports the intended direction
• whether volume participation is elevated or ordinary
• whether price and the selected EMA structure support the direction
• where Stop Loss should be placed
• how the trade should be mapped in R
• when Break-Even should become active
• how a new signal should affect an existing tracked trade
• how the setup behaved under the script’s historical bar-touch rules
Pivot Sniper Method therefore treats the pivot as the first stage of a complete process rather than the final decision.
The complete workflow is:
potential pivot
→ right-side pivot confirmation
→ same-bar conflict rejection
→ directional-bias validation
→ session validation
→ cooldown validation
→ five-part quality scoring
→ minimum-strength validation
→ BUY or SELL signal
→ confirmation-candle Entry
→ Stop Loss selection
→ TP1 / TP2 / TP3 mapping
→ active-trade management
→ optional Break-Even
→ TP3, Stop, Break-Even, or replacement exit
→ internal R result
→ dashboard update
→ alert event
━━━━━━━━━━━━━━━━━━━━━━
🧩 WHY THIS IS NOT A SIMPLE PIVOT MARKER
━━━━━━━━━━━━━━━━━━━━━━
A basic pivot script can stop after placing a shape on a confirmed swing high or swing low.
Pivot Sniper Method continues beyond pivot detection.
Each eligible setup passes through a coordinated structure:
confirmed price pivot
→ 0–100 quality evaluation
→ bias and session permission
→ structured Entry
→ selectable Stop Loss model
→ independent TP1, TP2, and TP3 targets
→ optional Break-Even transition
→ live target-status updates
→ active-trade replacement logic
→ historical R accounting
→ compact statistics dashboard
→ static and dynamic alerts
The pivot module defines the confirmed reversal location.
The Signal Strength module evaluates quality.
The Trend Bias module controls permitted directions.
The Time Filter controls when new setups may be accepted.
The trade-mapping module converts the setup into explicit price levels.
The Break-Even module changes active risk only after the selected target is confirmed.
The statistics module summarizes the exact results produced by those rules.
The alert module communicates signal and trade-management events.
These modules are not unrelated indicators placed together.
They form one process for identifying, filtering, mapping, monitoring, and reviewing confirmed pivot-reversal setups.
━━━━━━━━━━━━━━━━━━━━━━
⚙️ HOW THE SCRIPT WORKS
━━━━━━━━━━━━━━━━━━━━━━
The script runs directly on the main price chart.
It calculates confirmed price pivots using independently adjustable left-side and right-side lengths for highs and lows.
The default pivot configuration is:
• Pivot High Left Bars: 10
• Pivot High Right Bars: 10
• Pivot Low Left Bars: 10
• Pivot Low Right Bars: 10
The signal engine then combines:
• confirmed pivot status
• Bullish / Bearish / Both bias permission
• selected session permission
• Signal Strength threshold
• cooldown permission
• same-bar dual-pivot rejection
• confirmed chart-bar status
A BUY signal is based on a confirmed pivot low.
A SELL signal is based on a confirmed pivot high.
The signal label is placed on the confirmation candle, not on the original historical pivot candle.
The Entry is also stored at the close of the confirmation candle.
This separation is important:
Pivot Price
The historical swing level that became confirmed after the selected right-side bars.
Signal Candle
The later candle where the script knows the pivot exists and all active filters pass.
Entry Price
The close of that later signal-confirmation candle.
━━━━━━━━━━━━━━━━━━━━━━
🔍 PIVOT DETECTION MODEL
━━━━━━━━━━━━━━━━━━━━━━
Pivot High Left Bars determines how many candles to the left must have lower highs than a potential pivot high.
Pivot High Right Bars determines how many completed candles must form to the right before the potential pivot high is confirmed.
Pivot Low Left Bars determines how many candles to the left must have higher lows than a potential pivot low.
Pivot Low Right Bars determines how many completed candles must form to the right before the potential pivot low is confirmed.
Higher left and right values generally identify larger and less frequent swing structures.
Lower values generally identify smaller and more frequent structures.
The high and low settings are independent.
This allows users to study symmetrical configurations such as 10 / 10 for both directions, or asymmetrical configurations when market behavior requires different sensitivity for pivot highs and pivot lows.
The central pivot calculation is:
float confirmedPivotHigh = ta.pivothigh(
high,
leftHighInput,
rightHighInput
)
float confirmedPivotLow = ta.pivotlow(
low,
leftLowInput,
rightLowInput
)
bool rawBuySignal =
barstate.isconfirmed and
not na(confirmedPivotLow)
bool rawSellSignal =
barstate.isconfirmed and
not na(confirmedPivotHigh)
These functions return a confirmed pivot value only after the required right-side bars exist.
A confirmed pivot does not automatically become a signal.
It must still pass:
• same-bar conflict rejection
• Trend Bias
• Trading Session
• Signal Strength
• cooldown
━━━━━━━━━━━━━━━━━━━━━━
⏳ PIVOT CONFIRMATION AND SIGNAL TIMING
━━━━━━━━━━━━━━━━━━━━━━
This section is essential for correct interpretation.
The script uses confirmed pivot functions.
A pivot is not known on the original pivot candle.
For example, with Pivot Low Right Bars set to 10:
• the potential pivot low occurs
• ten additional candles must complete to its right
• the pivot becomes confirmed on the later calculation candle
• the BUY candidate can then be evaluated
The signal label is displayed on the later confirmation candle.
The trade Entry is stored at the close of that confirmation candle.
The script does not backdate the BUY or SELL trade label to the original pivot candle.
This means:
• the pivot price belongs to an earlier historical candle
• the signal becomes available later
• the displayed Entry reflects the later confirmation close
• increasing right-side bars increases confirmation delay
• decreasing right-side bars confirms smaller structures earlier
The script also requires barstate.isconfirmed for raw pivot candidates.
Signals are therefore based on completed chart candles.
This reduces unfinished current-candle changes, but it does not remove the inherent delay required by pivot confirmation.
━━━━━━━━━━━━━━━━━━━━━━
🟢 CONFIRMED BUY LOGIC
━━━━━━━━━━━━━━━━━━━━━━
A BUY candidate begins when a pivot low is confirmed.
The candidate is rejected when a pivot high is also confirmed on the same calculation.
The remaining BUY candidate must satisfy:
• Trend Bias is Bullish or Both
• the selected Trading Session is active
• the BUY Signal Strength meets the minimum threshold when filtering is enabled
• the cooldown is ready
• the chart bar is confirmed
When accepted, the script displays:
▲ BUY
strength%
The strength percentage appears on the second line to keep the label compact.
The compact two-line BUY label is constructed as:
string buyLabelText =
showStrengthOnSignalInput
? "▲ BUY " + str.tostring(buySignalStrength) + "%"
: "▲ BUY"
The SELL label uses the mirrored ▼ SELL format.
The label is placed below the signal candle.
The BUY tooltip can display:
• Confirmed BUY
• Signal Strength
• Confirmed Pivot price
The tracked Entry is the signal-confirmation candle close.
The BUY Stop Loss is placed below Entry using the selected Stop Loss Mode.
TP1, TP2, and TP3 are calculated above Entry from the actual Entry-to-Stop risk distance.
━━━━━━━━━━━━━━━━━━━━━━
🔴 CONFIRMED SELL LOGIC
━━━━━━━━━━━━━━━━━━━━━━
A SELL candidate begins when a pivot high is confirmed.
The candidate is rejected when a pivot low is also confirmed on the same calculation.
The remaining SELL candidate must satisfy:
• Trend Bias is Bearish or Both
• the selected Trading Session is active
• the SELL Signal Strength meets the minimum threshold when filtering is enabled
• the cooldown is ready
• the chart bar is confirmed
When accepted, the script displays:
▼ SELL
strength%
The strength percentage appears on the second line.
The label is placed above the signal candle.
The SELL tooltip can display:
• Confirmed SELL
• Signal Strength
• Confirmed Pivot price
The tracked Entry is the signal-confirmation candle close.
The SELL Stop Loss is placed above Entry using the selected Stop Loss Mode.
TP1, TP2, and TP3 are calculated below Entry from the actual Entry-to-Stop risk distance.
━━━━━━━━━━━━━━━━━━━━━━
💪 SIGNAL STRENGTH MODEL
━━━━━━━━━━━━━━━━━━━━━━
Signal Strength is a 0–100 quality score.
The final score contains five components worth up to 20 points each:
1. Pivot Distance
2. Wick Quality
3. Confirmation Candle
4. Volume Participation
5. Trend Alignment
The score is intended to compare the internal characteristics of confirmed pivot setups under the same script rules.
It is not a probability forecast.
A 75% label does not mean there is a guaranteed 75% probability of profit.
It means the setup received 75 points out of the script’s 100-point quality model.
The Minimum Signal Strength input controls the required score.
Default:
55
When the filter is enabled:
• scores below the minimum are rejected
• scores equal to or above the minimum are eligible
• lower thresholds generally create more signals
• higher thresholds generally create fewer signals
The strength percentage can be hidden from the BUY / SELL label without disabling the strength filter.
The five component values are combined into the final score:
int buySignalStrength = int(math.round(
math.min(
buyPivotDistanceScore +
buyWickScore +
buyCandleScore +
volumeScore +
buyTrendScore,
100.0
)
))
int sellSignalStrength = int(math.round(
math.min(
sellPivotDistanceScore +
sellWickScore +
sellCandleScore +
volumeScore +
sellTrendScore,
100.0
)
))
A score is therefore the sum of five internal measurements, capped at 100.
━━━━━━━━━━━━━━━━━━━━━━
📏 PIVOT DISTANCE COMPONENT
━━━━━━━━━━━━━━━━━━━━━━
Pivot Distance evaluates how far the confirmation-candle close is from the confirmed pivot relative to ATR.
For BUY candidates, the model measures the distance from the confirmed pivot low to the current close.
For SELL candidates, it measures the distance from the current close to the confirmed pivot high.
The normalized value is capped internally.
The maximum contribution is 20 points.
This component does not claim that a larger distance is always better.
It only measures the amount of price separation used by this quality model.
━━━━━━━━━━━━━━━━━━━━━━
🕯️ WICK QUALITY COMPONENT
━━━━━━━━━━━━━━━━━━━━━━
Wick Quality evaluates the rejection wick on the original pivot candle.
For BUY candidates:
• lower wick size is compared with the full pivot-candle range
For SELL candidates:
• upper wick size is compared with the full pivot-candle range
A larger relevant wick can contribute more points, up to 20.
This component attempts to represent rejection behavior at the confirmed swing.
A large wick does not guarantee reversal continuation.
━━━━━━━━━━━━━━━━━━━━━━
📊 CONFIRMATION CANDLE COMPONENT
━━━━━━━━━━━━━━━━━━━━━━
The Confirmation Candle component evaluates the candle where the pivot becomes confirmed and the signal is processed.
The model considers:
• body size relative to the full candle range
• bullish close direction for BUY candidates
• bearish close direction for SELL candidates
The body ratio contributes most of the component score.
A directional close can add an additional internal bonus.
The maximum contribution is 20 points.
The confirmation candle is not the original pivot candle.
━━━━━━━━━━━━━━━━━━━━━━
🔊 VOLUME PARTICIPATION COMPONENT
━━━━━━━━━━━━━━━━━━━━━━
Volume Participation compares current volume with an adjustable volume average.
Default volume length:
20
Higher relative volume can contribute more points, up to 20.
The component is internally capped.
When usable volume data is unavailable, the script applies a neutral fallback contribution instead of automatically assigning zero.
Volume behavior differs across asset classes and data feeds.
For some symbols, displayed volume can represent exchange volume.
For others, it can represent tick activity or a provider-specific value.
━━━━━━━━━━━━━━━━━━━━━━
📈 TREND ALIGNMENT COMPONENT
━━━━━━━━━━━━━━━━━━━━━━
Trend Alignment uses an adjustable EMA.
Default EMA length:
50
For BUY candidates, the component evaluates:
• whether price is above the EMA
• whether the EMA is rising
For SELL candidates, it evaluates:
• whether price is below the EMA
• whether the EMA is falling
Each condition contributes part of the 20-point component.
This EMA is used as one component of Signal Strength.
It is not a separate hard directional filter.
A setup can still receive points from the other four components when Trend Alignment is weak.
━━━━━━━━━━━━━━━━━━━━━━
🧭 TREND BIAS
━━━━━━━━━━━━━━━━━━━━━━
Trend Bias controls which signal directions are permitted.
Available modes:
• Bullish
• Bearish
• Both
Bullish
Allows only confirmed BUY signals.
Bearish
Allows only confirmed SELL signals.
Both
Allows confirmed signals in both directions.
Trend Bias does not change pivot detection.
It changes which confirmed candidates are allowed to become signals and tracked trades.
The final signal gate combines pivot confirmation, directional permission, session permission, Signal Strength, and cooldown:
bool buySignal =
buyCandidate and
bullishBiasAllowed and
timeFilterPassed and
buyStrengthPassed and
cooldownReady
bool sellSignal =
sellCandidate and
bearishBiasAllowed and
timeFilterPassed and
sellStrengthPassed and
cooldownReady
Only candidates that pass every active condition become BUY or SELL signals.
━━━━━━━━━━━━━━━━━━━━━━
🕒 SESSION FILTER
━━━━━━━━━━━━━━━━━━━━━━
The Trading Session input controls when new signals can be accepted.
Available modes:
• All Sessions
• London
• New York
• London + New York
• Custom
London uses:
08:00–17:00
Europe/London time
New York uses:
09:30–16:00
America/New_York time
London + New York accepts signals during either defined session.
Custom allows the user to define a session and select:
• Exchange
• UTC
• Europe/London
• America/New_York
• Europe/Istanbul
• Asia/Tokyo
The session filter affects new entries only.
An already active tracked trade continues to be managed outside the selected session.
The dashboard displays whether the current session rule is OPEN or CLOSED.
━━━━━━━━━━━━━━━━━━━━━━
⏳ COOLDOWN AND CONFLICT HANDLING
━━━━━━━━━━━━━━━━━━━━━━
Signal Cooldown Bars defines the minimum number of completed candles required between accepted signals.
Default:
0
A value of 0 disables additional cooldown filtering.
Higher values reduce how frequently new signals can be accepted.
When a pivot high and pivot low are both confirmed on the same calculation, the script rejects both candidates.
This prevents contradictory BUY and SELL signals from being accepted on the same candle.
━━━━━━━━━━━━━━━━━━━━━━
🎯 ENTRY AND ACTIVE-TRADE REPLACEMENT MODEL
━━━━━━━━━━━━━━━━━━━━━━
The Entry is stored at the close of the accepted signal candle.
The script maintains one active tracked trade.
However, new eligible signals are not ignored while a trade is active.
When a new eligible BUY or SELL signal appears:
• the current active trade is valued at the new signal candle’s close
• its current R result is added to statistics
• its active lines and labels are removed
• the new signal opens a new tracked trade
This behavior applies to eligible same-direction and opposite-direction signals.
The replacement exit is not a broker fill.
It is an internal close-based accounting rule used to keep only one active tracked trade.
Because replacement exits can occur before TP3, Stop Loss, or Break-Even, NET R can include partial positive or negative R outcomes.
━━━━━━━━━━━━━━━━━━━━━━
🛑 STOP LOSS SYSTEM
━━━━━━━━━━━━━━━━━━━━━━
The script includes four Stop Loss modes:
• ATR
• Pivot Level
• Pivot + ATR Buffer
• Signal Candle
ATR
BUY:
Entry − ATR × multiplier
SELL:
Entry + ATR × multiplier
Default ATR length:
14
Default ATR multiplier:
2.0
Pivot Level
BUY:
confirmed pivot low
SELL:
confirmed pivot high
Pivot + ATR Buffer
BUY:
confirmed pivot low − ATR × pivot buffer
SELL:
confirmed pivot high + ATR × pivot buffer
Default pivot buffer:
0.25 ATR
Signal Candle
BUY:
signal candle low
SELL:
signal candle high
The script validates the selected Stop Loss.
For BUY, Stop Loss must be meaningfully below Entry.
For SELL, Stop Loss must be meaningfully above Entry.
When the selected structural stop is invalid, the script uses the ATR Stop Loss as a safety fallback.
The actual risk distance is:
absolute difference between Entry and the validated Stop Loss
That distance becomes 1R for all target calculations.
The requested Stop Loss is selected from the active mode:
requestedStopPrice :=
stopLossModeInput == "ATR"
? activeEntryPrice - atrFallbackDistance
: stopLossModeInput == "Pivot Level"
? confirmedPivotLow
: stopLossModeInput == "Pivot + ATR Buffer"
? confirmedPivotLow - atrValue * pivotBufferATRInput
: low
For SELL trades, the same logic is mirrored above Entry.
The script then validates the requested structural stop.
When the selected price is not on the correct side of Entry, ATR is used as the fallback.
━━━━━━━━━━━━━━━━━━━━━━
🏆 TP1 / TP2 / TP3 SYSTEM
━━━━━━━━━━━━━━━━━━━━━━
TP1, TP2, and TP3 are independently adjustable.
Default values:
• TP1: 1R
• TP2: 2R
• TP3: 3R
For BUY:
target = Entry + risk distance × selected R multiple
For SELL:
target = Entry − risk distance × selected R multiple
TP1 and TP2 are intermediate target events.
TP3 is the final target and closes the active tracked trade.
When TP3 is touched:
• TP1 is also recorded if it was not already recorded
• TP2 is also recorded if it was not already recorded
• TP3 is recorded
• the trade closes at the selected TP3 R value
Users should normally keep:
TP1 < TP2 < TP3
The script allows independent values, so users are responsible for maintaining a logical target sequence.
After the validated Stop Loss is stored, the script defines 1R and calculates each target:
activeRiskDistance :=
math.max(
math.abs(activeEntryPrice - activeStopPrice),
syminfo.mintick
)
activeTP1Price :=
activeTradeDirection == 1
? activeEntryPrice + activeRiskDistance * tp1RRInput
: activeEntryPrice - activeRiskDistance * tp1RRInput
activeTP2Price :=
activeTradeDirection == 1
? activeEntryPrice + activeRiskDistance * tp2RRInput
: activeEntryPrice - activeRiskDistance * tp2RRInput
activeTP3Price :=
activeTradeDirection == 1
? activeEntryPrice + activeRiskDistance * tp3RRInput
: activeEntryPrice - activeRiskDistance * tp3RRInput
The target calculations therefore remain proportional to the actual Entry-to-Stop distance.
━━━━━━━━━━━━━━━━━━━━━━
🟡 BREAK-EVEN SYSTEM
━━━━━━━━━━━━━━━━━━━━━━
Break-Even Mode includes:
• Off
• After TP1
• After TP2
After TP1
The Stop Loss moves to Entry after the TP1-touch candle closes.
After TP2
The Stop Loss moves to Entry after the TP2-touch candle closes.
The updated Break-Even stop applies from the following candle.
An optional favorable tick offset can be added.
For BUY:
Break-Even = Entry + offset
For SELL:
Break-Even = Entry − offset
When Break-Even becomes active:
• the Stop Loss line changes to the Break-Even color
• the Stop label changes from SL to BE
• the separate Entry line is deleted
• the separate Entry label is deleted
• only the BE level remains at or near Entry
This prevents Entry and Break-Even labels from overlapping at the same price.
A Break-Even stop with zero offset produces approximately 0R.
A positive favorable offset can produce a small positive R result.
━━━━━━━━━━━━━━━━━━━━━━
⚠️ SAME-CANDLE STOP AND TARGET HANDLING
━━━━━━━━━━━━━━━━━━━━━━
Historical OHLC candles do not reveal the exact sequence of all intrabar price movement.
A candle can include both the active Stop price and one or more target prices.
When the active Stop and a target are both touched inside the same historical candle, the script uses a conservative rule:
The active Stop receives priority.
This applies to the original Stop Loss and the active Break-Even stop.
Trade-management checks begin on the candle after Entry.
The Entry candle cannot immediately close the new tracked trade.
The conservative priority rule can produce different results from lower-timeframe reconstruction or tick-level execution data.
━━━━━━━━━━━━━━━━━━━━━━
📐 ACTIVE TRADE VISUAL SYSTEM
━━━━━━━━━━━━━━━━━━━━━━
While a tracked trade is active, the script can display:
• Stop Loss or Break-Even line
• Entry line
• TP1 line
• TP2 line
• TP3 line
• Stop Loss or Break-Even label
• Entry label
• TP1 label
• TP2 label
• TP3 label
The lines project to the right by the selected number of bars.
Default:
20 bars
Stop and Entry use solid lines.
Targets use dashed lines.
After TP1 or TP2 is reached:
• the corresponding target label changes to a completed state
• the corresponding line becomes more transparent
After Break-Even activates:
• the Entry line and Entry label disappear
• the active Stop line and label become BE
When the trade closes or is replaced:
• active trade lines are deleted
• active trade labels are deleted
The script does not preserve completed trade lines as permanent historical drawings.
━━━━━━━━━━━━━━━━━━━━━━
🏷️ LABELS, TOOLTIPS, AND TEXT
━━━━━━━━━━━━━━━━━━━━━━
BUY and SELL labels use two lines when strength display is enabled:
direction
strength%
Available Label Size values:
• Tiny
• Small
• Normal
• Large
• Huge
The setting controls:
• BUY
• SELL
• Entry
• Stop Loss
• Break-Even
• TP1
• TP2
• TP3
Phone Mode overrides the selected label size with Tiny.
Visible chart labels use bold and italic formatting.
Signal tooltips can show:
• direction
• strength
• pivot price
Trade-level tooltips can show:
• Entry strength
• risk distance
• Stop Loss mode
• Stop or BE price
• target R value
• target price
• target status
• Break-Even tick offset
Tooltips are informational chart elements.
They do not represent broker orders.
━━━━━━━━━━━━━━━━━━━━━━
📟 COMPACT PREMIUM DASHBOARD
━━━━━━━━━━━━━━━━━━━━━━
The desktop dashboard is divided into four sections:
STATE
• symbol and timeframe
• active signal and strength
• current trade status
• session status
TRADE
• active Stop Loss mode
• Entry and Stop / Break-Even
• TP1 / TP2 / TP3 scale
• live R
PERFORMANCE
• total trades started
• closed trades
• Win Rate
• NET R
• Average R
• TP1 / TP2 / TP3 hit rates
QUALITY
• latest strength
• Trend component
• Volume component
• Wick component
• Confirmation Candle component
• Pivot Distance component
• Trend Bias
• Break-Even mode
• Minimum Strength
Quality components are displayed in a compact format:
T = Trend
V = Volume
W = Wick
C = Candle
P = Pivot Distance
The dashboard can be positioned at:
• Top Right
• Bottom Right
• Top Left
• Bottom Left
The selected input is translated into a PulseWire table position:
string dashboardTablePosition =
dashboardPositionInput == "Top Right" ? position.top_right :
dashboardPositionInput == "Top Left" ? position.top_left :
dashboardPositionInput == "Bottom Left" ? position.bottom_left :
position.bottom_right
if barstate.islast
table.set_position(
statisticsTable,
dashboardTablePosition
)
━━━━━━━━━━━━━━━━━━━━━━
📊 STATISTICS METHODOLOGY
━━━━━━━━━━━━━━━━━━━━━━
The statistics are produced by the script’s internal bar-based tracker.
They are not imported from a broker.
They are not verified account results.
They are not PulseWire Strategy Tester results.
Total Trades Started
Number of accepted signals that opened a tracked trade.
Total Trades Closed
Number of tracked trades closed by:
• Stop Loss
• Break-Even
• TP3
• active-trade replacement
TP1 Hit Rate
TP1 touches divided by Total Trades Started.
TP2 Hit Rate
TP2 touches divided by Total Trades Started.
TP3 Hit Rate
TP3 touches divided by Total Trades Started.
NET R
Sum of all recorded closed-trade R outcomes.
Average R
NET R divided by Total Trades Closed.
Win Rate
Positive-R trades divided by positive-R plus negative-R trades.
Exact 0R Break-Even results are excluded from the Win Rate denominator.
A favorable Break-Even offset can produce a small positive R result and can therefore be classified as a positive-R trade.
Replacement exits use the close of the new signal candle and can contribute partial R.
Statistics depend on:
• loaded chart history
• symbol
• timeframe
• exchange or broker feed
• left and right pivot settings
• Trend Bias
• session setting
• cooldown
• strength threshold
• EMA and volume lengths
• ATR settings
• Stop Loss mode
• target settings
• Break-Even settings
• replacement-signal sequence
Changing any of these inputs can change historical results.
━━━━━━━━━━━━━━━━━━━━━━
🎨 THEME SYSTEM
━━━━━━━━━━━━━━━━━━━━━━
The script includes:
• Auto
• Dark Mode
• Light Mode
• Phone Mode
Auto
Detects the chart background and selects the corresponding light or dark visual palette.
Dark Mode
Uses:
• darker green and red signal colors
• dark dashboard surfaces
• white chart-label text
• dark Entry color
• muted dashboard text
• red brand header
Light Mode
Uses:
• brighter green and red signal colors
• light dashboard surfaces
• dark BUY text where required
• adjusted Entry and dashboard colors
• red brand header
Theme selection changes presentation.
It does not change pivot detection, Signal Strength, trade levels, statistics, or alerts.
━━━━━━━━━━━━━━━━━━━━━━
📱 PHONE MODE
━━━━━━━━━━━━━━━━━━━━━━
Phone Mode is designed for smaller chart areas.
It uses:
• Tiny signal labels
• Tiny active-trade labels
• one-pixel trade-level lines
• dark visual palette
• compact dashboard text
• reduced dashboard rows
The Phone Mode dashboard displays:
• Signal and Strength
• Status
• Win Rate and NET R
• Session
The compact layout intentionally removes most desktop details.
Phone Mode changes presentation only.
It does not change calculations.
━━━━━━━━━━━━━━━━━━━━━━
🚨 ALERT SYSTEM
━━━━━━━━━━━━━━━━━━━━━━
The script includes static PulseWire alert conditions for:
• Confirmed BUY
• Confirmed SELL
• Stop Loss Hit
• Break-Even Activated
• Break-Even Hit
• TP1 Hit
• TP2 Hit
• TP3 Hit
Static BUY and SELL messages can include:
• exchange
• ticker
• timeframe
• Signal Strength
• Entry
• Stop
• TP1
• TP2
• TP3
The script also includes dynamic alert() events for:
• BUY signal
• SELL signal
• Stop Loss hit
• Break-Even activation
• Break-Even hit
• TP1 hit
• TP2 hit
• TP3 hit
Dynamic signal messages can include:
• trade_w_samet identifier
• event type
• direction
• symbol
• timeframe
• Signal Strength
• Entry
• Stop
• TP1
• TP2
• TP3
• Stop Loss Mode
• Break-Even Mode
• Trading Session
• session OPEN / CLOSED state
Dynamic trade-management messages preserve the active trade’s stored values before the trade state is reset.
Alert events use once-per-bar-close frequency.
A dynamic signal message is assembled from the stored trade values:
string buyEntryAlertMessage =
"trade_w_samet | Pivot Sniper Method" +
" Event: BUY SIGNAL" +
" Direction: BUY" +
" Symbol: " + syminfo.tickerid +
" Timeframe: " + timeframe.period +
" Strength: " + str.tostring(buySignalStrength) + "%" +
" Entry: " + str.tostring(activeEntryPrice, format.mintick) +
" SL: " + str.tostring(activeStopPrice, format.mintick) +
" TP1: " + str.tostring(activeTP1Price, format.mintick) +
" TP2: " + str.tostring(activeTP2Price, format.mintick) +
" TP3: " + str.tostring(activeTP3Price, format.mintick)
alert(
message=buyEntryAlertMessage,
freq=alert.freq_once_per_bar_close
)
The complete live message also includes Stop Loss Mode, Break-Even Mode, and session context.
Alerts are monitoring tools.
They do not execute or modify broker orders.
━━━━━━━━━━━━━━━━━━━━━━
🔔 HOW TO USE ALERTS
━━━━━━━━━━━━━━━━━━━━━━
For a specific static event:
1. Add Pivot Sniper Method to the chart.
2. Open PulseWire’s Create Alert window.
3. Select the indicator as the condition.
4. Select the required BUY, SELL, Stop, Break-Even, TP1, TP2, or TP3 event.
5. Select the notification method.
6. Test the alert before relying on it.
For one combined dynamic workflow:
1. Add the indicator to the chart.
2. Open Create Alert.
3. Select Pivot Sniper Method .
4. Select Any alert() function call.
5. Configure the delivery method.
6. Test signal and trade-management messages.
PulseWire saves a snapshot of the script, its inputs, and chart context when an alert is created.
After materially changing the script, symbol, timeframe, or inputs, delete and recreate the alert so it uses the intended configuration.
━━━━━━━━━━━━━━━━━━━━━━
🧪 PRACTICAL WORKFLOW
━━━━━━━━━━━━━━━━━━━━━━
A practical review process:
1. Add Pivot Sniper Method to a standard candlestick chart.
2. Select Auto, Dark, Light, or Phone Mode.
3. Start with symmetrical pivot settings.
4. Observe how right-side bars affect confirmation delay.
5. Select Both Trend Bias when studying raw signal behavior.
6. Select Bullish or Bearish when reviewing one direction only.
7. Begin with All Sessions when studying general behavior.
8. Test London, New York, or Custom session filtering.
9. Begin with the default Minimum Signal Strength.
10. Compare signal frequency at higher and lower thresholds.
11. Review the strength percentage below each BUY or SELL label.
12. Use the tooltip to inspect the confirmed pivot price.
13. Compare the five quality components in the dashboard.
14. Select the preferred Stop Loss Mode.
15. Verify that the structural stop is logically positioned.
16. Review the ATR fallback behavior.
17. Set TP1, TP2, and TP3 in increasing order.
18. Select the Break-Even rule.
19. Review when the Entry label disappears and BE replaces it.
20. Observe how new eligible signals replace an active tracked trade.
21. Review Live R and historical NET R.
22. Review failed setups as well as successful setups.
23. Create and test alerts.
24. Define personal position size independently.
25. Account for spread, commission, liquidity, news, and execution conditions.
The indicator is designed for structured study and monitoring.
It should not be treated as an automatic decision-maker.
━━━━━━━━━━━━━━━━━━━━━━
⚙️ SETTINGS REFERENCE
━━━━━━━━━━━━━━━━━━━━━━
📈 Trend Bias
Trend Bias
• Bullish
• Bearish
• Both
━━━━━━━━━━━━━━━━━━━━━━
⚙️ Pivot Settings
Pivot High Left Bars
Default:
10
Pivot High Right Bars
Default:
10
Pivot Low Left Bars
Default:
10
Pivot Low Right Bars
Default:
10
━━━━━━━━━━━━━━━━━━━━━━
🚨 Signal Settings
Show BUY / SELL Signals
Shows or hides signal labels.
Signal Cooldown Bars
Default:
0
━━━━━━━━━━━━━━━━━━━━━━
🕒 Time Filter
Trading Session
• All Sessions
• London
• New York
• London + New York
• Custom
Custom Session
Default:
08:00–17:00
Custom Session Time Zone
• Exchange
• UTC
• Europe/London
• America/New_York
• Europe/Istanbul
• Asia/Tokyo
━━━━━━━━━━━━━━━━━━━━━━
💪 Signal Strength
Enable Signal Strength Filter
Default:
On
Minimum Signal Strength
Default:
55
Show Strength on Signal
Default:
On
Strength Trend Length
Default:
50
Strength Volume Length
Default:
20
━━━━━━━━━━━━━━━━━━━━━━
📦 Trade Levels
Show Active Trade Levels
Default:
On
Stop Loss Mode
• ATR
• Pivot Level
• Pivot + ATR Buffer
• Signal Candle
ATR Length
Default:
14
Stop Loss ATR Multiplier
Default:
2.0
Pivot ATR Buffer
Default:
0.25
TP1 Risk / Reward
Default:
1.0R
TP2 Risk / Reward
Default:
2.0R
TP3 Risk / Reward
Default:
3.0R
Level Projection Bars
Default:
20
━━━━━━━━━━━━━━━━━━━━━━
🟡 Break-Even
Break-Even Mode
• Off
• After TP1
• After TP2
Default:
After TP1
Break-Even Offset Ticks
Default:
0
━━━━━━━━━━━━━━━━━━━━━━
📊 Statistics Dashboard
Show Statistics Dashboard
Default:
On
Dashboard Position
• Top Right
• Bottom Right
• Top Left
• Bottom Left
━━━━━━━━━━━━━━━━━━━━━━
🎨 Visual Settings
Theme Mode
• Auto
• Dark Mode
• Light Mode
• Phone Mode
Label Size
• Tiny
• Small
• Normal
• Large
• Huge
Phone Mode always uses Tiny.
━━━━━━━━━━━━━━━━━━━━━━
🔔 Alert Settings
Enable BUY Alerts
Default:
On
Enable SELL Alerts
Default:
On
Enable Dynamic Alerts
Default:
On
All public input values are hidden from PulseWire’s status line to reduce chart-header clutter.
━━━━━━━━━━━━━━━━━━━━━━
🧠 WHAT MAKES THIS SCRIPT ORIGINAL
━━━━━━━━━━━━━━━━━━━━━━
Pivots, ATR, EMA, volume comparison, session filters, risk/reward levels, Break-Even, alerts, and performance statistics are established technical-analysis concepts.
These concepts are not unique by themselves.
The originality of Pivot Sniper Method lies in the coordinated implementation applied to them:
confirmed high and low pivots
→ same-bar directional-conflict rejection
→ Bullish / Bearish / Both permission
→ session filtering
→ cooldown
→ five-part 0–100 quality model
→ minimum-quality acceptance
→ compact two-line BUY / SELL labels
→ confirmation-close Entry
→ four selectable Stop Loss models
→ ATR structural-stop validation fallback
→ independently adjustable TP1 / TP2 / TP3
→ target-state visual updates
→ TP1- or TP2-based Break-Even
→ Entry-to-BE visual replacement
→ active-trade replacement at current close
→ internal partial-R accounting
→ desktop and Phone dashboards
→ theme-aware colors
→ dashboard-corner selection
→ detailed static and dynamic alerts
Distinctive implementation features include:
• using five quality dimensions inside one pivot-reversal workflow
• separating pivot confirmation from Entry timing
• using the original pivot candle for wick quality
• using the later confirmation candle for candle quality and Entry
• applying session control only to new entries
• supporting four Stop Loss construction methods
• validating structural stops and falling back to ATR when required
• removing the Entry visual after Break-Even replaces it
• tracking replacement exits in R
• showing latest quality components in a compact dashboard
• supporting both individual events and one combined dynamic-alert workflow
The script is not a collection of unrelated indicators.
Every component supports the same objective: evaluating and managing a confirmed pivot-reversal setup under explicit, reviewable rules.
━━━━━━━━━━━━━━━━━━━━━━
⚠️ IMPORTANT PRACTICAL NOTES
━━━━━━━━━━━━━━━━━━━━━━
Signal frequency depends on:
• symbol
• timeframe
• data provider
• pivot left and right settings
• Trend Bias
• selected session
• cooldown
• minimum strength
• EMA length
• volume length
• ATR availability
• historical data availability
Higher right-side pivot values increase confirmation delay.
Higher strength thresholds reduce accepted signals.
Session filtering can remove otherwise valid setups.
The strength score is not a probability forecast.
The Trend component is part of the score, not a separate hard trend filter.
The script replaces an active tracked trade when a new eligible signal appears.
The script does not retain completed trade lines historically.
Dashboard statistics use loaded chart history only.
Different exchanges, brokers, and data feeds can produce different:
• highs
• lows
• closes
• pivots
• wick measurements
• volume values
• ATR values
• EMA values
• signals
• stop levels
• target levels
• replacement exits
• historical statistics
Changing available history can change the first eligible setup and later active-trade sequencing.
━━━━━━━━━━━━━━━━━━━━━━
⚠️ LIMITATIONS AND SHORTCOMINGS
━━━━━━━━━━━━━━━━━━━━━━
This script has important limitations.
It does not guarantee profitable trades.
It does not predict future price movement with certainty.
It does not execute orders.
It does not place broker Stop Loss orders.
It does not place broker Take Profit orders.
It does not calculate position size.
It does not calculate account risk.
It does not include spread.
It does not include commission.
It does not include slippage.
It does not include latency.
It does not include swap or financing.
It does not include taxes.
It does not model partial fills.
It does not model order rejection.
It does not model contract specifications.
It does not model tick-by-tick execution.
It uses historical OHLC bars.
It cannot always determine whether Stop or target occurred first inside one candle.
It resolves same-candle ambiguity in favor of the active Stop.
It begins trade-management checks on the candle after Entry.
It requires right-side pivot confirmation.
It cannot identify a confirmed pivot on the original pivot candle.
It can react with delay when larger right-side values are used.
It rejects simultaneous high and low pivot confirmation.
It can reject setups through bias, session, strength, or cooldown rules.
It replaces an active tracked trade when a new eligible signal appears.
A replacement exit can close a trade before its mapped Stop or TP3.
Its Signal Strength is an internal score, not a probability.
Its volume component depends on available volume data.
Its dashboard is not Strategy Tester.
Its statistics are not audited.
Its Win Rate excludes exact 0R Break-Even results.
A positive Break-Even offset can classify a BE hit as positive R.
Its target hit rates use total trades started.
Its statistics depend on loaded chart history.
Changing settings recalculates historical behavior.
Alerts depend on PulseWire and user configuration.
Alerts do not guarantee broker execution.
━━━━━━━━━━━━━━━━━━━━━━
👤 WHO THIS SCRIPT MAY BE USEFUL FOR
━━━━━━━━━━━━━━━━━━━━━━
This script may be useful for traders who:
• understand pivot confirmation
• want BUY and SELL signals based on confirmed price pivots
• prefer a quality score instead of equal treatment for every pivot
• want separate Bullish and Bearish direction controls
• want London, New York, or Custom session filtering
• want selectable ATR or structural stops
• want independently adjustable R targets
• want TP1- or TP2-based Break-Even
• want active trade levels on the chart
• want compact tooltips
• want loaded-history R statistics
• want a compact desktop dashboard
• want a reduced Phone Mode
• want detailed PulseWire alerts
• understand that historical chart results are not verified execution
It may be less suitable for users who:
• want signals on the original unconfirmed pivot candle
• want no pivot delay
• want tick-level backtesting
• want multiple simultaneous tracked trades
• want new signals ignored while a trade is active
• want historical completed-trade lines preserved
• want automatic broker execution
• want position sizing
• want commission and slippage modeling
• want guaranteed reversal signals
• interpret Signal Strength as win probability
• expect historical Win Rate to continue unchanged
━━━━━━━━━━━━━━━━━━━━━━
🧭 BEST-PRACTICE SUGGESTIONS
━━━━━━━━━━━━━━━━━━━━━━
For studying pivot sensitivity:
• begin with equal high and low pivot settings
• compare smaller and larger left / right values
• remember that right-side values directly affect delay
For studying raw signal behavior:
• use Both Trend Bias
• use All Sessions
• use a moderate minimum strength
• review every accepted BUY and SELL
For directional study:
• use Bullish or Bearish
• compare results separately
• do not assume one direction will remain superior
For session-based review:
• compare All Sessions with London or New York
• use the exchange’s actual liquidity characteristics
• remember that active trades remain managed outside the session
For Signal Strength:
• begin with 55
• compare frequency at 45, 55, and 65
• review the five components
• do not interpret the percentage as guaranteed probability
For risk mapping:
• begin with ATR 14 and 2.0 multiplier
• compare ATR with Pivot Level
• compare Pivot Level with Pivot + ATR Buffer
• maintain logical TP1 < TP2 < TP3 values
For Break-Even:
• compare Off with After TP1
• test After TP2 for wider trade development
• keep the tick offset realistic for the instrument
For chart clarity:
• use Auto for general use
• use Dark or Light when manual control is preferred
• use Phone Mode on smaller screens
• move the dashboard away from important price action
• adjust label size according to chart density
Always:
• wait for confirmed signals
• review broader market structure
• review liquidity and volatility
• review news risk
• define personal account risk
• calculate position size independently
• test the exact symbol, timeframe, and data feed
• inspect failed trades as well as successful trades
• recreate alerts after important configuration changes
━━━━━━━━━━━━━━━━━━━━━━
🔓 PUBLICATION NOTE
━━━━━━━━━━━━━━━━━━━━━━
Pivot Sniper Method is published as an educational pivot-confirmation, signal-quality, session-filtering, risk-mapping, Break-Even, statistics, and alert tool.
The purpose of this description is to explain:
• how pivots are confirmed
• why signals appear after the original pivot
• how BUY and SELL candidates are formed
• how simultaneous pivot conflicts are rejected
• how Trend Bias affects eligibility
• how session filtering affects new entries
• how cooldown affects frequency
• how the five Signal Strength components work
• why Signal Strength is not a probability
• how Entry is defined
• how each Stop Loss Mode works
• how invalid structural stops fall back to ATR
• how TP1, TP2, and TP3 are calculated
• how Break-Even activates
• why Entry disappears after BE becomes active
• how same-candle Stop / target ambiguity is handled
• how active trades are replaced by new eligible signals
• how internal R statistics are calculated
• what the dashboard displays
• how Phone Mode differs
• what alerts include
• what the script does not simulate
• why historical results can change
The script is designed to support structured review.
It does not promise profitable results.
It does not remove market risk.
It does not replace independent analysis.
It does not replace personal risk management.
━━━━━━━━━━━━━━━━━━━━━━
🕒 REPAINTING, BACKPLOTTING, AND TIMING DISCLOSURE
━━━━━━━━━━━━━━━━━━━━━━
Pivot Sniper Method uses confirmed price pivots.
Pivot confirmation requires future candles relative to the original pivot location.
The number of required right-side candles is controlled independently for pivot highs and pivot lows.
The script does not know that a pivot exists on the original pivot candle.
After the required right-side candles complete:
• the pivot becomes confirmed
• the candidate is evaluated
• Signal Strength is calculated
• filters are applied
• the BUY or SELL label can appear on the confirmation candle
• the tracked Entry can open at the confirmation-candle close
The BUY or SELL trade label is not plotted back on the original pivot candle.
The Entry is not backdated.
Signals require confirmed chart bars.
This reduces unfinished current-bar variation.
It does not remove:
• pivot confirmation delay
• differences between historical OHLC and tick sequence
• data-feed differences
• changes caused by settings
• changes caused by loaded history
• market risk
Historical results can change when:
• pivot settings change
• Trend Bias changes
• session settings change
• cooldown changes
• strength settings change
• ATR settings change
• Stop Loss Mode changes
• target settings change
• Break-Even settings change
• symbol changes
• timeframe changes
• exchange or broker feed changes
• available chart history changes
Users should interpret the original pivot price as historical structure and the later BUY / SELL candle as the actual confirmed signal timing.
━━━━━━━━━━━━━━━━━━━━━━
🛡️ DISCLAIMER
━━━━━━━━━━━━━━━━━━━━━━
Pivot Sniper Method is provided for educational and informational purposes only.
It does not constitute financial, investment, trading, legal, accounting, or tax advice.
No indicator can guarantee future results.
Markets are uncertain.
Price structure changes.
Volatility changes.
Liquidity changes.
Volume behavior changes.
Session behavior changes.
Historical chart behavior does not ensure future performance.
Every user is responsible for their own:
• analysis
• validation
• symbol selection
• timeframe selection
• pivot settings
• directional bias
• session selection
• quality threshold
• Stop Loss selection
• target planning
• Break-Even selection
• position sizing
• risk management
• alert configuration
• trading decisions
• broker execution
• legal obligations
• tax obligations
The pivots, BUY labels, SELL labels, Signal Strength values, Entry levels, Stop Loss levels, Break-Even levels, TP1 levels, TP2 levels, TP3 levels, active lines, labels, tooltips, dashboard values, Win Rate, NET R, Average R, target hit rates, and alerts are visual analysis tools only.
A confirmed pivot is not a guaranteed reversal.
A high Signal Strength value is not a guaranteed winning trade.
A TP label is not proof of an actual broker fill.
A Stop Loss event is not proof of an actual broker fill.
The dashboard is not verified account performance.
The statistics are not audited.
The script does not include spread, commission, slippage, latency, financing, taxes, partial fills, order rejection, position sizing, account equity, or broker-specific execution.
Use the script as a structured pivot-reversal review, trade-mapping, and monitoring framework—not as a promise of profitability or a substitute for independent judgment.
Indicator

Probabilistic ProjectionMost projection tools extend the recent trend or calculate a single average return. Probabilistic Projection uses a more comprehensive approach: it examines the full range of returns that followed comparable historical conditions.
The method can be understood through one question:
When this market had a similar trend and level of volatility in the past, what happened over the following 6 months, 1 year or 2 years?
The indicator collects these historical forward returns, builds a complete probability distribution, and displays:
• The median historical outcome
• A configurable central range of outcomes
• The quality of the available sample
Similar historical conditions receive additional weight, but they are never allowed to dominate the model. At least 65% of the calculation always comes from the complete historical distribution.
This balance is important. Using only a few similar periods can produce unstable conclusions, while using only a long-term average ignores the current market environment. Probabilistic Projection combines both sources of information while automatically reducing the influence of unreliable samples.
WHY THIS APPROACH IS ROBUST
The model is designed to reduce several common sources of error:
• It evaluates a distribution of outcomes instead of producing one deterministic target.
• It uses confirmed daily data rather than incomplete higher-timeframe values.
• It remains independent of the chart timeframe.
• It limits the influence of trend and volatility conditioning.
• It gives less weight to conditional information when the sample is insufficient.
• It pulls unstable estimates back toward the global historical median.
• It widens the projection range when data quality is lower.
• It distinguishes sample quality from prediction accuracy.
• It uses standard market prices, including on non-standard charts.
A one-year projection therefore remains approximately one year whether the indicator is viewed on a 5-minute, daily or weekly chart.
HOW THE DISTRIBUTION IS BUILT
Three projection horizons are available:
• 6 months: 126 trading days
• 1 year: 252 trading days
• 2 years: 504 trading days
For each monthly projection step, the script measures what the market actually returned over the same forward horizon at different points in its history.
Historical sample endpoints are separated by approximately 21 trading days. The script can use up to 225 observations at each step, depending on the available history.
The final distribution combines three components:
1. Complete historical distribution
Every valid observation contributes to the baseline. This ensures that the model retains information from different market environments, including periods that do not resemble the current one.
2. Trend context
The latest confirmed daily close is compared with a 202-day simple moving average.
Historical observations that began in the same broad trend state can receive additional weight. Trend conditioning cannot contribute more than 12% of the total calculation.
3. Volatility context
The model calculates realized volatility from 21-day daily returns and ranks it over approximately three years.
Historical periods with a similar volatility rank can also receive additional weight. Volatility conditioning cannot contribute more than 28%.
The combined conditional contribution is capped at 35%. The complete historical distribution always retains at least 65% of the total weight.
If too few comparable observations are available, the corresponding trend or volatility weight is automatically reduced or disabled.
READING THE PROJECTION
Solid central line
The solid line represents the median of the reliability-adjusted distribution.
Because expected returns are less stable than return dispersion, the conditioned median is partially pulled back toward the global historical median. This limits the influence of temporary or poorly represented market conditions.
Dashed boundaries
The dashed lines represent a configurable central range:
• 60%: P20 to P80
• 70%: P15 to P85 (default)
• 80%: P10 to P90
The 60% setting focuses on more central outcomes. The 80% setting includes a broader range of historical scenarios.
When data quality is lower, the distance between the median and the boundaries is expanded. The projection becomes more cautious rather than displaying the same apparent precision with a weaker sample.
Shaded range
The optional shaded area makes the distribution easier to read. It represents a percentile-derived range of historical scenarios, not a confidence interval or guaranteed future coverage.
Each point is calculated from the return distribution corresponding to its own horizon. The connected lines help visualize how the median and dispersion evolve over time; they are not individual simulated market paths.
INFORMATION PANEL
Annualized median projection
The median return at the selected terminal horizon is converted into an annualized percentage. This makes the six-month, one-year and two-year projections easier to compare.
It describes the center of the modeled historical distribution. It is not an expected return or a performance promise.
Data quality
The data-quality score evaluates whether enough historical information is available. It considers:
• The number of valid observations
• The overlap between long-horizon observations
• An estimate of the effective independent sample size
• The minimum sample required to display the projection
This score measures the strength of the historical sample, not the probability that the projection will be correct.
CONFIRMED DATA AND LIVE PRICES
The statistical model uses completed daily observations. The optional regime channel also uses confirmed source-timeframe values.
The projected returns are rescaled to the live standard-market close. The displayed price levels can therefore move while the current chart bar is open, but the underlying historical distribution remains based on confirmed data.
On Heikin Ashi and other non-standard charts, the model uses the standard instrument rather than synthetic candle prices.
OPTIONAL REGIME CHANNEL
The optional regime channel provides separate higher-timeframe context and does not alter the probabilistic projection.
It evaluates:
• Price relative to fast and slow moving averages
• Momentum
• Direction of the slow moving average
• Percentage distance from the slow average
• ATR-based expansion
Its boundaries use the larger of a minimum percentage distance or an ATR-based distance. Optional smoothing changes only the visual transition between confirmed levels.
INTENDED USE
Probabilistic Projection is designed primarily for medium- and long-term analysis of broad equity indices.
It can help users:
• See the range of outcomes that historically followed comparable conditions
• Compare potential upside and downside asymmetry
• Understand how uncertainty expands with the projection horizon
• Identify when the historical evidence is limited
• Add a statistical framework to portfolio and risk decisions
No historical method can know the future. Market distributions change, long-horizon samples overlap, and unprecedented events cannot be represented.
Probabilistic Projection is a descriptive probability model, not a price target, trading signal or standalone trading system.
Indicator

Liquidity Sweep Reversal & Continuation A liquidity-sweep detector that classifies each sweep into a Reversal or Continuation setup, with a live dashboard and built-in entry signals.
Overview
This indicator tracks recent swing highs and lows as active liquidity levels — the pools of resting stop orders that tend to sit just beyond obvious structure. When price wicks beyond one of those levels and closes back inside it, that's flagged as a liquidity sweep (a stop hunt), and the level is removed from tracking since it's been used.
What makes a sweep useful for trading is context: the same sweep can mean two very different things depending on the broader trend.
A sweep against the prevailing higher-timeframe trend is treated as a Reversal setup — often a sign of exhaustion or a stop-hunt marking a turn.
A sweep with the prevailing higher-timeframe trend is treated as a Continuation setup — a shakeout before the trend resumes.
How it works
Liquidity levels — pivot-based swing highs/lows are plotted as dashed lines and tracked until swept.
Sweep detection — a wick beyond a level followed by a close back inside it triggers a sweep event.
Confirmation filters (all optional/toggleable):
Displacement candle — requires real conviction in the sweep candle's body, measured against ATR.
Volume spike — requires above-average participation on the sweep.
Follow-through confirmation — waits for price to break beyond the sweep candle's high/low within a configurable number of bars before actually firing a signal, rather than firing on the wick alone.
Trend context — an EMA-based bias, either local or from a higher timeframe, determines whether a confirmed sweep gets classified as Reversal or Continuation.
Signal quality grading — each fired signal is graded High/Medium/Low based on how many confirmation factors (displacement, volume, ADX alignment) lined up.
Dashboard
Shows the current trend context, the most recent sweep and its price level, whether a signal is currently pending follow-through confirmation, ADX/volume readings, the last signal fired and its quality grade, and running daily counts of reversal vs. continuation signals by direction.
Inputs
Every stage is configurable: pivot lookback and max tracked levels, trend context source (local EMA or HTF EMA) and timeframe, displacement/volume/follow-through confirmation toggles and thresholds, ADX length and trend-strength threshold, and dashboard placement/size.
How to use it
This is a discretionary tool for reading liquidity-driven price action, not a standalone automated system:
Use the Trend Context row to understand what a fresh sweep would mean before it happens.
Treat Reversal signals as higher-risk, contrarian setups — they work best with strong confirmation (high signal quality, ADX alignment) rather than on the wick alone.
Treat Continuation signals as lower-risk, trend-following setups — a shakeout in the direction of the existing trend.
Use the Signal Quality grade to filter out weaker setups rather than acting on every marker.
As with any price-action tool, sweep frequency and quality vary significantly by instrument, timeframe, and the pivot/confirmation settings chosen — backtest and forward-test before trading it live.
Concepts used
This script implements the widely-used "liquidity sweep" / stop-hunt concept found across smart-money and price-action trading methodologies — the idea that price often trades just beyond obvious swing highs/lows to trigger resting stop orders before reversing or continuing. The pivot detection, sweep logic, confirmation filters, trend-context classification, and dashboard are an original implementation built specifically for this script.
Disclaimer
This script is provided for educational and informational purposes only and does not constitute financial advice. Trading involves substantial risk of loss and is not suitable for all investors. Past performance of any setup or strategy does not guarantee future results. Always do your own research and risk management before trading. Indicator

Adaptive TrendFlowAdaptive TrendFlow Strategy
Short Description
Adaptive TrendFlow is a professional trend-following strategy built around one objective principle: trade with the dominant trend, enter when momentum confirms, and manage risk using predefined rules instead of emotion.
The strategy combines a Higher Timeframe EMA filter with a Dual SuperTrend confirmation system to create clear, repeatable entries while providing flexible risk management, automation-ready alerts, and extensive customization for discretionary and algorithmic traders alike.
Philosophy
Every indicator attempts to answer one question:
"Should I be buying, selling, or doing nothing?"
Adaptive TrendFlow answers that question using objective trend confirmation rather than prediction.
Instead of trying to pick tops, bottoms, or anticipate reversals, the strategy waits for the market to prove its direction first. Once the higher timeframe trend, primary trend, and short-term momentum all agree, the strategy simply follows the flow until the market signals the trend has ended.
The objective is not to predict every move.
The objective is to participate in the highest-probability portion of sustained trends while removing as much emotional decision-making as possible.
Core Strategy Logic
The strategy is intentionally simple.
Every trade follows the same sequence:
1. Higher Timeframe Bias
The first question is:
"Should we even be looking for longs or shorts?"
Adaptive TrendFlow answers this using a Higher Timeframe 200 EMA.
Longs are only considered when price is above the confirmed Higher Timeframe EMA.
Shorts are only considered when price is below it.
Optionally, the EMA slope can also be required to confirm the direction of the trend.
Why?
Most losing trend trades occur when traders attempt to trade against the dominant market direction. The Higher Timeframe filter acts as the market's "compass," helping keep trades aligned with the prevailing trend.
2. Trend Guard (Slow SuperTrend)
Once the higher timeframe trend is confirmed, the strategy checks whether the primary trend is still intact.
This is the job of the Slow SuperTrend.
The Slow SuperTrend represents the structural trend rather than short-term momentum.
Why?
Markets often experience temporary pullbacks during healthy trends. Using a slower SuperTrend helps avoid exiting strong trends too early while providing a logical location for protective stops.
Think of the Trend Guard as defining whether the trade idea is still valid.
3. Flow Trigger (Fast SuperTrend)
Only after the market is aligned with the higher timeframe and primary trend does the strategy wait for momentum to return.
This is handled by the Fast SuperTrend.
Entries occur only when the Fast SuperTrend confirms renewed momentum in the direction of the existing trend.
Why?
This helps avoid entering trades during pullbacks or periods of indecision and instead waits for buyers or sellers to regain control.
The Fast SuperTrend acts as the trigger—not the trend itself.
Risk Management
Every trade begins with a predefined risk.
Adaptive TrendFlow includes multiple stop-loss methods to suit different trading styles, including:
Slow SuperTrend
Fast SuperTrend
Previous Swing Structure
ATR Stop
Hybrid Stop
Fixed Percentage
The Hybrid Stop combines trend structure with recent swing levels to provide a logical protective stop while automatically falling back to an ATR-based stop if the selected structure becomes invalid.
Why?
Good risk management starts before entering a trade.
Every position should know where it is wrong before it knows where it hopes to profit.
Exit Management
Markets don't always move the same distance.
For that reason, Adaptive TrendFlow supports several exit methods:
Trend Exit
Remain in the trade until the selected SuperTrend signals the trend has changed.
Why?
Trend-following systems often earn their largest returns from a relatively small number of extended trends. Exiting too early can reduce the long-term expectancy of the system.
Fixed Risk-to-Reward
Exit the entire position at a predefined multiple of initial risk.
Best suited for traders who prefer fixed trade management.
Partial Profit
Secure a portion of the position at a predefined target while allowing the remainder to continue following the trend using a trailing stop.
This attempts to balance consistency with the opportunity to capture larger moves.
Optional Filters
Adaptive TrendFlow includes several optional filters that can be enabled individually.
These filters are not required for the core strategy.
Instead, they provide additional ways to refine trade selection based on personal preference or market conditions.
Available filters include:
ATR Regime Filter
ADX Trend Strength Filter
Volume Confirmation
Distance from Trend Filter
Candle Expansion Filter
Session Filter
Each filter can be enabled or disabled independently.
Presets
Adaptive TrendFlow includes built-in presets for different trading styles:
Scalp
Designed for lower timeframes using a configurable Higher Timeframe filter.
Intraday
Balanced settings for active day traders.
Swing
Slower trend settings designed to capture larger market moves.
Custom
Allows complete manual control over every parameter.
Automation
Adaptive TrendFlow was built with automation in mind.
Features include:
Non-repainting calculations
Confirmed Higher Timeframe data
Fill-based trade management
Deterministic reversal logic
Structured JSON alerts
Confirmed-bar execution
This allows the strategy to integrate cleanly with webhook-based automation while ensuring alerts are generated from confirmed strategy events rather than unconfirmed intrabar conditions.
Dashboard
The integrated dashboard provides a quick overview of:
Higher Timeframe Bias
Trend Direction
Current Position
Trade State
Entry Price
Active Stop
Current R Multiple
Trade Quality Score
The Trade Quality Score is informational only and does not influence entries or exits.
Who Is This For?
Adaptive TrendFlow is designed for traders who prefer objective, rules-based decision-making over discretionary prediction.
It is suitable for:
Crypto
Forex
Indices
Stocks
Futures
and can be used for discretionary trading, backtesting, or fully automated execution.
Important Notes
No trading strategy can eliminate risk or guarantee profits.
Adaptive TrendFlow is a trend-following system. Like all trend-following approaches, it will generally perform best in directional markets and may experience periods of underperformance during sideways or highly choppy conditions.
Use appropriate position sizing, realistic commission and slippage assumptions, and thoroughly test any configuration before deploying it in live markets. Strategy

Indicator

Session Liquidity Architecture [MQLSoftware]Session Liquidity Architecture reads the trading day as a repeating structure of sessions — and instead of restating fixed session folklore, it measures how the instrument on your chart actually behaves inside that structure.
Most session tools draw boxes and stop there. This indicator adds three algorithmic elements on top of the session-box base, and every number it prints is derived from the chart's own history.
Key Features
Self-calibrating session range model — every completed session range is ranked as a percentile of that session's own trailing distribution. The active session shows a live read: current range, % of its median, and the percentile it has already reached. No pip or point thresholds, no magic numbers — the model adapts to any symbol and timeframe by construction.
Session liquidity state machine — each session's High and Low arm at session close and are then tracked through explicit states: armed → swept → rejected or accepted. A sweep is only registered on a confirmed bar; the rejection read compares the sweep bar's close against the level. Levels that survive until the next same-session open are marked expired.
Measured base rates — the panel reports observed frequencies from the loaded history: how often London actually sweeps the Asia High or Low on this chart, how often New York sweeps the London extremes, and how often price closes back inside after each sweep. These are counted events with the sample size shown (n), not assumptions — and below a minimum sample the panel says "collecting" instead of quoting a percentage.
Three configurable sessions (Asia, London, New York) with per-session IANA timezones, so daylight-saving shifts are handled automatically.
Previous Day High / Low tracked through the same armed → swept state machine.
Day separators, per-session colors, and a compact statistics panel.
Core Concept — what is original here
Session boxes are common. The original contribution of this script is that it treats the session map as a measurement problem :
1. Percentile-ranked session ranges. A "big" or "quiet" session is only meaningful relative to that session's own recent distribution. Ranking the live range against the last N completed ranges of the same session produces a self-calibrating expansion read that works identically on FX majors, indices, or crypto — without any instrument-specific settings.
2. A liquidity state machine instead of static lines. Session extremes are treated as objects with a lifecycle (armed, swept, rejected/accepted, expired). Because state transitions happen only on confirmed bars, the sweep history you see on the chart is exactly the history the statistics are built from.
3. Base rates instead of narratives. The common claims about session behavior ("London takes out the Asia range", "the sweep reverses") become testable numbers here. A counted event is strictly defined: a sweep is the first confirmed-bar break of an armed level while the later session is active, and it counts as "rejected" when the sweep bar closes back inside the level. On some instruments the measured frequencies are strongly asymmetric; on others (for example 24/7 crypto) they hover near a coin flip — and the panel will honestly show you that. The point is to replace assumption with measurement on the exact chart you trade.
Anatomy of the Display
Session boxes — one box per session per day, labelled with the session name; completed boxes append the final range and its percentile (e.g. "LONDON 0.00421 · P63").
Level lines — each session's High/Low extends right from the moment it arms at session close. A red ✕ mark shows where it was swept. Untouched levels turn dotted when they expire at the next same-session open.
PDH / PDL — dashed lines for the previous day's extremes, same sweep marking.
Statistics panel — one row per session (live or last range + percentile, and the state of its levels; states shown during a live session are prefixed "prev" because they belong to the previous cycle), followed by the measured base-rate block with sample sizes.
Notes on Repainting
Sweep events, rejection reads, base-rate counters and all alerts fire on confirmed bars only and do not repaint.
Session boxes, the live range and the live percentile update intrabar while a session is open — they are visual context for the current session, not signals.
No security() calls, no lookahead: everything is computed from the chart's own bars.
Boxes and level lines are drawing objects anchored to past bars by design (a session box spans its session, a level line starts at the bar of the extreme). This affects only how history is displayed, never the event logic.
Typical Analysis Workflow
Check the panel: how much of its typical range has the active session already used? A session at 40% of median is quiet by its own history; one at P90 has already been unusually wide for that session. These numbers describe the distribution so far — they do not predict what the next bar will do.
Watch the armed levels from the prior session and the previous day: they are the objective reference points the state machine is tracking.
When a sweep prints, read the rejection/acceptance tag and compare it with the measured base rate for that exact scenario on this chart.
Configuration
Session hours and timezone per session (defaults: Tokyo 09:00–18:00 JST, London 08:00–17:00 UK, New York 09:30–16:00 ET). Futures/FX traders can widen them or repurpose a slot as a killzone.
Rendering depth, box transparency, day separators, PDH/PDL on/off.
Sweep marks: Minimal (small ✕ text) or Pill, and how many days of marks to keep.
Stats lookback (sessions) for the percentile model; panel position and text size.
Markets and Timeframes
Intraday timeframes only (the script tells you if the chart is not intraday). Best readability from 5m to 1h. Works on FX, indices, futures, stocks and crypto — on 24/7 markets the session definitions matter more than the defaults, so adjust the hours to your venue.
Alerts
Liquidity swept — any session extreme or PDH/PDL taken (confirmed bar). The alert() message names the exact level and outcome, e.g. "EURUSD 60 — liquidity swept: ASIA H (rejected)".
Session range expansion — the active session crossed the 80th percentile of its own history.
Session opened.
This is a visual analytical tool for chart reading and session-structure context. It does not generate buy/sell signals, does not execute trades, and does not provide financial advice. Indicator

TA4j Kalman FilterMany "Kalman" indicators available on PulseWire are actually static Alpha-Beta filters with fixed-gain moving averages that lack dynamic state estimation.
This indicator is a direct port of the 1D Discrete Kalman Filter from TA4j's KalmanFilterIndicator . Instead of relying on a static "length" or arbitrary smoothing multiplier, this script acts as a probabilistic state estimator. It calculates dynamic error covariance on every bar to constantly weigh which is more trustworthy: the ongoing trend (Prior State) or the newest price bar (Measurement).
How to Tune Q and R
Because this is a true Kalman Filter, it does not use a standard "lookback length." Instead, it is tuned using two distinct variance parameters. The behavior of the filter is dictated entirely by the ratio between these two numbers.
• Process Noise (Q) - "How fast is the true trend changing?"
• This represents your baseline expectation of actual, structural price movement.
• Increase Q if you want the filter to be highly responsive and hug the price action closely.
• Trader Translation: High Q = Fast/Low-Lag Moving Average.
• Measurement Noise (R) - "How chaotic is the current market?"
• This represents your expectation of standard market noise, chop, and fake-outs.
• Increase R if you believe the asset is highly erratic and you want the filter to ignore sudden price spikes, trusting the underlying trend instead.
• Trader Translation: High R = Slow/Smooth Moving Average.
The Golden Rule of Tuning:
If you set $Q$ and $R$ to identical values (e.g., $Q = 0.01$ and $R = 0.01$), the filter balances the two equally.
• To filter out heavy volatility (crypto/low-timeframes), make $R$ significantly larger than $Q$ (e.g., $Q = 0.0001, R = 0.01$ ).
• To track momentum breakouts closely, make $Q$ larger than $R$.
Technical Caveat:
Because this is a steady-state 1D implementation with constant $Q$ and $R$ inputs, the Kalman Gain will be highly dynamic during the initial chart history but will mathematically converge to a steady state.
Indicator

RTF Fib Extensions RTF Fib Extensions — Auto Swing Fibonacci Retracements & Extensions
Automatic fib tool that detects the most recent swing high/low over a configurable lookback and plots retracement and extension levels off it — no manual anchoring required.
How it works: the indicator scans the last N bars (default 100) for the swing high and low, then determines direction based on which one is more recent. If the low formed after the high, it reads the move as bullish and projects levels upward; if the high formed after the low, it reads bearish and projects downward. Levels update live on every bar unless locked.
Features:
Auto swing detection with adjustable lookback
Auto bullish/bearish direction labeling
Retracements: 0, 0.236, 0.382, 0.5, 0.618, 0.786, 1
Extensions: 1.618, 2.618
Lock/Freeze toggle to pin levels to the current swing instead of recalculating every bar
Adjustable label side (left/right), offset, and text size for both level labels and the direction badge
Full color customization per level
How to use it: drop it on any chart/timeframe. Increase the lookback for higher-timeframe swings, decrease it for scalping. Use Lock once you're happy with the detected swing so levels stop shifting as new bars form. Extensions (1.618, 2.618) are the key zones to watch for continuation targets in the direction of the labeled trend; retracements mark pullback zones for re-entry. Indicator

Breakout Stocks Scanner Multi ExchangeBreakout Scanner (Stocks) is a professional, list-based scanner designed to identify high-quality breakout candidates using a clean on-chart table and alert framework.
The script supports a systematic workflow:
Scan, shortlist, confirm on chart, and execute using your preferred trading model.
Core Features
Scans a fixed list of symbols that can be edited in the code
Displays LONG and SHORT candidates in a table
Includes optional confirmation logic to reduce noise
Designed for intraday workflows and alert routing
Best Use
Recommended timeframes: 5m, 15m, and 1h, depending on your trading style
Use intrabar signals to capture faster breakouts, or bar-close signals for safer breakout confirmation
Use the scanner to identify candidates, then confirm the market structure on the chart before acting
For consistency and reproducibility, confirmations are best taken after the candle closes.
Intrabar movement can briefly trigger conditions that disappear before the bar finishes. Closed-bar signals reflect confirmed participation rather than temporary price spikes.
Edit the symbol list in the code to scan your preferred UK or US stocks.
Notes
This is a scanner, not a standalone trading strategy
Performance will vary depending on the current market regime
The scanner is generally most effective during expanding and trending market conditions
Always forward-test the script before using it for live trading
Jarvis Trading - Structure first, noise last. Indicator

AlphaVault - Regime FilterTwo long-term trend filters and one rule: price above both is a bull regime, below both is
a bear regime, anything in between is neutral. It plots the filters, tints the background
by state, marks each change, and shows how long the current state has held.
NO REPAINTING. Both filters are read from the previous COMPLETED daily and weekly bar
(lookahead_off plus a one-bar offset), so the regime shown for a closed bar never changes
afterwards. This is worth verifying yourself on any indicator you did not write: scroll
back, note the state on an old bar, reload the chart, and check it is the same.
What it is for: deciding whether to be doing anything at all. Most trend systems lose the
majority of their money trying to trade against a long-term downtrend, and a neutral state
is genuinely common — roughly a fifth of all bars on BTC since 2018. Treating "no clear
regime" as a valid answer rather than a gap to be filled is most of the value here.
What it is not: an entry signal. It tells you which direction is permitted, not when to
act, and it will keep you out of some large moves that begin before the filters confirm.
It is deliberately slow. On BTC it changes state a handful of times a year.
Defaults are a 200-period SMA on daily closes and a 20-period EMA on weekly closes. Both
lengths are configurable, though the defaults are the ones worth arguing about — a filter
you re-tune until it looks good on the chart in front of you has stopped being a filter.
Alerts fire on a turn to bull, a turn to bear, or any change. Regime changes are rare by
construction; an alert that fires constantly is one you learn to ignore.
Open source. Read it, change it, take it apart. Indicator

Indicator

NeuraWave - WaveTrend Momentum [NeuraLabs]NeuraWave is built on the WaveTrend engine (originally by LazyBear, open source): a momentum oscillator that measures how far price has stretched from its own average, then smooths that into two waves — a fast line (WT1) and a signal line (WT2).
The problem with the classic WaveTrend — and with most oscillators — is that it marks every cross. In ranging or choppy conditions that produces a stream of false signals, and the trader is left to filter them by eye.
NeuraWave does that filtering structurally. A cross is only marked as a signal when three conditions align:
Location — the cross occurs inside the oversold zone (buys) or overbought zone (sells). Crosses in the middle of the range are noise and are hidden by default.
Higher-timeframe alignment — the WaveTrend on a higher timeframe (weekly by default, configurable) must point in the same direction. The background shades subtly with the HTF bias so you always know your context.
Confirmation — signals are based on closed values only. Nothing is drawn early, nothing repaints after confirmation.
Divergence detection
NeuraWave automatically detects regular bullish and bearish divergences (pivot-based, on the signal line):
Bullish — price prints a lower low while the oscillator prints a higher low, inside the oversold zone: sellers are exhausting while price is still falling.
Bearish — price prints a higher high while the oscillator prints a lower high, inside the overbought zone.
Divergences confirm a set number of bars after the pivot (5 by default). That delay is honesty, not lag — any tool that claims to spot divergences faster is repainting.
A confirmed divergence followed by a qualified signal dot in the same zone is the highest-conviction setup this indicator produces.
How to read it
Background tint — your higher-timeframe bias. Green: look for longs only. Red: look for shorts only.
Waves and fill — fill color shows which side is winning (WT1 above or below WT2).
Histogram at the zero line — momentum acceleration. Shrinking bars warn of exhaustion before the lines actually cross.
Signal dots — the filtered signals described above. A dot is not "buy now"; it is momentum confirmation for a setup on your price chart. Momentum confirms, price decides.
"Div" labels — confirmed divergences.
Unlike a Stochastic RSI, WaveTrend is not bounded to 0–100. It does not pin against a ceiling in strong trends — how far it extends beyond the zones is itself information.
Settings
Channel Length (10), Average Length (21), Signal Length (4) — the core engine
Overbought 60 / 53, Oversold −60 / −53 — zone levels
HTF filter on/off, higher timeframe (default: W), background shading
Divergence detection on/off, pivot lookbacks and pivot range
Option to show every raw cross as small dots, full color customization
Alerts
Six built-in alert conditions: Buy signal, Sell signal, Bullish divergence, Bearish divergence, Overbought entry, Oversold entry.
Best use
Strongest on the 4H and daily charts with the weekly as the higher-timeframe filter. Built for Bitcoin, crypto and macro assets. On the highest timeframe you trade, disable the HTF filter or set it one step above.
This indicator does not predict. It confirms structure before capital is deployed.
Core WaveTrend concept by LazyBear (open source). Rebuilt in Pine Script v6 and extended by NeuraLabs.
For educational purposes only. Nothing in this script is financial advice. Indicator

Ultimate Deep Fibonacci & Institutional Chart Matrix ProUltimate Deep Fibonacci and Institutional Chart Matrix Pro
Overview
The Ultimate Deep Fibonacci and Institutional Chart Matrix Pro is a comprehensive visual framework designed for Pine Script v6. It combines Smart Money Concepts, dynamic support and resistance zones, session liquidity levels, and structural Fibonacci pricing into a unified chart layout.
This tool maps market structure transitions, identifies key institutional high and low swing levels, tracks Asian session ranges, and visualizes overall price flow through a custom smooth wave with integrated volume price background fill.
Core Features
Natural Price Wave and Shadow Fill
Maps underlying market momentum using a smoothed wave calculation.
Dynamically fills the space between the current close price and the wave line to visualize expanding or contracting momentum.
Color coded green for bullish conditions and red for bearish conditions.
Deep Institutional Fibonacci Matrix
Plots critical institutional Fibonacci levels based on recent market swings:
0.50 Equilibrium (EQ): The midpoint balance level.
0.618 Golden Zone: A primary level for premium or discount interest.
0.786 Deep Discount: A deep structural reversal or continuation level.
Dynamic Support and Resistance Zones
Automatically draws extended resistance and support boxes using dynamic pivot points and Average True Range buffering.
Labels automatically project forward on the chart without obscuring live price action.
Major ITH and ITL Badges
Identifies significant Intermediate Term Highs (ITH, colored Red) and Intermediate Term Lows (ITL, colored Green).
Configurable lookback parameters filter out minor noise, focusing solely on major swing structural points.
Smart Money Concepts Structure
Detects and plots structural breaks:
BOS (Break of Structure): Signals trend continuation.
CHoCH (Change of Character): Signals potential market trend shifts.
Asian Session Liquidity Tracking
Tracks the high and low levels established during the Asian trading session.
Plots dotted projection lines until price breaks or sweeps these liquidity levels.
Dynamic Projection Arrow and Low Resistance Liquidity
Projects short term expected direction using Average True Range volatility metrics.
Highlights major liquidity pools based on key high and low boundaries.
On Screen Live Dashboard
Displays real time market stats in the top right corner, including Market Flow, Golden Zone values, Asian Session status, Volatility, and Market Structure Alignment.
Settings Breakdown
Price Wave and Shadow Settings
Show Natural Price Wave and Fill Shadow: Enables or disables the wave line and its background fill.
Wave Sensitivity: Adjusts the lookback period for the wave calculation (Default: 20).
Shadow Transparency (0-100): Controls the background fill opacity.
Deep Fibonacci Matrix
Show Deep Institutional Fib: Enables or disables structural Fibonacci lines.
Fib Swing Lookback: Determines the number of bars evaluated for top and bottom Fibonacci anchors (Default: 40).
Dynamic Support and Resistance Box Zones
Show Dynamic Box S/R Zones: Toggles support and resistance box zones.
S/R Sensitivity: Controls the pivot detection length for drawing zones (Default: 20).
Major ITH and ITL Settings
Show Major ITH and ITL Badges: Toggles ITH and ITL visual markers.
Major ITH and ITL Lookback: Controls swing sensitivity to filter minor noise (Default: 20).
Projection and Liquidity Settings
Show Direction Projection Arrow: Toggles the forward projection arrow.
Arrow Forward Bars: Controls how far ahead the arrow projects (Default: 12).
Show Low Resistance Liquidity: Toggles liquidity baseline highlights.
Asian Liquidity and SMC Settings
Show Active Asian High / Low: Toggles Asian range tracking lines.
Show BOS and CHoCH Structure: Enables market structure labels.
Structure Sensitivity: Controls pivot lookback for structural breaks.
How to Use
Context Identification: Look at the Market Flow and Price Wave Fill Shadow to determine the directional bias (Bullish = Green, Bearish = Red).
Key Zone Mapping: Identify price interaction with the Support Zone or Resistance Zone. Monitor how price behaves near the 0.618 Golden Zone or 0.786 Deep Discount lines.
Structure Confirmation: Confirm structural updates via BOS or CHoCH markers. Look for ITH (Red) or ITL (Green) labels to mark key swing pivots.
Session Liquidity: Monitor the ASIA H and ASIA L dotted lines for potential liquidity sweeps during peak trading hours.
Things to Avoid
Avoid Over-Leveraging at Single Levels: Never rely on a single line or zone in isolation; always seek confluence across structural breaks and dynamic zones.
Avoid High Sensitivity on Low Timeframes: Setting swing sensitivities too low on lower timeframes can lead to excessive noise. Adjust lookback values according to your target timeframe.
Avoid Trading directly into major Resistance or Support: Exercise caution when opening new directional positions directly inside established Resistance or Support boxes.
Disclaimer
Trading financial markets involves significant risk and can result in the loss of your capital. This indicator is designed strictly for educational and analytical purposes to assist with visual market structure identification. It is not financial advice, investment recommendation, or a signal service. Always manage your risk responsibly, conduct your own independent research, and follow your own personalized trading plan. Indicator

Jurik Velocity Index Approximation🚀 JURIK VELOCITY INDEX APPROXIMATION (VEL)
The Jurik Velocity Index Approximation (VEL), engineered by gunebak4n, is an advanced, ultra-smooth, zero-lag momentum oscillator framework designed for PulseWire. Built upon the legendary signal-processing principles conceptualized by Mark Jurik (Jurik Research), this open-source implementation transforms classical price momentum into a noise-free, highly responsive velocity curve that pinpoints trend direction, momentum shifts, and market acceleration with surgical precision.
Classical momentum indicators suffer from a severe noise-versus-lag tradeoff: raw rate-of-change lines zig-zag violently, producing false alarms, while standard smoothing filters (such as moving averages) introduce unacceptable signal lag that degrades trade timing. VEL solves this by routing raw price momentum through an integrated Jurik Moving Average (JMA) engine. The result is an exceptionally smooth, lag-free velocity curve that detects directional reversals well ahead of traditional trend indicators.
💡 CORE DESIGN PRINCIPLES
🧭 Zero-Lag Smooth Momentum Engine
Classical momentum relies on raw price differentials, resulting in high-frequency noise. VEL strips out market chatter without adding lag, revealing the true underlying velocity of price movement.
🎛️ JMA Adaptive Filtering Engine
By passing the momentum input through a multi-stage Jurik filter, market noise is suppressed while preserving sharp turning points and critical reversal signals.
🎚️ Modular Phase & Power Control
Provides modular fine-tuning controls:
• Phase (-100 to +100): Adjusts the balance between lag reduction and overshoot prevention. Positive values accelerate responsiveness for fast-moving markets, while negative values yield smoother curves.
• Power: Controls the acceleration exponent of the smoothing curve, allowing traders to customize how aggressively the filter adapts to price velocity.
💡 KEY FEATURES
• ATR Normalization Engine: Optional volatility normalization scales momentum relative to ATR, making VEL scale-independent across Crypto, Forex, Equities, and Indices.
• Momentum Acceleration Histogram: Displays the difference between VEL and a secondary JMA signal line in a faded, visually discreet histogram to measure true momentum acceleration and deceleration.
• Multi-Timeframe (MTF) Integration: Fetch higher-timeframe velocity directly onto your execution chart for seamless macro trend alignment.
• Automated Divergence Detection: Built-in pivot scanner detects Bullish and Bearish divergences between price action and velocity oscillations.
• Dynamic Trend & Bar Coloring: Automatically colors chart price bars and the VEL curve based on real-time momentum direction.
• Comprehensive Alert Engine: Equipped with pre-configured, non-repainting alertcondition events for zero crossovers, signal crossovers, and divergence alerts.
🔬 MATHEMATICAL ARCHITECTURE
• Raw Momentum = Price - Price
• Volatility Scaling = (Enable ATR Norm) ? (Raw Momentum / ATR(14)) * 100 : Raw Momentum
• Derive Beta & Alpha Coefficients from Length and Power
• Apply Multi-Stage Recursive JMA Filter with Phase Ratio adjustment
• JMA(Normalized Momentum) => Primary VEL Output
• Signal Line = JMA(VEL, Signal Length, Signal Phase, Signal Power)
• Acceleration Histogram = VEL - Signal Line
🛠️ USAGE FRAMEWORK
1. Zero Line Crossovers (Velocity Shift)
• VEL Crossing Above 0: Confirms positive price velocity (bullish momentum). Focus on long entries or trend continuations.
• VEL Crossing Below 0: Confirms negative price velocity (bearish momentum). Focus on short entries or trend continuations.
2. Histogram Slopes (Momentum Acceleration)
• Expanding Histogram: Indicates accelerating momentum in the current trend direction.
• Shrinking Histogram: Early warning of momentum decay before price actually turns.
3. Divergence Analysis
• Bullish Divergence: Lower price lows paired with higher VEL lows indicate seller exhaustion and an impending bullish reversal.
• Bearish Divergence: Higher price highs paired with lower VEL highs indicate buyer exhaustion and an impending bearish reversal.
⚙️ SYSTEM CHARACTERISTICS
• Zero Repainting: All calculations strictly evaluate on closed historical bar states.
• Fully Parameterized Inputs: Customize period length, phase, power, ATR normalization, MTF timeframes, divergence lookbacks, bar coloring, and color themes.
• Asset-Agnostic Engine: Operates with scale-independent precision across Equities, Forex, Crypto, Commodities, Futures, and Indices.
• Clean & Modern UI: Built to Pine Script v6 standards and optimized for visual clarity on both dark and light chart themes.
📌 CREDIT & ATTRIBUTION
The Jurik Velocity Index Approximation script is engineered and published by gunebak4n on PulseWire.
This indicator is based on the mathematical concepts of the Jurik Velocity Index (VEL) originally conceptualized by Mark Jurik (Jurik Research).
⚠️ DISCLAIMER
This script is an open-source community implementation and mathematical approximation of the VEL concept. It is not affiliated with, officially supported by, or endorsed by Mark Jurik or Jurik Research. This indicator is a technical analysis visualization tool and does not provide financial advice, automated trading signals, or profit guarantees. Always perform thorough backtesting and practice strict risk management. Indicator

Multi-Confluence Signal Engine [MarkitTick]💡 A confluence-weighted signal engine that scores trend, momentum, volume, and market-structure conditions independently, then blends them into two composite 0–100 readings — a Bull Score and a Bear Score — to identify moments where multiple independent forces align in the same direction. Rather than reacting to one indicator crossing one line, this script asks four different questions about price behavior at once and only flags a signal when the weight of evidence clears a threshold you control.
✨ Originality and Utility
Most confluence or "confirmation" scripts on PulseWire work by checking a fixed list of conditions and requiring all of them, or a majority of them, to be true — a rigid AND/OR gate. This script instead builds four independent sub-scores (Trend, Momentum, Volume, Structure), each internally weighted by the relative importance of its own components, and then combines those four legs using user-defined percentage weights into a single continuous score. The practical difference is that a trader can decide, for example, that market structure matters twice as much as volume for their instrument, and the engine will respect that priority mathematically rather than treating every condition as equally binary.
The engine does not stop at "yes/no." Each leg produces a 0–100 magnitude, visible individually on the dashboard, so a trader can see not just that a signal fired but which of the four legs was doing the heavy lifting. A signal driven primarily by Structure (a break of a swing high with rising highs and lows) has a different character than one driven primarily by Volume (a spike on an up-close candle), even if both produce the same final score. This decomposition is what separates the tool from a simple scoring checklist: the score is diagnostic, not just directional.
On top of scoring, the script layers a full trade-management shell: ATR-based stop placement, three R:R-defined take-profit levels, a minimum-bar-gap cooldown to prevent signal clustering, a minimum score-gap requirement between the bull and bear reading to avoid firing on a coin-flip, an optional higher-timeframe trend filter, and an optional ATR-based volatility filter to suppress signals during dead, choppy conditions. This turns a scoring model into a usable end-to-end signal-and-management framework rather than a standalone oscillator.
🔬 Methodology and Concepts
• Trend Leg
The trend component is built from three EMAs — Fast, Slow, and Macro — calculated with a manual recursive EMA function rather than the built-in, giving explicit control over the smoothing seed. Four conditions are checked: whether the Fast EMA sits above (or below) the Slow EMA, whether price trades above (or below) the Macro EMA, and whether the Fast and Slow EMA slopes (measured as simple rate-of-change over a lookback window) are rising or falling. Each condition contributes a fixed point value toward either the bullish or bearish trend sub-score, weighted so that the Fast/Slow EMA relationship and the price-vs-Macro relationship carry the most influence, with slope direction acting as a secondary confirmation.
• Momentum Leg
Momentum blends RSI positioning relative to a configurable midline, MACD line-vs-signal crossover state, and MACD histogram direction (rising or falling versus the prior bar). Each of the three contributes roughly a third of the momentum sub-score, meaning momentum only reads as strongly bullish or bearish when oscillator position, trigger-line relationship, and histogram acceleration all agree.
• Volume Leg
Volume scoring looks for two things: whether current volume exceeds a multiple of its moving average (a "spike") occurring on a candle that closed in the corresponding direction, and whether volume is simply expanding bar-over-bar in that same direction. A volume spike on a directional candle carries the larger weight, since an expanding-but-unspiked volume reading is a weaker signal of conviction than an outright surge.
• Structure Leg
This is a swing-based market-structure read. Pivot highs and lows are detected with a symmetric lookback window (a bar must be the extreme point within a window of bars on both sides to qualify), and the script tracks the two most recent pivot highs and two most recent pivot lows. A bullish structure state requires both the pivot highs and pivot lows to be printing progressively higher (higher highs, higher lows); a bearish state requires the mirror condition. Separately, the script tracks a "break of structure" — price closing beyond the last confirmed pivot high or low in a direction that differs from the currently tracked structural bias — as an additional, heavier-weighted structural signal.
• Composite Scoring
The four leg scores are combined using a weighted average, where the weights (Trend / Momentum / Volume / Structure) are fully configurable and normalized against their own sum, so the four percentages do not need to add to exactly 100 to remain internally consistent. The result is a Bull Score and a Bear Score, each independently ranging from 0–100, which are then bucketed into Strong, Medium, Weak, or None tiers based on two adjustable thresholds.
• Signal Confirmation Logic
A raw long or short condition requires the relevant score to clear the Medium threshold, the gap between the bull and bear scores to exceed a minimum separation (preventing signals when both sides are nearly tied), an optional higher-timeframe trend agreement check, an optional minimum-volatility check using ATR as a percentage of price, and a minimum bar-count since the last signal in that direction. Signals are only confirmed on a closed bar (barstate.isconfirmed), so the plotted signal state does not repaint on the current, still-forming bar.
• Higher-Timeframe Filter
When enabled, the script requests the prior, fully closed value of price and a slow EMA from a higher timeframe using an offset lookback, which is the standard non-repainting method for pulling higher-timeframe context — it deliberately reads the last confirmed HTF bar rather than the in-progress one, so this filter does not introduce forward-looking bias.
🎨 Visual Guide
• Heatmap Candles
When enabled, candle bodies, wicks, and borders are recolored using the Bull/Bear/Neutral color inputs based on which composite score currently leads and whether it clears the Medium tier — teal-family for a leading bull score at or above Medium, red-family for a leading bear score at or above Medium, and gray for anything below that threshold on both sides.
• EMA Lines
Three plotted lines track the Fast EMA (blue by default), Slow EMA (orange by default), and Macro EMA (purple by default). Their relative position and slope are the visual counterpart of the Trend Leg's underlying math.
• Score Labels
When a long signal fires, a label appears below that bar showing the rounded Bull Score. When a short signal fires, a label appears above that bar showing the rounded Bear Score. These give an at-a-glance read of how strong the triggering signal was without opening the dashboard.
• Trade Levels
On a confirmed signal, the script draws a full set of horizontal levels: a Stop-Loss line (red, with an "✕ SL" label), an Entry line (blue dashed, "▶ Entry" label), and three Take-Profit lines at increasing R:R multiples (teal dashed, "◆ TP1", "✦ TP2", "◆ TP3" labels, with opacity increasing from TP1 to TP3). Shaded fills connect Entry-to-Stop (risk zone) and Entry-to-TP3 (reward zone) so the risk/reward geometry is visible at a glance. These levels extend forward automatically as new bars form and are replaced whenever a fresh signal fires, unless the Lock Signal input is enabled, in which case the current level set is frozen and new signals are suppressed from redrawing them.
• Dashboard
An optional on-chart table (position configurable to any corner) summarizes, per bar: the current lock state, the Bull Score and Bear Score as filled progress bars with a percentage, the Bull Tier and Bear Tier classification, each of the four leg scores as its own progress bar, the current volume ratio versus its moving average, and the current ATR as a percentage of price. The progress bars use a three-color scale (teal / amber / red) based on how far the underlying reading sits from its maximum, giving a quick visual read of leg strength without needing to interpret raw numbers.
📖 How to Use
A long condition is flagged only when the Bull Score clears the Medium threshold, leads the Bear Score by at least the configured minimum gap, and passes whichever optional filters (HTF trend, volatility) are enabled — the mirror logic applies to short conditions. The dashboard's per-leg bars are useful for judging signal quality beyond the headline score: a Strong-tier signal backed by all four legs reading high is generally a more complete confluence than one where the composite score is inflated mostly by a single leg such as Volume.
The Lock Signal input is intended for reviewing a specific historical signal's levels without them being overwritten as price continues to move — enable it to freeze the current Entry/SL/TP level set in place, and disable it to resume normal level updates on the next fresh signal.
Because trade levels are geometric projections from ATR and R:R inputs at the moment of signal, not a guarantee of price reaching those levels, they should be read as a structured reference for planning position size and exits rather than a forecast.
⚙️ Inputs and Settings
• Core Settings
Strong and Medium thresholds define the score tiers; the Minimum Bars Gap enforces a cooldown between signals in the same direction; the Minimum Score Gap requires clear separation between Bull and Bear scores before either can fire; the four Leg Weight inputs control how much each of Trend, Momentum, Volume, and Structure contributes to the composite score.
• Trend Leg
Fast, Slow, and Macro EMA lengths, plus the lookback window used to measure EMA slope direction.
• Momentum Leg
RSI length and midline, plus MACD fast/slow/signal lengths.
• Volume Leg
The moving-average length volume is compared against, and the multiplier that defines a "spike."
• Structure Leg
The symmetric lookback window used to confirm a swing pivot high or low.
• Filters
Optional higher-timeframe trend agreement filter (with selectable timeframe) and an optional ATR-based minimum-volatility filter, each of which can independently suppress signals that would otherwise fire.
• Trade Tools
ATR multiplier for stop distance, R:R multiples for the three take-profit levels, a toggle to show or hide the drawn levels, and the Lock Signal toggle to freeze the current level set.
• Visuals
Toggles for heatmap candle coloring, EMA line visibility, and score labels on signals.
• Dashboard
Toggle to show or hide the on-chart summary table and a dropdown to choose which corner it docks to.
• Alerts
Custom text strings for the long, short, close-long, and close-short alert JSON payloads, letting the alert output be adapted to match the syntax expected by an external webhook or automation endpoint.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
• Trend-Following Theory
The EMA-based trend leg draws on the long-standing empirical observation, formalized in academic momentum and trend-following literature, that asset prices exhibit serial correlation over intermediate horizons — trends, once established, have historically had a higher-than-random probability of persisting over the following period. Dual and triple moving-average crossover systems are among the earliest systematized expressions of this idea, and the slope-of-the-average component reflects the concept of trend "velocity" used in later technical and quantitative trend-strength research.
• Oscillator and Convergence-Divergence Theory
RSI, developed by J. Welles Wilder, is grounded in the idea that the ratio of average gains to average losses over a lookback window reflects the relative strength of buying versus selling pressure, oscillating within bounds that can indicate overbought/oversold conditions or, as used here, simple directional bias relative to a midline. MACD, developed by Gerald Appel, formalizes convergence and divergence between two exponential averages of differing sensitivity; the histogram (the difference between the MACD line and its own signal line) captures acceleration or deceleration in that relationship, which is the specific behavior this script isolates when checking histogram direction.
• Volume-Price Confirmation Theory
The volume leg reflects classical Dow Theory and later volume-price-analysis principles holding that price moves accompanied by above-average volume carry more conviction than moves on thin volume, since volume is treated as a proxy for the degree of market participation and consensus behind a price change.
• Market Structure and Price-Action Theory
The structure leg operationalizes the concept of market structure as used in classical Dow Theory (a sequence of higher highs and higher lows defining an uptrend, and the reverse for a downtrend) and its more recent "break of structure" formalization in price-action and smart-money-concept methodologies, where a close beyond a prior swing point is treated as evidence of a shift in the controlling side of the market.
• Weighted Multi-Factor Aggregation
Combining independently normalized sub-scores via user-adjustable weights mirrors the logic of multi-factor models in quantitative finance, where distinct signal families (trend, momentum, volume, structure/mean-reversion) are each scored on a common scale and then blended, rather than relying on any single factor in isolation — the underlying premise being that signal families with low correlation to one another produce more robust composite readings than any single family alone.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. We expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

Indicator
