Quantile Regression Bands [BackQuant]Quantile Regression Bands
Tail-aware trend channeling built from quantiles of real errors, not just standard deviations.
What it does
This indicator fits a simple linear trend over a rolling lookback and then measures how price has actually deviated from that trend during the window. It then places two pairs of bands at user-chosen quantiles of those deviations (inner and outer). Because bands are based on empirical quantiles rather than a symmetric standard deviation, they adapt to skewed and fat-tailed behaviour and often hug price better in trending or asymmetric markets.
Why “quantile” bands instead of Bollinger-style bands?
Bollinger Bands assume a (roughly) symmetric spread around the mean; quantiles don’t—upper and lower bands can sit at different distances if the error distribution is skewed.
Quantiles are robust to outliers; a single shock won’t inflate the bands for many bars.
You can choose tails precisely (e.g., 1%/99% or 5%/95%) to match your risk appetite.
How it works (intuitive)
Center line — a rolling linear regression approximates the local trend.
Residuals — for each bar in the lookback, the indicator looks at the gap between actual price and where the line “expected” price to be.
Quantiles — those gaps are sorted; you select which percentiles become your inner/outer offsets.
Bands — the chosen quantile offsets are added to the current end of the regression line to draw parallel support/resistance rails.
Smoothing — a light EMA can be applied to reduce jitter in the line and bands.
What you see
Center (linear regression) line (optional).
Inner quantile bands (e.g., 25th/75th) with optional translucent fill.
Outer quantile bands (e.g., 1st/99th) with a multi-step gradient to visualise “tail zones.”
Optional bar coloring: bars trend-colored by whether price is rising above or falling below the center line.
Alerts when price crosses the outer bands (upper or lower).
How to read it
Trend & drift — the slope of the center line is your local trend. Persistent closes on the same side of the center line indicate directional drift.
Pullbacks — tags of the inner band often mark routine pullbacks within trend. Reaction back to the center line can be used for continuation entries/partials.
Tails & squeezes — outer-band touches highlight statistically rare excursions for the chosen window. Frequent outer-band activity can signal regime change or volatility expansion.
Asymmetry — if the upper band sits much further from the center than the lower (or vice versa), recent behaviour has been skewed. Trade management can be adjusted accordingly (e.g., wider take-profit upslope than downslope).
A simple trend interpretation can be derived from the bar colouring
Good use-cases
Volatility-aware mean reversion — fade moves into outer bands back toward the center when trend is flat.
Trend participation — buy pullbacks to the inner band above a rising center; flip logic for shorts below a falling center.
Risk framing — set dynamic stops/targets at quantile rails so position sizing respects recent tail behaviour rather than fixed ticks.
Inputs (quick guide)
Source — price input used for the fit (default: close).
Lookback Length — bars in the regression window and residual sample. Longer = smoother, slower bands; shorter = tighter, more reactive.
Inner/Outer Quantiles (τ) — choose your “typical” vs “tail” levels (e.g., 0.25/0.75 inner, 0.01/0.99 outer).
Show toggles — independently toggle center line, inner bands, outer bands, and their fills.
Colors & transparency — customize band and fill appearance; gradient shading highlights the tail zone.
Band Smoothing Length — small EMA on lines to reduce stair-step artefacts without meaningfully changing levels.
Bar Coloring — optional trend tint from the center line’s momentum.
Practical settings
Swing trading — Length 75–150; inner τ = 0.25/0.75, outer τ = 0.05/0.95.
Intraday — Length 50–100 for liquid futures/FX; consider 0.20/0.80 inner and 0.02/0.98 outer in high-vol assets.
Crypto — Because of fat tails, try slightly wider outers (0.01/0.99) and keep smoothing at 2–4 to tame weekend jumps.
Signal ideas
Continuation — in an uptrend, look for pullback into the lower inner band with a close back above the center as a timing cue.
Exhaustion probe — in ranges, first touch of an outer band followed by a rejection candle back inside the inner band often precedes mean-reversion swings.
Regime shift — repeated closes beyond an outer band or a sharp re-tilt in the center line can mark a new trend phase; adjust tactics (stop-following along the opposite inner band).
Alerts included
“Price Crosses Upper Outer Band” — potential overextension or breakout risk.
“Price Crosses Lower Outer Band” — potential capitulation or breakdown risk.
Notes
The fit and quantiles are computed on a fixed rolling window and do not repaint; bands update as the window moves forward.
Quantiles are based on the recent distribution; if conditions change abruptly, expect band widths and skew to adapt over the next few bars.
Parameter choices directly shape behaviour: longer windows favour stability, tighter inner quantiles increase touch frequency, and extreme outer quantiles highlight only the rarest moves.
Final thought
Quantile bands answer a simple question: “How unusual is this move given the current trend and the way price has been missing it lately?” By scoring that question with real, distribution-aware limits rather than one-size-fits-all volatility you get cleaner pullback zones in trends, more honest “extreme” tags in ranges, and a framework for risk that matches the market’s recent personality.
Trading
Cumulative Returns by Session [BackQuant]Cumulative Returns by Session
What this is
This tool breaks the trading day into three user-defined sessions and tracks how much each session contributes to return, volatility, and volume. It then aggregates results over a rolling window so you can see which session has been pulling its weight, how streaky each session has been, and how sessions relate to one another through a compact correlation heatmap.
We’ve also given the functionality for the user to use a simplified table, just by switching off all settings they are not interested in.
How it works
1) Session segmentation
You define APAC, EU, and US sessions with explicit hours and time zones. The script detects when each session starts and ends on every intraday bar and records its open, intraday high and low, close, and summed volume.
2) Per-session math
At each session end the script computes:
Return — either Percent: (Close−Open)÷Open×100(Close − Open) ÷ Open × 100(Close−Open)÷Open×100 or Points: (Close−Open)(Close − Open)(Close−Open), based on your selection.
Volatility — either Range: (High−Low)÷Open×100(High − Low) ÷ Open × 100(High−Low)÷Open×100 or ATR scaled by price: ATR÷Open×100ATR ÷ Open × 100ATR÷Open×100.
Volume — total volume transacted during that session.
3) Storage and lookback
Each day’s three session stats are stored as a row. You choose how many recent sessions to keep in memory. The script then:
Builds cumulative returns for APAC, EU, US across the lookback.
Computes averages, win rates, and a Sharpe-like ratio avgreturn÷avgvolatilityavg return ÷ avg volatilityavgreturn÷avgvolatility per session.
Tracks streaks of positive or negative sessions to show momentum.
Tracks drawdowns on cumulative returns to show worst runs from peak.
Computes rolling means over a short window for short-term drift.
4) Correlation heatmap
Using the stored arrays of session returns, the script calculates Pearson correlations between APAC–EU, APAC–US, and EU–US, and colors the matrix by strength and sign so you can spot coupling or decoupling at a glance.
What it plots
Three lines: cumulative return for APAC, EU, US over the chosen lookback.
Zero reference line for orientation.
A statistics table with cumulative %, average %, positive session rate, and optional columns for volatility, average volume, max drawdown, current streak, return-to-vol ratio, and rolling average.
A small correlation heatmap table showing APAC, EU, US cross-session correlations.
How to use it
Pick the asset — leave Custom Instrument empty to use the chart symbol, or point to another symbol for cross-asset studies.
Set your sessions and time zones — defaults approximate APAC, EU, and US hours, but you can align them to exchange times or your workflow.
Choose calculation modes — Percent vs Points for return, Range vs ATR for volatility. Points are convenient for futures and fixed-tick assets, Percent is comparable across symbols.
Decide the lookback — more sessions smooths lines and stats; fewer sessions makes the tool more reactive.
Toggle analytics — add volatility, volume, drawdown, streaks, Sharpe-like ratio, rolling averages, and the correlation table as needed.
Why session attribution helps
Different sessions are driven by different flows. Asia often sets the overnight tone, Europe adds liquidity and direction changes, and the US session can dominate range expansion. Separating contributions by session helps you:
Identify which session has been the main driver of net trend.
Measure whether volatility or volume is concentrated in a specific window.
See if one session’s gains are consistently given back in another.
Adapt tactics: fade during a mean-reverting session, press during a trending session.
Reading the tables
Cumulative % — sum of session returns over the lookback. The sign and slope tell you who is carrying the move.
Avg Return % and Positive Sessions % — direction and hit rate. A low average but high hit rate implies many small moves; the reverse implies occasional big swings.
Avg Volatility % — typical intrabars range for that session. Compare with Avg Return to judge efficiency.
Return/Vol Ratio — return per unit of volatility. Higher is better for stability.
Max Drawdown % — worst cumulative give-back within the lookback. A quick way to spot riskiness by session.
Current Streak — consecutive up or down sessions. Useful for mean-reversion or regime awareness.
Rolling Avg % — short-window drift indicator to catch recent turnarounds.
Correlation matrix — green clusters indicate sessions tending to move together; red indicates offsetting behavior.
Settings overview
Basic
Number of Sessions — how many recent days to include.
Custom Instrument — analyze another ticker while staying on your current chart.
Session Configuration and Times
Enable or hide APAC, EU, US rows.
Set hours per session and the specific time zone for each.
Calculation Methods
Return Calculation — Percent or Points.
Volatility Calculation — Range or ATR; ATR Length when applicable.
Advanced Analytics
Correlation, Drawdown, Momentum, Sharpe-like ratio, Rolling Statistics, Rolling Period.
Display Options and Colors
Show Statistics Table and its position.
Toggle columns for Volatility and Volume.
Pick individual colors for each session line and row accents.
Common applications
Session bias mapping — find which window tends to trend in your market and plan exposure accordingly.
Strategy scheduling — allocate attention or risk to the session with the best return-to-vol ratio.
News and macro awareness — see if correlation rises around central bank cycles or major data releases.
Cross-asset monitoring — set the Custom Instrument to a driver (index future, DXY, yields) to see if your symbol reacts in a particular session.
Notes
This indicator works on intraday charts, since sessions are defined within a day. If you change session clocks or time zones, give the script a few bars to accumulate fresh rows. Percent vs Points and Range vs ATR choices affect comparability across assets, so be consistent when comparing symbols.
Session context is one of the simplest ways to explain a messy tape. By separating the day into three windows and scoring each one on return, volatility, and consistency, this tool shows not just where price ended up but when and how it got there. Use the cumulative lines to spot the steady driver, read the table to judge quality and risk, and glance at the heatmap to learn whether the sessions are amplifying or canceling one another. Adjust the hours to your market and let the data tell you which session deserves your focus.
Deadband Hysteresis Supertrend [BackQuant]Deadband Hysteresis Supertrend
A two-stage trend tool that first filters price with a deadband baseline, then runs a Supertrend around that baseline with optional flip hysteresis and ATR-based adverse exits.
What this is
A hybrid of two ideas:
Deadband Hysteresis Baseline that only advances when price pulls far enough from the baseline to matter. This suppresses micro noise and gives you a stable centerline.
Supertrend bands wrapped around that baseline instead of raw price. Flips are further gated by an extra margin so side changes are more deliberate.
The goal is fewer whipsaws in chop and clearer regime identification during trends.
How it works (high level)
Deadband step — compute a per-bar “deadband” size from one of four modes: ATR, Percent of price, Ticks, or Points. If price deviates from the baseline by more than this amount, move the baseline forward by a fraction of the excess. If not, hold the line.
Centered Supertrend — build upper and lower bands around the baseline using ATR and a user factor. Track the usual trailing logic that tightens a band while price moves in its favor.
Flip hysteresis — require price to exceed the active band by an extra flip offset × ATR before switching sides. This adds stickiness at the boundary.
Adverse exit — once a side is taken, trigger an exit if price moves against the entry by K × ATR .
If you would like to check out the filter by itself:
What it plots
DBHF baseline (optional) as a smooth centerline.
DBHF Supertrend as the active trailing band.
Candle coloring by trend side for quick read.
Signal markers 𝕃 and 𝕊 at flips plus ✖ on adverse exits.
Inputs that matter
Price Source — series being filtered. Close is typical. HL2 or HLC3 can be steadier.
Deadband mode — ATR, Percent, Ticks, or Points. This defines the “it’s big enough to matter” zone.
ATR Length / Mult (DBHF) — only used when mode = ATR. Larger values widen the do-nothing zone.
Percent / Ticks / Points — alternatives to ATR; pick what fits your market’s convention.
Enter Mult — scales the deadband you must clear before the baseline moves. Increase to filter more noise.
Response — fraction of the excess applied to baseline movement. Higher responds faster; lower is smoother.
Supertrend ATR Period & Factor — traditional band size controls; higher factor widens and flips less often.
Flip Offset ATR — extra ATR buffer required to flip. Useful in choppy regimes.
Adverse Stop K·ATR — per-trade danger brake that forces an exit if price moves K×ATR against entry.
UI — toggle baseline, supertrend, signals, and bar painting; choose long and short colors.
How to read it
Green regime — candles painted long and the Supertrend running below price. Pullbacks toward the baseline that fail to breach the opposite band often resume higher.
Red regime — candles painted short and the Supertrend running above price. Rallies that cannot reclaim the band may roll over.
Frequent side swaps — reduce sensitivity by increasing Enter Mult, using ATR mode, raising the Supertrend factor, or adding Flip Offset ATR.
Use cases
Bias filter — allow entries only in the direction of the current side. Use your preferred triggers inside that bias.
Trailing logic — treat the active band as a dynamic stop. If the side flips or an adverse K·ATR exit prints, reduce or close exposure.
Regime map — on higher timeframes, the combination baseline + band produces a clean up vs down template for allocation decisions.
Tuning guidance
Fast markets — ATR deadband, modest Enter Mult (0.8–1.2), response 0.2–0.35, Supertrend factor 1.7–2.2, small Flip Offset (0.2–0.5 ATR).
Choppy ranges — widen deadband or raise Enter Mult, lower response, and add more Flip Offset so flips require stronger evidence.
Slow trends — longer ATR periods and higher Supertrend factor to keep you on side longer; use a conservative adverse K.
Included alerts
DBHF ST Long — side flips to long.
DBHF ST Short — side flips to short.
Adverse Exit Long / Short — K·ATR stop triggers against the current side.
Strengths
Deadbanded baseline reduces micro whipsaws before Supertrend logic even begins.
Flip hysteresis adds a second layer of confirmation at the boundary.
Optional adverse ATR stop provides a uniform risk cut across assets and regimes.
Clear visuals and minimal parameters to adjust for symbol behavior.
Putting it together
Think of this tool as two decisions layered into one view. The deadband baseline answers “does this move even count,” then the Supertrend wrapped around that baseline answers “if it counts, which side should I be on and where do I flip.” When both parts agree you tend to stay on the correct side of a trend for longer, and when they disagree you get an early warning that conditions are changing.
When the baseline bends and price cannot reclaim the opposite band , momentum is usually continuing. Pullbacks into the baseline that stall before the far band often resolve in trend.
When the baseline flattens and the bands compress , expect indecision. Use the Flip Offset ATR to avoid reacting to the first feint. Wait for a clean band breach with follow through.
When an adverse K·ATR exit prints while the side has not flipped , treat it as a risk event rather than a full regime change. Many users cut size, re-enter only if the side reasserts, and let the next flip confirm a new trend.
Final thoughts
Deadband Hysteresis Supertrend is best read as a regime lens. The baseline defines your tolerance for noise, the bands define your trailing structure, and the flip offset plus adverse ATR stop define how forgiving or strict you want to be at the boundary. On strong trends it helps you hold through shallow shakeouts. In choppy conditions it encourages patience until price does something meaningful. Start with settings that reflect the cadence of your market, observe how often flips occur, then nudge the deadband and flip offset until the tool spends most of its time describing the move you care about rather than the noise in between.
ATAI Volume analysis with price action V 1.00ATAI Volume Analysis with Price Action
1. Introduction
1.1 Overview
ATAI Volume Analysis with Price Action is a composite indicator designed for TradingView. It combines per‑side volume data —that is, how much buying and selling occurs during each bar—with standard price‑structure elements such as swings, trend lines and support/resistance. By blending these elements the script aims to help a trader understand which side is in control, whether a breakout is genuine, when markets are potentially exhausted and where liquidity providers might be active.
The indicator is built around TradingView’s up/down volume feed accessed via the TradingView/ta/10 library. The following excerpt from the script illustrates how this feed is configured:
import TradingView/ta/10 as tvta
// Determine lower timeframe string based on user choice and chart resolution
string lower_tf_breakout = use_custom_tf_input ? custom_tf_input :
timeframe.isseconds ? "1S" :
timeframe.isintraday ? "1" :
timeframe.isdaily ? "5" : "60"
// Request up/down volume (both positive)
= tvta.requestUpAndDownVolume(lower_tf_breakout)
Lower‑timeframe selection. If you do not specify a custom lower timeframe, the script chooses a default based on your chart resolution: 1 second for second charts, 1 minute for intraday charts, 5 minutes for daily charts and 60 minutes for anything longer. Smaller intervals provide a more precise view of buyer and seller flow but cover fewer bars. Larger intervals cover more history at the cost of granularity.
Tick vs. time bars. Many trading platforms offer a tick / intrabar calculation mode that updates an indicator on every trade rather than only on bar close. Turning on one‑tick calculation will give the most accurate split between buy and sell volume on the current bar, but it typically reduces the amount of historical data available. For the highest fidelity in live trading you can enable this mode; for studying longer histories you might prefer to disable it. When volume data is completely unavailable (some instruments and crypto pairs), all modules that rely on it will remain silent and only the price‑structure backbone will operate.
Figure caption, Each panel shows the indicator’s info table for a different volume sampling interval. In the left chart, the parentheses “(5)” beside the buy‑volume figure denote that the script is aggregating volume over five‑minute bars; the center chart uses “(1)” for one‑minute bars; and the right chart uses “(1T)” for a one‑tick interval. These notations tell you which lower timeframe is driving the volume calculations. Shorter intervals such as 1 minute or 1 tick provide finer detail on buyer and seller flow, but they cover fewer bars; longer intervals like five‑minute bars smooth the data and give more history.
Figure caption, The values in parentheses inside the info table come directly from the Breakout — Settings. The first row shows the custom lower-timeframe used for volume calculations (e.g., “(1)”, “(5)”, or “(1T)”)
2. Price‑Structure Backbone
Even without volume, the indicator draws structural features that underpin all other modules. These features are always on and serve as the reference levels for subsequent calculations.
2.1 What it draws
• Pivots: Swing highs and lows are detected using the pivot_left_input and pivot_right_input settings. A pivot high is identified when the high recorded pivot_right_input bars ago exceeds the highs of the preceding pivot_left_input bars and is also higher than (or equal to) the highs of the subsequent pivot_right_input bars; pivot lows follow the inverse logic. The indicator retains only a fixed number of such pivot points per side, as defined by point_count_input, discarding the oldest ones when the limit is exceeded.
• Trend lines: For each side, the indicator connects the earliest stored pivot and the most recent pivot (oldest high to newest high, and oldest low to newest low). When a new pivot is added or an old one drops out of the lookback window, the line’s endpoints—and therefore its slope—are recalculated accordingly.
• Horizontal support/resistance: The highest high and lowest low within the lookback window defined by length_input are plotted as horizontal dashed lines. These serve as short‑term support and resistance levels.
• Ranked labels: If showPivotLabels is enabled the indicator prints labels such as “HH1”, “HH2”, “LL1” and “LL2” near each pivot. The ranking is determined by comparing the price of each stored pivot: HH1 is the highest high, HH2 is the second highest, and so on; LL1 is the lowest low, LL2 is the second lowest. In the case of equal prices the newer pivot gets the better rank. Labels are offset from price using ½ × ATR × label_atr_multiplier, with the ATR length defined by label_atr_len_input. A dotted connector links each label to the candle’s wick.
2.2 Key settings
• length_input: Window length for finding the highest and lowest values and for determining trend line endpoints. A larger value considers more history and will generate longer trend lines and S/R levels.
• pivot_left_input, pivot_right_input: Strictness of swing confirmation. Higher values require more bars on either side to form a pivot; lower values create more pivots but may include minor swings.
• point_count_input: How many pivots are kept in memory on each side. When new pivots exceed this number the oldest ones are discarded.
• label_atr_len_input and label_atr_multiplier: Determine how far pivot labels are offset from the bar using ATR. Increasing the multiplier moves labels further away from price.
• Styling inputs for trend lines, horizontal lines and labels (color, width and line style).
Figure caption, The chart illustrates how the indicator’s price‑structure backbone operates. In this daily example, the script scans for bars where the high (or low) pivot_right_input bars back is higher (or lower) than the preceding pivot_left_input bars and higher or lower than the subsequent pivot_right_input bars; only those bars are marked as pivots.
These pivot points are stored and ranked: the highest high is labelled “HH1”, the second‑highest “HH2”, and so on, while lows are marked “LL1”, “LL2”, etc. Each label is offset from the price by half of an ATR‑based distance to keep the chart clear, and a dotted connector links the label to the actual candle.
The red diagonal line connects the earliest and latest stored high pivots, and the green line does the same for low pivots; when a new pivot is added or an old one drops out of the lookback window, the end‑points and slopes adjust accordingly. Dashed horizontal lines mark the highest high and lowest low within the current lookback window, providing visual support and resistance levels. Together, these elements form the structural backbone that other modules reference, even when volume data is unavailable.
3. Breakout Module
3.1 Concept
This module confirms that a price break beyond a recent high or low is supported by a genuine shift in buying or selling pressure. It requires price to clear the highest high (“HH1”) or lowest low (“LL1”) and, simultaneously, that the winning side shows a significant volume spike, dominance and ranking. Only when all volume and price conditions pass is a breakout labelled.
3.2 Inputs
• lookback_break_input : This controls the number of bars used to compute moving averages and percentiles for volume. A larger value smooths the averages and percentiles but makes the indicator respond more slowly.
• vol_mult_input : The “spike” multiplier; the current buy or sell volume must be at least this multiple of its moving average over the lookback window to qualify as a breakout.
• rank_threshold_input (0–100) : Defines a volume percentile cutoff: the current buyer/seller volume must be in the top (100−threshold)%(100−threshold)% of all volumes within the lookback window. For example, if set to 80, the current volume must be in the top 20 % of the lookback distribution.
• ratio_threshold_input (0–1) : Specifies the minimum share of total volume that the buyer (for a bullish breakout) or seller (for bearish) must hold on the current bar; the code also requires that the cumulative buyer volume over the lookback window exceeds the seller volume (and vice versa for bearish cases).
• use_custom_tf_input / custom_tf_input : When enabled, these inputs override the automatic choice of lower timeframe for up/down volume; otherwise the script selects a sensible default based on the chart’s timeframe.
• Label appearance settings : Separate options control the ATR-based offset length, offset multiplier, label size and colors for bullish and bearish breakout labels, as well as the connector style and width.
3.3 Detection logic
1. Data preparation : Retrieve per‑side volume from the lower timeframe and take absolute values. Build rolling arrays of the last lookback_break_input values to compute simple moving averages (SMAs), cumulative sums and percentile ranks for buy and sell volume.
2. Volume spike: A spike is flagged when the current buy (or, in the bearish case, sell) volume is at least vol_mult_input times its SMA over the lookback window.
3. Dominance test: The buyer’s (or seller’s) share of total volume on the current bar must meet or exceed ratio_threshold_input. In addition, the cumulative sum of buyer volume over the window must exceed the cumulative sum of seller volume for a bullish breakout (and vice versa for bearish). A separate requirement checks the sign of delta: for bullish breakouts delta_breakout must be non‑negative; for bearish breakouts it must be non‑positive.
4. Percentile rank: The current volume must fall within the top (100 – rank_threshold_input) percent of the lookback distribution—ensuring that the spike is unusually large relative to recent history.
5. Price test: For a bullish signal, the closing price must close above the highest pivot (HH1); for a bearish signal, the close must be below the lowest pivot (LL1).
6. Labeling: When all conditions above are satisfied, the indicator prints “Breakout ↑” above the bar (bullish) or “Breakout ↓” below the bar (bearish). Labels are offset using half of an ATR‑based distance and linked to the candle with a dotted connector.
Figure caption, (Breakout ↑ example) , On this daily chart, price pushes above the red trendline and the highest prior pivot (HH1). The indicator recognizes this as a valid breakout because the buyer‑side volume on the lower timeframe spikes above its recent moving average and buyers dominate the volume statistics over the lookback period; when combined with a close above HH1, this satisfies the breakout conditions. The “Breakout ↑” label appears above the candle, and the info table highlights that up‑volume is elevated relative to its 11‑bar average, buyer share exceeds the dominance threshold and money‑flow metrics support the move.
Figure caption, In this daily example, price breaks below the lowest pivot (LL1) and the lower green trendline. The indicator identifies this as a bearish breakout because sell‑side volume is sharply elevated—about twice its 11‑bar average—and sellers dominate both the bar and the lookback window. With the close falling below LL1, the script triggers a Breakout ↓ label and marks the corresponding row in the info table, which shows strong down volume, negative delta and a seller share comfortably above the dominance threshold.
4. Market Phase Module (Volume Only)
4.1 Concept
Not all markets trend; many cycle between periods of accumulation (buying pressure building up), distribution (selling pressure dominating) and neutral behavior. This module classifies the current bar into one of these phases without using ATR , relying solely on buyer and seller volume statistics. It looks at net flows, ratio changes and an OBV‑like cumulative line with dual‑reference (1‑ and 2‑bar) trends. The result is displayed both as on‑chart labels and in a dedicated row of the info table.
4.2 Inputs
• phase_period_len: Number of bars over which to compute sums and ratios for phase detection.
• phase_ratio_thresh : Minimum buyer share (for accumulation) or minimum seller share (for distribution, derived as 1 − phase_ratio_thresh) of the total volume.
• strict_mode: When enabled, both the 1‑bar and 2‑bar changes in each statistic must agree on the direction (strict confirmation); when disabled, only one of the two references needs to agree (looser confirmation).
• Color customisation for info table cells and label styling for accumulation and distribution phases, including ATR length, multiplier, label size, colors and connector styles.
• show_phase_module: Toggles the entire phase detection subsystem.
• show_phase_labels: Controls whether on‑chart labels are drawn when accumulation or distribution is detected.
4.3 Detection logic
The module computes three families of statistics over the volume window defined by phase_period_len:
1. Net sum (buyers minus sellers): net_sum_phase = Σ(buy) − Σ(sell). A positive value indicates a predominance of buyers. The code also computes the differences between the current value and the values 1 and 2 bars ago (d_net_1, d_net_2) to derive up/down trends.
2. Buyer ratio: The instantaneous ratio TF_buy_breakout / TF_tot_breakout and the window ratio Σ(buy) / Σ(total). The current ratio must exceed phase_ratio_thresh for accumulation or fall below 1 − phase_ratio_thresh for distribution. The first and second differences of the window ratio (d_ratio_1, d_ratio_2) determine trend direction.
3. OBV‑like cumulative net flow: An on‑balance volume analogue obv_net_phase increments by TF_buy_breakout − TF_sell_breakout each bar. Its differences over the last 1 and 2 bars (d_obv_1, d_obv_2) provide trend clues.
The algorithm then combines these signals:
• For strict mode , accumulation requires: (a) current ratio ≥ threshold, (b) cumulative ratio ≥ threshold, (c) both ratio differences ≥ 0, (d) net sum differences ≥ 0, and (e) OBV differences ≥ 0. Distribution is the mirror case.
• For loose mode , it relaxes the directional tests: either the 1‑ or the 2‑bar difference needs to agree in each category.
If all conditions for accumulation are satisfied, the phase is labelled “Accumulation” ; if all conditions for distribution are satisfied, it’s labelled “Distribution” ; otherwise the phase is “Neutral” .
4.4 Outputs
• Info table row : Row 8 displays “Market Phase (Vol)” on the left and the detected phase (Accumulation, Distribution or Neutral) on the right. The text colour of both cells matches a user‑selectable palette (typically green for accumulation, red for distribution and grey for neutral).
• On‑chart labels : When show_phase_labels is enabled and a phase persists for at least one bar, the module prints a label above the bar ( “Accum” ) or below the bar ( “Dist” ) with a dashed or dotted connector. The label is offset using ATR based on phase_label_atr_len_input and phase_label_multiplier and is styled according to user preferences.
Figure caption, The chart displays a red “Dist” label above a particular bar, indicating that the accumulation/distribution module identified a distribution phase at that point. The detection is based on seller dominance: during that bar, the net buyer-minus-seller flow and the OBV‑style cumulative flow were trending down, and the buyer ratio had dropped below the preset threshold. These conditions satisfy the distribution criteria in strict mode. The label is placed above the bar using an ATR‑based offset and a dashed connector. By the time of the current bar in the screenshot, the phase indicator shows “Neutral” in the info table—signaling that neither accumulation nor distribution conditions are currently met—yet the historical “Dist” label remains to mark where the prior distribution phase began.
Figure caption, In this example the market phase module has signaled an Accumulation phase. Three bars before the current candle, the algorithm detected a shift toward buyers: up‑volume exceeded its moving average, down‑volume was below average, and the buyer share of total volume climbed above the threshold while the on‑balance net flow and cumulative ratios were trending upwards. The blue “Accum” label anchored below that bar marks the start of the phase; it remains on the chart because successive bars continue to satisfy the accumulation conditions. The info table confirms this: the “Market Phase (Vol)” row still reads Accumulation, and the ratio and sum rows show buyers dominating both on the current bar and across the lookback window.
5. OB/OS Spike Module
5.1 What overbought/oversold means here
In many markets, a rapid extension up or down is often followed by a period of consolidation or reversal. The indicator interprets overbought (OB) conditions as abnormally strong selling risk at or after a price rally and oversold (OS) conditions as unusually strong buying risk after a decline. Importantly, these are not direct trade signals; rather they flag areas where caution or contrarian setups may be appropriate.
5.2 Inputs
• minHits_obos (1–7): Minimum number of oscillators that must agree on an overbought or oversold condition for a label to print.
• syncWin_obos: Length of a small sliding window over which oscillator votes are smoothed by taking the maximum count observed. This helps filter out choppy signals.
• Volume spike criteria: kVolRatio_obos (ratio of current volume to its SMA) and zVolThr_obos (Z‑score threshold) across volLen_obos. Either threshold can trigger a spike.
• Oscillator toggles and periods: Each of RSI, Stochastic (K and D), Williams %R, CCI, MFI, DeMarker and Stochastic RSI can be independently enabled; their periods are adjustable.
• Label appearance: ATR‑based offset, size, colors for OB and OS labels, plus connector style and width.
5.3 Detection logic
1. Directional volume spikes: Volume spikes are computed separately for buyer and seller volumes. A sell volume spike (sellVolSpike) flags a potential OverBought bar, while a buy volume spike (buyVolSpike) flags a potential OverSold bar. A spike occurs when the respective volume exceeds kVolRatio_obos times its simple moving average over the window or when its Z‑score exceeds zVolThr_obos.
2. Oscillator votes: For each enabled oscillator, calculate its overbought and oversold state using standard thresholds (e.g., RSI ≥ 70 for OB and ≤ 30 for OS; Stochastic %K/%D ≥ 80 for OB and ≤ 20 for OS; etc.). Count how many oscillators vote for OB and how many vote for OS.
3. Minimum hits: Apply the smoothing window syncWin_obos to the vote counts using a maximum‑of‑last‑N approach. A candidate bar is only considered if the smoothed OB hit count ≥ minHits_obos (for OverBought) or the smoothed OS hit count ≥ minHits_obos (for OverSold).
4. Tie‑breaking: If both OverBought and OverSold spike conditions are present on the same bar, compare the smoothed hit counts: the side with the higher count is selected; ties default to OverBought.
5. Label printing: When conditions are met, the bar is labelled as “OverBought X/7” above the candle or “OverSold X/7” below it. “X” is the number of oscillators confirming, and the bracket lists the abbreviations of contributing oscillators. Labels are offset from price using half of an ATR‑scaled distance and can optionally include a dotted or dashed connector line.
Figure caption, In this chart the overbought/oversold module has flagged an OverSold signal. A sell‑off from the prior highs brought price down to the lower trend‑line, where the bar marked “OverSold 3/7 DeM” appears. This label indicates that on that bar the module detected a buy‑side volume spike and that at least three of the seven enabled oscillators—in this case including the DeMarker—were in oversold territory. The label is printed below the candle with a dotted connector, signaling that the market may be temporarily exhausted on the downside. After this oversold print, price begins to rebound towards the upper red trend‑line and higher pivot levels.
Figure caption, This example shows the overbought/oversold module in action. In the left‑hand panel you can see the OB/OS settings where each oscillator (RSI, Stochastic, Williams %R, CCI, MFI, DeMarker and Stochastic RSI) can be enabled or disabled, and the ATR length and label offset multiplier adjusted. On the chart itself, price has pushed up to the descending red trendline and triggered an “OverBought 3/7” label. That means the sell‑side volume spiked relative to its average and three out of the seven enabled oscillators were in overbought territory. The label is offset above the candle by half of an ATR and connected with a dashed line, signaling that upside momentum may be overextended and a pause or pullback could follow.
6. Buyer/Seller Trap Module
6.1 Concept
A bull trap occurs when price appears to break above resistance, attracting buyers, but fails to sustain the move and quickly reverses, leaving a long upper wick and trapping late entrants. A bear trap is the opposite: price breaks below support, lures in sellers, then snaps back, leaving a long lower wick and trapping shorts. This module detects such traps by looking for price structure sweeps, order‑flow mismatches and dominance reversals. It uses a scoring system to differentiate risk from confirmed traps.
6.2 Inputs
• trap_lookback_len: Window length used to rank extremes and detect sweeps.
• trap_wick_threshold: Minimum proportion of a bar’s range that must be wick (upper for bull traps, lower for bear traps) to qualify as a sweep.
• trap_score_risk: Minimum aggregated score required to flag a trap risk. (The code defines a trap_score_confirm input, but confirmation is actually based on price reversal rather than a separate score threshold.)
• trap_confirm_bars: Maximum number of bars allowed for price to reverse and confirm the trap. If price does not reverse in this window, the risk label will expire or remain unconfirmed.
• Label settings: ATR length and multiplier for offsetting, size, colours for risk and confirmed labels, and connector style and width. Separate settings exist for bull and bear traps.
• Toggle inputs: show_trap_module and show_trap_labels enable the module and control whether labels are drawn on the chart.
6.3 Scoring logic
The module assigns points to several conditions and sums them to determine whether a trap risk is present. For bull traps, the score is built from the following (bear traps mirror the logic with highs and lows swapped):
1. Sweep (2 points): Price trades above the high pivot (HH1) but fails to close above it and leaves a long upper wick at least trap_wick_threshold × range. For bear traps, price dips below the low pivot (LL1), fails to close below and leaves a long lower wick.
2. Close break (1 point): Price closes beyond HH1 or LL1 without leaving a long wick.
3. Candle/delta mismatch (2 points): The candle closes bullish yet the order flow delta is negative or the seller ratio exceeds 50%, indicating hidden supply. Conversely, a bearish close with positive delta or buyer dominance suggests hidden demand.
4. Dominance inversion (2 points): The current bar’s buyer volume has the highest rank in the lookback window while cumulative sums favor sellers, or vice versa.
5. Low‑volume break (1 point): Price crosses the pivot but total volume is below its moving average.
The total score for each side is compared to trap_score_risk. If the score is high enough, a “Bull Trap Risk” or “Bear Trap Risk” label is drawn, offset from the candle by half of an ATR‑scaled distance using a dashed outline. If, within trap_confirm_bars, price reverses beyond the opposite level—drops back below the high pivot for bull traps or rises above the low pivot for bear traps—the label is upgraded to a solid “Bull Trap” or “Bear Trap” . In this version of the code, there is no separate score threshold for confirmation: the variable trap_score_confirm is unused; confirmation depends solely on a successful price reversal within the specified number of bars.
Figure caption, In this example the trap module has flagged a Bear Trap Risk. Price initially breaks below the most recent low pivot (LL1), but the bar closes back above that level and leaves a long lower wick, suggesting a failed push lower. Combined with a mismatch between the candle direction and the order flow (buyers regain control) and a reversal in volume dominance, the aggregate score exceeds the risk threshold, so a dashed “Bear Trap Risk” label prints beneath the bar. The green and red trend lines mark the current low and high pivot trajectories, while the horizontal dashed lines show the highest and lowest values in the lookback window. If, within the next few bars, price closes decisively above the support, the risk label would upgrade to a solid “Bear Trap” label.
Figure caption, In this example the trap module has identified both ends of a price range. Near the highs, price briefly pushes above the descending red trendline and the recent pivot high, but fails to close there and leaves a noticeable upper wick. That combination of a sweep above resistance and order‑flow mismatch generates a Bull Trap Risk label with a dashed outline, warning that the upside break may not hold. At the opposite extreme, price later dips below the green trendline and the labelled low pivot, then quickly snaps back and closes higher. The long lower wick and subsequent price reversal upgrade the previous bear‑trap risk into a confirmed Bear Trap (solid label), indicating that sellers were caught on a false breakdown. Horizontal dashed lines mark the highest high and lowest low of the lookback window, while the red and green diagonals connect the earliest and latest pivot highs and lows to visualize the range.
7. Sharp Move Module
7.1 Concept
Markets sometimes display absorption or climax behavior—periods when one side steadily gains the upper hand before price breaks out with a sharp move. This module evaluates several order‑flow and volume conditions to anticipate such moves. Users can choose how many conditions must be met to flag a risk and how many (plus a price break) are required for confirmation.
7.2 Inputs
• sharp Lookback: Number of bars in the window used to compute moving averages, sums, percentile ranks and reference levels.
• sharpPercentile: Minimum percentile rank for the current side’s volume; the current buy (or sell) volume must be greater than or equal to this percentile of historical volumes over the lookback window.
• sharpVolMult: Multiplier used in the volume climax check. The current side’s volume must exceed this multiple of its average to count as a climax.
• sharpRatioThr: Minimum dominance ratio (current side’s volume relative to the opposite side) used in both the instant and cumulative dominance checks.
• sharpChurnThr: Maximum ratio of a bar’s range to its ATR for absorption/churn detection; lower values indicate more absorption (large volume in a small range).
• sharpScoreRisk: Minimum number of conditions that must be true to print a risk label.
• sharpScoreConfirm: Minimum number of conditions plus a price break required for confirmation.
• sharpCvdThr: Threshold for cumulative delta divergence versus price change (positive for bullish accumulation, negative for bearish distribution).
• Label settings: ATR length (sharpATRlen) and multiplier (sharpLabelMult) for positioning labels, label size, colors and connector styles for bullish and bearish sharp moves.
• Toggles: enableSharp activates the module; show_sharp_labels controls whether labels are drawn.
7.3 Conditions (six per side)
For each side, the indicator computes six boolean conditions and sums them to form a score:
1. Dominance (instant and cumulative):
– Instant dominance: current buy volume ≥ sharpRatioThr × current sell volume.
– Cumulative dominance: sum of buy volumes over the window ≥ sharpRatioThr × sum of sell volumes (and vice versa for bearish checks).
2. Accumulation/Distribution divergence: Over the lookback window, cumulative delta rises by at least sharpCvdThr while price fails to rise (bullish), or cumulative delta falls by at least sharpCvdThr while price fails to fall (bearish).
3. Volume climax: The current side’s volume is ≥ sharpVolMult × its average and the product of volume and bar range is the highest in the lookback window.
4. Absorption/Churn: The current side’s volume divided by the bar’s range equals the highest value in the window and the bar’s range divided by ATR ≤ sharpChurnThr (indicating large volume within a small range).
5. Percentile rank: The current side’s volume percentile rank is ≥ sharp Percentile.
6. Mirror logic for sellers: The above checks are repeated with buyer and seller roles swapped and the price break levels reversed.
Each condition that passes contributes one point to the corresponding side’s score (0 or 1). Risk and confirmation thresholds are then applied to these scores.
7.4 Scoring and labels
• Risk: If scoreBull ≥ sharpScoreRisk, a “Sharp ↑ Risk” label is drawn above the bar. If scoreBear ≥ sharpScoreRisk, a “Sharp ↓ Risk” label is drawn below the bar.
• Confirmation: A risk label is upgraded to “Sharp ↑” when scoreBull ≥ sharpScoreConfirm and the bar closes above the highest recent pivot (HH1); for bearish cases, confirmation requires scoreBear ≥ sharpScoreConfirm and a close below the lowest pivot (LL1).
• Label positioning: Labels are offset from the candle by ATR × sharpLabelMult (full ATR times multiplier), not half, and may include a dashed or dotted connector line if enabled.
Figure caption, In this chart both bullish and bearish sharp‑move setups have been flagged. Earlier in the range, a “Sharp ↓ Risk” label appears beneath a candle: the sell‑side score met the risk threshold, signaling that the combination of strong sell volume, dominance and absorption within a narrow range suggested a potential sharp decline. The price did not close below the lower pivot, so this label remains a “risk” and no confirmation occurred. Later, as the market recovered and volume shifted back to the buy side, a “Sharp ↑ Risk” label prints above a candle near the top of the channel. Here, buy‑side dominance, cumulative delta divergence and a volume climax aligned, but price has not yet closed above the upper pivot (HH1), so the alert is still a risk rather than a confirmed sharp‑up move.
Figure caption, In this chart a Sharp ↑ label is displayed above a candle, indicating that the sharp move module has confirmed a bullish breakout. Prior bars satisfied the risk threshold — showing buy‑side dominance, positive cumulative delta divergence, a volume climax and strong absorption in a narrow range — and this candle closes above the highest recent pivot, upgrading the earlier “Sharp ↑ Risk” alert to a full Sharp ↑ signal. The green label is offset from the candle with a dashed connector, while the red and green trend lines trace the high and low pivot trajectories and the dashed horizontals mark the highest and lowest values of the lookback window.
8. Market‑Maker / Spread‑Capture Module
8.1 Concept
Liquidity providers often “capture the spread” by buying and selling in almost equal amounts within a very narrow price range. These bars can signal temporary congestion before a move or reflect algorithmic activity. This module flags bars where both buyer and seller volumes are high, the price range is only a few ticks and the buy/sell split remains close to 50%. It helps traders spot potential liquidity pockets.
8.2 Inputs
• scalpLookback: Window length used to compute volume averages.
• scalpVolMult: Multiplier applied to each side’s average volume; both buy and sell volumes must exceed this multiple.
• scalpTickCount: Maximum allowed number of ticks in a bar’s range (calculated as (high − low) / minTick). A value of 1 or 2 captures ultra‑small bars; increasing it relaxes the range requirement.
• scalpDeltaRatio: Maximum deviation from a perfect 50/50 split. For example, 0.05 means the buyer share must be between 45% and 55%.
• Label settings: ATR length, multiplier, size, colors, connector style and width.
• Toggles : show_scalp_module and show_scalp_labels to enable the module and its labels.
8.3 Signal
When, on the current bar, both TF_buy_breakout and TF_sell_breakout exceed scalpVolMult times their respective averages and (high − low)/minTick ≤ scalpTickCount and the buyer share is within scalpDeltaRatio of 50%, the module prints a “Spread ↔” label above the bar. The label uses the same ATR offset logic as other modules and draws a connector if enabled.
Figure caption, In this chart the spread‑capture module has identified a potential liquidity pocket. Buyer and seller volumes both spiked above their recent averages, yet the candle’s range measured only a couple of ticks and the buy/sell split stayed close to 50 %. This combination met the module’s criteria, so it printed a grey “Spread ↔” label above the bar. The red and green trend lines link the earliest and latest high and low pivots, and the dashed horizontals mark the highest high and lowest low within the current lookback window.
9. Money Flow Module
9.1 Concept
To translate volume into a monetary measure, this module multiplies each side’s volume by the closing price. It tracks buying and selling system money default currency on a per-bar basis and sums them over a chosen period. The difference between buy and sell currencies (Δ$) shows net inflow or outflow.
9.2 Inputs
• mf_period_len_mf: Number of bars used for summing buy and sell dollars.
• Label appearance settings: ATR length, multiplier, size, colors for up/down labels, and connector style and width.
• Toggles: Use enableMoneyFlowLabel_mf and showMFLabels to control whether the module and its labels are displayed.
9.3 Calculations
• Per-bar money: Buy $ = TF_buy_breakout × close; Sell $ = TF_sell_breakout × close. Their difference is Δ$ = Buy $ − Sell $.
• Summations: Over mf_period_len_mf bars, compute Σ Buy $, Σ Sell $ and ΣΔ$ using math.sum().
• Info table entries: Rows 9–13 display these values as texts like “↑ USD 1234 (1M)” or “ΣΔ USD −5678 (14)”, with colors reflecting whether buyers or sellers dominate.
• Money flow status: If Δ$ is positive the bar is marked “Money flow in” ; if negative, “Money flow out” ; if zero, “Neutral”. The cumulative status is similarly derived from ΣΔ.Labels print at the bar that changes the sign of ΣΔ, offset using ATR × label multiplier and styled per user preferences.
Figure caption, The chart illustrates a steady rise toward the highest recent pivot (HH1) with price riding between a rising green trend‑line and a red trend‑line drawn through earlier pivot highs. A green Money flow in label appears above the bar near the top of the channel, signaling that net dollar flow turned positive on this bar: buy‑side dollar volume exceeded sell‑side dollar volume, pushing the cumulative sum ΣΔ$ above zero. In the info table, the “Money flow (bar)” and “Money flow Σ” rows both read In, confirming that the indicator’s money‑flow module has detected an inflow at both bar and aggregate levels, while other modules (pivots, trend lines and support/resistance) remain active to provide structural context.
In this example the Money Flow module signals a net outflow. Price has been trending downward: successive high pivots form a falling red trend‑line and the low pivots form a descending green support line. When the latest bar broke below the previous low pivot (LL1), both the bar‑level and cumulative net dollar flow turned negative—selling volume at the close exceeded buying volume and pushed the cumulative Δ$ below zero. The module reacts by printing a red “Money flow out” label beneath the candle; the info table confirms that the “Money flow (bar)” and “Money flow Σ” rows both show Out, indicating sustained dominance of sellers in this period.
10. Info Table
10.1 Purpose
When enabled, the Info Table appears in the lower right of your chart. It summarises key values computed by the indicator—such as buy and sell volume, delta, total volume, breakout status, market phase, and money flow—so you can see at a glance which side is dominant and which signals are active.
10.2 Symbols
• ↑ / ↓ — Up (↑) denotes buy volume or money; down (↓) denotes sell volume or money.
• MA — Moving average. In the table it shows the average value of a series over the lookback period.
• Σ (Sigma) — Cumulative sum over the chosen lookback period.
• Δ (Delta) — Difference between buy and sell values.
• B / S — Buyer and seller share of total volume, expressed as percentages.
• Ref. Price — Reference price for breakout calculations, based on the latest pivot.
• Status — Indicates whether a breakout condition is currently active (True) or has failed.
10.3 Row definitions
1. Up volume / MA up volume – Displays current buy volume on the lower timeframe and its moving average over the lookback period.
2. Down volume / MA down volume – Shows current sell volume and its moving average; sell values are formatted in red for clarity.
3. Δ / ΣΔ – Lists the difference between buy and sell volume for the current bar and the cumulative delta volume over the lookback period.
4. Σ / MA Σ (Vol/MA) – Total volume (buy + sell) for the bar, with the ratio of this volume to its moving average; the right cell shows the average total volume.
5. B/S ratio – Buy and sell share of the total volume: current bar percentages and the average percentages across the lookback period.
6. Buyer Rank / Seller Rank – Ranks the bar’s buy and sell volumes among the last (n) bars; lower rank numbers indicate higher relative volume.
7. Σ Buy / Σ Sell – Sum of buy and sell volumes over the lookback window, indicating which side has traded more.
8. Breakout UP / DOWN – Shows the breakout thresholds (Ref. Price) and whether the breakout condition is active (True) or has failed.
9. Market Phase (Vol) – Reports the current volume‑only phase: Accumulation, Distribution or Neutral.
10. Money Flow – The final rows display dollar amounts and status:
– ↑ USD / Σ↑ USD – Buy dollars for the current bar and the cumulative sum over the money‑flow period.
– ↓ USD / Σ↓ USD – Sell dollars and their cumulative sum.
– Δ USD / ΣΔ USD – Net dollar difference (buy minus sell) for the bar and cumulatively.
– Money flow (bar) – Indicates whether the bar’s net dollar flow is positive (In), negative (Out) or neutral.
– Money flow Σ – Shows whether the cumulative net dollar flow across the chosen period is positive, negative or neutral.
The chart above shows a sequence of different signals from the indicator. A Bull Trap Risk appears after price briefly pushes above resistance but fails to hold, then a green Accum label identifies an accumulation phase. An upward breakout follows, confirmed by a Money flow in print. Later, a Sharp ↓ Risk warns of a possible sharp downturn; after price dips below support but quickly recovers, a Bear Trap label marks a false breakdown. The highlighted info table in the center summarizes key metrics at that moment, including current and average buy/sell volumes, net delta, total volume versus its moving average, breakout status (up and down), market phase (volume), and bar‑level and cumulative money flow (In/Out).
11. Conclusion & Final Remarks
This indicator was developed as a holistic study of market structure and order flow. It brings together several well‑known concepts from technical analysis—breakouts, accumulation and distribution phases, overbought and oversold extremes, bull and bear traps, sharp directional moves, market‑maker spread bars and money flow—into a single Pine Script tool. Each module is based on widely recognized trading ideas and was implemented after consulting reference materials and example strategies, so you can see in real time how these concepts interact on your chart.
A distinctive feature of this indicator is its reliance on per‑side volume: instead of tallying only total volume, it separately measures buy and sell transactions on a lower time frame. This approach gives a clearer view of who is in control—buyers or sellers—and helps filter breakouts, detect phases of accumulation or distribution, recognize potential traps, anticipate sharp moves and gauge whether liquidity providers are active. The money‑flow module extends this analysis by converting volume into currency values and tracking net inflow or outflow across a chosen window.
Although comprehensive, this indicator is intended solely as a guide. It highlights conditions and statistics that many traders find useful, but it does not generate trading signals or guarantee results. Ultimately, you remain responsible for your positions. Use the information presented here to inform your analysis, combine it with other tools and risk‑management techniques, and always make your own decisions when trading.
Turtle Body Setup by TradeTech AnalysisOverview
Turtle Body Setup is a minimalist, rules-based pattern detector built around a simple idea: a sequence of shrinking candle bodies (compression) often precedes a directional expansion (breakout). The script identifies those compression phases and then flags the first candle whose body expands significantly beyond the recent average, with polarity taken from the candle’s direction.
This is not a mash-up of many public indicators. It focuses on one original micro-structure concept: strict body-contraction → body-expansion . The logic is fully described below so traders and moderators can understand what it does and how to use it.
How it Works
1. Compression detection (body contraction):
• Over a user-defined window Compression Lookback (N), the script counts strictly shrinking candle bodies (|close-open|).
• When the count ≥ Min Shrinking Candles, we mark the market as in compression.
2. Expansion / Breakout qualification:
• Compute avgBody = SMA(body, N).
• A candle is a breakout when current body > avgBody × Breakout Body Multiplier.
• Polarity: green (close>open) → Bullish breakout; red (close
Deadband Hysteresis Filter [BackQuant]Deadband Hysteresis Filter
What this is
This tool builds a “debounced” price baseline that ignores small fluctuations and only reacts when price meaningfully departs from its recent path. It uses a deadband to define how much deviation matters and a hysteresis scheme to avoid rapid flip-flops around the decision boundary. The baseline’s slope provides a simple trend cue, used to color candles and to trigger up and down alerts.
Why deadband and hysteresis help
They filter micro noise so the baseline does not react to every tiny tick.
They stabilize state changes. Hysteresis means the rule to start moving is stricter than the rule to keep holding, which reduces whipsaw.
They produce a stepped, readable path that advances during sustained moves and stays flat during chop.
How it works (conceptual)
At each bar the script maintains a running baseline dbhf and compares it to the input price p .
Compute a base threshold baseTau using the selected mode (ATR, Percent, Ticks, or Points).
Build an enter band tauEnter = baseTau × Enter Mult and an exit band tauExit = baseTau × Exit Mult where typically Exit Mult < Enter Mult .
Let diff = p − dbhf .
If diff > +tauEnter , raise the baseline by response × (diff − tauEnter) .
If diff < −tauEnter , lower the baseline by response × (diff + tauEnter) .
Otherwise, hold the prior value.
Trend state is derived from slope: dbhf > dbhf → up trend, dbhf < dbhf → down trend.
Inputs and what they control
Threshold mode
ATR — baseTau = ATR(atrLen) × atrMult . Adapts to volatility. Useful when regimes change.
Percent — baseTau = |price| × pctThresh% . Scale-free across symbols of different prices.
Ticks — baseTau = syminfo.mintick × tickThresh . Good for futures where tick size matters.
Points — baseTau = ptsThresh . Fixed distance in price units.
Band multipliers and response
Enter Mult — outer band. Price must travel at least this far from the baseline before an update occurs. Larger values reject more noise but increase lag.
Exit Mult — inner band for hysteresis. Keep this smaller than Enter Mult to create a hold zone that resists small re-entries.
Response — step size when outside the enter band. Higher response tracks faster; lower response is smoother.
UI settings
Show Filtered Price — plots the baseline on price.
Paint candles — colors bars by the filtered slope using your long/short colors.
How it can be used
Trend qualifier — take entries only in the direction of the baseline slope and skip trades against it.
Debounced crossovers — use the baseline as a stabilized surrogate for price in moving-average or channel crossover rules.
Trailing logic — trail stops a small distance beyond the baseline so small pullbacks do not eject the trade.
Session aware filtering — widen Enter Mult or switch to ATR mode for volatile sessions; tighten in quiet sessions.
Parameter interactions and tuning
Enter Mult vs Response — both govern sensitivity. If you see too many flips, increase Enter Mult or reduce Response. If turns feel late, do the opposite.
Exit Mult — widening the gap between Enter and Exit expands the hold zone and reduces oscillation around the threshold.
Mode choice — ATR adapts automatically; Percent keeps behavior consistent across instruments; Ticks or Points are useful when you think in fixed increments.
Timeframe coupling — on higher timeframes you can often lower Enter Mult or raise Response because raw noise is already reduced.
Concrete starter recipes
General purpose — ATR mode, atrLen=14 , atrMult=1.0–1.5 , Enter=1.0 , Exit=0.5 , Response=0.20 . Balanced noise rejection and lag.
Choppy range filter — ATR mode, increase atrMult to 2.0, keep Response≈0.15 . Stronger suppression of micro-moves.
Fast intraday — Percent mode, pctThresh=0.1–0.3 , Enter=1.0 , Exit=0.4–0.6 , Response=0.30–0.40 . Quicker turns for scalping.
Futures ticks — Ticks mode, set tickThresh to a few spreads beyond typical noise; start with Enter=1.0 , Exit=0.5 , Response=0.25 .
Strengths
Clear, explainable logic with an explicit noise budget.
Multiple threshold modes so the same tool fits equities, futures, and crypto.
Built-in hysteresis that reduces flip-flop near the boundary.
Slope-based coloring and alerts that make state changes obvious in real time.
Limitations and notes
All filters add lag. Larger thresholds and smaller response trade faster reaction for fewer false turns.
Fixed Points or Ticks can under- or over-filter when volatility regime shifts. ATR adapts, but will also expand bands during spikes.
On extremely choppy symbols, even a well tuned band will step frequently. Widen Enter Mult or reduce Response if needed.
This is a chart study. It does not include commissions, slippage, funding, or gap risks.
Alerts
DBHF Up Slope — baseline turns from down to up on the latest bar.
DBHF Down Slope — baseline turns from up to down on the latest bar.
Implementation details worth knowing
Initialization sets the baseline to the first observed price to avoid a cold-start jump.
Slope is evaluated bar-to-bar. The up and down alerts check for a change of slope rather than raw price crossings.
Candle colors and the baseline plot share the same long/short palette with transparency applied to the line.
Practical workflow
Pick a mode that matches how you think about distance. ATR for volatility aware, Percent for scale-free, Ticks or Points for fixed increments.
Tune Enter Mult until the number of flips feels appropriate for your timeframe.
Set Exit Mult clearly below Enter Mult to create a real hold zone.
Adjust Response last to control “how fast” the baseline chases price once it decides to move.
Final thoughts
Deadband plus hysteresis gives you a principled way to “only care when it matters.” With a sensible threshold and response, the filter yields a stable, low-chop trend cue you can use directly for bias or plug into your own entries, exits, and risk rules.
Martingale Strategy Simulator [BackQuant]Martingale Strategy Simulator
Purpose
This indicator lets you study how a martingale-style position sizing rule interacts with a simple long or short trading signal. It computes an equity curve from bar-to-bar returns, adapts position size after losing streaks, caps exposure at a user limit, and summarizes risk with portfolio metrics. An optional Monte Carlo module projects possible future equity paths from your realized daily returns.
What a martingale is
A martingale sizing rule increases stake after losses and resets after a win. In its classical form from gambling, you double the bet after each loss so that a single win recovers all prior losses plus one unit of profit. In markets there is no fixed “even-money” payout and returns are multiplicative, so an exact recovery guarantee does not exist. The core idea is unchanged:
Lose one leg → increase next position size
Lose again → increase again
Win → reset to the base size
The expectation of your strategy still depends on the signal’s edge. Sizing does not create positive expectancy on its own. A martingale raises variance and tail risk by concentrating more capital as a losing streak develops.
What it plots
Equity – simulated portfolio equity including compounding
Buy & Hold – equity from holding the chart symbol for context
Optional helpers – last trade outcome, current streak length, current allocation fraction
Optional diagnostics – daily portfolio return, rolling drawdown, metrics table
Optional Monte Carlo probability cone – p5, p16, p50, p84, p95 aggregate bands
Model assumptions
Bar-close execution with no slippage or commissions
Shorting allowed and frictionless
No margin interest, borrow fees, or position limits
No intrabar moves or gaps within a bar (returns are close-to-close)
Sizing applies to equity fraction only and is capped by your setting
All results are hypothetical and for education only.
How the simulator applies it
1) Directional signal
You pick a simple directional rule that produces +1 for long or −1 for short each bar. Options include 100 HMA slope, RSI above or below 50, EMA or SMA crosses, CCI and other oscillators, ATR move, BB basis, and more. The stance is evaluated bar by bar. When the stance flips, the current trade ends and the next one starts.
2) Sizing after losses and wins
Position size is a fraction of equity:
Initial allocation – the starting fraction, for example 0.15 means 15 percent of equity
Increase after loss – multiply the next allocation by your factor after a losing leg, for example 2.00 to double
Reset after win – return to the initial allocation
Max allocation cap – hard ceiling to prevent runaway growth
At a high level the size after k consecutive losses is
alloc(k) = min( cap , base × factor^k ) .
In practice the simulator changes size only when a leg ends and its PnL is known.
3) Equity update
Let r_t = close_t / close_{t-1} − 1 be the symbol’s bar return, d_{t−1} ∈ {+1, −1} the prior bar stance, and a_{t−1} the prior bar allocation fraction. The simulator compounds:
eq_t = eq_{t−1} × (1 + a_{t−1} × d_{t−1} × r_t) .
This is bar-based and avoids intrabar lookahead. Costs, slippage, and borrowing costs are not modeled.
Why traders experiment with martingale sizing
Mean-reversion contexts – if the signal often snaps back after a string of losses, adding size near the tail of a move can pull the average entry closer to the turn
Behavioral or microstructure edges – some rules have modest edge but frequent small whipsaws; size escalation may shorten time-to-recovery when the edge manifests
Exploration and stress testing – studying the relationship between streaks, caps, and drawdowns is instructive even if you do not deploy martingale sizing live
Why martingale is dangerous
Martingale concentrates capital when the strategy is performing worst. The main risks are structural, not cosmetic:
Loss streaks are inevitable – even with a 55 percent win rate you should expect multi-loss runs. The probability of at least one k-loss streak in N trades rises quickly with N.
Size explodes geometrically – with factor 2.0 and base 10 percent, the sequence is 10, 20, 40, 80, 100 (capped) after five losses. Without a strict cap, required size becomes infeasible.
No fixed payout – in gambling, one win at even odds resets PnL. In markets, there is no guaranteed bounce nor fixed profit multiple. Trends can extend and gaps can skip levels.
Correlation of losses – losses cluster in trends and in volatility bursts. A martingale tends to be largest just when volatility is highest.
Margin and liquidity constraints – leverage limits, margin calls, position limits, and widening spreads can force liquidation before a mean reversion occurs.
Fat tails and regime shifts – assumptions of independent, Gaussian returns can understate tail risk. Structural breaks can keep the signal wrong for much longer than expected.
The simulator exposes these dynamics in the equity curve, Max Drawdown, VaR and CVaR, and via Monte Carlo sketches of forward uncertainty.
Interpreting losing streaks with numbers
A rough intuition: if your per-trade win probability is p and loss probability is q=1−p , the chance of a specific run of k consecutive losses is q^k . Over many trades, the chance that at least one k-loss run occurs grows with the number of opportunities. As a sanity check:
If p=0.55 , then q=0.45 . A 6-loss run has probability q^6 ≈ 0.008 on any six-trade window. Across hundreds of trades, a 6 to 8-loss run is not rare.
If your size factor is 1.5 and your base is 10 percent, after 8 losses the requested size is 10% × 1.5^8 ≈ 25.6% . With factor 2.0 it would try to be 10% × 2^8 = 256% but your cap will stop it. The equity curve will still wear the compounded drawdown from the sequence that led to the cap.
This is why the cap setting is central. It does not remove tail risk, but it prevents the sizing rule from demanding impossible positions
Note: The p and q math is illustrative. In live data the win rate and distribution can drift over time, so real streaks can be longer or shorter than the simple q^k intuition suggests..
Using the simulator productively
Parameter studies
Start with conservative settings. Increase one element at a time and watch how the equity, Max Drawdown, and CVaR respond.
Initial allocation – lower base reduces volatility and drawdowns across the board
Increase factor – set modestly above 1.0 if you want the effect at all; doubling is aggressive
Max cap – the most important brake; many users keep it between 20 and 50 percent
Signal selection
Keep sizing fixed and rotate signals to see how streak patterns differ. Trend-following signals tend to produce long wrong-way streaks in choppy ranges. Mean-reversion signals do the opposite. Martingale sizing interacts very differently with each.
Diagnostics to watch
Use the built-in metrics to quantify risk:
Max Drawdown – worst peak-to-trough equity loss
Sharpe and Sortino – volatility and downside-adjusted return
VaR 95 percent and CVaR – tail risk measures from the realized distribution
Alpha and Beta – relationship to your chosen benchmark
If you would like to check out the original performance metrics script with multiple assets with a better explanation on all metrics please see
Monte Carlo exploration
When enabled, the forecast draws many synthetic paths from your realized daily returns:
Choose a horizon and a number of runs
Review the bands: p5 to p95 for a wide risk envelope; p16 to p84 for a narrower range; p50 as the median path
Use the table to read the expected return over the horizon and the tail outcomes
Remember it is a sketch based on your recent distribution, not a predictor
Concrete examples
Example A: Modest martingale
Base 10 percent, factor 1.25, cap 40 percent, RSI>50 signal. You will see small escalations on 2 to 4 loss runs and frequent resets. The equity curve usually remains smooth unless the signal enters a prolonged wrong-way regime. Max DD may rise moderately versus fixed sizing.
Example B: Aggressive martingale
Base 15 percent, factor 2.0, cap 60 percent, EMA cross signal. The curve can look stellar during favorable regimes, then a single extended streak pushes allocation to the cap, and a few more losses drive deep drawdown. CVaR and Max DD jump sharply. This is a textbook case of high tail risk.
Strengths
Bar-by-bar, transparent computation of equity from stance and size
Explicit handling of wins, losses, streaks, and caps
Portable signal inputs so you can A–B test ideas quickly
Risk diagnostics and forward uncertainty visualization in one place
Example, Rolling Max Drawdown
Limitations and important notes
Martingale sizing can escalate drawdowns rapidly. The cap limits position size but not the possibility of extended adverse runs.
No commissions, slippage, margin interest, borrow costs, or liquidity limits are modeled.
Signals are evaluated on closes. Real execution and fills will differ.
Monte Carlo assumes independent draws from your recent return distribution. Markets often have serial correlation, fat tails, and regime changes.
All results are hypothetical. Use this as an educational tool, not a production risk engine.
Practical tips
Prefer gentle factors such as 1.1 to 1.3. Doubling is usually excessive outside of toy examples.
Keep a strict cap. Many users cap between 20 and 40 percent of equity per leg.
Stress test with different start dates and subperiods. Long flat or trending regimes are where martingale weaknesses appear.
Compare to an anti-martingale (increase after wins, cut after losses) to understand the other side of the trade-off.
If you deploy sizing live, add external guardrails such as a daily loss cut, volatility filters, and a global max drawdown stop.
Settings recap
Backtest start date and initial capital
Initial allocation, increase-after-loss factor, max allocation cap
Signal source selector
Trading days per year and risk-free rate
Benchmark symbol for Alpha and Beta
UI toggles for equity, buy and hold, labels, metrics, PnL, and drawdown
Monte Carlo controls for enable, runs, horizon, and result table
Final thoughts
A martingale is not a free lunch. It is a way to tilt capital allocation toward losing streaks. If the signal has a real edge and mean reversion is common, careful and capped escalation can reduce time-to-recovery. If the signal lacks edge or regimes shift, the same rule can magnify losses at the worst possible moment. This simulator makes those trade-offs visible so you can calibrate parameters, understand tail risk, and decide whether the approach belongs anywhere in your research workflow.
Universal Trend+ [BackQuant]Universal Trend+
This indicator blends several well-known technical ideas into a single composite trend and momentum model. It can be show primarily as an overlay or a oscillator:
In which it produces two things:
a composite oscillator that summarizes multiple signals into one normalized score
a regime signal rendered on the chart as a colored ribbon with optional 𝕃 and 𝕊 markers
The goal is to simplify decision-making by having multiple, diverse measurements vote in a consistent framework, rather than relying on any single indicator in isolation.
What it does
Computes five independent components, each reading a different aspect of price behavior
Converts each component into a standardized bullish / neutral / bearish vote
Averages the available votes to a composite score
Compares that score to user thresholds to label the environment bullish, neutral, or bearish
Colors a fast/slow moving-average ribbon by the current regime, optionally paints candles, and can plot the composite oscillator in a lower pane
The five components (conceptual)
1)RSI Momentum Bias
A classic momentum gauge on a selectable source and lookback. The component emphasizes whether conditions are persistently strong or weak and applies a neutral buffer to avoid reacting to trivial moves. Output is expressed as a vote: bullish, neutral, or bearish.
2) Rate-of-Change Impulse
A smoothed rate-of-change that focuses on short bursts in acceleration. It is used to detect impulsive pushes rather than slow drift. Extreme readings cast a directional vote, mid-range readings abstain.
3) EMA Oscillator
A slope-style trend gauge formed by contrasting a fast and a slow EMA on a chosen source, normalized so that the sign and relative magnitude matter more than absolute price. A small dead-zone reduces whipsaws.
4) T3-Based Normalized Oscillator
A T3 smoother is transformed into a bounded oscillator via rolling normalization, then optionally smoothed by a user-selectable MA. This highlights directional drift while keeping scale consistent across symbols and regimes.
5) DEMA + ATR Bands State
A double-EMA core is wrapped in adaptive ATR bands to create a stepping state that reacts when pressure exceeds a volatility envelope. The component contributes an event-style vote on meaningful shifts.
Each component is designed to measure something different: trend slope, momentum impulse, normalized drift, and volatility-aware pressure. Their diversity is the point.
Composite scoring model
Standardization: Each component is mapped to -1 (bearish), 0 (neutral), or +1 (bullish) using bands and guards to cut noise.
Aggregation: The composite score is the average of the available votes. If a component is inactive on a bar, the composite uses the votes that are present.
Decision layer: Two user thresholds define your action bands.
Above the upper band → bullish regime
Below the lower band → bearish regime
Between the bands → neutral
This separation between measurement, aggregation, and decision avoids over-fitting any single threshold and makes the tool adaptable across assets and timeframes.
Plots and UI
Composite oscillator (optional lower pane): A normalized line that trends between bearish and bullish zones with user thresholds drawn for context.
Signal ribbon (on price): A fast/slow MA pair tinted by the current regime to give an at-a-glance market state.
Markers: Optional 𝕃 and 𝕊 labels when the regime flips.
Candle painting and background tint: Optional visual reinforcement of state.
Color and style controls: User inputs for long/short colors, threshold line color, and visibility toggles.
How it can be used
1) Regime filter
Use the composite regime to define bias. Trade only long in a bullish regime, only short in a bearish regime, and stand aside or scale down in neutral. This simple filter often reduces whipsaw.
2) Confirmation layer
Keep your entry method the same (breaks, pullbacks, liquidity sweeps, order-flow cues) but require agreement from the composite regime or a fresh flip in the 𝕃/𝕊 markers.
3) Momentum breakouts
Look for the composite oscillator to leave neutrality while the EMA oscillator is already positive and the ATR-band state has flipped. Confluence across components is the intent.
4) Pullback entries within trend
In a bullish regime, consider entries on shallow composite dips that recover before breaching the lower band. Reverse the logic in a bearish regime.
5) Exits and risk
Common choices are:
reduce on a return to neutral,
exit on an opposite regime flip, or
trail behind your own stop model (ATR, structure, session levels) while using the ribbon for context.
6) Multi-timeframe workflow
Select a higher timeframe for bias with this indicator, and time executions on a lower timeframe. The indicator itself stays on a single chart; you can load a second chart or pane if you prefer a strict top-down process.
Strengths
Diversified evidence: Five independent perspectives keep the model from hinging on one idea.
Noise control: Neutral buffers and a composite layer reduce reaction to minor wiggles.
Clarity: A single oscillator and a clearly colored ribbon present a complex assessment in a simple form.
Adaptable: Thresholds and lookbacks let you tune for faster or slower markets.
Practical tuning
Thresholds: Wider bands produce fewer regime flips and longer holds. Narrower bands increase sensitivity.
Lookbacks: Shorter lookbacks emphasize recent action; longer lookbacks emphasize stability.
T3 normalization window and volume factor: Increase the window to suppress noise on choppy symbols; tweak the factor to adjust the smoother’s response.
ATR factor for the band state: Raise it to demand more decisive pressure before registering a shift; lower it to respond earlier.
Alerts
Built-in alerts trigger when the regime flips long or short. If you prefer confirmed signals, set your alerts to bar close on your timeframe. Intrabar the composite can move with price; bar-close confirmation stabilizes behavior.
Limitations
Sideways markets: Even with buffers, any trend model can chop in range-bound conditions.
Lag vs sensitivity trade-off: Tighter thresholds react faster but flip more often; wider thresholds are steadier but later.
Asset specificity: Volatility regimes differ. Expect to retune ATR and normalization settings when switching symbols or timeframes.
Final Remarks
Universal Trend+ is meant to act like a disciplined voting committee. Each component contributes a different angle on the same underlying question: is the market pressing up, pressing down, or doing neither with conviction. By standardizing and aggregating those views, you get a single regime read that plays well with many entry styles and risk frameworks, while keeping the heavy math under the hood.
ATR% | Volatility NormalizerThis indicator measures true volatility by expressing the Average True Range (ATR) as a percentage of price. Unlike basic ATR plots, which show raw values, this version normalizes volatility to make it directly comparable across instruments and timeframes.
How it works:
Uses True Range (High–Low plus gaps) to capture actual market movement.
Normalizes by dividing ATR by the chosen price base (default: Close).
Multiplies by 100 to output a clean ATR% line.
Smoothing is flexible: choose from RMA, SMA, EMA, or WMA.
Optional Feature:
For comparison, you can toggle an auxiliary line showing the average absolute close-to-close % move, highlighting the difference between simplified and true volatility.
Why use it:
Track regime shifts: identify when volatility expands or contracts in % terms.
Compare volatility across different markets (equities, crypto, forex, commodities).
Integrate into risk management: position sizing, stop placement, or volatility filters for entries.
Interpretation:
Rising ATR% → expanding volatility, potential breakouts or unstable ranges.
Falling ATR% → contracting volatility, possible consolidation or range-bound conditions.
Sudden spikes → market “shocks” worth paying attention to.
Liquidity Swing Points [BackQuant]Liquidity Swing Points
This tool marks recent swing highs and swing lows and turns them into persistent horizontal “liquidity” levels. These are places where resting orders often accumulate, such as stop losses above prior highs and below prior lows. The script detects confirmed pivots, records their prices, draws lines and labels, and manages their lifecycle on the chart so you can monitor potential sweep or breakout zones without manual redrawing.
What it plots
LQ-H at confirmed swing highs
LQ-L at confirmed swing lows
Horizontal levels that can optionally extend into the future
Timed removal of old levels to keep the chart clean
Each level stores its price, the bar where it was created, its type (high or low), plus a label and a line reference for efficient updates.
How it works
Pivot detection
A swing high is confirmed when the highest high has swing_length bars on both sides that are lower.
A swing low is confirmed when the lowest low has swing_length bars on both sides that are higher.
Pivots are only marked after they are confirmed, so they do not repaint.
Level creation
When a pivot confirms, the script records the price and the creation bar (offset by the right lookback).
A new line is plotted at that price, labeled LQ-H or LQ-L.
Rendering and extension
Levels can be drawn to the most recent bar only or extended to the right for forward reference.
Label size and line color/transparency are configurable.
Lifecycle management
On each confirmed bar, the script checks level age.
Levels older than a chosen bar count are removed automatically to reduce clutter.
How it can be used
Liquidity sweeps: Watch for price to probe beyond a level then close back inside. That behavior often signals a potential fade back into the prior range.
Breakout validation: If price pushes through a level and holds on closes, traders may treat that as continuation. Retests of the level from the other side can serve as structure checks.
Context for entries and exits: Use nearby LQ-H or LQ-L as reference for stop placement or partial-take zones, especially when other tools agree.
Multi-timeframe mapping: Plot swing points on higher timeframes, then drill down to time entries on lower timeframes as price interacts with those levels.
Why liquidity levels matter
Prior swing points are focal areas where many strategies set stops or pending orders. Price often revisits these zones, either to “sweep” resting liquidity before reversing, or to absorb it and trend. Marking these areas objectively helps frame scenarios like failed breaks, successful breakouts, and retests, and it reduces the subjectivity of eyeballing structure.
Settings to know
Swing Detection Length (swing_length), Controls sensitivity. Lower values find more local swings. Higher values find more significant ones.
Bars until removal (removeafter), Deletes levels after a fixed number of bars to prevent buildup.
Extend Levels Right (extend_levels), Keeps levels projected into the future for easier planning.
Label Size (label_size), Choose tiny to large for chart readability.
One color input controls both high and low levels with transparency for context.
Strengths
Objective marking of recent structure without hand drawing
No repaint after confirmation since pivots are locked once the right lookback completes
Lightweight and fast with simple lifecycle management
Clear visuals that integrate well with any price-action workflow
Practical tips
For scalping: use smaller swing_length to capture more granular liquidity. Keep removeafter short to avoid clutter.
For swing trading: increase swing_length so only more meaningful levels remain. Consider extending levels to the right for planning.
Combine with time-of-day filters, ATR for stop sizing, or a separate trend filter to bias trades taken at the levels.
Keep screenshots focused: one image showing a sweep and reversal, another showing a clean breakout and retest.
Limitations and notes
Levels appear after confirmation, so they are delayed by swing_length bars. This is by design to avoid repainting.
On very noisy or illiquid symbols, you may see many nearby levels. Increasing swing_length and shortening removeafter helps.
The script does not assess volume or session context. Consider pairing with volume or session tools if that is part of your process.
Adaptive Valuation [BackQuant]Adaptive Valuation
What this is
A composite, zero-centered oscillator that standardizes several classic indicators and blends them into one “valuation” line. It computes RSI, CCI, Demarker, and the Price Zone Oscillator, converts each to a rolling z-score, then forms a weighted average. Optional smoothing, dynamic overbought and oversold bands, and an on-chart table make the inputs and the final score easy to inspect.
How it works
Components
• RSI with its own lookback.
• CCI with its own lookback.
• DM (Demarker) with its own lookback.
• PZO (Price Zone Oscillator) with its own lookback.
Standardization via z-score
Each component is transformed using a rolling z-score over lookback bars:
z = (value − mean) ÷ stdev , where the mean is an EMA and the stdev is rolling.
This puts all inputs on a comparable scale measured in standard deviations.
Weighted blend
The z-scores are combined with user weights w_rsi, w_cci, w_dm, w_pzo to produce a single valuation series. If desired, it is then smoothed with a selected moving average (SMA, EMA, WMA, HMA, RMA, DEMA, TEMA, LINREG, ALMA, T3). ALMA’s sigma input shapes its curve.
Dynamic thresholds (optional)
Two ways to set overbought and oversold:
• Static : fixed levels at ob_thres and os_thres .
• Dynamic : ±k·σ bands, where σ is the rolling standard deviation of the valuation over dynLen .
Bands can be centered at zero or around the valuation’s rolling mean ( centerZero ).
Visualization and UI
• Zero line at 0 with gradient fill that darkens as the valuation moves away from 0.
• Optional plotting of band lines and background highlights when OB or OS is active.
• Optional candle and background coloring driven by the valuation.
• Summary table showing each component’s current z-score, the final score, and a compact status.
How it can be used
• Bias filter : treat crosses above 0 as bullish bias and below 0 as bearish bias.
• Mean-reversion context : look for exhaustion when the valuation enters the OB or OS region, then watch for exits from those regions or a return toward 0.
• Signal confirmation : use the final score to confirm setups from structure or price action.
• Adaptive banding : with dynamic thresholds, OB and OS adjust to prevailing variability rather than relying on fixed lines.
• Component tuning : change weights to emphasize trend (raise DM, reduce RSI/CCI) or range behavior (raise RSI/CCI, reduce DM). PZO can help in swing environments.
Why z-score blending helps
Indicators often live on different scales. Z-scoring places them on a common, unitless axis, so a one-sigma move in RSI has comparable influence to a one-sigma move in CCI. This reduces scale bias and allows transparent weighting. It also facilitates regime-aware thresholds because the dynamic bands scale with recent dispersion.
Inputs to know
• Component lookbacks : rsilb, ccilb, dmlb, pzolb control each raw signal.
• Standardization window : lookback sets the z-score memory. Longer smooths, shorter reacts.
• Weights : w_rsi, w_cci, w_dm, w_pzo determine each component’s influence.
• Smoothing : maType, smoothP, sig govern optional post-blend smoothing.
• Dynamic bands : dyn_thres, dynLen, thres_k, centerZero configure the adaptive OB/OS logic.
• UI : toggle the plot, table, candle coloring, and threshold lines.
Reading the plot
• Above 0 : composite pressure is positive.
• Below 0 : composite pressure is negative.
• OB region : valuation above the chosen OB line. Risk of mean reversion rises and momentum continuation needs evidence.
• OS region : mirror logic on the downside.
• Band exits : leaving OB or OS can serve as a normalization cue.
Strengths
• Normalizes heterogeneous signals into one interpretable series.
• Adjustable component weights to match instrument behavior.
• Dynamic thresholds adapt to changing volatility and drift.
• Transparent diagnostics from the on-chart table.
• Flexible smoothing choices, including ALMA and T3.
Limitations and cautions
• Z-scores assume a reasonably stationary window. Sharp regime shifts can make recent bands unrepresentative.
• Highly correlated components can overweight the same effect. Consider adjusting weights to avoid double counting.
• More smoothing adds lag. Less smoothing adds noise.
• Dynamic bands recalibrate with dynLen ; if set too short, bands may swing excessively. If too long, bands can be slow to adapt.
Practical tuning tips
• Trending symbols: increase w_dm , use a modest smoother like EMA or T3, and use centerZero dynamic bands.
• Choppy symbols: increase w_rsi and w_cci , consider ALMA with a higher sigma , and widen bands with a larger thres_k .
• Multiday swing charts: lengthen lookback and dynLen to stabilize the scale.
• Lower timeframes: shorten component lookbacks slightly and reduce smoothing to keep signals timely.
Alerts
• Enter and exit of Overbought and Oversold, based on the active band choice.
• Bullish and bearish zero crosses.
Use alerts as prompts to review context rather than as stand-alone trade commands.
Final Remarks
We created this to show people a different way of making indicators & trading.
You can process normal indicators in multiple ways to enhance or change the signal, especially with this you can utilise machine learning to optimise the weights, then trade accordingly.
All of the different components were selected to give some sort of signal, its made out of simple components yet is effective. As long as the user calibrates it to their Trading/ investing style you can find good results. Do not use anything standalone, ensure you are backtesting and creating a proper system.
Ichimoku HorizonIchimoku Horizon – Multi-Timeframe Analysis
A multi-timeframe Ichimoku faithful to Hosoda, with authentic real-time calculations.
Ichimoku Horizon is an indicator based on the original method developed by Goichi Hosoda in the 1930s. It strictly respects the authentic formulas and prioritizes mathematical fidelity.
Key Features
Intelligent Multi-Timeframe
Native chart: Ichimoku from your trading timeframe
3 higher timeframes: Daily (1D), Weekly (1W), Monthly (1M) by default
Automatic projection: only higher timeframes relative to the chart are displayed
Precise offsets: displacement adapted to each timeframe
Guaranteed Authenticity
Hosoda’s original formulas fully respected
lookahead_off exclusively: lines calculated in real time with the current candle
Traditional displacement: 26 periods for cloud projection and Chikou shift
Why lookahead_off?
lookahead_off is the calculation mode that respects Hosoda’s logic:
Tenkan, Kijun, SSA and SSB all include the current candle and move in real time.
Chikou is the only exception: shifted 26 periods but calculated only with confirmed closes.
This way, what you see always matches the actual market as it is forming.
What is the no repaint approach?
A no repaint indicator displays values exactly as they exist in the present moment:
Lines update in real time during the formation of a candle.
Once the candle closes, they remain permanently fixed.
This ensures that the plots reflect the true construction of the market.
Main Parameters
Tenkan: 9 periods (short term)
Kijun: 26 periods (medium term)
SSB: 52 periods (long term)
Displacement: 26 periods (+26 for the cloud, −26 for the Chikou)
Timeframe Selection
TF1: Daily (structure aligned with trading activity)
TF2: Weekly (intermediate trend)
TF3: Monthly (macro vision)
Example Configurations
Scalping: Chart 1m → TF1: 5m, TF2: 15m, TF3: 1H
Intraday: Chart 5m → TF1: 15m, TF2: 1H, TF3: 4H
The indicator automatically hides inconsistent timeframes (lower than the chart).
Natural Line Display
Some lines will sometimes appear flat or straight: this is the normal behavior of Ichimoku, directly reflecting the highs and lows of their calculation windows.
Conclusion
Ichimoku Horizon is designed to remain true to Hosoda’s vision while offering the clarity of a modern multi-timeframe tool.
It delivers authentic, real-time calculations with no compromise.
Volumetric Support and Resistance [BackQuant]Volumetric Support and Resistance
What this is
This Overlay locates price levels where both structure and participation have been meaningful. It combines classical swing points with a volume filter, then manages those levels on the chart as price evolves. Each level carries:
• A reference price (support or resistance)
• An estimate of the volume that traded around that price
• A touch counter that updates when price retests it
• A visual box whose thickness is scaled by volatility
The result is a concise map of candidate support and resistance that is informed by both price location and how much trading occurred there.
How levels are built
Find structural pivots uses ta.pivothigh and ta.pivotlow with a user set sensitivity. Larger sensitivity looks for broader swings. Smaller sensitivity captures tighter turns.
Require meaningful volume computes an average volume over a lookback period and forms a volume ratio for the current bar. A pivot only becomes a level when the ratio is at least the volume significance multiplier.
Avoid clustering checks a minimum level distance (as a percent of price). If a candidate is too close to an existing level, it is skipped to keep the map readable.
Attach a volume strength to the level estimates volume strength by averaging the volume of recent bars whose high to low range spans that price. Levels with unusually high strength are flagged as high volume.
Store and draw levels are kept in an array with fields for price, type, volume, touches, creation bar, and a box handle. On the last bar, each level is drawn as a horizontal box centered at the price with a vertical thickness scaled by ATR. Borders are thicker when the level is marked high volume. Boxes can extend into the future.
How levels evolve over time
• Aging and pruning : levels are removed if they are too old relative to the lookback or if you exceed the maximum active levels.
• Break detection : a level can be removed when price closes through it by more than a break threshold set as a fraction of ATR. Toggle with Remove Broken Levels.
• Touches : when price approaches within the break threshold, the level’s touch counter increments.
Visual encoding
• Boxes : support boxes are green, resistance boxes are red. Box height uses an ATR based thickness so tolerance scales with volatility. Transparency is fixed in this version. Borders are thicker on high volume levels.
• Volume annotation : show the estimated volume inside the box or as a label at the right. If a level has more than one touch, a suffix like “(2x)” is appended.
• Extension : boxes can extend a fixed number of bars into the future and can be set to extend right.
• High volume bar tint : bars with volume above average × multiplier are tinted green if up and red if down.
Inputs at a glance
Core Settings
• Level Detection Sensitivity — pivot window for swing detection
• Volume Significance Multiplier — minimum volume ratio to accept a pivot
• Lookback Period — window for average volume and maintenance rules
Level Management
• Maximum Active Levels — cap on concurrently drawn levels
• Minimum Level Distance (%) — required spacing between level prices
Visual Settings
• Remove Broken Levels — drop a level once price closes decisively through it
• Show Volume Information on Levels — annotate volume and touches
• Extend Levels to Right — carry boxes forward
Enhanced Visual Settings
• Show Volume Text Inside Box — text placement option
• Volume Based Transparency and Volume Based Border Thickness — helper logic provided; current draw block fixes transparency and increases border width on high volume levels
Colors
• Separate colors for support, resistance, and their high volume variants
How it can be used
• Trade planning : use the most recent support and resistance as reference zones for entries, profit taking, or stop placement. ATR scaled thickness provides a practical buffer.
• Context for patterns : combine with breakouts, pullbacks, or candle patterns. A breakout through a high volume resistance carries more informational weight than one through a thin level.
• Prioritization : when multiple levels are nearby, prefer high volume or higher touch counts.
• Regime adaptation : widen sensitivity and increase minimum distance in fast regimes to avoid clutter. Tighten them in calm regimes to capture more granularity.
Why volume support and resistance is used in trading
Support and resistance relate to willingness to transact at certain prices. Volume measures participation. When many contracts change hands near a price:
• More market players hold inventory there, often creating responsive behavior on retests
• Order flow can concentrate again to defend or to exit
• Breaks can be cleaner as trapped inventory rebalances
Conditioning level detection on above average activity focuses attention on prices that mattered to more participants.
Alerts
• New Support Level Created
• New Resistance Level Created
• Level Touch Alert
• Level Break Alert
Strengths
• Dual filter of structure and participation, reducing trivial swing points
• Self cleaning map that retires old or invalid levels
• Volatility aware presentation using ATR based thickness
• Touch counting for persistence assessment
• Tunable inputs for instrument and timeframe
Limitations and caveats
• Volume strength is an approximation based on bars spanning the price, not true per price volume
• Pivots confirm after the sensitivity window completes, so new levels appear with a delay
• Narrow ranges can still cluster levels unless minimum distance is increased
• Large gaps may jump past levels and immediately trigger break conditions
Practical tuning guide
• If the chart is crowded: increase sensitivity, increase minimum level distance, or reduce maximum active levels
• If useful levels are missed: reduce volume multiplier or sensitivity
• If you want stricter break removal: increase the ATR based break threshold in code
• For instruments with session patterns: tailor the lookback period to a representative window
Interpreting touches and breaks
• First touch after creation is a validation test
• Multiple shallow touches suggest absorption; a later break may then travel farther
• Breaks on high current volume merit extra attention
Multi timeframe usage
Levels are computed on the active chart timeframe. A common workflow is to keep a higher timeframe instance for structure and a lower timeframe instance for execution. Align trades with higher timeframe levels where possible.
Final Thoughts
This indicator builds a lightweight, self updating map of support and resistance grounded in swings and participation. It is not a full market profile, but it captures much of the practical benefit with modest complexity. Treat levels as context and decision zones, not guarantees. Combine with your entry logic and risk controls.
DM Impulse Enhanced [BackQuant]DM Impulse Enhanced
What this is (and what it isn’t)
DM Impulse Enhanced is a signal-driven overlay that classifies market action into two practical regimes: Long (risk-on) and Cash (risk-off). It’s built around a proprietary impulse model from the directional-movement family, wrapped in a persistence test and a state machine. Because this script is private, the core mechanics are intentionally abstracted here; what follows explains how to read and use it without revealing the protected calculation.
Why traders use it
Many tools oscillate or describe “how stretched” price is; fewer make a firm, operational call that you can automate. DM Impulse Enhanced aims to do exactly that declare when upside pressure is broad and durable enough to justify a long bias, and when deterioration is strong enough to stand aside (cash/short discretion). The emphasis is on impulse persistence rather than one-off spikes.
What you see on the chart
• Long / Cash markers – Green up-triangles (Long) and red down-triangles (Cash) plot at the bar where the regime changes.
• Regime-tinted bars (optional) – Candles can be softly shaded green during Long and red during Cash for at-a-glance context.
• Trend ribbon (context only) – A narrow ribbon (fast/slow moving averages) is tinted by the current regime to show trend alignment; it does not generate signals on its own.
• No separate sub-pane – Signals are intended to sit directly on price for immediate decision-making.
How the logic behaves (high-level)
Impulse core – A directional-movement–based engine estimates the strength of buying vs. selling pressure over a user-defined horizon.
Persistence gate – Instead of reacting to a single reading, the model evaluates how consistently that impulse dominates across a configurable lookback range.
State machine – When persistence clears (or fails) a pair of thresholds, the model flips and stays in that regime until evidence justifies a change. This “stickiness” is intentional; it reduces whipsaws in choppy tape.
Inputs & controls
Calculation Settings
• DM Length – The base horizon for the impulse engine. Longer = smoother/steadier; shorter = quicker/more reactive.
• Start / End – Defines the span of the persistence check. Expanding the span asks the market to prove itself against more history before changing regime.
Signal Settings
• Long Threshold – The persistence level required to promote the model into Long.
• Short Threshold – The level that, once crossed to the downside, demotes the model into Cash. Using a cross-under event for risk-off helps avoid premature exits on noise.
Visual Settings
• Long / Short colours – Customize marker and shading hues.
• Color Bars? – Toggle candle tinting by regime (off if you prefer a clean chart).
Reading the signals
• Long prints only when the model observes sustained upside pressure across the configured span. Treat this as permission to engage with pullbacks, breakouts, or your preferred setups in the direction of the trend.
• Cash prints when downside deterioration is strong enough to invalidate the prior regime. It’s a risk-off directive—flatten, hedge, or switch to short strategies according to your plan.
• Regime persistence is a feature: once Long, the model won’t flip on minor dips; once Cash, it won’t re-arm on minor bounces. If you want more flips, shorten the spans and relax thresholds; if you want fewer, do the opposite.
Practical tuning guide
Match DM Length to your timeframe
– Intraday: smaller length for timely response.
– Swing/Position: larger length to filter desk-noise and track higher-timeframe flows.
Size the persistence span to your goal
– Narrow span: faster regime changes, more trades, more noise.
– Wide span: fewer, higher-conviction calls, longer holds.
Set realistic thresholds
– The Long threshold should be reachable with your chosen span; the Short threshold should be low enough to catch genuine deterioration but not so tight that it flips on every dip.
Decide on cosmetics
– Turn on bar tinting for discretionary reading, or keep it off when exporting screenshots or running other overlays.
Suggested workflows
• Trend-following with discipline – Trade only in the Long regime; use structure (higher lows, anchored VWAP, or pullbacks to your MA stack) for entries and the Cash flip as a portfolio-level exit.
• Risk overlay – Keep your normal strategy, but: reduce size when Cash appears; re-enable full risk only after Long reasserts.
• Multi-timeframe gating – Require Long on a higher timeframe (e.g., 4H or 1D), then take entries on a lower one. If the high-TF posts Cash, stand down.
How the ribbon fits in
The ribbon visualizes short- vs. intermediate-term trend in the same colour as the regime. It’s deliberately “dumb”: it does not change the signal, it just helps you see when price action and regime are in harmony (e.g., pullbacks during Long that hold above the ribbon).
Alerts included
• DM Impulse LONG – Triggers as the persistence measure clears the Long threshold.
• DM Impulse CASH – Triggers when deterioration crosses the Short threshold from above.
Configure alerts to fire on bar close if you want final (non-intrabar) decisions.
Strengths
• Actionable binary output – Long/Cash is unambiguous and easy to automate.
• Persistence-aware – Focuses on runs that endure, not one-bar excitement.
• Asset/timeframe agnostic – Works anywhere you trust directional-movement concepts (equities, futures, crypto, FX).
Limitations & cautions
• Not a reversal caller – It’s a regime classifier. If you need early bottoms/tops, pair it with your own exhaustion or liquidity tools.
• Parameter feasibility matters – If your thresholds are set beyond what your span can reasonably achieve, signals may rarely (or never) trigger.
• Chop happens – In mean-reverting or news-driven tape, expect more frequent flips unless you widen spans and thresholds.
• Intrabar movement – Like any responsive model, provisional intrabar states can appear before the bar closes. Use “bar close” alerts for finality.
Getting started (safe defaults you can adapt)
• Intraday bias – Shorter DM Length, modest span, moderately tight thresholds.
• Swing filter – Longer DM Length, wider span, stricter Long and sufficiently low Short.
• Conservative overlay – Keep thresholds firm and spans wide; use signals to scale risk rather than flip directions frequently.
Summary
DM Impulse Enhanced is a persistence-focused regime classifier built on directional-movement concepts. It answers a narrow question clearly “Risk-on or risk-off?” and stays with that answer until the evidence meaningfully changes. Use it as a bias switch, a portfolio risk overlay, or a gate for your existing entry logic, and size its spans/thresholds to the cadence of the market you trade.
EMA Oscillator [Alpha Extract]A precision mean reversion analysis tool that combines advanced Z-score methodology with dual threshold systems to identify extreme price deviations from trend equilibrium. Utilizing sophisticated statistical normalization and adaptive percentage-based thresholds, this indicator provides high-probability reversal signals based on standard deviation analysis and dynamic range calculations with institutional-grade accuracy for systematic counter-trend trading opportunities.
🔶 Advanced Statistical Normalization
Calculates normalized distance between price and exponential moving average using rolling standard deviation methodology for consistent interpretation across timeframes. The system applies Z-score transformation to quantify price displacement significance, ensuring statistical validity regardless of market volatility conditions.
// Core EMA and Oscillator Calculation
ema_values = ta.ema(close, ema_period)
oscillator_values = close - ema_values
rolling_std = ta.stdev(oscillator_values, ema_period)
z_score = oscillator_values / rolling_std
🔶 Dual Threshold System
Implements both statistical significance thresholds (±1σ, ±2σ, ±3σ) and percentage-based dynamic thresholds calculated from recent oscillator range extremes. This hybrid approach ensures consistent probability-based signals while adapting to varying market volatility regimes and maintaining signal relevance during structural market changes.
// Statistical Thresholds
mild_threshold = 1.0 // ±1σ (68% confidence)
moderate_threshold = 2.0 // ±2σ (95% confidence)
extreme_threshold = 3.0 // ±3σ (99.7% confidence)
// Percentage-Based Dynamic Thresholds
osc_high = ta.highest(math.abs(z_score), lookback_period)
mild_pct_thresh = osc_high * (mild_pct / 100.0)
moderate_pct_thresh = osc_high * (moderate_pct / 100.0)
extreme_pct_thresh = osc_high * (extreme_pct / 100.0)
🔶 Signal Generation Framework
Triggers buy/sell alerts when Z-score crosses extreme threshold boundaries, indicating statistically significant price deviations with high mean reversion probability. The system generates continuation signals at moderate levels and reversal signals at extreme boundaries with comprehensive alert integration.
// Extreme Signal Detection
sell_signal = ta.crossover(z_score, selected_extreme)
buy_signal = ta.crossunder(z_score, -selected_extreme)
// Dynamic Color Coding
signal_color = z_score >= selected_extreme ? #ff0303 : // Extremely Overbought
z_score >= selected_moderate ? #ff6a6a : // Overbought
z_score >= selected_mild ? #b86456 : // Mildly Overbought
z_score > -selected_mild ? #a1a1a1 : // Neutral
z_score > -selected_moderate ? #01b844 : // Mildly Oversold
z_score > -selected_extreme ? #00ff66 : // Oversold
#00ff66 // Extremely Oversold
🔶 Visual Structure Analysis
Provides a six-tier color gradient system with dynamic background zones indicating mild, moderate, and extreme conditions. The histogram visualization displays Z-score intensity with threshold reference lines and zero-line equilibrium context for precise mean reversion timing.
snapshot
4H
1D
🔶 Adaptive Threshold Selection
Features intelligent threshold switching between statistical significance levels and percentage-based dynamic ranges. The percentage system automatically adjusts to current volatility conditions using configurable lookback periods, while statistical thresholds maintain consistent probability-based signal generation across market cycles.
🔶 Performance Optimization
Utilizes efficient rolling calculations with configurable EMA periods and threshold parameters for optimal performance across all timeframes. The system includes comprehensive alert functionality with customizable notification preferences and visual signal overlay options.
🔶 Market Oscillator Interpretation
Z-score > +3σ indicates statistically significant overbought conditions with high reversal probability, while Z-score < -3σ signals extreme oversold levels suitable for counter-trend entries. Moderate thresholds (±2σ) capture 95% of normal price distributions, making breaches statistically significant for systematic trading approaches.
snapshot
🔶 Intelligent Signal Management
Automatic signal filtering prevents false alerts through extreme threshold crossover requirements, while maintaining sensitivity to genuine statistical deviations. The dual threshold system provides both conservative statistical approaches and adaptive market condition responses for varying trading styles.
Why Choose EMA Oscillator ?
This indicator provides traders with statistically-grounded mean reversion analysis through sophisticated Z-score normalization methodology. By combining traditional statistical significance thresholds with adaptive percentage-based extremes, it maintains effectiveness across varying market conditions while delivering high-probability reversal signals based on quantifiable price displacement from trend equilibrium, enabling systematic counter-trend trading approaches with defined statistical confidence levels and comprehensive risk management parameters.
NPM Trend Indicator ProNPM Trend Indicator Pro
The NPM Trend Indicator Pro is a closed-source, professional-grade trend detection tool designed to help traders identify high-probability directional moves in the market. It combines multiple technical factors to generate clear, actionable trend signals while filtering out noise and reducing false entries.
What it does
Displays trend direction (uptrend, downtrend, or neutral) for the selected symbol.
Shows a confidence or strength score to indicate how reliable the trend signal is.
Highlights potential areas of market exhaustion or reversal based on aggregated trend analysis.
Provides visual cues on the chart to assist with trade timing and risk management.
How it works (concept-level)
Integrates multiple trend-detection methods, including moving average structures, momentum confirmation, and volatility assessment.
Uses adaptive filters to avoid false signals during sideways or choppy market conditions.
Includes zone awareness to help traders avoid entering trades too close to likely reaction points.
Aggregates all signals into a single output to give traders a concise, actionable overview.
How to use it
1. Apply the indicator to your chosen symbol.
2. Observe the trend direction and confidence score displayed on the chart.
3. Confirm that the trend aligns with your trading strategy and timeframe.
4. Use the visual cues for potential entry, exit, and risk management decisions.
Alerts
Optionally set alerts when trend direction changes or when the confidence score reaches a user-defined threshold.
Notes
Suitable for multiple markets, including forex, indices, crypto, and equities.
Can be used for intraday scalping, swing trading, or longer-term trend analysis depending on the trader’s selected timeframe.
⚠️ Disclaimer: This script is for educational purposes only and is not financial advice. Trading involves risk, and you can lose money. Always test strategies on a demo account and use proper risk management.
NPM Trend Dashboard NPM Trend Dashboard
The NPM Trend Dashboard is a closed-source tool designed to help traders quickly assess market conditions and make informed decisions. It combines trend detection, momentum, and volatility awareness into a clear interface, showing the current trend direction and strength for selected symbols.
What it does
Displays trend direction (uptrend, downtrend, or neutral) for each selected symbol.
Shows a confidence score or strength indicator to help gauge reliability.
Highlights potential areas of market exhaustion or reversal based on aggregated trend signals.
How it works (concept-level)
Combines multiple trend-detection methods such as moving average structure, momentum filters, and volatility assessment to generate an overall trend signal.
Uses adaptive filters to reduce noise and avoid false signals in choppy markets.
Incorporates zone awareness to account for areas where price may pause or reverse.
Aggregates signals into a single dashboard view to provide traders with a quick, actionable overview.
How to use it
1. Select symbols to monitor.
2. Switch to your desired timeframe to view trend information.
3. Observe trend direction and confidence score for each symbol.
4. Use the dashboard to supplement trade entries, exits, and risk management strategies.
Alerts
Optionally set alerts when trend direction changes or when confidence exceeds a user-defined threshold.
Notes
Suitable for multiple markets, including forex, indices, crypto, and equities.
Can be used for intraday scalping, swing trading, or longer-term trend analysis depending on the selected timeframe.
⚠️ Disclaimer: This script is for educational purposes only and is not financial advice. Trading involves risk, and you can lose money. Always test strategies on a demo account and practice proper risk management.
NPM Market PredictionMarket Prediction Indicator
The Market Prediction Indicator Script is a custom-built tool designed to give traders a clearer view of market direction and probability. It combines several technical concepts into one framework to help filter out noise, highlight potential opportunities, and improve trade timing.
What it does
Identifies whether the market is more likely trending or ranging.
Generates trade signals only when multiple factors align.
Assigns a confidence score to each signal for added clarity.
Plots guides for stop and target placement that adapt to market conditions.
Filters signals around potential reversal areas to reduce false entries.
What you see
Long/short markers when conditions align.
Confidence score labels for signals.
Adaptive stop/target guides.
Highlighted zones showing potential areas of reaction.
How to use it
1. Observe whether the indicator shows a trending or ranging environment.
2. Take signals when all conditions align and the confidence score meets your threshold.
3. Use the adaptive stop and target guides for risk management.
4. Optionally add higher timeframe confirmation for extra filtering.
Alerts
Long signal confirmed
Short signal confirmed
Target reached
Stop guide breached
Notes
This tool is designed for use across multiple markets and timeframes, from intraday setups to swing trading.
⚠️ Disclaimer: This script is for educational purposes only and not financial advice. Trading involves risk, and you can lose money. Always test on demo and manage risk carefully.
Kio IQ [TradingIQ]Introducing: “Kio IQ ”
Kio IQ is an all-in-one trading indicator that brings momentum, trend strength, multi-timeframe analysis, trend divergences, pullbacks, early trend shift signals, and trend exhaustion signals together in one clear view.
🔶 The Philosophy of Kio IQ
Markets move in trends—and capturing them reliably is the key to consistency in trading. Without a tool to see the bigger picture, it’s easy to mistake a pullback for a breakout, a fakeout for the real deal, or random market noise as a meaningful price move.
Kio IQ cuts through that random market noise—scanning multiple timeframes, analyzing short, medium, and long-term momentum, and telling you on the spot whether a move is strong, weak, a trap, or simply a small move within a larger trend.
With Kio IQ, price action reveals its next move.
You’ll instantly see:
Which way it’s pushing — up, down, or stuck in the middle.
How hard it’s pushing — from fading weakness to full-blown strength.
When the gears are shifting — early warnings, explosive moves, smart pullbacks, or signs it’s running out of steam.
🔶 Why This Matters
Markets move in phases—sometimes they’re powering in one direction, sometimes they’re slowing down, and sometimes they’re reversing.
Knowing which phase you’re in can help you:
Avoid chasing a move that’s about to run out of steam.
Jump on a move when it’s just getting started.
Spot pullbacks inside a bigger trend (good for entries).
See when different timeframes are all pointing the same way.
🔶 What Kio IQ Shows You
Simple color-coded phases: “Strong Up,” “Up,” “Weak Up,” “Weak Down,” “Down,” “Strong Down.”
Clear visual signals
Full Shift: Strong momentum in one direction.
Half Shift: Momentum is building but not full power yet.
Pullback Shift: A small move against the trend that may be ending.
Early Scout / Lookout: First hints of a possible shift.
Exhaustion: Momentum is very stretched and may slow down.
Divergences: When price moves one way but momentum moves the opposite way—often a warning of a change.
Multi-Timeframe Table: See the trend strength for multiple timeframes (5m, current, 30m, 4h, 1D, and optional 1W/1M) all in one place.
Trend Strength %: A single number that tells you how strong the trend is across all timeframes.
Optional meters: A “momentum bar” and “trend strength gauge” for quick checks.
🔶 How It Works Behind the Scenes
Kio IQ measures price movement in different “speeds”:
Slow view: Big picture trend.
Medium view: The main engine for detecting the current phase.
Fast view: Catches recent changes in momentum.
Super-fast view: Finds tiny pullbacks inside the bigger move.
It compares these views to decide whether the market is strong up, weak up, weak down, strong down, or in between. Then it blends data from multiple timeframes so you see the whole picture, not just the current chart.
🔶 What You’ll See on the Chart
🔷 Full Shift Oscillator (FSO)
The image above highlights the Full Shift Oscillator (FSO).
The FSO is the cornerstone of Kio IQ, delivering mid-term momentum analysis. Using a proprietary formula, it captures momentum on a smooth, balanced scale — responsive enough to avoid lag, yet stable enough to prevent excessive noise or false signals.
The Key Upside Level for the FSO is +20, while the Key Downside Level is -20.
The image above shows the FSO above +20 and below -20, and the corresponding price movement.
FSML above +20 confirms sustained upside momentum — the market is being driven by consistent, broad-based buying pressure, not just a price spike.
FSML below -20 confirms sustained downside momentum — sellers are firmly in control across the market.
We do not chase the first sudden price move. Entries are only considered when the market demonstrates persistence, not impulse.
🔷 Half Shift Oscillator (HSO)
The image above highlights the Half Shift Oscillator (HSO).
The HSO is the FSO’s wingman — faster, more reactive, and designed to catch the earliest signs of strength, weakness, or momentum shifts.
While HSO reacts first, it is not a standalone confirmation of a major momentum change or trade-worthy strength.
Using the same proprietary formula as the FSO but scaled down, the HSO delivers smooth, balanced short-term momentum analysis. It is more responsive than the FSO, serving as the scout that spots potential setups before the main signal confirms.
The Key Upside Level for the FSO is +4, while the Key Downside Level is -4.
🔷 PlayBook Strategy: Shift Sync
Shift Sync is a momentum alignment play that triggers when short-term and mid-term momentum lock into the same direction, signaling strong directional control.
🔹 UpShift Sync – Bullish Alignment
HSO > +4 – Short-term momentum is firmly bullish.
FSO > +20 – Mid-term momentum confirms the bullish bias.
When both thresholds are met, buyers are in control and price is primed for continuation higher.
🔹 DownShift Sync – Bearish Alignment
HSO < -4 – Short-term momentum is firmly bearish.
FSO < -20 – Mid-term momentum confirms the bearish bias.
When both thresholds are met, sellers dominate and price is primed for continuation lower.
Execution:
Look for an entry opportunity in the direction of the alignment when conditions are met.
Avoid choppy conditions where alignment is frequently lost.
Why It Works
Think of the market as a tug-of-war between traders on different timeframes. Short-term traders (captured by the HSO) are quick movers — scalpers, intraday players, and algos hunting immediate edge. Mid-term traders (captured by the FSO) are swing traders, funds, and institutions who move slower but carry more weight.
Most of the time, these groups pull in opposite directions, creating chop and fakeouts. But when they suddenly lean the same way, the rope gets yanked hard in one direction. That’s when momentum has the highest chance to drive price further with minimal resistance.
Shift Sync works because it isolates those rare moments when multiple market “tribes” agree on direction — and when they do, price doesn’t just move, it flies.
Best Market Conditions
Shift Sync works best when the higher timeframe trend (daily, weekly, or monthly) is moving in the same direction as the alignment. This higher timeframe confluence increases follow-through potential and reduces the likelihood of false moves.
The image above shows an example of an UpShift Sync signal where the momentum table shows that the 1D momentum is bullish.
The image above shows bonus confluence, where the 1M and 1W momentum are also bullish.
The image above shows an example of a DownShift Sync signal where the momentum table shows that the 1D momentum is bearish. Bonus confluence also exists, where the 1W and 1M chart are also bearish.
Common Mistakes
Chasing late signals – Avoid entering if the Shift Sync trigger has been active for a long time. Instead, wait for a Shift Sync Pullback to look for opportunities to join in the direction of the trend.
Ignoring higher timeframe bias – Taking Shift Sync setups against the daily, weekly, or monthly trend reduces follow-through potential and increases the risk of a failed move.
🔷 Micro Shift Oscillator (MSO)
The image above highlights the Micro Shift Oscillator (MSO)
The MSO is the finishing touch to the FSO and HSO — the fastest and most reactive of the three. It’s built to spot pullback opportunities when the FSO and HSO are aligned, helping traders join strong price moves at the right time.
The MSO may reveal the earliest signs of a momentum shift, but that’s not its primary role. Its purpose is to identify retracement and pullback opportunities within the overarching trend, allowing traders to join the move while momentum remains intact.
🔷 Playbook Strategy: Shift Sync Pullback
Key Levels:
MSO Upside Trigger: +3
MSO Downside Trigger: -3
🔹 UpShift Pullback
Momentum Confirmation:
FSO > +20 – Mid-term momentum is strongly bullish.
HSO > +4 – Short-term momentum confirms alignment with the FSO.
Pullback Trigger:
MSO ≤ -3 – Signals a short-term retracement within the ongoing bullish trend and marks the earliest re-entry opportunity.
Entry Zone:
The blue arrow on the top chart shows where momentum remains intact while price pulls back into a zone primed for a move higher.
Setup Validity: Both FSO and HSO must remain above their bullish thresholds during the pullback.
Invalid Example:
If either the FSO or HSO drop below their bullish thresholds, momentum alignment breaks. No trade is taken.
🔹 DownShift Pullback
Momentum Confirmation:
FSO < -20 – Mid-term momentum is strongly bearish.
HSO < -4 – Short-term momentum aligns with the FSO, confirming seller dominance.
Pullback Trigger:
MSO ≥ +3 – Indicates a short-term retracement against the bearish trend, pointing to possible short-entry opportunities.
Entry Zone:
The purple arrow on the top chart marks valid pullback conditions — all three oscillators meet their bearish thresholds, and price is positioned to continue lower.
Setup Validity: Both FSO and HSO must remain below their bearish thresholds during the pullback.
Invalid Example:
If either oscillator rises above the bearish threshold, momentum alignment is lost and the MSO signal is ignored.
Why It Works
Even in strong trends, price rarely moves in a straight line. Supply and demand dynamics naturally create retracements as traders take profits, bet on reversals, or hedge positions.
While many momentum traders fear these pullbacks, they’re often the fuel for the next leg of the move — offering a “second chance” to join the trend at a more favorable price.
The Shift Sync Pullback pinpoints moments when both short-term (HSO) and mid-term (FSO) momentum remain firmly aligned, even as price moves temporarily against the trend. This alignment suggests the retracement is a pause, not a reversal.
By entering during a controlled pullback, traders often secure better entries, tighter stops, and stronger follow-through potential when the trend resumes.
Best Market Conditions:
Works best when the higher timeframe (daily, weekly, or monthly) is trending in the same direction as the pullback setup.
Consistent momentum is ideal — avoid erratic, news-driven chop.
Following a recent breakout (Gate Breaker setup) when momentum is still fresh.
Common Mistakes
Ignoring threshold breaks – Entering when either HSO or FSO dips through their momentum threshold often leads to taking trades in weakening trends.
Trading against higher timeframe bias – A pullback against the daily or weekly trend is more likely to fail; use higher timeframe confluence as a filter.
🔷 Macro Shift Oscillator (MaSO)
The chart above shows the MaSO in isolation.
While the MaSO is not part of any active Kio IQ playbook strategies, it delivers the clearest view of the prevailing macro trend.
MaSO > 0 – Macro trend is bullish. Readings above +4 signal extreme bullish conditions.
MaSO < 0 – Macro trend is bearish. Readings below -4 signal extreme bearish conditions.
Use the MaSO for context, not entries — it frames the environment in which all other signals occur
🔷 Shift Gates – Kio IQ Momentum Barriers
The image above shows UpShift Gates.
UpShift Gates mark the highest price reached during periods when the FSO is above +20 — moments when mid-term momentum is firmly bullish and buyers are in control.
UpShift Gates are upside breakout levels — key swing highs formed before a pullback during periods of strong bullish momentum. When price reclaims an UpShift Gate with momentum confirmation, it signals a potential continuation of the uptrend.
The image above shows DownShift Gates.
DownShift Gates Mark The Lowest Price Reached During Periods When The FSO Is Below -20 — Moments When Mid-Term Momentum Is Firmly Bearish And Sellers Are In Control.
DownShift Gates are downside breakout levels — key swing lows formed before an upside pullback during periods of strong bearish momentum. When price reclaims a DownShift Gate with momentum confirmation, it signals a potential continuation of the downtrend.
🔷 Playbook Strategy: Gate Breakers
Core Rule:
Long signal when price decisively closes beyond an UpGate (for longs) or DownGate (for shorts). The breakout must show commitment — no wick-only tests.
🔹 UpGate Breaker (UpGate)
Trigger: Price closes above the UpShift Gate level.
Bonus Confluence: MaSO > 0 at the moment of the break — confirms that the macro trend bias is in favor of the breakout.
Invalidation: Avoid taking the signal if the gate level forms part of a DownShift Rift (bearish divergence) — this signals underlying weakness despite the break.
The chart above shows valid UpGate Breakers.
The chart above shows an invalidated UpGate Breaker setup.
🔹 DownGate Breaker (DownGate)
Trigger: Price closes below the DownShift Gate level.
Bonus Confluence: MaSO < 0 at the moment of the break — confirms that the macro trend bias is in favor of the breakdown.
Invalidation: Avoid taking the trade if the gate level forms part of an UpShift Rift (bullish divergence) — this signals underlying strength despite the break.
The chart above shows a valid DownGate Breaker.
Why It Works
Key swing levels like Shift Gates attract a high concentration of resting orders — stop losses from traders caught on the wrong side and breakout orders from momentum traders waiting for confirmation.
When price decisively clears a gate with a strong close, these orders trigger in quick succession, creating a burst of directional momentum.
Adding the MaSO filter ensures you’re breaking gates with the prevailing macro bias, improving the odds that the move will continue rather than stall.
The divergence-based invalidation rule (Rift filter) prevents entries when underlying momentum is moving in the opposite direction, helping avoid “fake breakouts” that trap traders.
Best Market Conditions:
Works best in markets with clear trend structure and visible Shift Gates (not during chop).
Strongest when higher timeframe (1D, 1W, 1M) momentum aligns with the breakout direction.
MaSO > 0 for bullish breakouts, MaSO < 0 for bearish breakouts
Most reliable after a period of consolidation near the gate, where pressure builds before the break.
Common Mistakes
Trading wick-only tests – A breakout without a decisive candle close beyond the gate often fails.
Ignoring MaSO bias – Taking a break in the opposite macro direction greatly reduces follow-through odds.
Skipping the Rift filter – Entering when the gate forms part of a divergence setup exposes you to higher reversal risk.
Chasing extended moves – If price is already far beyond the gate by the time you see it, risk/reward is poor; wait for the next setup or a retest.
🔷 Shift Rifts - Kio IQ Divergences
This chart shows an UpShift Rift — a bullish divergence where price action and momentum part ways, signaling a potential trend reversal or acceleration.
Setup:
Price Action: Price is marking lower lows, indicating short-term weakness.
FSO Reading: The Full Shift Oscillator (FSO) is marking higher lows over the same period, showing underlying momentum strengthening despite falling prices.
The rift between price and the FSO suggests selling pressure is losing force while buyers quietly regain control.
When confirmed by broader trend alignment in Kio IQ’s multi-timeframe momentum table, the UpShift Rift becomes a setup for a bullish move.
This chart shows a DownShift Rift — a bearish divergence where price action and momentum split, signaling a potential downside reversal.
Setup:
Price Action: Price is marking higher highs, suggesting continued strength on the surface.
FSO Reading: The Full Shift Oscillator (FSO) is marking lower highs over the same period, revealing weakening momentum beneath the price advance.
The rift between price and momentum signals that buying pressure is fading, even as price makes new highs. This disconnect often precedes a momentum shift in favor of sellers.
When aligned with multi-timeframe bearish signals in Kio IQ’s momentum table, the DownShift Rift becomes a strong setup for downside continuation or reversal.
🔷 Playbook Strategy: Rift Reversal
The Rift Reversal is a divergence-based reversal play that signals when momentum is fading and an trend reversal is likely. It’s designed to catch early turning points before the broader market catches on.
Trader’s Note:
This strategy is not intended for beginners — it requires confidence in reading divergence and trusting momentum shifts even when price action still appears weak. Best suited for traders experienced in managing reversals, as entries often occur before the broader market confirms the move.
🔹 UpRift Reversal
Core Setup:
Price Action – Forms a lower low.
Momentum Rift – The FSO forms a higher low, signaling bullish divergence and weakening selling pressure.
Trigger:
A confirmed UpRift Reversal signal is printed when:
Bullish Divergence is detected — price makes a new low, but the oscillator fails to confirm.
Momentum begins turning up from the divergence low (marked on chart as ⇝)
The image above shows a valid UpRift Reversal play.
🔹 DownRift Reversal
Core Setup:
Price Action – Forms a higher high.
Momentum Rift – The FSO forms a lower high, signaling bearish divergence and weakening buying pressure.
Trigger
A confirmed DownRift Reversal signal is printed when:
Bearish Divergence is detected — price makes a new high, but the oscillator fails to confirm.
Momentum begins turning down from the divergence high (marked on chart as ⇝).
Why It Works
Shift Rifts work because momentum often fades before a price reverses.
Price is the final scoreboard — it reflects what has already happened. Momentum, on the other hand, is a leading indicator of pressure. When the FSO begins to move in the opposite direction of price, it signals that the dominant side in the market is losing steam, even if the scoreboard hasn’t flipped yet.
In an UpShift Rift, sellers keep pushing price lower, but each push has less force — buyers are quietly building pressure under the surface.
In a DownShift Rift, buyers keep marking new highs, but they’re spending more effort for less result — sellers are starting to take control.
These disconnects happen because large participants often scale into or out of positions gradually, creating momentum shifts before price reflects it. Shift Rifts capture those turning points early.
Best Market Conditions:
Best in markets that have been trending strongly but are starting to show signs of exhaustion.
Works well after a prolonged move into key support/resistance, where large players may take profits or reverse positions.
Higher win potential when the Rift aligns with higher timeframe momentum bias in Kio IQ’s multi-timeframe table.
Common Mistakes
Forcing Rifts in choppy markets – In sideways chop, small oscillations can look like divergences but lack conviction.
Ignoring multi-timeframe bias – Trading an UpShift Rift when higher timeframes are strongly bearish (or vice versa) reduces follow-through odds.
Entering too early – Divergences can extend before reversing; wait for momentum to confirm a turn (⇝) before making a trading decision.
Confusing normal pullbacks with Rifts – Not every dip in momentum is a divergence; the Rift requires a clear and opposing trend between price and FSO.
🔷 Shift Count – Momentum Stage Tracker
Purpose:
Shift Count measures how far a bullish or bearish push has progressed, from its first spark to potential exhaustion.
It tracks momentum in defined steps so traders can instantly gauge whether a move is just starting, picking up steam, fully extended, or at risk of reversing.
How It Works
Bullish Momentum:
Start (1–2) → New momentum emerging, early entry window.
Acceleration (3–4) → Momentum in full swing, best for holding or adding to a position.
Extreme Bullish Momentum / Final Stages (5) → Watch for signs of reversal or take partial profits.
Exhaust – Can only occur after 5 is reached, signaling that the rally may be losing steam.
Bearish Momentum:
Start (-1 to -2) → New selling pressure emerging.
Acceleration (-3 to -4) → Bear trend accelerating.
Extreme Bearish Momentum / Final Stages (-5) → Watch for reversal or scale out.
Exhaust – Can only occur after -5 is reached, signaling that the sell-off may be running out of force.
The chart above shows a full 5-UpShift count.
The chart above shows a full 5-DownShift count.
Why It’s Useful
Markets often move in momentum “steps” before reversing or taking a breather.
Shift Count makes these steps visible, helping traders:
Spot the early stages of a potential move.
Identify when a move is picking up steam.
Identify when a move is mature and vulnerable to reversal.
Combine with other Kio IQ strategies for better-timed entries and exits.
Why This Works
It’s visually obvious where you are in the momentum cycle without overthinking.
You can build rules like:
Only enter in Start phase when higher timeframe agrees.
Manage positions aggressively once in Acceleration phase.
Be ready to exit or fade in Exhaust phase.
Best Market Conditions
Trending markets where pullbacks are shallow.
Works best when combined with Shift Sync Pullback or Gate Breaker triggers to confirm timing.
Higher timeframe direction confluence.
Common Mistakes
Treating Exhaust as always a reversal — sometimes strong markets push past 5/-5 multiple times.
Ignoring higher timeframe bias — a “Start” on a 1-minute chart against a strong daily trend is much riskier.
🔷 Playbook Strategy: Exhaust Flip
Core idea: When Shift Count reaches 5 (or -5) and then prints Exhaust, momentum has likely climaxed, whether temporarily or leading to a full reversal. We take the first qualified signal against the prior move.
Trader’s Note:
This strategy is not intended for beginners — it requires confidence in trusting momentum shifts even when price action still appears strong. Best suited for traders experienced in managing reversals, as entries often occur before the broader market confirms the move.
🔹 UpExhaust Flip (fade a bullish run)
Setup:
Shift Count hits 5, then an Exhaust print occurs.
Invalidation
The local high is broken to the upside.
The chart above explains the UpExhaust Flip strategy in greater detail.
🔹 DownExhaust Flip (fade a bearish run)
Setup:
Shift Count hits -5, then an Exhaust print occurs.
Invalidation
The local low is broken to the downside.
The chart above explains the DownExhaust Flip strategy in greater detail.
Bonus Confluence (optional, not required)
Rift assist: An UpShift Rift (for longs) or DownShift Rift (for shorts) near Exhaust strengthens the flip.
MaSO context: Neutral or opposite-leaning MaSO helps. Avoid flips straight against a strong MaSO bias unless you have a structure break.
Why It Works
Exhaust marks climax behavior: the prior side has pushed hard, then failed to extend after meeting significant pushback. Liquidity gets thin at the edges; aggressive profit-taking meets early contrarians. A small confirmation (micro structure break or HSO turn) is often enough to flip the tape for a snapback.
Best Market Conditions
After extended, one-sided runs (multiple Shift Count steps without meaningful pullbacks).
Near Shift Gates or obvious swing extremes where trapped orders cluster.
When higher-timeframe momentum is neutral or softening (you’re fading the last thrust of a decisive move, not a fresh trend).
Common Mistakes
Fading too early: Taking the trade at 5 without waiting for the Exhaust.
Fading freight trains: Fighting a fresh Shift Sync in the same direction right after Exhaust (often just a pause).
No structure reference: Entering without a clear micro swing to anchor risk.
🔷 MTF Shift Table
The MTF Shift Table table provides a compact, multi-timeframe view of market momentum shifts. Each cell represents the current shift count within a given timeframe, while the classification label indicates whether momentum is strong, weak, or normal.
The chart above further outlines the MTF Shift Table.
Why It Works
Markets rarely move in a perfectly linear fashion — momentum develops, stalls, and transitions at different speeds across different timeframes. This table allows you to:
See momentum alignment at a glance – If multiple higher and lower timeframes show a sustained shift count in the same direction, the move has greater structural support.
Spot divergences early – A shorter timeframe reversing against a longer-term sustained count can warn of potential pullbacks or trend exhaustion before price confirms.
Identify “momentum stacking” opportunities – When shift counts escalate across timeframes in sequence, it often signals a stronger and more durable move.
Avoid false enthusiasm – A single timeframe spike without agreement from other periods may be noise rather than genuine momentum.
The Trend Score provides a concise, at-a-glance evaluation of an asset’s directional strength across multiple timeframes. It distills complex momentum and Shift data into a single, easy-to-read metric, allowing traders to quickly determine whether the prevailing conditions favor bullish or bearish continuation. The Trend Scale scales from -100 to 100.
How to Use It in Practice
Trend Confirmation – Confirm that your intended trade direction is backed by multiple timeframes maintaining consistent momentum.
Risk Timing – Reduce position size or take partial profits when lower timeframes begin shifting against the dominant momentum classification.
Multi-timeframe Confluence – Combine with other system signals (e.g., FSO, HSO) for higher-probability entries.
This table effectively turns a complex multi-timeframe read into a single, glanceable heatmap of momentum structure, enabling quicker and more confident decision-making.
The MTF Shift Table is the confluence backbone of every playbook strategy for Kio IQ.
🔷 Momentum Meter
The Momentum Meter is a composite gauge built from three of Kio IQ’s core momentum engines:
HSO – Short-term momentum scout
FSO – Mid-term momentum backbone
MaSO – Macro trend context
By combining these three readings, the meter provides the most strict and lagging momentum classification in Kio IQ.
It only flips direction when a composite score of all three oscillators reach defined thresholds, filtering out short-lived counter-moves and false starts.
Why It Works
Many momentum tools flip too quickly — reacting to short-lived spikes that don’t represent real directional commitment. The Momentum Meter avoids this by requiring alignment across short, mid, and macro momentum engines before it shifts bias.
This triple-confirmation rule filters out noise, catching only those moments when traders of all speeds — scalpers, swing traders, and long-term participants — are leaning in the same direction. When that happens, price movement tends to be more sustained and less prone to immediate reversal.
In other words, the Momentum Meter doesn’t just tell you “momentum looks good” — it tells you momentum looks good to everyone who matters, across all horizons.
How It Works
Blue = All three engines align bullish.
Pink = All three engines align bearish.
The meter ignores smaller pullbacks or temporary oscillations that might flip the faster indicators — it waits for total alignment before changing state.
Because of this strict confirmation requirement, the Momentum Meter reacts slower but delivers higher-conviction shifts.
How to Interpret Readings
Blue (Bullish Alignment):
Sustained buying pressure across short, mid, and macro views. Often marks the “full confirmation” stage of a move.
Pink (Bearish Alignment):
Sustained selling pressure across all views. Confirms sellers are in control.
Practical Uses
Trend Followers – Use as a “stay-in” confirmation once a position is already open.
Swing Traders – Great for filtering out low-conviction setups; if the Momentum Meter disagrees with your intended direction, conditions aren’t fully aligned.
Confluence and Direction Filter – The Momentum Meter can be used as a form of confluence i.e. blue = longs only, pink = shorts only.
Limitations
Will always turn after the faster oscillators (HSO/MSO). This is intentional.
Works best in trending markets — in choppy conditions it may lag shifts significantly.
Should be used as a bias filter, not a standalone entry signal.
🔷 Trend Strength Meter
The Trend Strength Meter is a compact visual gauge that scores the current trend’s strength on a scale from -5 to +5:
+5 = Extremely strong bullish trend
0 = Neutral, no clear trend
-5 = Extremely strong bearish trend
This is an optional tool in Kio IQ — designed for quick reference rather than as a primary trading trigger.
Why it works
Single-indicator trend reads can be misleading — they might look strong on one metric while quietly weakening on another. The Trend Strength Meter solves this by blending multiple inputs (momentum alignment, structure persistence, and multi-timeframe data) into one composite score.
This matters because trend health isn’t just about direction — it’s about persistence. A +5 or -5 score means the market is not only trending but holding that trend with structural support across multiple timeframes.
By tracking both direction and staying power, the Trend Strength Meter flags when a move is at risk of fading before price action fully confirms it — giving you a head start on adjusting your position or taking profits.
How It Works
The Trend Strength Meter evaluates multiple market inputs — including momentum alignment, price structure, and persistence — to assign a numeric value representing how firmly the current move is holding.
The scoring logic:
Positive values indicate bullish conditions.
Negative values indicate bearish conditions.
Higher magnitude (closer to ±5) = stronger conviction in that direction.
Values near zero suggest the market is in a transition or range.
How to Interpret Readings
+4 to +5 (Strong Up) – Trend is well-established, often with multi-timeframe agreement.
+1 to +3 (Up) – Bullish bias present, but not at maximum conviction.
0 (Neutral) – No dominant trend; could be consolidation or pre-shift phase.
-1 to -3 (Down) – Bearish bias present but moderate.
-4 to -5 (Strong Down) – Trend is firmly bearish, with consistent downside momentum.
Why It Works
A single timeframe or momentum reading can give a false sense of trend health.
The Trend Strength Meter aggregates multiple layers of market data into one simplified score, making it easy to see whether a move has the underlying support to continue — or whether it’s more likely to stall.
Because the score considers both direction and persistence, it can flag when a move is losing strength even before price structure fully shifts.
🔷 Kio IQ – Supplemental Playbook Strategies
These phases are part of the Kio IQ Playbook—situational tools that can help you anticipate potential momentum changes.
While they can be useful for planning and tactical adjustments, they are not primary trade triggers and should be treated as early, lower-conviction cues.
🔹 1. Scouting Phase (Light Early Cue)
Purpose: Provide the earliest possible hint that momentum may be shifting.
Upshift Trigger: FSO crosses above the 0 line.
Downshift Trigger: FSO crosses below the 0 line.
Why It Works
The 0 line in the Full Shift Oscillator (FSO) acts as a neutral momentum boundary.
When the FSO moves above 0, it suggests that medium-term momentum has shifted to bullish territory.
When it moves below 0, it suggests that medium-term momentum has shifted to bearish territory.
This crossover is often the first measurable sign of a momentum reversal or acceleration, well before slower indicators confirm it.
Think of it as "momentum poking its head above water"—you’re spotting the change before it becomes obvious on price alone.
Best Use
Works best when confirmed later by Lookout Phase or other primary Kio IQ signals.
Ideal for scouting in anticipation of potential opportunities.
Helpful when monitoring multiple assets and you want a quick filter for shifts worth watching.
Can act as a trade trigger when the MTF Shift Table shows confluence (i.e., UpShift Scouting Signal + Bullish MTF Table + High Trend Strength Score).
Common Mistakes
Acting on Scouting Phase signals against the MTF Shift Table as a stand-alone trade trigger. Without higher timeframe alignment or additional confirmation, many Scouting Phase crossovers can fade quickly or reverse, leading to premature entries.
Ignoring market context
A bullish Scouting Phase in a strong downtrend can easily fail.
Always check higher timeframe trend alignment.
Overreacting to noise: On lower timeframes, small fluctuations can create false scouting signals.
Best Practices
Filter with trend: Only act on Scouting Phases that align with the dominant higher timeframe trend.
Watch volatility: In low-volatility conditions, false scouting triggers are more likely.
🔹 2. Lookout Phase (Early Momentum Alert)
Purpose:
The Lookout Phase signals an early alert that momentum is potentially strengthening in a given direction. It’s more meaningful than the Scouting Phase, but still considered a preliminary cue.
Triggers:
Upshift: FSO crosses above the HSO.
Downshift: FSO crosses below the HSO.
Why It Works:
The Lookout Phase is designed to identify moments when mid-term momentum (FSO) overtakes short-term momentum (HSO). Since the FSO is smoother and reacts more gradually, its crossover of the faster-reacting HSO can indicate a shift from short-lived fluctuations to a more sustained directional move.
This makes it a valuable early read on momentum transitions—especially when supported by higher-timeframe context.
Best Practices:
Always check the MTF Shift Table for higher-timeframe alignment before acting on a Lookout Phase signal.
Look for confluence with the Momentum Meter
Treat Lookout Phase entries as probing positions—small, exploratory trades that can be scaled into if follow-through develops.
Common Mistakes:
Treating Lookout Phase signals as a definitive trade trigger without context
Entering solely on a Lookout Phase crossover, without considering the MTF Shift Table or broader market structure, can result in chasing short-lived momentum bursts that fail to follow through.
Ignoring prevailing higher-timeframe momentum
Trading a Lookout Phase signal that is counter to the dominant trend or higher-timeframe bias increases the risk of whipsaws and false moves.
🔶 Summary
Kio IQ is an all-in-one trading indicator that combines momentum, trend strength, multi-timeframe analysis, divergences, pullbacks, and exhaustion alerts into a clear, structured view. It helps traders cut through market noise by showing whether a move is strong, weak, a trap, or simply part of a larger trend. With tools like the Full Shift Oscillator, Multi-Timeframe Shift Table, Shift Gates, and Rift Divergences, Kio IQ simplifies complex market behavior into easy-to-read signals. It’s designed to help traders spot early shifts, align with momentum, and recognize when trends are building or losing steam—all in one place.
VWAP For Loop [BackQuant]VWAP For Loop
What this tool does—in one sentence
A volume-weighted trend gauge that anchors VWAP to a calendar period (day/week/month/quarter/year) and then scores the persistence of that VWAP trend with a simple for-loop “breadth” count; the result is a clean, threshold-driven oscillator plus an optional VWAP overlay and alerts.
Plain-English overview
Instead of judging raw price alone, this indicator focuses on anchored VWAP —the market’s average price paid during your chosen institutional period. It then asks a simple question across a configurable set of lookback steps: “Is the current anchored VWAP higher than it was i bars ago—or lower?” Each “yes” adds +1, each “no” adds −1. Summing those answers creates a score that reflects how consistently the volume-weighted trend has been rising or falling. Extreme positive scores imply persistent, broad strength; deeply negative scores imply persistent weakness. Crossing predefined thresholds produces objective long/short events and color-coded context.
Under the hood
• Anchoring — VWAP using hlc3 × volume resets exactly when the selected period rolls:
Day → session change, Week → new week, Month → new month, Quarter/Year → calendar quarter/year.
• For-loop scoring — For lag steps i = , compare today’s VWAP to VWAP .
– If VWAP > VWAP , add +1.
– Else, add −1.
The final score ∈ , where N = (end − start + 1). With defaults (1→45), N = 45.
• Signal logic (stateful)
– Long when score > upper (e.g., > 40 with N = 45 → VWAP higher than ~89% of checked lags).
– Short on crossunder of lower (e.g., dropping below −10).
– A compact state variable ( out ) holds the current regime: +1 (long), −1 (short), otherwise unchanged. This “stickiness” avoids constant flipping between bars without sufficient evidence.
Why VWAP + a breadth score?
• VWAP aggregates both price and volume—where participants actually traded.
• The breadth-style count rewards consistency of the anchored trend, not one-off spikes.
• Thresholds give you binary structure when you need it (alerts, automation), without complex math.
What you’ll see on the chart
• Sub-pane oscillator — The for-loop score line, colored by regime (long/short/neutral).
• Main-pane VWAP (optional) — Even though the indicator runs off-chart, the anchored VWAP can be overlaid on price (toggle visibility and whether it inherits trend colors).
• Threshold guides — Horizontal lines for the long/short bands (toggle).
• Cosmetics — Optional candle painting and background shading by regime; adjustable line width and colors.
Input map (quick reference)
• VWAP Anchor Period — Day, Week, Month, Quarter, Year.
• Calculation Start/End — The for-loop lag window . With 1→45, you evaluate 45 comparisons.
• Long/Short Thresholds — Default upper=40, lower=−10 (asymmetric by design; see below).
• UI/Style — Show thresholds, paint candles, background color, line width, VWAP visibility and coloring, custom long/short colors.
Interpreting the score
• Near +N — Current anchored VWAP is above most historical VWAP checkpoints in the window → entrenched strength.
• Near −N — Current anchored VWAP is below most checkpoints → entrenched weakness.
• Between — Mixed, choppy, or transitioning regimes; use thresholds to avoid reacting to noise.
Why the asymmetric default thresholds?
• Long = score > upper (40) — Demands unusually broad upside persistence before declaring “long regime.”
• Short = crossunder lower (−10) — Triggers only on downward momentum events (a fresh breach), not merely being below −10. This combination tends to:
– Capture sustained uptrends only when they’re very strong.
– Flag downside turns as they occur, rather than waiting for an extreme negative breadth.
Tuning guide
Choose an anchor that matches your horizon
– Intraday scalps : Day anchor on intraday charts.
– Swing/position : Month or Quarter anchor on 1h/4h/D charts to capture institutional cycles.
Pick the for-loop window
– Larger N (bigger end) = stronger evidence requirement, smoother oscillator.
– Smaller N = faster, more reactive score.
Set achievable thresholds
– Ensure upper ≤ N and lower ≥ −N ; if N=30, an upper of 40 can never trigger.
– Symmetric setups (e.g., +20/−20) are fine if you want balanced behavior.
Match visuals to intent
– Enabling VWAP coloring lets you see regime directly on price.
– Background shading is useful for discretionary reading; turn it off for cleaner automation displays.
Playbook examples
• Trend confirmation with disciplined entries — On Month anchor, N=45, upper=38–42: when the long regime engages, use pullbacks toward anchored VWAP on the main pane for entries, with stops just beyond VWAP or a recent swing.
• Downside transition detection — Keep lower around −8…−12 and watch for crossunders; combine with price losing anchored VWAP to validate risk-off.
• Intraday bias filter — Day anchor on a 5–15m chart, N=20–30, upper ~ 16–20, lower ~ −6…−10. Only take longs while score is positive and above a midline you define (e.g., 0), and shorts only after a genuine crossunder.
Behavior around resets (important)
Anchored VWAP is hard-reset each period. Immediately after a reset, the series can be young and comparisons to pre-reset values may span two periods. If you prefer within-period evaluation only, choose end small enough not to bridge typical period length on your timeframe, or accept that the breadth test intentionally spans regimes.
Alerts included
• VWAP FL Long — Fires when the long condition is true (score > upper and not in short).
• VWAP FL Short — Fires on crossunder of the lower threshold (event-driven).
Messages include {{ticker}} and {{interval}} placeholders for routing.
Strengths
• Simple, transparent math — Easy to reason about and validate.
• Volume-aware by construction — Decisions reference VWAP, not just price.
• Robust to single-bar noise — Needs many lags to agree before flipping state (by design, via thresholds and the stateful output).
Limitations & cautions
• Threshold feasibility — If N < upper or |lower| > N, signals will never trigger; always cross-check N.
• Path dependence — The state variable persists until a new event; if you want frequent re-evaluation, lower thresholds or reduce N.
• Regime changes — Calendar resets can produce early ambiguity; expect a few bars for the breadth to mature.
• VWAP sensitivity to volume spikes — Large prints can tilt VWAP abruptly; that behavior is intentional in VWAP-based logic.
Suggested starting profiles
• Intraday trend bias : Anchor=Day, N=25 (1→25), upper=18–20, lower=−8, paint candles ON.
• Swing bias : Anchor=Month, N=45 (1→45), upper=38–42, lower=−10, VWAP coloring ON, background OFF.
• Balanced reactivity : Anchor=Week, N=30 (1→30), upper=20–22, lower=−10…−12, symmetric if desired.
Implementation notes
• The indicator runs in a separate pane (oscillator), but VWAP itself is drawn on price using forced overlay so you can see interactions (touches, reclaim/loss).
• HLC3 is used for VWAP price; that’s a common choice to dampen wick noise while still reflecting intrabar range.
• For-loop cap is kept modest (≤50) for performance and clarity.
How to use this responsibly
Treat the oscillator as a bias and persistence meter . Combine it with your entry framework (structure breaks, liquidity zones, higher-timeframe context) and risk controls. The design emphasizes clarity over complexity—its edge is in how strictly it demands agreement before declaring a regime, not in predicting specific turns.
Summary
VWAP For Loop distills the question “How broadly is the anchored, volume-weighted trend advancing or retreating?” into a single, thresholded score you can read at a glance, alert on, and color through your chart. With careful anchoring and thresholds sized to your window length, it becomes a pragmatic bias filter for both systematic and discretionary workflows.
Daily Seasonality Strength + Prediction TableDaily Seasonality Strength + Prediction Table
Return Estimates:
This indicator uses historical price data to calculate average returns for each day (of the week or month) and uses these to predict the next day’s return.
Seasonality Strength:
It measures seasonality strength by comparing predicted returns with actual returns, using the inverse of MSE (higher values mean stronger seasonality).
supports up to 10 assets
This script is for informational and educational purposes only. It does not constitute financial, investment, or trading advice. I am not a financial advisor. Any decisions you make based on this indicator are your own responsibility. Always do your own research and consult with a qualified financial professional before making any investment decisions.
Past performance is no guarantee of future results. The value of the instruments may fluctuate and is not guaranteed
Volume Profile Grid [Alpha Extract]A sophisticated volume distribution analysis system that transforms market activity into institutional-grade visual profiles, revealing hidden support/resistance zones and market participant behavior. Utilizing advanced price level segmentation, bullish/bearish volume separation, and dynamic range analysis, the Volume Profile Grid delivers comprehensive market structure insights with Point of Control (POC) identification, Value Area boundaries, and volume delta analysis. The system features intelligent visualization modes, real-time sentiment analysis, and flexible range selection to provide traders with clear, actionable volume-based market context.
🔶 Dynamic Range Analysis Engine
Implements dual-mode range selection with visible chart analysis and fixed period lookback, automatically adjusting to current market view or analyzing specified historical periods. The system intelligently calculates optimal bar counts while maintaining performance through configurable maximum limits, ensuring responsive profile generation across all timeframes with institutional-grade precision.
// Dynamic period calculation with intelligent caching
get_analysis_period() =>
if i_use_visible_range
chart_start_time = chart.left_visible_bar_time
current_time = last_bar_time
time_span = current_time - chart_start_time
tf_seconds = timeframe.in_seconds()
estimated_bars = time_span / (tf_seconds * 1000)
range_bars = math.floor(estimated_bars)
final_bars = math.min(range_bars, i_max_visible_bars)
math.max(final_bars, 50) // Minimum threshold
else
math.max(i_periods, 50)
🔶 Advanced Bull/Bear Volume Separation
Employs sophisticated candle classification algorithms to separate bullish and bearish volume at each price level, with weighted distribution based on bar intersection ratios. The system analyzes open/close relationships to determine volume direction, applying proportional allocation for doji patterns and ensuring accurate representation of buying versus selling pressure across the entire price spectrum.
🔶 Multi-Mode Volume Visualization
Features three distinct display modes for bull/bear volume representation: Split mode creates mirrored profiles from a central axis, Side by Side mode displays sequential bull/bear segments, and Stacked mode separates volumes vertically. Each mode offers unique insights into market participant behavior with customizable width, thickness, and color parameters for optimal visual clarity.
// Bull/Bear volume calculation with weighted distribution
for bar_offset = 0 to actual_periods - 1
bar_high = high
bar_low = low
bar_volume = volume
// Calculate intersection weight
weight = math.min(bar_high, next_level) - math.max(bar_low, current_level)
weight := weight / (bar_high - bar_low)
weighted_volume = bar_volume * weight
// Classify volume direction
if bar_close > bar_open
level_bull_volume += weighted_volume
else if bar_close < bar_open
level_bear_volume += weighted_volume
else // Doji handling
level_bull_volume += weighted_volume * 0.5
level_bear_volume += weighted_volume * 0.5
🔶 Point of Control & Value Area Detection
Implements institutional-standard POC identification by locating the price level with maximum volume accumulation, providing critical support/resistance zones. The Value Area calculation uses sophisticated sorting algorithms to identify the price range containing 70% of trading volume, revealing the market's accepted value zone where institutional participants concentrate their activity.
🔶 Volume Delta Analysis System
Incorporates real-time volume delta calculation with configurable dominance thresholds to identify significant bull/bear imbalances. The system visually highlights price levels where buying or selling pressure exceeds threshold percentages, providing immediate insight into directional volume flow and potential reversal zones through color-coded delta indicators.
// Value Area calculation using 70% volume accumulation
total_volume_sum = array.sum(total_volumes)
target_volume = total_volume_sum * 0.70
// Sort volumes to find highest activity zones
for i = 0 to array.size(sorted_volumes) - 2
for j = i + 1 to array.size(sorted_volumes) - 1
if array.get(sorted_volumes, j) > array.get(sorted_volumes, i)
// Swap and track indices for value area boundaries
// Accumulate until 70% threshold reached
for i = 0 to array.size(sorted_indices) - 1
accumulated_volume += vol
array.push(va_levels, array.get(volume_levels, idx))
if accumulated_volume >= target_volume
break
❓How It Works
🔶 Weighted Volume Distribution
Implements proportional volume allocation based on the percentage of each bar that intersects with price levels. When a bar spans multiple levels, volume is distributed proportionally based on the intersection ratio, ensuring precise representation of trading activity across the entire price spectrum without double-counting or volume loss.
🔶 Real-Time Profile Generation
Profiles regenerate on each bar close when in visible range mode, automatically adapting to chart zoom and scroll actions. The system maintains optimal performance through intelligent caching mechanisms and selective line updates, ensuring smooth operation even with maximum resolution settings and extended analysis periods.
🔶 Market Sentiment Analysis
Features comprehensive volume analysis table displaying total volume metrics, bullish/bearish percentages, and overall market sentiment classification. The system calculates volume dominance ratios in real-time, providing immediate insight into whether buyers or sellers control the current price structure with percentage-based sentiment thresholds.
🔶 Visual Profile Mapping
Provides multi-layered visual feedback through colored volume bars, POC line highlighting, Value Area boundaries, and optional delta indicators. The system supports profile mirroring for alternative perspectives, line extension for future reference, and customizable label positioning with detailed price information at critical levels.
Why Choose Volume Profile Grid
The Volume Profile Grid represents the evolution of volume analysis tools, combining traditional volume profile concepts with modern visualization techniques and intelligent analysis algorithms. By integrating dynamic range selection, sophisticated bull/bear separation, and multi-mode visualization with POC/Value Area detection, it provides traders with institutional-quality market structure analysis that adapts to any trading style. The comprehensive delta analysis and sentiment monitoring system eliminates guesswork while the flexible visualization options ensure optimal clarity across all market conditions, making it an essential tool for traders seeking to understand true market dynamics through volume-based price discovery.