Session Edge Profiler | Flux ChartsGENERAL OVERVIEW:
The Session Edge Profiler is a statistical dashboard indicator that profiles up to five configurable trading sessions (Asia, London, NY AM, NY Lunch, NY PM by default) across the available completed trading days loaded on the chart. The indicator records each session's range, volume, directional outcome, and smart money structure (Fair Value Gaps, swing breaks, higher highs, lower lows) on every completed day, then surfaces the resulting statistics in a configurable on-chart dashboard with progress bars and best value markers.
For every metric, the indicator filters history by the selected weekdays. Range-based metrics are normalized against the previous daily ATR for cross-volatility comparison, while volume, directional, extreme, and structure metrics are calculated directly from completed session records. The indicator also computes percentile rankings of the current session range against its historical distribution. Session boxes can be plotted for visual reference, and a live label tracks the active session's running range against its historical average and percentile rank in real time. The indicator is statistical, session based, dashboard driven, and includes one alert condition for sessions exceeding the 90th percentile of their historical range distribution.
WHAT IS THE THEORY BEHIND THE INDICATOR?:
Markets do not move uniformly across the day. Each trading session carries different participant types, different volume profiles, and different structural behaviors. The Asia session tends to be range bound and accumulative. The London session frequently sweeps overnight liquidity. NY AM often produces the largest expansions of the day. NY Lunch is typically the lowest volume window. NY PM frequently reverses or extends NY AM moves into the close.
These tendencies are widely cited but rarely measured per instrument. The Session Edge Profiler quantifies them. By recording per session statistics across the historical window available on the chart, and by filtering by selected weekdays, the indicator builds an empirical profile of how each session has actually behaved on a specific symbol rather than relying on generalized assumptions. The result is a session level statistical profile that can be compared against the current session in real time, identifying when a given session is behaving unusually large, unusually quiet, or consistent with its historical edge.
SESSION EDGE PROFILER FEATURES:
◇ Session tracking with customizable times, names, and colors
◇ Statistical dashboard with up to thirteen configurable metrics
◇ ATR normalized range comparison across sessions
◇ Today percentile ranking of the live session range
◇ Daily extremes tracking (HOD %, LOD %)
◇ Directional statistics (Bull %, Continuation %)
◇ Volume profiling (Vol Share %, Avg Vol)
◇ Smart money structure analytics (FVGs, Swing Breaks, FVG Survival, HH, LL)
◇ Active session live label with real time percentile and average comparison
◇ Session range boxes with current and historical display
◇ Weekday filtering applied uniformly across all statistics
◇ Dashboard theming (Dark or Light), nine position options, and five text sizes
◇ High percentile range alert
SESSION TRACKING AND RANGE BOXES:
🔹What is Session Tracking?
Session Tracking is the foundation of the indicator. Five configurable session windows are monitored on every bar. When price enters a session window, the indicator opens an active tracking object that records the session's high, low, open price, total volume, and structural events. When price leaves the session window, the active object is closed and its values are committed to the historical record for that session.
🔹Why is Session Tracking important?
Every statistic computed by the indicator depends on accurately segmenting the trading day into sessions. Without a reliable session lifecycle, range comparisons, HOD/LOD attribution, volume share, and structure counts would be inconsistent. The session lifecycle also defines what gets drawn on the chart: the live range box for the current session and, optionally, persistent boxes for historical sessions.
🔹How is Session Tracking detected and calculated?
Every bar is checked against the configured session time windows in New York time. The moment price enters a session window, a new session opens: the session's high, low, open, and volume start fresh, and the FVG, swing break, HH, and LL counters reset to zero. While the session is active, the high updates to the running maximum, the low updates to the running minimum, and volume accumulates with each new bar. When price leaves the session window, the session is closed: the final high, low, open, close, and volume are committed and the session is marked complete for the day.
A trading day boundary is determined by shifting time forward by 6 hours and comparing the resulting calendar date in New York time. This shift causes a new day to register at 18:00 NY time, aligning the trading day with the start of the Asia session at 19:00 NY. When a new trading day begins, the completed session statistics from the previous day are added to each session's history along with the weekday they were recorded on, the daily fields reset, and a new tracking cycle begins.
🔹Settings: Sessions Group
◇ Enable Toggle: Turns the session on or off. Disabled sessions are excluded from the dashboard, the live label, and all calculations.
◇ Session Name: Custom label used in the dashboard column header, on the session box, and in the active session label. Defaults: Asia, London, NY AM, NY Lunch, NY PM.
◇ Session Time: The session window in NY time using HHMM,HHMM format. Defaults: Asia 1900,0200, London 0200,0830, NY AM 0830,1200, NY Lunch 1200,1330, NY PM 1330,1600.
◇ Session Color: Color applied to the dashboard column header (when active), the session box border and background, and the active session label.
🔹Customization
Display Group
◇ Show Session Ranges: When enabled, plots a translucent box around the current session showing its running high and low, with the session name labeled in the top left corner. Historical session boxes are also retained on the chart for visual reference.
◇ Show Active Session Stats: When enabled, plots a live label next to the most recent bar of the active session displaying the session name, current range, current range as a percentage of historical average, and current percentile rank.
◇ Label Size: Sets the text size of the active session label. Options: Tiny, Small, Normal, Large, Huge.
STATISTICAL DASHBOARD:
🔹What is the Statistical Dashboard?
The Statistical Dashboard is a configurable table that summarizes the historical statistical profile of every enabled session. Rows correspond to metrics. Columns correspond to sessions. Each cell shows the metric value for that session, optionally rendered with a unicode progress bar and a star marker (★) for the session with the highest value on metrics where "highest" is the meaningful target.
🔹Why is the Statistical Dashboard important?
The dashboard is where the indicator's measurements surface. Rather than requiring a trader to scroll through chart history and visually estimate session behavior, the dashboard reduces the entire weekday filtered history of every session to a compact table of directly comparable numbers. The header line shows the active weekday filter and the maximum number of historical days used in any cell, providing immediate context for the statistical sample size.
🔹How is the Statistical Dashboard calculated?
On the most recent bar of the chart, the indicator reviews each enabled session's stored history. For every past session, it checks whether the weekday it was recorded on is included in the selected weekday filter. If yes, the session contributes to the running totals: range sums, volume sums, HOD/LOD counts, bull counts, continuation counts, FVG counts, swing break counts, HH counts, LL counts, and volume share. After the review, totals are converted to averages or percentages and written to the dashboard cells.
Best value markers are computed by tracking the maximum value across all enabled sessions for the metrics where "highest" is the intended target: Avg Range, HOD %, LOD %, Avg FVGs, and FVG Survival %. For metrics where directional bias matters (Bull %, Continuation %) or where higher is not strictly better (Vol Share %, Avg Swing Breaks, Avg HH, Avg LL), no best marker is shown.
[Screenshot: Full dashboard table screenshot in Dark Mode with every metric row enabled. Header line showing the active weekday filter and sample size, column headers in each session's color, progress bars rendered in percentage cells, and the SMART MONEY divider row visible separating the structural metrics from the range and directional metrics above.
🔹Settings: Dashboard Group
◇ Show Dashboard: Master toggle for the entire dashboard. When disabled, no table is rendered.
◇ Theme: Dark Mode or Light Mode. Controls background, row, header, and text colors. The best value highlight cell uses a deeper accent color on the selected theme.
◇ Position: Table placement on the chart. Options cover all nine combinations of vertical (Top, Middle, Bottom) and horizontal (Left, Center, Right) anchoring.
◇ Text Size: Tiny, Small, Normal, Large, Huge. Affects every cell.
◇ Show Progress Bars: When enabled, percentage and percentile cells render an 8 segment unicode bar alongside the numeric value, scaling from 0% to 100%. When disabled, only the numeric value is shown.
🔹Customization
Metric Toggles
Each of the following dashboard rows can be independently shown or hidden:
◇ Avg Range (ATR%)
◇ Vol Share %
◇ Avg Vol
◇ HOD %
◇ LOD %
◇ Bull %
◇ Continuation %
◇ Today Percentile
◇ Avg FVGs
◇ Avg Swing Breaks
◇ FVG Survival %
◇ Avg HH
◇ Avg LL
🔹Signal Colors
◇ High: Color applied to high tier values (Today Percentile at or above 75, FVG Survival at or above 70). Default: green.
◇ Mid: Color applied to mid tier values (Today Percentile between 25 and 75, FVG Survival between 40 and 70). Default: orange.
◇ Low: Color applied to low tier values (Today Percentile at or below 25, FVG Survival below 40). Default: red.
ATR NORMALIZED RANGE STATISTICS:
🔹What is ATR Normalized Range?
The Avg Range (ATR%) metric expresses each session's average range as a percentage of the daily Average True Range. A value of 45% means the session, on average, covered 45% of a full day's ATR.
🔹Why is ATR Normalized Range important?
Raw range values cannot be compared across instruments or across volatility regimes. A 200 point range means very different things in calm versus volatile markets. Normalizing by daily ATR removes that distortion: the resulting percentage is directly comparable between sessions, between symbols, and between months of history.
🔹How is ATR Normalized Range calculated?
For each completed session, the raw range (session high minus session low) is divided by the daily ATR value of the previous completed day. The daily ATR uses a configurable length (default 14) and is always read from the previous daily bar, which means the value is fixed for the entire current trading day and never repaints. The session's normalized range is stored alongside its weekday in the history. When the dashboard renders, the indicator averages all normalized ranges from sessions whose weekday passes the filter, then multiplies by 100 to produce the displayed percentage.
🔹What is Today Percentile?
Today Percentile expresses where the current session's live range sits within the historical distribution of that same session's past ranges. The comparison stays within the session: today's London is compared only against past Londons, today's NY AM only against past NY AMs, and so on, all filtered by the selected weekdays. A value of 80 means the live range is larger than 80% of past occurrences of the same session on those weekdays.
🔹How is Today Percentile calculated?
For each enabled session, the indicator computes the current normalized range (current session range divided by daily ATR). It then walks through that session's own past history, counting how many past sessions have a normalized range less than or equal to the current value, while skipping any past session whose weekday is not enabled in the filter. The percentile is the percentage of qualifying past sessions at or below the current value.
The cell color reflects the tier: at or above 75 uses the High color, at or below 25 uses the Low color, otherwise the Mid color. The numeric value is rendered with an ordinal suffix (1st, 2nd, 3rd, 4th, and so on) for readability, and the progress bar segments scale from 0 to 100.
🔹Settings:Filters Group
◇ ATR Length: Lookback for the daily ATR used in normalization. Range: 5 to 50. Default: 14.
DAILY EXTREMES TRACKING:
🔹What are HOD % and LOD %?
HOD % measures how often a given session contained the day's highest price. LOD % measures how often it contained the day's lowest price. Both are expressed as a percentage of the total weekday filtered days in history.
🔹Why are HOD/LOD statistics important?
Knowing which session historically sets the daily extreme on a given instrument helps frame intraday liquidity expectations. A session with a high HOD % is the session that most frequently posts the day's selling extreme. A session with a high LOD % most frequently posts the day's buying extreme. On many instruments NY AM dominates both, but the ratio shifts by symbol and by weekday, which is why measuring rather than assuming is useful.
🔹How are HOD % and LOD % calculated?
While the trading day is in progress, the indicator continuously tracks the day's running high and running low across all bars, not just within session windows. When a new trading day begins, every completed session from the previous day is checked: if the session's recorded high matches the day's high, that session is tagged as the HOD session; if its low matches the day's low, it is tagged as the LOD session. These tags are stored with the session in history. When the dashboard renders, it counts how many sessions in the weekday filtered history carry each tag and converts those counts to percentages. The session with the highest HOD % across all enabled sessions receives a star marker, and the same applies to LOD %.
DIRECTIONAL STATISTICS:
🔹What are Bull % and Continuation %?
Bull % is the percentage of historical sessions that closed higher than they opened. Continuation % is the percentage of historical sessions whose direction matched the previous occurrence of the same session.
🔹Why are directional statistics important?
Bull % captures the session's directional skew. A session with Bull % consistently above 60% on a particular instrument and weekday set has a measurable upward tendency. Continuation % captures the session's persistence: a high continuation rate means the session frequently extends the previous day's same session direction, while a low rate suggests the session tends to reverse the prior day's bias.
🔹How are Bull % and Continuation % calculated?
For each completed session, Bull is true when the session's close (the chart close at the bar where the session ended) exceeds its open. Continuation is true when the previous occurrence of the same session was bullish in the same direction (both bullish or both bearish). The very first occurrence in history has no previous reference and is excluded from the continuation calculation. The dashboard divides the bullish session count by the total session count for Bull %, and the matched continuation count by the continuation eligible count for Continuation %.
No best value marker is shown for either metric, since "highest" is not inherently better: directional bias and continuation are interpretive measurements rather than competitive ones across sessions.
VOLUME PROFILING:
🔹What is Volume Profiling?
The indicator tracks two volume metrics per session: Vol Share % (the session's average share of total daily volume) and Avg Vol (the session's average absolute volume).
🔹Why is Volume Profiling important?
Volume distribution across the day reveals participant activity. Sessions that historically account for a disproportionate share of daily volume are the sessions where flow is most concentrated. Sessions with low volume share (typically NY Lunch) are statistical low conviction windows where moves are more likely to be lower quality.
🔹How is Volume Profiling calculated?
While each session is active, the indicator accumulates bar volume into the session's running total. When the trading day rolls over, total day volume is computed as the sum of all completed session volumes for that day. Each session's Vol Share is then computed as its session volume divided by total day volume, multiplied by 100, and saved into the session's history alongside the absolute volume. When the dashboard renders, Avg Vol is the simple weekday filtered mean of recorded session volumes, and Vol Share % is averaged across the weekday filtered history.
SMART MONEY STRUCTURE ANALYTICS:
🔹What are the Smart Money metrics?
The Smart Money section of the dashboard surfaces four structural counters per session:
◇ Avg FVGs: average number of Fair Value Gaps formed during the session.
◇ Avg Swing Breaks: average instances where the close pierces a previously confirmed pivot high or pivot low.
◇ FVG Survival %: percentage of FVGs that were not invalidated within the same session in which they formed.
◇ Avg HH and Avg LL: average count of new higher highs and lower lows in pivot structure during the session.
🔹Why are Smart Money metrics important?
These metrics quantify the structural activity of each session. High FVG counts indicate aggressive displacement and gap creation. High Swing Break counts indicate liquidity sweeps and structural inflection. FVG Survival measures how often gaps formed during the session are respected (not immediately filled in the opposite direction), giving a session level reliability score for the FVG concept. HH and LL counts profile each session's tendency to extend structure in one direction versus the other.
🔹How are Smart Money metrics calculated?
A Fair Value Gap is detected as a 3 bar pattern: a bullish FVG forms when the current bar's low sits above the high from two bars ago, and a bearish FVG forms when the current bar's high sits below the low from two bars ago. Whenever an FVG forms during an active session, the session's FVG counter increments and the gap level (the high from two bars ago for a bullish FVG, the low from two bars ago for a bearish FVG) is added to a list of active gaps for that session, along with its direction.
On every later bar within the same session, the indicator checks each active gap. If price closes below a bullish FVG's level, or closes above a bearish FVG's level, the gap is treated as invalidated and removed from the active list, and the session's invalidation counter increments. At the end of the session, FVG Survival % is computed as the count of total FVGs minus invalidated FVGs, divided by total FVGs, expressed as a percentage. The cell is color coded by tier: at or above 70 uses High, at or above 40 uses Mid, otherwise Low.
Swing breaks use a configurable pivot strength (default 5 bars on each side). When a pivot high confirms and price subsequently closes above that pivot level, a bullish swing break fires and the pivot is consumed (cleared from active tracking). The same applies symmetrically for pivot lows. Each break increments the active session's Swing Break counter.
HH and LL counts use the same pivot detection. When a new pivot high confirms with a level greater than the session's previous tracked pivot high, the session's HH counter increments. When a new pivot low confirms with a level less than the session's previous tracked pivot low, the LL counter increments.
🔹Settings: Filters Group
◇ Pivot Strength: Bars on each side required to confirm a pivot high or pivot low for the swing break and HH/LL calculations. Range: 2 to 20. Default: 5. Higher values produce fewer, more significant pivots; lower values produce more frequent, noisier pivots.
ACTIVE SESSION LIVE LABEL:
🔹What is the Active Session Live Label?
A floating label that appears next to the most recent bar of the active session, displaying live statistics for the session currently in progress.
🔹Why is the Active Session Live Label important?
The dashboard summarizes completed historical sessions. The live label answers a different question: how does the session that is currently developing compare to history, right now? It allows a trader to see, mid session, whether the current session is tracking above, near, or below its average range and what percentile it currently occupies, without waiting for the session to close.
🔹How is the Active Session Live Label calculated?
The label content includes the session name, the live range (current session high minus current session low), the ratio of the live normalized range to the historical average normalized range expressed as a percentage, and the current percentile. The percentile is computed by iterating the session's weekday filtered history and counting how many records have a normalized range at or below the live value.
The label position updates every bar to track the right edge of the current session at its current high. When the session ends, the label is deleted.
🔹Settings
◇ Show Active Session Stats: Toggle for the label.
◇ Label Size: Sets text size. Options: Tiny, Small, Normal, Large, Huge.
WEEKDAY FILTERING:
🔹What is Weekday Filtering?
A set of seven toggles (Sunday through Saturday) that determines which weekdays contribute to every statistic on the dashboard, the live label, and the alert condition.
🔹Why is Weekday Filtering important?
Session behavior is not uniform across the week. Monday open behavior differs from midweek behavior. Friday afternoon often shows reduced participation. By filtering history to only the selected weekdays, traders can profile each session under conditions that match the current trading day, rather than averaging in unrelated days.
🔹How is Weekday Filtering applied?
Each session in history is tagged with the weekday it was recorded on. Every calculation in the dashboard, the live label, and the alert checks that weekday against the user's selection and skips any session whose weekday is not enabled. The dashboard header line displays a compact label of the active filter: "All" when every weekday is enabled, "Weekdays" when only Monday through Friday are enabled, or a custom combination such as "M/Tu/W" otherwise. The header also shows the largest number of sessions any column was able to use after filtering, which serves as the sample size indicator.
🔹Settings: Filters Group
◇ Sun, Mon, Tue, Wed, Thu, Fri, Sat: Individual toggles. Defaults: Mon, Tue, Wed, Thu, Fri enabled; Sun and Sat disabled.
ALERTS:
🔹What alerts are available?
A single alert condition is provided:
◇ Range > 90th Percentile: Fires when an active session's current normalized range exceeds the 90th percentile of its weekday filtered historical normalized range distribution.
🔹When does it fire?
On every bar where at least one enabled, active session has a current normalized range above which 90% of its history sits. The alert fires once per qualifying bar, allowing traders to be notified when a session is in the process of becoming statistically large relative to its own history.
IMPORTANT NOTES:
◇ All session times are evaluated in New York time regardless of the chart's display timezone. Adjust session times if profiling instruments where session timing conventions differ from the defaults.
◇ Trading day boundaries are anchored to 18:00 NY time (the 6 hour shift before midnight) so that the Asia session opens at the start of each new trading day. This is the convention used for HOD/LOD attribution and for pushing completed session records to history.
◇ Daily ATR is always read from the previous completed daily bar. This means the value used for normalization is fixed for the current trading day and does not repaint as new bars print, while still giving the live percentile calculations a stable reference.
◇ The session history for each session is built progressively as the chart loads. Sessions on the very first day on the chart cannot contribute to continuation statistics because no earlier occurrence of the same session exists to compare against.
◇ Best value markers (★) are shown only on metrics where "highest" is the meaningful target: Avg Range, HOD %, LOD %, Avg FVGs, and FVG Survival %. Other metrics intentionally omit the marker.
◇ FVG Survival counts gaps that survive to the end of the session in which they formed. A gap that survives the session but is invalidated on a later day is still counted as survived for the session that created it.
UNIQUENESS:
The Session Edge Profiler distinguishes itself from common session indicators in several ways. Most session tools plot boxes and stop there, while this indicator extends session tracking into a full statistical profile with thirteen configurable metrics per session, reducing the entire history of every session to a single, scannable table. Range comparisons use ATR normalization rather than raw point values, making the dashboard meaningful across volatility regimes and instruments without per chart recalibration, and percentile ranking of the live session against history provides a single number answer to a question many traders ask intuitively: is this session unusually large or unusually small for this time and this weekday? FVG and swing break tracking are integrated into the session profile rather than treated as separate indicators, allowing direct comparison of which session produces the most structural activity and how reliable that structure tends to be on a given instrument. FVG Survival % quantifies a concept that is rarely measured anywhere else: how often each session's FVGs actually hold within their own session, converting a qualitative idea into a session level reliability score. Weekday filtering applies uniformly to every statistic on the dashboard, the live label, and the alert, allowing traders to profile sessions only on days that match the current trading day rather than diluting the sample with unrelated weekdays. Best value markers and progress bars make the dashboard scannable at a glance, with the strongest session per metric immediately visible without parsing numbers. Finally, the active session live label provides real time positional context that complements the historical dashboard: the dashboard answers what a session usually does, while the label answers what the session is doing right now, with both views driven by the same underlying statistical model.
Statistics
ICT ADR Levels - Judas x Daily RangeThis indicator provides a clean and flexible way to monitor Average Daily Range (ADR) with two distinct calculation modes, along with visual levels and a detailed historical table.
Calculation Modes
- Classic Mode: Uses the standard daily candle range (high minus low of regular daily bars). This is the traditional daily range calculation.
- Midnight Mode: Calculates the daily range from midnight to midnight in America/New_York time. This provides a true calendar-day range independent of session opens.
You can switch between the two modes instantly using the dropdown in the settings. All table values, percentages, and 80% ADR levels update dynamically based on the selected mode.
The indicator plots the following levels from a session anchor point:
- Full ADR (above and below)
- 1/3 ADR (Judas levels)
- 80% ADR measured from the current daily high and low (two lines) - user selectable %
All lines are dynamically managed to avoid duplication and update cleanly as new sessions begin. Labels on the right side display price levels and can be toggled on or off.
Historical Table
A customizable table displays the following information for the selected number of days:
- Day or Date (user selectable)
- 5-Day ADR value for each historical day
- 80% of that day's 5-Day ADR
- Actual daily Range
- Percentage of the 5-Day ADR reached that day
The current/live row shows Today's Range compared against the active 5-Day ADR, including the percentage reached and the 80% target level. The table supports multiple sizes and positions.
Key Features
- Toggle between Classic and Midnight ADR calculations
- 80% ADR levels drawn from daily high and low
- Clean, non-duplicating horizontal lines and labels
- Historical data table with day/date, ADR, 80% ADR, Range, and percentage columns
- Adjustable styling, colors, text size, and visibility for all elements
- Option to plot levels from a session anchor or current price
This tool is designed for traders who want precise ADR-based levels with the flexibility to choose between standard daily ranges and strict midnight-to-midnight calculations.
Indicator
Stock: Comparison Dashboard [invincible3]Stock: Comparison Dashboard
**Stock: Comparison Dashboard ** is a fundamental and market-strength comparison tool designed to compare two stocks side by side directly on the PulseWire chart.
The dashboard helps traders and investors quickly evaluate which stock is stronger across multiple financial dimensions, including growth, income statement strength, profitability, valuation, cash flow quality, financial strength, liquidity, dividend quality, and relative price strength.
Key Features
1. Two-Stock Comparison
Select any two symbols and compare their financial metrics side by side. The dashboard displays both raw values and category-based scores.
2. Fundamental Metrics
The indicator includes a wide set of financial metrics, such as:
* Revenue growth
* EPS growth
* Total revenue
* Operating income
* Net income
* Margins
* Return on equity
* Price-to-earnings ratio
* Price-to-sales ratio
* Free cash flow
* Debt ratios
* Current ratio
* Dividend yield
* Dividend payout ratio
3. Category Scores
The dashboard calculates separate comparison scores for:
* Growth Score
* Income Score
* Profitability Score
* Valuation Score
* Cash Flow Score
* Financial Strength Score
* Liquidity Score
* Dividend Score
* Relative Strength Score
4. Proportional Scoring System
The scoring system uses proportional comparison instead of simple winner-take-all logic.
For example, if one stock has 16% growth and another has 18% growth, the weaker stock does not receive 0. Instead, both stocks receive proportional scores based on how close their values are.
This makes the dashboard more realistic and useful for financial analysis.
5. Relative Strength Score
The Relative Strength Score compares the market performance of both stocks using:
* 3-month price performance
* 6-month price performance
* 12-month price performance
* Position within the 52-week range
* Distance from the 200-day moving average
This helps identify which stock has stronger market momentum.
6. Better / Weaker Value Highlighting
Better and weaker values are highlighted using text color instead of heavy background coloring. This keeps the table cleaner and easier to read.
7. Light and Dark Table Themes
The dashboard includes both light and dark table themes, making it suitable for different PulseWire chart layouts.
8. Customizable Rows
Each category allows the user to choose which metrics to display. Unwanted rows can be set to “None” to keep the dashboard clean.
How to Use
1. Select Stock 1 and Stock 2 from the indicator settings.
2. Choose the financial period: Quarter or Year.
3. Select the metrics you want to compare in each category.
4. Choose Light or Dark table theme.
5. Read the raw values and comparison scores to identify the stronger stock.
Interpretation
A higher score means the stock is stronger in that specific category.
Example:
* Higher Growth Score = stronger growth profile
* Higher Profitability Score = better profitability
* Higher Valuation Score = more attractive valuation
* Higher Financial Strength Score = stronger balance sheet
* Higher Relative Strength Score = stronger market momentum
Important Notes
This indicator uses PulseWire financial data. Some financial fields may be unavailable for certain stocks, exchanges, or periods. If a metric is unavailable, the table may show a dash.
PulseWire also has request limits, so the dashboard is designed to keep the number of active financial rows under control.
This indicator is intended for research, comparison, and educational analysis only. It is not financial advice. Always combine fundamental analysis with your own research, risk management, and market context.
Indicator
Market Quality Score ProMarket Quality Score Pro is a multi-factor scoring indicator that helps you evaluate stocks, ETFs, indices, bonds, crypto, forex, and commodities with one unified framework. It combines relative strength, trend quality, and (where available) fundamental quality into a normalized score from 0.00 to 1.00, then translates that score into practical signal zones such as Watch, Buy, Strong Buy, or Avoid.
The indicator is designed to adapt to different instrument types automatically. For stocks, it can include earnings growth, revenue growth, and return on equity, while for ETFs, indices, bonds, and many other instruments it focuses more on relative strength, benchmark comparison, trend structure, and data quality.
Key features:
Multi-factor total score from 0.00 to 1.00.
Relative strength model based on 12-month ex-last-month, 6-month, 3-month, distance to 52-week high, and RS-line slope.
Trend quality model based on SMA200, 50/200 structure, and drawdown control.
Fundamental quality block for equities using EPS growth, revenue growth, and ROE where valid data exists.
Automatic benchmark selection by market and region, with optional manual override.
Coverage and confidence logic to reduce overconfidence when data is incomplete.
Safety filter for trend condition, drawdown quality, and tradability.
Signal markers for Buy, Strong Buy, Exit, and Divergence.
Informative table with benchmark, market regime, history quality, score components, and model status.
How to read it:
Above 0.50: instrument becomes interesting.
Above 0.65: enters the buy zone if additional gates and filters are satisfied.
Above 0.80: strong candidate with stricter confirmation logic.
Below 0.30: weak zone or avoid area.
This script is not a standalone trading system and should not be used in isolation. Signals are strongest when read together with price structure, liquidity, market regime, and upcoming event risk such as earnings releases
Indicator
Stop Hunt Radar [GBB]STOP HUNT RADAR
Have you ever placed a stop loss under a swing low, watched price come down, take out your stop to the tick, and then run exactly where you said it would? That's not bad luck and it's not a conspiracy. Below every obvious low sits a cluster of sell orders — your stop, my stop, the breakout traders' sell-stops — and for anyone who needs to buy size, that cluster is the only spot on the chart with guaranteed forced selling waiting at a known price. Your stop wasn't hunted out of malice. Your stop was the liquidity.
This indicator maps those clusters in real time, classifies what happens when they get hit, and keeps honest records. That last part matters more than you think.
How is works
The shaded bands are stop pools. "Sell stops · 60,621" means stop losses from longs are probably resting under that level; the shading shows the pocket where they sit. Color is a ranking, not a direction: gray is a minor fresh swing, pink is the most loaded level currently on your screen. Hover any level and it tells you in plain words why it's ranked — "3 equal lows · yesterday's low · 4.2× volume". No codes to memorize. (If you prefer compact BSL/SSL labels, switch Label Style to Pro.)
When price hits a pool, the radar decides what happened by fixed rules, on closed bars, with no repainting:
⚡ swept — price wicked through and closed back. The marker stays on the chart with the measured raid depth ("⚡ 2.4 ATR").
✕ broken — price closed through and stayed.
⌛ undecided — price closed through but might come back. The radar waits a few bars before calling it instead of guessing. Capitulation V-reversals get correctly labeled as sweeps because of this.
The dotted lines near ranked pools are the part I'm most proud of: depth guides. They're measured from this chart's own history — "typical sweep · 63,955" marks how far the median raid ran past that level, "1-in-20 sweep" marks the bad case. Now look where the textbook stop placement is. Usually inside the typical zone. That's the whole point of this tool in one picture.
IMPORTANT
Every channel that shows you stop hunts follows up with the same pitch: buy the sweep, ride the reversal. Before publishing this, I tested that. Properly — the engine was rebuilt in Python, verified bar-for-bar identical against this script, and run through a pre-registered study on 24 months of BTC, ETH and SOL. The final test ran exactly once, on 21,813 sweeps of held-out data the tuning never touched.
Result: after a sweep, the average forward move is statistically indistinguishable from entering at a random moment. The strongest-ranked pools did not reverse harder — if anything slightly worse. The dramatic panic-volume wicks leaned toward continuation, not reversal.
So no, the lightning bolts are not buy signals, and I won't pretend otherwise. The live tally on your own chart will show you the same thing — reclaim rates around 55–60%, a coin flip with commission. This is why the radar prints the losses too. If someone shows you this pattern with only winning examples, you now know what got cropped.
WHAT IT'S ACTUALLY FOR
Stop placement, mostly. The depth guides answer "is my stop sitting in the feeding zone?" before you find out the expensive way. Either place it past the typical-sweep line or size down knowing the risk. Second: when a level gets hit you get a rule-based verdict — swept or broken — instead of arguing with yourself, and alerts fire on those events so it watches the levels while you don't. Third: the receipt trail audits your beliefs. You think "they always sweep the lows here"? Scroll back. The chart kept score.
ANY MARKET, ANY TIMEFRAME
The geometry is ATR-scaled and the tolerances are percentage-based, so it self-adapts. The stats are measured per chart — a Gold chart shows Gold's raid depths, not Bitcoin's. Auto-Adapt handles the asset-specific details: forex gets proper big-figure/half-figure round numbers (159.50 on USDJPY, 1.0850 on EURUSD), and symbols without volume data get the volume factor switched off. When an adaptation is active, the legend says so. One honest caveat: the validation study was crypto on 5m. Other markets run the same mechanics but ship with their own live base rates instead of borrowed claims. Stocks gap — gap-throughs get adjudicated by the same waiting rule, but read markers around opens with some skepticism.
GOOD TO KNOW
Colors are relative: a pool's color can shift as stronger or weaker pools appear on screen. That's ranking, not repainting — the absolute score lives in the tooltip and never changes retroactively. Depth guides appear once the chart has logged at least 10 classified sweeps per side, because statistics from three events aren't statistics. If another indicator ever squashes your chart, right-click the price scale and enable "Scale price chart only" — worth doing in general. The optional dashboard (off by default) adds the nearest pools and the rolling base rates in a corner panel.
THE SETTINGS
You don't need to touch any of this — the defaults are the validated configuration and what I run myself. But it's all there if you want it. The settings are grouped the same way the panel is.
Display — the stuff you'll actually use. Min Score To Display hides weak pools (0 shows everything). Display Radius (default 3%) hides pools too far from price; they're still tracked, they just reappear when price comes back. Show Pool Labels, Show Radar Dashboard (off by default — the corner panel with nearest pools and base rates), Show Legend, Show Sweep Base Rates. Label Style is the big one: Beginner spells everything out, Pro uses compact BSL/SSL codes. UI Text Size and Label Size — bump these up for screenshots and video. Sweep Depth Guides plus "Hide Guides For Gray Pools" (rank 0–10, default 3): raise it to only annotate the strongest levels, lower it to 0 to guide every pool. Auto-Adapt To Asset Class — leave this on unless you have a reason.
Swing Detection — how a level is found. Pivot Left / Pivot Right define how many bars each side make a swing (8/3 default — bigger = fewer, more significant levels). Max Armed Life retires a level that's gone untested for too long.
Pool Geometry — ATR Length drives all the scaling. Pocket Depth sets how thick the shaded stop pocket is. EQ Merge Tolerance controls how close two swings must be to count as the "same" level and cluster together — by % of price (default) or ATR.
Sweep / Outcome — the classification rules. Min Sweep Penetration is how far past a level a wick must go to count as a touch. Multi-Bar Sweep Grace (default 10 bars) is the window where a close-through can still turn back into a sweep — this is what catches capitulation reversals instead of mislabeling them as breaks; set it to 0 for strict single-bar sweeps only. Reclaim Confirmation and Outcome Watch Window define what counts as a confirmed reclaim and how long the radar watches before giving up.
Scoring & Heat Weights — what makes a level rank high. Four weights: EQ Cluster Size, Untested Age, Confluence, Formation Volume. The "Norm" values are how much of each earns a full score (e.g. 3 equal pivots = full cluster score). Session Confluence toggles the prior day/week levels; Round Number Confluence and its step (0 = auto, and auto is asset-aware) toggle round-number weighting. Fair warning: the study found the heat score doesn't predict sweep outcomes, so retuning these changes what looks prominent, not what works. I left mine at default and I'd suggest you do too.
Heat Palette & Receipts — looks. Heat Color Scale is Relative by default (the ramp stretches across the pools currently on screen); switch to Absolute if you want a fixed 0–10 meaning. The four color stops (Cold / Warm / Hot / Prime) are the ramp. Outcome Receipts: show Wins + Losses (default — the point), Wins Only, or None.
Alerts — High-Rank Pool Score is the threshold for the "approaching a strong pool" alerts (it's on the absolute score, where pools typically sit around 1–4). Proximity is how close counts as "approaching". The sweep and break alerts themselves fire on the events directly — add them from the alerts dialog.
Indicator
Advanced EMA Trend Analysis & Projection System🔒 PRO.EMA
## Advanced EMA Trend Analysis & Projection System
PRO.EMA is a next-generation EMA indicator designed to provide significantly more market intelligence than a traditional Exponential Moving Average.
While standard EMAs only display the average price, PRO.EMA analyzes trend strength, momentum, trend direction, market compression, and future EMA trajectory to help traders identify high-probability market conditions before major moves occur.
---
## Key Features
### Dynamic Trend Detection
PRO.EMA continuously measures the EMA slope and automatically classifies the market into:
• Uptrend
• Downtrend
• Flat / Compression Phase
This allows traders to instantly understand the current market environment without manually analyzing EMA angles.
---
### Smart Color-Coded EMA
The EMA automatically changes color based on market conditions.
This provides immediate visual feedback regarding trend strength and direction.
---
### Future EMA Projection
Unlike traditional EMAs, PRO.EMA projects the future path of the EMA based on its current slope.
The projection helps traders:
• Visualize potential future trend direction
• Anticipate support and resistance zones
• Prepare for possible trend continuation or reversal scenarios
---
### Flat EMA Detection
One of the most powerful features of PRO.EMA is its ability to detect when the EMA begins to flatten.
Historically, flat EMAs often appear before:
• Large breakouts
• Large breakdowns
• Volatility expansions
• Range market conditions
PRO.EMA automatically alerts traders when these conditions occur.
---
### Premium Market Dashboard
The built-in dashboard displays:
• Current EMA Length
• EMA Slope (%)
• Trend State
• Projection Distance
• Projected EMA Value
All critical information is available at a glance.
---
### Premium Glow Visualization
The custom glow effect improves chart readability and makes trend changes easier to spot, especially during fast-moving market conditions.
---
## Why PRO.EMA Is Better Than a Standard EMA
A traditional EMA only answers one question:
"Where is the average price?"
PRO.EMA answers several additional questions:
✔ Is the trend strengthening?
✔ Is the trend weakening?
✔ Is the EMA becoming flat?
✔ Is a breakout approaching?
✔ What is the current trend state?
✔ Where could the EMA be in the future?
✔ Is momentum increasing or decreasing?
Instead of acting as a simple moving average, PRO.EMA becomes a complete trend analysis system.
---
## Best Use Cases
• Trend Following Strategies
• Swing Trading
• Position Trading
• Bitcoin & Cryptocurrency Markets
• Stock Market Analysis
• Breakout Detection
• Market Structure Analysis
---
## Disclaimer
PRO.EMA is an analytical tool designed to assist traders in identifying market conditions and trends. It should not be considered financial advice. Always use proper risk management and combine multiple forms of analysis before making trading decisions.
Indicator
Supertrend Parameter Sensitivity 3D [LuxAlgo]The Supertrend Parameter Sensitivity 3D indicator is a powerful optimization tool that executes 100 simultaneous Supertrend backtests bar-by-bar to visualize how different ATR Lengths and Multipliers impact performance across various metrics.
By projecting this data onto a 3D surface and a heatmap dashboard, it allows traders to identify "stable" parameter zones and avoid over-optimized "peaks" that may lead to curve-fitting.
🔶 USAGE
This tool is designed to help traders find the most robust settings for the Supertrend indicator on any given timeframe or asset. Instead of manually guessing settings, users can see a holistic view of the parameter space.
🔹 3D Surface Projection
The 3D surface is rendered directly on the chart, where the X-axis represents the Multiplier, the Y-axis represents the ATR Length, and the Z-axis (height) represents the chosen performance metric.
Gold Highlight: Marks the absolute "Best" parameter combination based on the selected metric.
Blue Highlight: Marks the "Stable Area," which is the region where the average performance of a 3x3 parameter window is highest. This helps identify settings that remain profitable even if market conditions shift slightly.
🔹 Optimization Dashboard
The dashboard provides a detailed heatmap of the 100 tested combinations.
Value Distribution: An ASCII histogram at the top shows the distribution of all results, helping you understand if the "best" setting is an outlier or part of a consistent trend.
Heatmap Matrix: Displays the exact values for every combination. Hovering over any cell in the table reveals a tooltip with specific data, including the total number of trades for that combination.
Color Scaling: The colors are normalized relatively. Green represents the best results in the current set, while red represents the worst, allowing for clear visual distinction even if all results are negative or positive.
🔶 DETAILS
🔹 Bar-by-Bar Evaluation
The script manages 100 independent Supertrend states simultaneously. On every bar, it calculates the ATR and trailing stop levels for every combination in the sensitivity matrix. It simulates "Always-in-Market" trades (flipping long/short on direction changes) to track performance data without needing a separate strategy execution.
🔹 Optimization Metrics
Users can choose from 9 different metrics to optimize the 3D surface and Dashboard:
Win Rate: Percentage of trades that resulted in a profit.
Net Profit: Total gross profit minus total gross loss.
Profit Factor: Ratio of gross profit to gross loss.
Total Trades: The raw volume of signals generated.
Average Trade: The mean percentage return per trade.
Reward/Risk Ratio: The average win divided by the average loss.
Gross Profit: Total sum of all winning trades.
Total Wins: The absolute count of profitable trades.
Win/Loss Ratio: The count of wins divided by the count of losses.
🔶 SETTINGS
🔹 Main Indicator
ATR Length: The length used for the primary Supertrend line plotted on the chart.
Multiplier: The multiplier used for the primary Supertrend line plotted on the chart.
🔹 Sensitivity Ranges
Length Start: The starting ATR length for the 10x10 matrix.
Length Step: The increment added to the length for each subsequent row.
Multiplier Start: The starting Multiplier for the 10x10 matrix.
Multiplier Step: The increment added to the multiplier for each subsequent column.
🔹 Optimization
Metric: Selects the performance data used to determine the Z-height of the surface and the colors of the heatmap.
🔹 3D Surface Style
High/Low/Wire/Stable Colors: Customize the visual appearance of the 3D projection.
X/Y/Z Spacing & Scale: Adjusts the physical dimensions and height of the 3D surface on the chart.
🔹 Dashboard
Enable Dashboard: Toggles the visibility of the heatmap table.
Position/Size: Controls where the dashboard appears and how large it is on the screen.
MarketReactionLibrary "MarketReaction"
Modular library for sessions, Initial Balance, PSY ranges, VWAPs, alerts, and macro sentiment helpers.
getSessionConfig(source)
Returns session config by source name.
Parameters:
source (simple string) : Session source: Tokyo, New York, London, Jerusalem, EU B, US B.
Returns: SessionConfig.
sessionModule(session, timeZone, sessionText, sessionColor, sessionDuration, showVisuals, showLabels, showLines, showMiddleLine, showBg, bgTransp)
Builds session high/low/middle lines, label, background fill and VWAP.
Parameters:
session (simple string) : Session string.
timeZone (simple string) : IANA timezone.
sessionText (simple string) : Label text.
sessionColor (color) : Session color.
sessionDuration (simple int) : Approximate session duration in ms.
showVisuals (bool) : Show this session visuals.
showLabels (bool) : Show labels.
showLines (bool) : Show high/low lines.
showMiddleLine (bool) : Show middle line.
showBg (bool) : Show background fill.
bgTransp (int) : Background transparency.
Returns: SessionResult.
initialBalanceModule(session, ibSession, timeZone, sessionLabel, showDLabels, showWLabels, showMLabels, showPrevD, showPrevW, showPrevM, dColor, wColor, mColor)
Calculates Daily, Weekly, Monthly Initial Balance and W/M IB VWAPs.
Parameters:
session (simple string) : Full session string.
ibSession (simple string) : IB sub-session string.
timeZone (simple string) : IANA timezone.
sessionLabel (simple string) : Session label.
showDLabels (bool) : Show D.IB labels.
showWLabels (bool) : Show W.IB labels.
showMLabels (bool) : Show M.IB labels.
showPrevD (bool) : Calculate previous daily IB.
showPrevW (bool) : Calculate previous weekly IB.
showPrevM (bool) : Calculate previous monthly IB.
dColor (color) : Daily IB label color.
wColor (color) : Weekly IB label color.
mColor (color) : Monthly IB label color.
Returns: IBResult.
psyRangeModule(session, timeZone, showLabels, showPrev, sessionColor)
Calculates PSY high/low, previous PSY levels, labels, and VWAP.
Parameters:
session (simple string) : Session string.
timeZone (simple string) : Timezone.
showLabels (bool) : Show PSY labels.
showPrev (bool) : Show previous PSY levels.
sessionColor (color) : PSY color.
Returns: PSYResult.
rangeSignal(highLevel, lowLevel, price)
Returns enter/exit signals for a range.
Parameters:
highLevel (float) : Range high.
lowLevel (float) : Range low.
price (float) : Price source.
Returns: RangeSignal.
tablePosition(pos)
Converts table position string to Pine position.
Parameters:
pos (simple string) : Position text.
Returns: Pine table position.
SessionConfig
Session configuration.
Fields:
session (series string) : Full session time.
ib (series string) : Initial Balance sub-session time.
tz (series string) : Session timezone.
label (series string) : Session label.
col (series color) : Session color.
duration (series int) : Approximate session duration in milliseconds.
SessionResult
Session result.
Fields:
high (series float) : Session high.
low (series float) : Session low.
mid (series float) : Session middle.
vwap (series float) : Session VWAP.
inSession (series bool) : True if bar is inside session.
firstBar (series bool) : True on first session bar.
highLine (series line) : Session high line.
lowLine (series line) : Session low line.
midLine (series line) : Session middle line.
IBResult
Initial Balance result.
Fields:
dHigh (series float) : Daily IB high.
dLow (series float) : Daily IB low.
pdHigh (series float) : Previous daily IB high.
pdLow (series float) : Previous daily IB low.
wHigh (series float) : Weekly IB high.
wLow (series float) : Weekly IB low.
pwHigh (series float) : Previous weekly IB high.
pwLow (series float) : Previous weekly IB low.
mHigh (series float) : Monthly IB high.
mLow (series float) : Monthly IB low.
pmHigh (series float) : Previous monthly IB high.
pmLow (series float) : Previous monthly IB low.
wVwap (series float) : Weekly IB VWAP.
mVwap (series float) : Monthly IB VWAP.
inSession (series bool) : True if bar is inside selected full session.
inIB (series bool) : True if bar is inside selected IB session.
ibFirstBar (series bool) : True on first IB bar.
sessionFirstBar (series bool) : True on first full-session bar.
PSYResult
PSY range result.
Fields:
high (series float) : Current PSY high.
low (series float) : Current PSY low.
pHigh (series float) : Previous PSY high.
pLow (series float) : Previous PSY low.
vwap (series float) : PSY VWAP.
inSession (series bool) : True if bar is inside PSY range.
firstBar (series bool) : True on first PSY bar.
RangeSignal
Range signal result.
Fields:
enter (series bool) : True when price enters range.
exit (series bool) : True when price exits range.
topDn (series bool) : Crossunder from above high.
topUp (series bool) : Crossover above high.
botUp (series bool) : Crossover from below low.
botDn (series bool) : Crossunder below low.
Library
AetherEdge - Flow Anomaly Markov🖊️ Overview
AE-FAM detects abnormal large-participant activity statistically and forecasts what follows (continuation or reversal) with a learned Markov chain. Abnormal large activity can't be captured by a fixed volume threshold — what is abnormal depends on the joint distribution of volume and price movement, and that drifts over time. AE-FAM detects it adaptively with a 2D Mahalanobis distance and answers, via a conditional Markov chain, "after this kind of event, what has the market actually done?"
🔶 Key Features
2D Mahalanobis-distance anomaly detection — judges joint volume/movement anomalies against the recent covariance (not a fixed threshold)
Conditional Markov chain — learns 5-state transition probabilities online, modeled separately for anomaly vs normal bars
Post-event continuation / reversal probabilities and an expected-direction score
The same event reads as continuation or trap depending on the learned transitions
Anomaly-bar background highlight, bull/bear anomaly markers, and BUY/SELL signals from the expected direction
A gold HUD with Mahalanobis D², event type, current state, continuation/reversal %, expected score, and predicted next state
Stats and transitions update on closed bars — no repaint
🧠 Technical Architecture
Anomaly (Mahalanobis): the mean vector and 2×2 covariance of features are estimated online by EWMA, and each bar's Mahalanobis distance D² is computed with a closed-form 2×2 inverse (no matrix library). When D² exceeds a threshold and volume is above average, it is an "anomaly event"; direction is the return sign (bull/bear).
States (5 buckets): the return z-score is discretized into strong-down / down / flat / up / strong-up.
Markov chain (ML): a first-order Markov chain's transition counts (2×5×5 = ) are tallied online with a Laplace prior and aged by a decay factor for adaptation. The current state's transition row (conditioned on the current anomaly status) is normalized into a next-state distribution; the expected-direction score = Σ (state value) × probability, with continuation/reversal probabilities from the same row.
Honest scope: Mahalanobis anomaly detection plus a count-based first-order Markov chain. Not deep learning, and not a guarantee of the future.
⚙️ Recommended Settings & Tuning Guide
Key parameters: anomaly threshold (D²), covariance EWMA, transition memory (decay), expected-score threshold (thrScore), warmup.
Raise the D² threshold → only rarer, more extreme events (~9 is a strong 2-DoF outlier)
Raise the covariance EWMA → faster-adapting distribution estimate; lower → steadier
Lower decay → adapts faster to recent transition behavior; 1.0 → never forgets
Crypto starting points (tune on your chart):
BTC / ETH (15m–1H): defaults are the baseline (D² 9, decay 0.999)
SOL / XRP and high-vol alts: raise the D² threshold to ~11 to exclude noisy spikes
Scalping (1–5m): raise covariance EWMA (0.05) for fast adaptation, decay 0.995
Swing (4H–daily): longer warmup to fill the transition statistics, decay 1.0 to learn long-run tendencies
Raising thrScore narrows signals to events where the Markov expected direction is clear
💡 How to Use in Practice
Read intent: bull anomaly + high continuation = accumulation (follow), bull anomaly + high reversal = possible trap / liquidity grab (consider fading)
Expected-direction score: sign is the bias, magnitude the confidence; signals fire when this score and an anomaly event agree
Continuation/reversal %: quantifies the post-event tone — trend-follow when continuation dominates, stay cautious when reversal does
Mode display: post-event (just after an anomaly) vs normal switches which transition model is being read
Combinations: pair with AE-AMF's big-picture momentum or AE-IRM's mean-reversion probability, and use FAM's anomaly + transition forecast to judge entry quality
⚠️ Important Notes
Learning period: no signals until warmup bars; the covariance and transition matrix need time to spin up
Learning reset: changing inputs, symbol, or timeframe re-learns the internal state (covariance and transition counts)
Probability, not a guarantee: the Markov model is first-order (depends only on the latest state) and simple — it cannot capture complex dependencies
Depends on rare events: anomalies are rare, so a given state×anomaly transition statistic can be coarse until it accumulates
🚨 Disclaimer
This indicator is for educational and informational purposes only and is not financial advice or a recommendation to buy or sell. No method guarantees future profits; past performance does not indicate future results, and trading carries the risk of loss. All trading decisions are your own — use proper backtesting and disciplined risk management.
Indicator
AetherEdge - Bayesian Level Probabilities🖊️ Overview
AE-BLP presents the probability of statistical events — prior-day high/low taps, gap fills — with Bayesian estimation (credible intervals) and conditioning on context. Most statistical tools quote a raw historical frequency ("the prior high is tapped 70% of the time"), which hides two things: the uncertainty around that number, and how it changes with context. AE-BLP models each event as a Beta-Bernoulli posterior and conditions it on context (prior-period direction, gap direction) to show P(event | context) with a credible interval.
🔶 Key Features
Plots the prior completed period's high (PDH), low (PDL), and close (fixed during the current period — no repaint)
Bayesian probabilities — posterior mean + credible interval (80/90/95% selectable); a decay weights recent periods more
Conditional probabilities — bucketed by context known at the period's open, giving P(event | context)
Three events: PDH tap, PDL tap, gap fill
A signal to fade an unfilled gap toward the prior close when the fill probability clears a threshold
A gold HUD with context, each probability , the favored level, and the period count; probability labels on the levels too
Levels come from the last closed period and outcomes resolve at period close — no repaint
🧠 Technical Architecture
Levels: request.security pulls the prior completed period's H/L/C/O (lookahead_off, fixed during the current period).
Event tracking: within the current period it flags "high reached the prior high," "low reached the prior low," and "price returned to the prior close," and observes the finalized outcomes when the period rolls over.
Bayesian (Beta-Bernoulli): each (event × context) is a Beta(α, β) posterior; α/β update per observation (with a decay discounting the past). Posterior mean = α/(α+β); the credible interval is a normal approximation using the posterior variance αβ/((α+β)²(α+β+1)). The prior is Beta(priorStrength, priorStrength).
Conditioning: the bucket is chosen from context known at the period's open — prior-period direction (bullish/bearish) for the high/low taps, gap direction (up/down) for the gap fill — so you read an un-blended P(event | context).
Honest scope: Beta-Bernoulli posteriors with a normal-approximation credible interval. Not deep learning, and not a guarantee of probability.
⚙️ Recommended Settings & Tuning Guide
Key parameters: statistics period (periodTF), prior strength, evidence decay, credible interval, min gap, gap-fill probability threshold.
Set periodTF higher than the chart (e.g., D on a 15m chart = prior day's high/low)
Lower decay → faster adaptation to recent regime changes; 1.0 → weights all history equally
Raise prior strength → more conservative when data is scarce (pulls toward 0.5)
Crypto starting points (tune on your chart):
BTC / ETH (5m–1H chart, periodTF = D): defaults are the baseline (decay 0.99, 90% CI)
SOL / XRP and high-vol alts: decay 0.97 to track regime shifts
In 24-hour markets gaps are rare, so gap-fill statistics accumulate mainly around weekend opens
For stable long-run statistics use decay 1.0; to favor recent behavior ~0.95
No signals until the period count reaches the minimum (for a trustworthy posterior)
💡 How to Use in Practice
Daily roadmap: P(tap PDH) and P(tap PDL) show which level price is more likely to reach today
Reading the interval: a narrow interval = confident with ample data; wide = uncertain with few samples
Gap fade: after a gap, if P(fill | direction) is high, target the move back toward the prior close (the signal assists)
Context matters: tap probabilities differ after a bullish vs bearish prior day — read alongside the HUD context
Tapped display: if a level is already tapped/filled it shows status instead of a probability — focus on the remaining level
Combinations: pair with AE-OBQ's high-quality zones or AE-AMF's big-picture momentum, and factor BLP's probabilities into how likely a level is to be reached
⚠️ Important Notes
Learning period: no signals until enough periods accumulate; the posterior needs several periods to spin up
Learning reset: changing inputs, symbol, or period settings rebuilds the posteriors
Normal-approximation limits: when probabilities are near 0/1 or observations are very few, the credible interval is approximate (treat as a guide)
Probability, not a guarantee: even high-probability events can fail to occur — this is a first-order statistical tendency, so use stops and position sizing
🚨 Disclaimer
This indicator is for educational and informational purposes only and is not financial advice or a recommendation to buy or sell. No method guarantees future profits; past performance does not indicate future results, and trading carries the risk of loss. All trading decisions are your own — use proper backtesting and disciplined risk management.
Indicator
AetherEdge - Order Block Quality🖊️ Overview
AE-OBQ does not just draw order blocks (OBs) — it learns and scores each one's quality = P(it holds and reacts), and applies the same learned model to scan a basket of symbols. Order blocks are not equal: some produce clean reactions, most do not. AE-OBQ learns the difference from the real outcome of past blocks (held / broken) and ranks which symbols currently show the highest-quality setups.
🔶 Key Features
Automatic order-block detection from a BOS plus strong displacement, drawn as zones
A quality score (ML) — online logistic learns P(hold and react) per OB; zone shading reflects quality
A multi-symbol screener — the identical learned model applied to up to 6 symbols, ranked by quality (symbol / bias / quality % / distance)
BUY/SELL signals on the first retest of a high-quality OB
ATR-normalized features so the learned quality model transfers across instruments
A gold HUD with active OB count, nearest OB's bias/quality/distance, and realized hold rate
OBs resolve on realized price — training and signals are no-repaint
🧠 Technical Architecture OB detection:
when a break of the recent swing high/low (BOS) comes with strong displacement (body/ATR), the last opposing candle before it is taken as the order block and its high/low drawn as a zone. Quality model (ML): five features — OB size, displacement strength, trend alignment (higher trend vs OB direction), momentum, and formation volume ratio — are all ATR-normalized and bounded (no standardization layer), and an online logistic regression learns quality = P(hold and react). Each OB trains at resolution with its realized label (held = rejected after retest; broken = zone violated) — no lookahead. Because features are ATR-normalized, the same weights apply directly to other symbols. Screener: request.security fetches the same features for each symbol, and the chart-learned weights are applied as-is to produce a quality score. A selection sort ranks them descending; the chart symbol runs through the identical pipeline and appears first. Honest scope: a linear classifier over order-block features. Not deep learning, and not a guarantee of win rate.
⚙️ Recommended Settings & Tuning Guide
Key parameters: structure length (swingLen), min displacement (body/ATR), quality threshold (qThr), resolve horizon (resN), screener symbols/timeframe.
Larger swingLen → only major BOS, focusing on important OBs; smaller → more detections
Raise min displacement → only blocks at the origin of forceful moves
Raise qThr → restrict highlights/signals to high-quality OBs
Crypto starting points (tune on your chart):
BTC / ETH (15m–4H): defaults are the baseline (swingLen 10, dispK 1.0, qThr 0.60)
SOL / XRP and high-vol alts: dispK 1.5 to exclude noisy OBs
Scalping (1–5m): swingLen ~5, shorter resN
Swing (4H–daily): swingLen 15+, longer resN to give the hold judgment room
Keep screener symbols within one asset class for stable quality comparison
💡 How to Use in Practice
Trade reactions off OBs: buy the dip when price returns to a high-quality bullish OB, sell the rally into a bearish one
Reading quality: a darker zone means the model rates it high quality; faint OBs are skip candidates
Hold rate: the share of OBs that actually held on this symbol/settings — a gauge of the model's reliability in that context
Use the screener: see at a glance which watchlist symbols currently rate highest, and focus on nearby high-quality OBs
Combinations: pair with AE-AMF's big-picture momentum or AE-FAM's anomaly detection, and use OBQ's quality to prioritize entry zones
⚠️ Important Notes
Learning period: no signals until warmup bars; the model needs enough resolved OBs to learn
Learning reset: changing inputs, symbol, or timeframe re-learns the weights
Screener granularity: the screener is a multi-symbol radar and computes each symbol's features with compact approximations (the chart symbol is the most precise) — confirm by charting the target symbol
Probability, not a guarantee: even high-quality OBs can break — use stops and position sizing
🚨 Disclaimer
This indicator is for educational and informational purposes only and is not financial advice or a recommendation to buy or sell. No method guarantees future profits; past performance does not indicate future results, and trading carries the risk of loss. All trading decisions are your own — use proper backtesting and disciplined risk management.
Indicator
AetherEdge - Inefficiency Refill Model🖊️ Overview
AE-IRM detects inefficient price moves made on thin volume — "voids" — and learns the probability that they are refilled (mean-revert) along with how long that takes. Many tools merely flag voids; AE-IRM answers "will it refill, and when?" with two learning layers. Surges and drops without participation tend statistically to be retraced, and this quantifies that probability and timing.
🔶 Key Features
A void oscillator that emphasizes low-participation inefficient moves (amplifies below-average-volume moves)
A learned refill probability — online logistic learns P(refill within N bars) from realized outcomes
A survival model — estimates timing (median bars-to-fill, average fill latency) from hazards
Fade (mean-reversion) signals: buy-side void → SHORT, sell-side void → LONG
A gold HUD showing void side, refill probability, median/average fill bars, pending voids, regime
Voids resolve on realized price — no repaint, signals gate on bar close
🧠 Technical Architecture
Void detection: standardized log-return retZ is multiplied by 1 if volume is below average and by a fade factor otherwise, giving osc. When |osc| exceeds a threshold a "void event" fires. The refill target (origin) is the price a few bars before the move departed.
Refill probability (ML): six features — void magnitude, participation shortfall, move extremeness, efficiency ratio (range/trend), volatility regime, and distance to origin (ATR) — are standardized online (EWMA), and an online logistic regression learns P(refill). Each void is trained at resolution with its realized label (filled, or censored at N bars) — no lookahead.
Survival (hazard / Kaplan-Meier-style): each pending void is tracked; at resolution a life table over age buckets (reached/filled) is updated. Per-bucket hazard h = filled/reached builds a survival curve S = Π(1 − h), and the age at which cumulative fill probability reaches 50% is the median bars-to-fill. Censored voids (unfilled at N) are correctly counted in the risk set.
Honest scope: a linear logistic classifier plus a nonparametric survival estimate. Not deep learning, and not a guarantee of refill.
⚙️ Recommended Settings & Tuning Guide
Key parameters: void threshold (thr), fade factor, displacement lookback (vLook), age bucket width × count (= refill horizon N), minimum refill probability (probThr).
Raise thr → only strong inefficiencies (fewer, higher quality); lower → more detections
Lower the fade factor → stricter thin-volume condition (more strongly excludes moves on volume)
Set the refill horizon N (= bucket width × count) to the timeframe you expect reversion over
Crypto starting points (tune on your chart):
BTC / ETH (15m–1H): defaults are the baseline (thr 2.0, fade 0.3, N = 40 bars)
SOL / XRP and high-vol alts: thr 2.5 to filter noisy voids, fade 0.2 to tighten the thin-volume condition
Scalping (1–5m): bucket width ~3 for a shorter N, targeting immediate retraces
Swing (4H–daily): larger bucket width and longer N, raise warmup so the statistics fill out
Raising probThr narrows signals to voids the model finds more likely to refill
💡 How to Use in Practice
Fade (counter-trend): SHORT on a buy-side void (thin-volume surge), LONG on a sell-side void (thin-volume drop); higher refill probability = greater edge
Reading the probability: high refill probability = strong reversion expectation; low = the move may continue (trend continuation)
Timing: median/average fill bars are your take-profit guide — design exits around "fills in ~X bars"
Use the regime: in RANGE, refills work better; in TREND, voids may run without filling — read it alongside the HUD regime
Combinations: pair with AE-VECTOR's target band or AE-QUORUM's directional probability, and use IRM's probability and timing to judge whether to fade and how to size
⚠️ Important Notes
Learning period: no signals until warmup bars; the classifier and survival statistics need time to spin up
Learning reset: changing inputs, symbol, or timeframe re-learns the internal state (weights and hazards)
Probability, not a guarantee: in strong trends voids can stay unfilled (censored) for a long time — avoid fading low-probability voids
Oscillator only: it does not draw void zones on price — operate from the signals and the HUD's probability and timing
🚨 Disclaimer
This indicator is for educational and informational purposes only and is not financial advice or a recommendation to buy or sell. No method guarantees future profits; past performance does not indicate future results, and trading carries the risk of loss. All trading decisions are your own — use proper backtesting and disciplined risk management.
Indicator
AetherEdge - KALMAN | State-Space Trend🖊️ Overview
AE-KALMAN treats price as a noisy observation and recursively estimates the true underlying trend level and velocity (slope) behind it with a two-state Kalman filter. Rather than averaging the past like a moving average, it runs a predict → observe → correct cycle on every bar. Crucially, the filter re-estimates how noisy the market is from its own forecast residuals, so it adapts automatically as volatility shifts. The lag-versus-smoothness trade-off is resolved probabilistically instead of by a fixed setting — that is the essence of AE-KALMAN.
🔶 Key Features
A slope-colored Kalman trend line estimating level and velocity (slope) simultaneously
Predictive bands whose width adapts to the predictive variance S — not a fixed multiplier
Shock detection via a standardized innovation "surprise" z-score — flags moves and regime breaks the model did not expect, with a marker and background tint
Innovation-based adaptive measurement noise — the filter learns the market's noise level from its own residuals and self-tunes (toggle)
A multi-step forecast ray (level + n·slope) with the projected price labeled
A gold-framed HUD showing trend, velocity, surprise z, Kalman gain, band width, noise, and forecast
No repaint — every signal is gated on bar close
Process/measurement noise is ATR-scaled, aligning automatically with each symbol's volatility
🧠 Technical Architecture
The state-space model is a local linear trend. The state vector is x = , with transition F = [ , ] (level advances by slope; slope is a random walk) and observation H = (price = level + measurement noise). Each bar runs the standard recursion:
Predict: level' = level + slope; covariance P' = F·P·Fᵀ + Q
Update: innovation y = price − level'; predictive variance S = P'₁₁ + R; Kalman gain K = P'·Hᵀ / S; state correction x = x' + K·y; covariance P = (I − K·H)·P'
The 2×2 case is implemented in closed form by hand, so it needs no matrix inversion and stays numerically transparent.
Adaptive noise: the observed innovation variance estimates S = P'₁₁ + R, so R ≈ Var(y) − P'₁₁ is tracked online with an EWMA (with a floor). The filter therefore behaves smoothly in quiet conditions and responsively when the market turns turbulent.
Regime adaptation: velocity = slope ÷ ATR is compared against a dead-zone (slopeThr) to classify UP / DOWN / FLAT, while the magnitude of the surprise z = y ÷ √S detects shocks (news, fast moves).
Honest scope: this is a linear-Gaussian state-space filter (Kalman) — not a neural network and not a crystal ball. The forecast is a linear extrapolation of the current state.
⚙️ Recommended Settings & Tuning Guide
The defaults are tuned for crypto. The parameters that matter most are measurement noise (measR), process noise (procLvl / procSlp), band width (bandMult), the flat dead-zone (slopeThr), and the shock threshold (shockThr).
Smoother / slower: raise measR / lower procLvl
Faster / more reactive: raise procLvl / lower measR
procSlp controls how quickly trend direction may change — smaller keeps direction stable
Crypto starting points (tune on your chart):
BTC / ETH (1H–4H): defaults are a solid baseline; raise procLvl toward 0.4 to catch turns faster
SOL / XRP and high-volatility alts: wicky and noisy — use measR 2.0–2.5 and slopeThr 0.03–0.05 to suppress false FLAT/flip reads
Scalping (1–15m): raise procLvl (0.5+) for responsiveness; bandMult 1.5–2.0 for reversion entries
Swing (daily): lower procSlp (0.01–0.02) to stabilize slope; raise measR for a smoother line
For volatile crypto, keep adaptive noise ON; switch it off only when you want a fixed, predictable feel
💡 How to Use in Practice
Trend-following: ride the line color (velocity sign) and the UP/DN signals; treat FLAT as a range/stand-aside state
Mean-reversion: taps of the upper/lower predictive band flag overextension; because band width scales with S, small stretches in low vol and large stretches in high vol are judged on the same footing
S/R flips & breakouts: a decisive close through the Kalman level with a velocity flip marks the start of a regime change
Shock markers: highlight news, liquidations, and fakeouts — useful as an overextension warning or the onset of a volatility expansion
Forecast ray: the extrapolation of current level + velocity, handy for higher-timeframe bias and rough targets
Multi-timeframe: read directional velocity from a higher-timeframe AE-KALMAN and time entries on a lower one; agreement of both line colors is a high-confidence filter
Combinations: pair with AE-STRATA (SMC structure + ML/RL) and act only when Kalman velocity and STRATA's smart-money probability agree
⚠️ Important Notes
Initial convergence: from a large initial uncertainty, the filter takes a few dozen bars to settle — wait for values to stabilize at the start of history or right after switching symbols
Lag vs smoothness is a trade-off: smoother means slower; faster means noisier — there is no universal setting
The forecast is not a guarantee: it is a linear extrapolation (level + n·slope) and will miss sharp turns; treat it as a projection of the current state only
Parameter sensitivity: optimal noise settings vary by timeframe and symbol — always tune on the chart
🚨 Disclaimer
This indicator is provided for educational and informational purposes only and is not financial advice or a recommendation to buy or sell. No method guarantees future profits; past performance does not indicate future results, and trading carries the risk of loss. All trading decisions are your own — please use proper backtesting and disciplined risk management.
Indicator
AetherEdge - STRATA | SMC + ML/RL🖊️ Overview
AE-STRATA is an overlay toolkit that brings the main Smart Money Concepts (SMC / ICT) elements together and layers a genuine learning engine — online machine learning plus reinforcement learning — on top. Beyond drawing "where" (order blocks, FVGs, liquidity, structure shifts), it learns from that context to show which way price is more likely to go next (ML probability) and what stance to take now (RL action). The SMC drawings are re-implemented from public, generic ICT methods, with an honest learning layer added on top.
🔶 Key Features
Structure analysis — BOS/CHoCH (break/change of character) + swing labels (HH/HL/LH/LL)
Two-layer order blocks — two tiers of zones that fade on mitigation (testing)
FVG (fair value gaps) — tracked from creation to fill
Liquidity — EQH/EQL, sweeps, and traps
Premium / discount — expensive/cheap zones within the range
Deviation oscillator (Pulse) — quantifies stretch from the mean
ML probability — learns P(up over the next H bars) from seven SMC features
RL action — reinforcement learning suggests flat / long / short
A Smart Money Score (0–100) + ML probability + RL action in a gold HUD, dark theme
Learning is based on realized outcomes and gated on bar close — no repaint
🧠 Technical Architecture
SMC engine: order blocks, FVGs, BOS/CHoCH, liquidity, and premium/discount, re-implemented as public, generic ICT concepts.
Preprocessing: features are standardized online via EWMA, keeping a stable scale as the market changes.
ML (online logistic regression): seven SMC features feed an SGD + L2 model that learns P(up over the next H bars). Labels are H-bar-lagged realized returns, so the current prediction uses no future data.
RL (tabular Q-learning, TD(0)): a Q-table over 27 regime-discretized states × (flat / long / short). The reward is ATR-scaled realized return, and updates gate on barstate.isconfirmed; with more data it converges to the stance that pays in each regime.
Honest scope: online logistic regression + tabular Q-learning. Not deep learning (no DQN), and not a guarantee of the future.
⚙️ Recommended Settings & Tuning Guide
Main levers: structure (swing) length, order-block/FVG sensitivity, ML horizon H, learning rate, RL reward scale, Smart Money Score threshold.
Larger structure length → focus on major OBs/structure; smaller → more detections (and noise)
Larger horizon H → slower learning, swing-oriented; smaller → short-term
Higher learning rate → faster adaptation to recent conditions; lower → steadier
Crypto starting points (tune on your chart):
BTC / ETH (15m–4H): defaults are the baseline
SOL / XRP and high-vol alts: slightly longer structure length and tighter OB/FVG sensitivity to suppress wick noise
Scalping (1–15m): shorter horizon, slightly higher learning rate
Swing (4H–daily): longer horizon, ample warmup to fill out learning
The clearest setups are when ML probability, RL action, and the Smart Money Score all point the same way
💡 How to Use in Practice
Trade reactions off zones: price returns to a discount bullish OB or FVG with ML probability rising and RL = long supports a dip-buy (mirror for bearish)
Confirm structure: read BOS/CHoCH for the regime shift and check it agrees with the ML/RL direction
Smart Money Score: a 0–100 composite for the current edge at a glance
Reading the ML probability: high favors upside, low favors downside; near 50% is neutral — stand aside
RL action: a flat/long/short stance suggestion — read alongside the probability and score
Combinations: pairing with a strength oscillator or a higher-timeframe view improves precision
⚠️ Important Notes
Learning period: ML probability and RL action are unsettled until the model spins up (warmup)
Learning reset: changing inputs, symbol, or timeframe re-learns the internal state (weights and Q-table)
SMC is probabilistic: OBs/FVGs/liquidity are levels likely to react, not certainties
Probability, not a guarantee: the ML probability and RL action can be wrong — always use stops and position sizing
🚨 Disclaimer
This indicator is for educational and informational purposes only and is not financial advice or a recommendation to buy or sell. No method guarantees future profits; past performance does not indicate future results, and trading carries the risk of loss. All trading decisions are your own — use proper backtesting and disciplined risk management.
Indicator
BTC 3 Sessions Range Analyzer [88BB]BTC 3 Sessions Range Analyzer is an intraday session range analysis tool designed for BTC traders who want to study how price behaves during the Asia, London, and US trading sessions.
The indicator tracks each session’s high, low, total range, candle body movement, average range, median range, and percentile-based volatility levels. It is built to help traders understand session behavior, compare historical volatility, and prepare more structured intraday trading plans.
This tool does not generate buy or sell signals.
It is a session statistics and range analysis tool.
Key Features
1. Three Major Trading Sessions
The indicator tracks:
Asia Session
London Session
US Session
Each session can be enabled or disabled individually from the settings panel.
2. Fully Selectable Timezone
The timezone is no longer limited to UTC+8.
Users can select from common global timezones and UTC offsets, including:
UTC-12 to UTC+14
Asia / Singapore
Asia / Kuala Lumpur
Asia / Shanghai
Asia / Taipei
Asia / Tokyo
Europe / London
Europe / Berlin
America / New York
America / Chicago
America / Los Angeles
Australia / Sydney
A custom timezone option is also available for users who want to manually enter a PulseWire-supported timezone.
Default timezone: UTC+8
3. Session Range Boxes
The indicator can draw visual session boxes on the chart to show the high and low of each session.
This helps traders quickly identify:
Session high
Session low
Session range
Price expansion
Low-volatility sessions
High-volatility sessions
Breakout or compression behavior after a session ends
4. Current Session High / Low Lines
During an active session, the indicator can display the live session high and low.
This allows traders to observe whether BTC is still building range, expanding beyond the session high, or sweeping below the session low.
5. Historical Range Statistics
For each session, the dashboard calculates:
Current range
Average range
Median range
70% range level
85% range level
Average body size
Suggested TP reference zone
Suggested SL reference zone
These values are based on the selected historical lookback sessions.
6. TP / SL Reference Zones
The TP and SL values shown in the dashboard are statistical reference ranges based on historical session median range.
They are not entry signals and should not be used alone.
They are designed only to help traders estimate whether a target or stop distance is reasonable compared with historical BTC session volatility.
7. English / Chinese Language Support
The dashboard supports:
English
Chinese
Users can switch the display language directly from the settings.
8. No Repainting Design
This indicator does not use request.security() and does not rely on future data.
Completed session statistics are only calculated after the session ends.
How This Indicator Can Be Used
This tool can help traders answer questions such as:
How wide is the current Asia / London / US session range?
Is today’s BTC session range small, normal, active, or unusually volatile?
Is the current session already larger than its historical median?
Is BTC expanding after a compressed session?
Is the market too quiet for active trading?
Is the expected TP / SL distance reasonable compared with session volatility?
Which session usually gives better volatility for the selected BTC market?
Recommended Usage
This indicator is best used on lower intraday timeframes such as:
3-minute
5-minute
15-minute
Recommended market:
BTC perpetual futures
BTC spot markets
Other highly liquid BTC pairs
For best results, use normal candlestick charts.
Important Notes
This indicator is a volatility and session range study tool.
It does not predict price direction.
It does not provide financial advice.
It does not guarantee trading results.
It does not tell users when to buy or sell.
All trading decisions should be made with proper risk management, market structure analysis, liquidity context, position sizing, and personal trading rules.
Disclaimer
This script is provided for educational and analytical purposes only.
Trading involves risk.
Past session behavior does not guarantee future results.
Users are responsible for their own trading decisions.
Tags / Keywords
BTC, Bitcoin, Session Range, Asia Session, London Session, US Session, Intraday Range, Volatility, Range Analyzer, Timezone, 88BB, Session Statistics, Trading Session, Market Range, Crypto Trading Tool
Indicator
NLMS Adaptive Trend Filter [BackQuant]NLMS Adaptive Trend Filter
Overview
The NLMS Adaptive Trend Filter is a machine learning inspired trend-following indicator built around one of the most important adaptive filtering algorithms in signal processing: the Normalized Least Mean Squares (NLMS) filter .
Unlike traditional moving averages that use fixed weighting schemes, the NLMS filter continuously learns from incoming market data and updates its internal coefficients in real time. Rather than assuming that price behavior remains constant, the filter attempts to adapt its structure as market conditions evolve.
This approach originates from the field of digital signal processing, where adaptive filters have been used for decades in applications such as:
• Telecommunications
• Radar systems
• Echo cancellation
• Noise reduction
• Speech processing
• Control systems
• Financial signal extraction
The goal of this indicator is to bring one of these adaptive filtering concepts into market analysis by creating a trend model that continually adjusts itself based on prediction error rather than relying on static averaging methods.
Historical Background
The roots of the NLMS filter can be traced back to the work of Bernard Widrow and Ted Hoff in the late 1950s and early 1960s.
While working at Stanford University, they developed what became known as the:
Least Mean Squares (LMS) Algorithm
The LMS algorithm was revolutionary because it provided a computationally simple method for training adaptive systems using gradient descent.
Rather than solving a complex optimization problem all at once, the LMS algorithm updates its weights incrementally after each observation.
The basic concept was:
1. Make a prediction.
2. Measure the prediction error.
3. Adjust the model slightly.
4. Repeat indefinitely.
This idea eventually became one of the foundational concepts behind modern machine learning and online optimization.
Many modern neural networks still rely on the same underlying principle:
Error → Gradient → Weight Update
The LMS algorithm later evolved into several variants, one of the most important being:
Normalized Least Mean Squares (NLMS)
NLMS improves stability by scaling weight updates according to the energy of the input signal.
This prevents learning rates from becoming too aggressive during high-volatility periods and too weak during low-volatility periods.
As a result, NLMS became one of the most widely used adaptive filtering algorithms in engineering.
What Makes NLMS Different From Moving Averages?
Traditional moving averages use predetermined weights.
For example:
Simple Moving Average (SMA)
Every observation receives equal weight.
Example:
20-period SMA
Each bar contributes:
1 / 20 = 5%
regardless of market conditions.
Exponential Moving Average (EMA)
Recent observations receive more weight.
The weighting structure is fixed and never changes.
Weighted Moving Average (WMA)
Uses linearly decreasing weights.
Again, the weighting scheme is fixed.
The problem is that markets do not operate under fixed conditions.
Volatility changes.
Trend persistence changes.
Noise levels change.
Market structure changes.
Yet traditional moving averages continue using the exact same weighting model.
NLMS takes a different approach.
Instead of assigning permanent weights, it learns them dynamically.
The filter constantly asks
"What weighting structure would have predicted the current market best?"
It then updates itself accordingly.
The Core Idea Behind Adaptive Filters
Imagine trying to forecast today's price using the previous 20 bars.
A normal moving average assumes a fixed weighting pattern.
An adaptive filter attempts to learn the optimal weighting pattern.
At every bar:
• A prediction is generated.
• Actual price is observed.
• Prediction error is measured.
• Weights are adjusted.
The process repeats indefinitely.
Over time, the filter learns which historical observations are most useful and which are less important.
Understanding Filter Taps
One of the most important concepts in adaptive filtering is the idea of:
Taps
A tap is simply a historical observation used as an input.
If the indicator uses:
20 taps
it means:
Price
Price
Price
...
Price
are all being used to generate the prediction.
Each tap receives a learned weight.
Instead of:
Current Estimate =Average of past 20 bars
the filter becomes:
Current Estimate =
(w1 × Price ) +
(w2 × Price ) +
(w3 × Price )
...
(w20 × Price )
The weights are continuously adjusted through learning.
How Prediction Works
The indicator attempts to estimate current price using previous observations.
Mathematically:
Prediction = Σ(weight × historical price)
This prediction becomes the filter output.
If the prediction is accurate:
Weights change very little.
If the prediction is poor:
Weights adjust more aggressively.
This allows the model to gradually adapt to changing market conditions.
Prediction Error
The engine measures:
Error = Actual Price − Predicted Price
This error drives all learning.
Large error means:
The model is wrong.
Small error means:
The model is performing well.
The objective is to minimize prediction error over time.
The LMS Learning Rule
The original LMS update rule is:
New Weight =Old Weight + Learning Rate × Error × Input
This is effectively a form of gradient descent.
The filter moves its weights in the direction that reduces future prediction error.
This is conceptually identical to many machine learning optimization methods.
Why Normalization Matters
The original LMS algorithm has a weakness.
When input values become very large:
Weight updates can become unstable.
This is particularly problematic in financial markets where volatility constantly changes.
NLMS solves this problem by normalizing updates according to signal energy.
Instead of:
Weight Update ∝ Error
it becomes:
Weight Update ∝ Error / Signal Power
This creates adaptive scaling.
When volatility expands:
Updates automatically shrink.
When volatility contracts:
Updates automatically expand.
This improves stability significantly.
How the Indicator Uses NLMS
The script implements an online one-step predictor.
For every new bar:
1. Previous M bars are gathered.
2. Current price is predicted.
3. Prediction error is calculated.
4. Weight vector is updated.
5. New estimate becomes available.
This process occurs continuously as new data arrives.
Because no future data is used, the filter remains fully causal and suitable for live trading.
Weight Initialization
Initially all weights are equal:
1 / M
This effectively starts the model as a simple moving average.
Over time the filter learns a custom weighting structure based on market behavior.
The initial equal-weight state acts as a neutral prior.
Step Size (μ)
The learning rate controls how aggressively the filter adapts.
Lower values:
• More stable
• Smoother output
• Slower adaptation
Higher values:
• Faster adaptation
• More responsiveness
• Greater noise sensitivity
Think of μ as controlling the intelligence speed of the model.
Small values make it conservative.
Large values make it reactive.
Regularization (ε)
Regularization prevents division by very small values.
Without it:
Periods of extremely low signal power could create unstable updates.
Regularization improves numerical stability and robustness.
It acts as a safety mechanism for the learning process.
Output Smoothing
After the NLMS estimate is generated, an optional EMA can be applied.
This smoothing is not part of the NLMS algorithm itself.
It exists purely for visual clarity.
The raw adaptive filter already contains the learning logic.
The smoothing stage simply reduces small fluctuations.
Setting smoothing to 1 effectively disables it.
Trend Detection
Trend direction is derived from the slope of the adaptive filter.
Bullish:
NLMS Output > Previous Output
Bearish:
NLMS Output < Previous Output
This creates a directional state machine.
Unlike crossover systems, trend changes occur whenever the adaptive estimate changes slope.
Bullish Flips
A bullish signal occurs when:
Trend changes from bearish to bullish.
This means the adaptive filter has transitioned from declining to rising.
Bearish Flips
A bearish signal occurs when:
Trend changes from bullish to bearish.
This means the adaptive filter has transitioned from rising to falling.
Visual Components
The indicator includes several visualization layers.
Adaptive Filter Line
The main output of the NLMS model.
This represents the learned trend estimate.
Gradient Fill
The space between price and filter is colorized.
Price Above Filter:
Bullish shading.
Price Below Filter:
Bearish shading.
This provides immediate visual context regarding trend alignment.
Edge Glow
An ATR-based glow surrounds price.
This helps emphasize directional conditions while improving chart readability.
Trend Candles
Candles can optionally inherit trend coloration.
Green:
Adaptive trend rising.
Red:
Adaptive trend falling.
This allows traders to visualize the model's directional state directly on price.
How It Differs From Traditional Trend Filters
Most trend indicators answer:
"What is the average price?"
NLMS attempts to answer:
"What weighting structure best predicts current price?"
This distinction is extremely important.
The indicator is not simply smoothing price.
It is continuously learning how price behaves.
Traditional indicators use fixed mathematics.
NLMS uses adaptive mathematics.
Strengths
• Self-adjusting weighting structure.
• Adapts to changing market conditions.
• Based on established signal-processing theory.
• Stable due to normalization.
• Less reliant on arbitrary moving-average formulas.
• Learns continuously.
• Fully causal and non-lookahead.
Limitations
• Not a predictive model in the forecasting sense.
• Can still lag during major regime shifts.
• Excessively large learning rates may introduce noise.
• Small tap counts can become unstable.
• Large tap counts can become sluggish.
Like all adaptive systems, there is a tradeoff between responsiveness and stability.
Best Use Cases
The NLMS Adaptive Trend Filter is particularly effective for:
• Trend identification.
• Regime classification.
• Dynamic support/resistance visualization.
• Adaptive trend following.
• Noise reduction.
• Signal confirmation.
Summary
The NLMS Adaptive Trend Filter applies one of the most important adaptive algorithms in modern signal processing to financial markets. Rather than relying on fixed moving-average weights, it continuously learns from prediction error and updates its internal model in real time. Built upon the pioneering work of Widrow and Hoff, the indicator combines adaptive filtering, normalized gradient descent, and online learning principles into a practical trend-following tool that evolves alongside changing market conditions. The result is a trend model that is fundamentally different from traditional moving averages, not because it smooths price differently, but because it learns how to smooth price as new information arrives.
Indicator
Smart Market Dashboard PRO Gap Trader EditionA comprehensive intraday dashboard designed specifically for Borsa Istanbul (BIST) equity traders. This indicator focuses on opening gap analysis, combining volume, delta, and price action to help traders make informed decisions at market open.
Key Features:
Gap Detection & Classification – Automatically identifies and labels opening gaps (Full Gap Up/Down, Partial Gap Up/Down) with configurable minimum gap % threshold
Volume & Delta Analysis – Displays real-time cumulative delta, buy/sell volume ratio, and VWAP deviation
Multi-Timeframe Data – Fetches previous day’s OHLCV data to calculate gap reference levels accurately
Visual Dashboard – A clean on-chart table showing key metrics: gap size, volume trend, delta direction, and gap fill probability
Smart Alerts – Configurable alerts for gap setups, gap fill events, and volume anomalies
How It Works:
Gap levels are calculated using End-of-Day (previous session close) as the reference price
All calculations are based on confirmed bar data (barmerge.lookahead_off) to prevent repainting on historical bars
Recommended Usage:
Timeframe: 1–15 minute charts
Market: BIST stocks (optimized for Turkish market open at 10:00 AM)
Works best during the first 30–60 minutes of the trading session
Disclaimer: This indicator is for educational and informational purposes only. It does not constitute financial advice. Always manage your risk accordingly.
Note: As with all intraday indicators, values may update within the current live bar until it closes
Indicator
ZigZag Confluence [Probalist Essentials]ZigZag Confluence draws swing structure with a clear line between what is settled and what is still moving. A confirmed leg is solid and does not redraw once it forms; the developing leg is dashed and labelled, so you can tell the fixed structure from the live edge at a glance. It is non-repainting where it counts: the part that genuinely cannot be final yet is shown as provisional, not dressed up as done. Every confirmed pivot carries a two-line balloon (the signed %-change of the leg and the pivot price) plus a weighted dot sized by how big the completing leg was relative to history. An optional marker shows the bar each pivot actually confirmed, so the confirmation lag — the cost of not repainting — is there to see rather than hidden.
And it keeps score. Over a fixed window after each confirmed pivot it records three things per direction: the favorable run (MFE — how far the move travelled your way), the adverse heat (MAE — how far it went against you first), and the net return at the end of the window. The run and heat percentiles project forward from the live pivot as stop/target rails — the favorable target in the leg's colour, the stop in the opposite — and the favorable-run distribution is drawn as a bell to the right of the chart. The edge verdict is judged separately, on the net follow-through: was it reliably positive on this chart's own history, with a Wilson-bounded win rate? Description, not prediction — and the code is open, so you can count it yourself.
🟡 WHY THIS VERSION
Most ZigZag indicators redraw their last leg silently — they look perfectly timed in hindsight because they were. This one doesn't: confirmed pivots are frozen the moment they form and never move, the developing leg is dashed with the lag spelled out, and an optional ✓ marker shows the exact bar each pivot became actionable. The other thing worth having is that it keeps score where it matters for a swing tool. Instead of a static pivot count, it measures — over a real holding window — how far past legs ran in your favour, how much heat they took first, and whether the net follow-through actually held. You get stop/target rails sized from that history and an honest edge read: a range and a verdict, not a guarantee. And the confirmation timeframes and the HTF overlay derive from your chart, so the multi-timeframe confluence means something on a 5-minute chart as much as on a daily.
🟡 HOW IT WORKS
The pivot detection uses a scale-free ATR threshold: price must reverse from a running extreme by at least k × ATR(14) before the extreme is frozen as a confirmed pivot. A fixed-percentage threshold breaks on low-priced assets and behaves differently in high-volatility regimes; the ATR multiple adjusts naturally. A minimum 'depth' in bars adds a secondary filter so very brief wicks don't confirm pivots on noisy markets.
Once a pivot is confirmed, a solid coloured leg is drawn from the previous pivot (gold for up-legs, blue for down-legs), a two-line balloon labels it, and a weighted dot marks the confirmation bar. The developing leg — from the most recent confirmed pivot to the current running extreme — is drawn dashed and updated every bar. It may extend or be replaced; this is explicitly the confirmation trade-off made visible, not a repaint. The classic ZigZag's flaw is that it draws this same provisional leg as if it were final and then silently redraws it — which is exactly why it looks flawless on historical bars; separating confirmed (solid, frozen) from developing (dashed, labelled) is the honest fix.
It then keeps score over a fixed horizon after each confirmed pivot. For every signal it tracks the running favorable excursion (MFE) and adverse excursion (MAE) from the entry anchor, and the net return once the horizon completes — recorded only on closed bars, non-repainting by construction. A single ZigZag leg is monotonic, so the heat within one leg is near zero; the fixed window is what captures real adverse movement, including pivots that fail and reverse. The run and heat percentiles size the projected stop/target rails — the stop sits at the 90th-percentile heat, because the median heat is ~0 (most entries take no drawdown below them) and the real risk lives in the tail. The edge verdict is judged on the net return: the Wilson-score lower bound of the share of positive-net pivots, with the recent window catching regime shifts faster than the full history. The favorable-run distribution is drawn as a kernel-smoothed bell to the right of the chart. Two anchor modes: Confirmation (the realistic entry, with real heat) and Pivot extreme (the idealized ceiling — anchored at the exact swing, so net is positive by construction and the edge read is suppressed as not meaningful there).
🟡 KEY FEATURES
Honest two-tone rendering: confirmed legs solid and permanent, the developing leg dashed and labelled — the distinction is explicit, not hidden. An optional marker shows the exact bar each pivot confirmed (the lag = the price of not repainting).
ATR-scaled reversal threshold: scale-free across assets, adjusts to volatility regimes automatically. A depth-in-bars filter rejects brief wicks.
Per-pivot two-line balloon labels: signed %-change on top, pivot price below, leg duration in the hover tooltip.
Weighted signal dots sized by leg-size percentile (self-calibrating 60th/90th tiers), carrying an evidence glyph: ● recent net-backed · ◐ has stats but not backed · ○ gathering. A ◈ prefix marks pivots that land at a prior confirmed pivot level — a fixed, tight invalidation (geometry, not extra probability).
Excursion read per direction: over a fixed horizon after each pivot it measures the favorable run (MFE) and the adverse heat (MAE), projected forward from the live pivot as stop/target rails — favorable target in the leg's colour, the stop (90th-percentile heat) in the opposite. The favorable-run distribution is drawn as a kernel-smoothed bell with the live leg's percentile marked.
Honest net-edge verdict: judged on the net return at the horizon (not the trivially-positive run), with a Wilson-score lower bound, a recent-vs-long-run read and a dual edge-clock. Suppressed under the pivot-extreme anchor, where net is positive by construction and labelled the idealized ceiling, not an edge.
Evidence-gated alerts: standard and net-history-backed variants of bull/bear pivot confirmations, plus BOS/CHoCH and pivot-at-prior-level — all non-repainting (bar-close vs pre-fixed levels).
MTF ✓-badges with auto-derived rungs: the confirmation timeframes come from your chart (the next steps up the ladder 1·5·15·60·240·D·W·M, so a 5m chart checks 15m/1h/4h, not D/W; change the chart TF and the rungs follow). When a higher TF later confirms the same swing, the balloon is stamped (e.g. ✓4h) — confluence shown when it actually exists, never before, since a higher timeframe confirms later by construction.
Ghost pivots: faint ● dots in the accent colours (gold = a would-be swing high, blue = a would-be swing low) at superseded extremes that stood at least the confirmation depth before price pushed through — every spot where a repainting ZigZag would have printed a pivot and silently erased it. The honest counterpart of never repainting.
Market structure layer: every balloon tagged HH/HL/LH/LL, with BOS and CHoCH flagged when a bar closes beyond the last confirmed swing level — the level is fixed before the break, so the call is non-repainting by construction.
Optional HTF ZigZag overlay with the same auto-derived ladder (two rungs up the chart): a thin dotted higher-timeframe structure for context. Display only — it never filters or alters signals.
🟡 HOW TO USE
Use confirmed (solid) legs as your structure reference: they define swing highs and lows that won't move. A sequence of higher lows on solid lines is an uptrend; lower highs is a downtrend.
Treat the dashed developing leg as provisional — its endpoint updates every bar. The 'confirms X' trigger level shows the close that would confirm it; the optional confirmation-bar marker shows, after the fact, how many bars the confirmation lagged the extreme. That lag is the honest cost of non-repainting structure.
Read the stop/target rails on the active developing leg: the favorable target is the median (and 75th-percentile) run past legs made in this direction; the stop rail sits at the 90th-percentile heat — beyond where the normal adverse move stayed on ~90% of past legs. The reward:risk on the label is descriptive of this chart, not a promise.
Use the net-edge read as context, not an entry trigger. A 'net follow-through reliably positive' verdict means past pivots here held up on a Wilson-bounded majority — weigh it against fees, spread and your holding period before acting.
Check the developing leg's percentile in the favorable-run distribution: a leg already at the 85th percentile is well-extended by historical standards and may be closer to a pivot than a fresh one at the 20th.
Costs honesty: pivot signals on low timeframes can show a tiny median net (e.g. +0.10–0.30% over the horizon). On most venues that does not survive round-trip costs — use the read for directional bias and higher-timeframe confluence, not as a standalone scalp entry.
Size alerts around the evidence tier: the 'history-backed' alert variants fire only when the recent net clears the Wilson threshold; standard alerts fire on every confirmation. Use the backed variant for stronger-filter setups.
Anchor choice: keep Confirmation (default) for the tradeable read — the entry you could actually take, with its real heat. Switch to Pivot extreme only to see the idealized ceiling (full run, ~zero heat); the edge verdict is intentionally suppressed there because net is positive by construction.
Enable Show HTF ZigZag for the higher-timeframe structure as a thin dotted overlay (the timeframe auto-derives from your chart). Chart-timeframe pivots that align with an HTF leg in the same direction carry more structural weight — and the MTF ✓-badges quantify exactly that. Display only; it never filters or alters signals.
🟡 PAIRS WELL WITH
ZigZag structure tells you where the swings are but not what drives them. A momentum oscillator like RSI or MACD adds a read on whether momentum is confirming the swing — a swing low into an OS zone with divergence is a more complete setup than a pivot alone. A volume indicator helps distinguish pivots that occurred on meaningful participation from low-volume reversals. For trend bias, a moving average or Supertrend on a higher timeframe filters which pivot direction to trade with versus against. Key S/R levels (daily highs/lows, prior swing clusters) give the structural context this tool measures but doesn't assess quality-wise — a confirmed pivot at a prior level is a different read than one in open air.
ZigZag Confluence gives you swing structure you can trust: pivots that don't move after the fact, a developing leg that tells you honestly it's still forming, and an excursion read that shows what this chart has actually done after past pivots — how far they ran, how much heat they took, and whether the net follow-through held — not what a backtest on a different instrument claims. The rails and the distribution are displays, not filters; the trader reads the evidence and decides.
Open source under MPL-2.0. The probability layer describes past signals on your chart — it is a measurement, not a prediction, and nothing here is financial advice.
Indicator
Dempster-Shafer Evidence Fusion [forexobroker]Dempster-Shafer Evidence Fusion combines six independent child evidences (EMA slope, RSI deviation, ATR-normalized return, signed volume z-score, range-expansion conviction, close-in-range positioning) into a single mass distribution over the hypothesis frame {Long, Short, Hold} using Dempster's rule of combination. Unlike a weighted-average composite where conflicting child signals dilute the score, Dempster-Shafer explicitly tracks epistemic uncertainty as a separate Hold mass and resolves conflict via a conflict denominator, so the combined output is properly normalized and the Hold mass quantifies disagreement among children. The unique angle is principled belief fusion rather than ad hoc voting or averaging.
🔶 ALGORITHM
1. Six child evidences are computed each bar. Each child produces a signed strength in (-1, 1).
2. Strength is mapped to a mass triplet: m(Long) = max(s,0) * |s|, m(Short) = -min(s,0) * |s|, m(Hold) = 1 - |s|. Sums equal one.
3. Children: (1) ATR-normalized EMA slope, tanh-squashed; (2) (RSI - 50)/50; (3) tanh of (close - close )/atr; (4) signed volume z-score, tanh-squashed; (5) range-expansion ratio signed by return direction, tanh-squashed; (6) (close - lowest(low,N))/(highest(high,N) - lowest(low,N)) re-centered to (-1, 1).
4. Pair-wise Dempster fusion: for two evidences (m1, m2), conflict K = m1(L)m2(S) + m1(S)m2(L); m12(L) = (m1(L)m2(L) + m1(L)m2(H) + m1(H)m2(L)) / (1-K). Symmetric for Short. Hold collects m1(H)m2(H)/(1-K). After fusion the triplet is renormalized for floating-point safety.
5. All six evidences are cascaded pair-by-pair to a final triplet (m_L, m_S, m_H).
6. Conviction equals max(m_L, m_S, m_H). The threshold (default 0.55) defines when one hypothesis dominates.
7. A signal fires when the dominant mass exceeds the threshold and standard gates pass.
🔶 SIGNAL LOGIC
- Buy: combined m(Long) above the signal threshold AND session filter passes AND position is not already long AND cooldown bars elapsed AND barstate.isconfirmed.
- Sell: combined m(Short) above the signal threshold AND session filter passes AND position is not already short AND cooldown bars elapsed AND barstate.isconfirmed.
Because m(L) + m(S) + m(H) = 1 by construction, both buy and sell cannot trigger on the same bar; ties resolve as Hold.
🔶 INPUTS
- Calculation group: EMA Length (default 21), EMA Lookback (default 5), RSI Length (default 14), ATR Length (default 14), Volume StDev Len (default 20), Range Avg Length (default 20), Position-In-Range Len (default 20).
- Signal Logic group: Combined Mass Threshold (default 0.55), cooldown bars (default 15).
- Filters group: optional session restriction (default 0000-2400).
- Visual group: dashboard toggle, 3-layer glow toggle, long/short/hold colors and dashboard background.
🔶 ALERTS
DSE Buy, DSE Sell, DSE Any Signal, DSE Long Cross, DSE Short Cross, DSE Uncertain, DSE High Conviction, DSE Net Long, DSE Net Short, DSE Webhook JSON.
🔶 LIMITATIONS
- Dempster's rule is sensitive to high-conflict situations; when child signals disagree strongly the denominator (1-K) becomes small and a near-zero numerator can amplify noise. The script floors the denominator at 1e-10.
- Six children all derived from the same OHLCV stream are not strictly independent evidences; the assumption underlying classical Dempster-Shafer is somewhat relaxed here.
- The tanh squashing of slope, return, and volume scales is opinionated; instruments with very different volatility profiles may need different child mapping ranges.
- A high conviction Hold mass means children disagree; this is information, not a problem to fix, but it does mean stretches of low signal density are expected.
- Volume is used as an evidence input; on symbols without exchange volume that child collapses to near-zero strength and the remaining five carry the consensus.
Indicator
Multi-Factor Market Score v2.0 [DE]Multi-Factor Market Score v2.0 is a multi-factor ranking and analysis tool for stocks, ETFs/indices, and other liquid markets based on daily data.
It combines relative strength, trend quality, and—when stock fundamentals are available—earnings quality into a unified score from 0.00 to 1.00.
The script includes automatic instrument classification, benchmark logic, history checks, data coverage/model confidence, safety filters, and clear zones for watchlist, buy, and strong buy conditions.
Its panel shows the main score drivers, including relative strength, trend quality, distance from the 52-week high, benchmark context, fundamental metrics, and the current model assessment.
Important: the current public version of the script is available in German only.
All labels, tooltips, table entries, and alert texts inside the script are currently written in German, even though this publication description is in English.
This script is a structured analysis tool, not an autonomous trading system.
Depending on the PulseWire data feed, small caps, or special cases, some fundamental inputs may be incomplete, delayed, or unusual despite mathematically correct processing, so score, coverage, and individual data points should always be interpreted together.
Indicator
Derivatives Expected Move Volatility Bands [v2]Derivatives Expected Move Volatility Bands
Overview
Derivatives Expected Move Volatility Bands is a volatility-based projection tool designed to estimate the likely upside and downside price range over a selected number of future candles.
The indicator uses recent realised volatility to calculate an expected move from the current market price. It then plots forward-looking volatility levels at **±1σ, ±2σ, and ±3σ** from the selected anchor price.
This is not a traditional moving average, oscillator, or buy/sell indicator. It is a **risk, volatility, and scenario-planning tool**. It helps traders understand whether the current market is trading within a normal expected range, approaching an extended zone, or operating in an extreme-volatility regime.
The logic is inspired by derivatives pricing concepts, where volatility and time are used to estimate the probable distribution of future prices.
What the Indicator Shows
The indicator plots forward expected-move levels from the current price.
Anchor Line
The Anchor is the current price used as the base for the projection. By default, this is the latest closing price.
The projected bands are calculated above and below this anchor.
+1σ and -1σ Levels
The 1 standard deviation bands represent the normal expected move over the selected time horizon.
In practical terms, these levels show where price could reasonably trade if recent volatility conditions persist.
+2σ and -2σ Levels
The 2 standard deviation bands represent a more extended move.
A move toward or beyond these levels suggests that the market is trading outside its normal short-term range and may be entering a stronger momentum or stress condition.
+3σ and -3σ Levels
The 3 standard deviation bands represent extreme move zones.
These are useful for stress testing, event-risk planning, and identifying unusually large moves. They should not be treated as automatic reversal levels.
How the Expected Move Is Calculated
The indicator estimates realised volatility from recent log returns.
The expected move is then calculated as:
Expected Move = Price × Realized Volatility × √Time Horizon
Where:
- Price = selected anchor price
- Realized Volatility = volatility calculated from recent price changes
- Time Horizon = the number of future bars selected by the user
For example, on a 1-hour chart with a horizon of 20 bars, the indicator estimates the expected move over the next 20 hourly candles.
Dashboard Explanation
The indicator includes a dashboard with the following fields:
Vol Regime
Shows the current volatility regime based on the percentile rank of realised volatility.
Possible regimes:
- Low Vol
- Normal Vol
- High Vol
- Extreme Vol
This helps traders understand whether the market is calm, active, volatile, or in a stress regime.
RV Annualized
Shows the current realised volatility annualised using the selected bars-per-year setting.
This is useful for comparing volatility across assets and timeframes.
Vol Percentile
Shows where current volatility ranks compared to its recent history.
For example:
- A percentile near 20% means volatility is low relative to recent history.
- A percentile near 80% means volatility is high.
- A percentile above 90% suggests an extreme volatility regime.
Expected Move
Shows the projected move as a percentage of price over the chosen horizon.
Expected Move Abs
Shows the expected move in absolute price terms.
For FX pairs, this can be interpreted approximately as the number of pips depending on the instrument.
Projection Anchor
Shows the price level used as the base for the forward projection.
Vol Direction
Shows whether realised volatility is currently:
- Expanding
- Contracting
- Flat
This is important because an extended price move with expanding volatility often behaves differently from an extended move with contracting volatility.
How to Use the Indicator
1. Use It for Forward Price Range Planning
The main use of the indicator is to answer:
Based on current volatility, how far could price reasonably move over the next selected number of candles?
For example, if EUR/USD is trading at 1.1520 and the 20-bar expected move is 0.45%, the indicator will project upside and downside levels around that price.
This can help with:
- Trade planning
- Target setting
- Stop placement
- Event-risk preparation
- Volatility regime analysis
- Avoiding unrealistic price expectations
2. Use 1σ Levels for Normal Movement
The ±1σ levels are the most useful for normal trading conditions.
Price moving toward a 1σ level suggests that it is making a meaningful move, but not necessarily an extreme one.
Common uses:
- Identify realistic intraday or swing targets
- Estimate normal retracement zones
- Avoid entering trades with poor reward-to-risk
- Compare current price action to recent volatility
3. Use 2σ Levels for Extension and Stress
The ±2σ levels represent stronger price movement.
When price approaches or breaks a 2σ level, traders should assess whether the move is:
- A genuine momentum expansion
- A news-driven volatility shock
- An exhaustion move
- A liquidity sweep
- A stop-run beyond normal range
A move outside 2σ should not automatically be faded. Strong markets can continue beyond expected ranges, especially when volatility is expanding.
4. Use 3σ Levels for Extreme Risk Planning
The ±3σ levels are not everyday trading targets.
They are better used for:
- Stress scenarios
- Major event planning
- CPI, NFP, FOMC, central bank decisions
- Crypto liquidation events
- Geopolitical volatility
- Large FX repricing events
If the price reaches a 3σ level, the market is moving in an unusually large way relative to recent volatility.
5. Combine Price Location with Volatility Direction
The most important part of the indicator is not just where the price is, but whether volatility is expanding or contracting.
Momentum Expansion
If price is moving outside the 1σ or 2σ range while volatility is expanding, the market may be entering a momentum phase.
This can support breakout or trend-continuation logic.
Exhaustion or Mean-Reversion Risk
If the price is extended beyond the bands while volatility is contracting, the move may be losing energy.
This can suggest exhaustion risk, but confirmation is still required from price action.
Compression
If volatility is low and the bands are narrow, the market may be in a compression regime.
Compression does not predict direction, but it can warn that a larger move may be building.
Trading Interpretations
Momentum Use Case
A bullish momentum condition may develop when:
- Price trades above the anchor
- Price pushes toward or beyond +1σ
- Volatility is expanding
- Market structure supports continuation
A bearish momentum condition may develop when:
- Price trades below the anchor
- Price pushes toward or beyond -1σ
- Volatility is expanding
- Market structure supports continuation
In these conditions, traders may use the bands as forward targets or risk zones.
Mean-Reversion Use Case
Mean-reversion traders should avoid blindly fading every touch of a band.
A better approach is to wait for confirmation, such as:
- Price moves outside ±2σ
- Price then closes back inside the band
- Volatility stops expanding
- A reversal candle or structure shift appears
- The move fails to continue
The re-entry back inside the band is often more important than the initial band touch.
Breakout Use Case
The indicator can also help with breakout analysis.
A breakout has higher quality when:
* Price breaks beyond the 1σ level
* Volatility is expanding
* Price does not immediately return to the anchor
* The move aligns with higher-timeframe structure
A breakout is weaker when:
* Price breaks the band but volatility contracts
* Price immediately returns inside the expected range
* The breakout occurs into a major opposing level
* Liquidity is poor or event risk is unresolved
Event-Risk Use Case
The indicator is useful before major events such as:
* CPI
* NFP
* FOMC
* ECB decisions
* BoE decisions
* Central bank speeches
* Major crypto events
* Earnings for stocks
* Geopolitical shocks
Before an event, traders can use the projected bands to estimate reasonable upside and downside scenarios.
After the event, traders can observe whether price remains inside the expected range or reprices beyond it.
Recommended Settings
FX 1-Hour Chart
Suggested settings:
* Volatility Lookback: **30 to 50**
* Horizon Bars: **20 to 24**
* Bars Per Year: **6240**
* Projection Anchor: **Close**
This works well for pairs such as:
* EUR/USD
* GBP/USD
* USD/JPY
* AUD/USD
* USD/CAD
* USD/ZAR
## Crypto 1-Hour Chart
Suggested settings:
* Volatility Lookback: 50 to 100
* Horizon Bars: 24
* Bars Per Year: 8760
* Projection Anchor: Close
Crypto trades continuously, so a higher bars-per-year input is more appropriate.
Daily Chart
Suggested settings:
* Volatility Lookback: 20 to 30
* Horizon Bars: 5 to 20
* Bars Per Year: 252 for traditional markets
* Bars Per Year: 365 for crypto
Daily settings are useful for swing trading and weekly scenario planning.
Intraday Index Trading
Suggested settings:
* Volatility Lookback: 50 to 100
* Horizon Bars: 12 to 48
* Bars Per Year: depends on the chart timeframe and trading session
For 5-minute charts, users should adjust the bars-per-year setting based on the number of active trading bars in a year.
## Practical Trading Workflow
A simple workflow:
1. Select your market and timeframe.
2. Set the expected move horizon.
3. Check the volatility regime.
4. Check whether volatility is expanding or contracting.
5. Observe whether price is near the anchor, 1σ, 2σ, or 3σ.
6. Use 1σ and 2σ levels for target and risk planning.
7. Avoid blindly fading extreme moves during expanding volatility.
8. Look for re-entry or structure confirmation before mean-reversion trades.
9. Use the bands together with market structure, trend, liquidity, and macro context.
What the Indicator Is Best For
This indicator is best used for:
* Expected move analysis
* Volatility regime detection
* Trade planning
* Risk management
* Scenario analysis
* Event-risk preparation
* Identifying normal vs extended price movement
It is particularly useful for traders who want to understand whether the market is moving within a statistically normal range or entering an abnormal volatility condition.
What the Indicator Is Not
This indicator is not:
* A guaranteed buy/sell system
* A full options-pricing model
* A prediction engine
* A replacement for risk management
* A standalone trading strategy
* A signal that every band touch should be traded
The bands are probability-based reference levels, not guaranteed support or resistance.
Important Limitations
The indicator uses historical realised volatility. It does not know future volatility.
Volatility can change suddenly, especially during:
* News events
* Central bank decisions
* Earnings releases
* Liquidity shocks
* Flash crashes
* Crypto liquidation cascades
* Geopolitical events
The expected move assumes that recent volatility is a reasonable estimate for near-future volatility. In fast-changing markets, this assumption can fail.
The indicator also does not include order flow, positioning, options-chain data, implied volatility, macroeconomic data, or liquidity depth.
For best results, it should be combined with:
* Market structure
* Trend analysis
* Support and resistance
* Liquidity levels
* Fundamental or macro context
* Risk management rules
## Suggested Interpretation Table
| Price Location | Volatility Direction | Interpretation |
| ----------------- | -------------------- | ------------------------------------ |
| Near Anchor | Flat or Contracting | Balanced / neutral range |
| Above +1σ | Expanding | Bullish momentum possible |
| Below -1σ | Expanding | Bearish momentum possible |
| Above +2σ | Expanding | Strong upside extension |
| Below -2σ | Expanding | Strong downside extension |
| Outside ±2σ | Contracting | Possible exhaustion risk |
| Back inside ±2σ | Contracting | Mean-reversion confirmation possible |
| Very narrow bands | Low volatility | Compression / breakout risk |
| Very wide bands | High volatility | Stress regime / reduce size |
## Risk Management Notes
Traders can use the expected move levels to improve risk planning.
Possible applications:
* Use 1σ levels as realistic near-term targets.
* Use 2σ levels as aggressive targets or extreme-risk zones.
* Avoid placing stops too close during high-volatility regimes.
* Reduce position size when volatility percentile is high.
* Avoid chasing price after a large move into 2σ or 3σ unless momentum is confirmed.
* Wait for re-entry before fading extended moves.
The indicator is most powerful when used to avoid poor trade location.
Example Use Case
Suppose EUR/USD is trading at 1.1520 on the 1-hour chart.
The indicator shows:
* Expected Move: 0.45%
* +1σ: 1.1574
* -1σ: 1.1470
* +2σ: 1.1626
* -2σ: 1.1419
* Vol Regime: Extreme Vol
* Vol Direction: Contracting
This means the market recently experienced a large volatility shock, but volatility is now cooling.
A trader could interpret this as follows:
* A move toward +1σ may be a normal retracement.
* A move toward -1σ may be normal continuation.
* A move beyond ±2σ would represent a more extreme continuation or reversal scenario.
* Since volatility is contracting, chasing the move may be less attractive.
* Mean reversion should still require confirmation from price action.
## Best Markets
The indicator can be used across liquid markets, including:
* FX pairs
* Crypto
* Equity indices
* Commodities
* Futures
* Large-cap stocks
It generally works best on liquid instruments with reliable price history.
## Final Notes
Derivatives Expected Move Volatility Bands is designed to help traders think in terms of probability, volatility, and risk.
Instead of asking only whether price is bullish or bearish, the indicator helps answer:
* Is the move normal or extended?
* How far could price reasonably move?
* Is volatility expanding or contracting?
* Is the market in a low, normal, high, or extreme volatility regime?
* Are my targets and stops realistic for the current environment?
Use it as a decision-support and risk-management tool, not as a standalone trading system.
Indicator
ForgeQuant AI | Regime + LSTM + R:R [MarketFragments]ForgeQuant AI
A regime-aware overlay that combines four systems into a single read on the
chart: a regime classifier, a deep recurrent LSTM-style memory cell, a 0-100
confluence edge score, and a dynamic ATR-based risk/reward engine.
Important up front: this is a research preview. It has NOT been forward tested,
and no performance claims are made. See the notes at the bottom.
─────────────────────────────────────────────────────────────
HOW IT WORKS
─────────────────────────────────────────────────────────────
STEP 1 -- REGIME DETECTION
Volatility percentile (ATR rank) and a directional-movement trend-strength
reading classify each bar into one of six regimes: Strong Trend Bull, Strong
Trend Bear, High-Vol Chop, Mean Reversion, Breakout Potential, or Neutral. The
chart background shades to match.
STEP 2 -- DEEP LSTM MEMORY CELL
A 2-layer recurrent memory cell processes an engineered input vector built from
normalized volume, momentum vs the 21 EMA, volatility-of-volatility, and RSI
deviation. Layer 1 runs a fast cell and a slow cell; Layer 2 is a stacked
context cell. Gate weights adapt online via a clipped, momentum-smoothed
pseudo-BPTT update, with optional attention-weighted readout and layer-norm
input scaling. The cell outputs a hidden state, a confidence reading, a regime
bias (via an adaptive bias band), and an anomaly flag when price behavior
diverges sharply from the learned state.
This is a heuristic recurrent filter written in Pine -- not a trained neural
network. Treat it as an adaptive smoother, not a forecast.
STEP 3 -- CONFLUENCE EDGE SCORE
A 0-100 score blends five inputs: market structure (fair-value gaps and volume
absorption), volume behavior, momentum (RSI and the 9 EMA), higher-timeframe
trend (60-minute), and the LSTM bias/anomaly state.
STEP 4 -- DYNAMIC RISK & REWARD
Suggested risk % scales by regime (reduced in chop, trimmed further on an
anomaly). Stop and target are ATR multiples, with the target stretched by LSTM
confidence. A forward-projected R:R cloud draws the target (green) and stop
(red) zones from the latest close.
─────────────────────────────────────────────────────────────
SIGNALS
─────────────────────────────────────────────────────────────
Long Edge score >= 62, RSI > 52, a bullish FVG or absorption bar, and no
active LSTM anomaly.
Short Edge score >= 62, RSI < 48, a bearish FVG or absorption bar, and no
active LSTM anomaly.
Triggers evaluate on confirmed bars only.
─────────────────────────────────────────────────────────────
WHAT YOU SEE
─────────────────────────────────────────────────────────────
Background shade Current regime
Cyan line LSTM hidden state plotted around price (× ATR amplitude)
Green/Red cloud Dynamic R:R -- target (green) and stop (red)
Triangles Long (L, up) and Short (S, down) signals
Dashboard panel Regime, edge score, LSTM confidence, suggested risk %,
dynamic R:R, anomaly status, attention split, bias band
Gate plots Optional forget/input/output gate activations (debug)
─────────────────────────────────────────────────────────────
SETTINGS
─────────────────────────────────────────────────────────────
Display Regime background, panel position/size, diagnostics, gates
LSTM Memory Cell Enable, memory speed, anomaly sensitivity, attention,
layer-norm, hidden-state plot amplitude
Regime-Bias Band Auto (stdev-scaled) vs manual, sensitivity, lookback,
floor/ceiling
Dynamic Risk Base risk %, ATR stop/target multiples, chop multiplier,
R:R cloud toggle and forward extend
─────────────────────────────────────────────────────────────
IMPORTANT NOTES
─────────────────────────────────────────────────────────────
-- This indicator has NOT been backtested or forward tested
-- No performance claims are made
-- Shared as a research tool for community review
-- Risk, stop, and target values are illustrative sizing suggestions, not
trade instructions
-- Results will vary by instrument, timeframe, and market conditions
-- This is not financial advice
-- Trading involves substantial risk of loss
-- Past results do not guarantee future performance
-- Use for educational and research purposes only
─────────────────────────────────────────────────────────────
Free for public use
Indicator
Continuous Market Grid botThe Continuous Market Grid Bot is a high-frequency, range-bound algorithmic market-making strategy. It bypasses conventional directional forecasting by dividing a master price bracket into symmetrical, mathematically spaced price corridors. Utilizing dynamic status arrays to maintain structural awareness, the engine systematically scaling-in long inventory via micro-dips and liquidating positions for explicit, compounding cash-flow gains upon immediate cyclical rotations.
Core Algorithmic Architecture
1. Finite Array State Machine
Unlike standard grid scripts that continuously spam overlapping or duplicate orders, this version integrates a persistent boolean status matrix (grid_holding). The array serves as the bot's independent memory core. It dynamically locks a specific grid corridor the microsecond an accumulation trigger is met, ensuring that a tier cannot be duplicated until its active inventory is completely cleared via an offsetting profit execution.
2. Self-Replenishing Micro-Corridors
The matrix loop is designed for continuous rotation across the operational band:
The Dip Layer: The engine monitors price interactions with each localized grid line. If price cuts downward across a tier, the bot locks inventory for that specific corridor.
The Targeted Rotation: Once inventory is secured, the strategy targets a discrete liquidation zone exactly one step higher. Upon an upward crossover, the engine flushes the tier, clears the array reference, and instantly rearms the level to repeat the accumulation process on the next corrective wave.
3. Dynamic Boundary Activation
To prevent adverse fills during chaotic macro trends, the system includes an automated initialization sequence. The execution engine remains completely dormant until price action enters the designated trading bracket. Once active, the intermediate nodes are cleanly rendered as non-repainting dashed structural levels across the right side of the user workspace.
Strategy Parameters & Backtesting Metrics
To replicate realistic institutional execution, the strategy properties are pre-embedded with specific live-market friction metrics. When running historical simulations or connecting to automated API order routers, ensure the configuration mirrors these structural settings:
Explicit Commission Values: The script is hardcoded with a 0.035% execution fee (strategy.commission.percent) applied to every single transaction. This precisely mirrors real-world round-trip costs on premium derivative exchanges and discount brokerages.
Slippage Buffer Requirements: It is highly recommended to configure 10 to 15 Slippage Ticks within your PulseWire strategy properties tab. This ensures the historical performance metrics account for order book latency, depth variations, and execution delay during high-speed matching environments.
Independent Close Rule: The strategy utilizes the close_entries_rule="ANY" instruction. This is a critical configuration that enables the engine to close position tiers out of chronological order, focusing strictly on closing the exact matching layer that reached its specific target matrix.
High-Risk Capital & Margin Warning
Symmetrical grid trading algorithms present exceptionally stable performance metrics during consolidation zones, but they introduce structural liabilities that users must thoroughly evaluate before allocating active capital:
High Capital Intensity: Grid systems demand heavy capital allocation. Because the bot continuously accumulates units as price descends, your ledger requires deep, un-leveraged cash reserves to sustain multiple simultaneous open drawdowns without triggering forced liquidation or margin calls.
The Trend Extinction Risk: The primary hazard to a grid framework is a one-directional macro trend. If an asset enters a persistent, structural capitulation phase that breaks cleanly below your Lower Price Limit, the bot will remain at maximum asset capacity, holding a full basket of losing inventory with mounting unrealized losses.
Emergency Risk Isolation: The script features an embedded Stop Loss Control Module. If enabled, a breach of the user-defined floor price immediately initiates a comprehensive purge sequence—wiping all pending orders, flushing outstanding inventory at market values, and clearing the status arrays to completely halt ongoing downside exposure.
Disclaimer: Trading financial derivative instruments carries a high level of capital risk. Grid bots are highly susceptible to severe trend extensions and liquidity blackouts. This technical model is presented strictly for educational research and historical backtesting analysis. It does not constitute personalized financial advice or automated asset management.
Strategy























