Trding R-Multiple Trade LogJournal your closed trades directly on the chart. Paste your trade history
(date · direction · entry · exit · stop) and the script plots wins as green
triangles, losses as blue triangles, each labeled with the R-multiple (+2.3R
· -1.0R). A summary card in the corner shows total trades, win rate, cumulative
R, average per trade, best and worst.
Built for traders who want to see their track record on the actual chart
instead of in a spreadsheet — makes patterns visible (winning setups cluster,
losses group around bad market states, sizing drifts on Fridays).
Works on any asset, any timeframe. Trade log format:
YYYY-MM-DD,LONG,150.25,155.50,149.00|YYYY-MM-DD,SHORT,158.00,153.00,160.50
Separate multiple trades with the pipe character. Up to 20 trades tracked.
Educational tool. Not financial advice. Not a signal generator.
By Trding_AI — see all our free planning tools + the paid Trding indicator
family at our publisher page. Indikator

Indikator

Tic Tac Toe Pro Autonomous AI Edition================================================================================
TRADINGVIEW PUBLICATION & USER GUIDE
TIC-TAC-TOE PRO • AUTONOMOUS AI EDITION (PINE SCRIPT v6)
================================================================================
--------------------------------------------------------------------------------
1. ARCHITECTURE & GAME ENGINE FLOWCHART
--------------------------------------------------------------------------------
|
v
|
v
|
v
+---------------------> <--------------------+
| (e.g., adds "5" to string) |
| | |
| v |
| |
| | |
| (Is move valid/open?) |
| / \ |
| (No) (Yes) |
| | | |
| v |
| | |
| | | |
| | v |
| | |
| | / \ |
| | (Win/Draw) (Ongoing) |
| | | | |
| | v v |
| | |
| | - Immediate Win? |
| | - Immediate Block? |
| | - Create Fork? |
| | - Corner/Center? |
| | | |
| | v |
| | |
| | | |
| | v |
| | |
| | / \ |
| | (Win) (Ongoing)
| | | | |
| | v | |
| | | |
| | | |
| +-------------------------------+ |
| | |
+----------------------------------------------+-------------------+
--------------------------------------------------------------------------------
2. STEP-BY-STEP PUBLISHING INSTRUCTIONS
--------------------------------------------------------------------------------
STEP 1: ADD SCRIPT TO YOUR CHART
1. Open any chart on TradingView.
2. Click the "Pine Editor" tab at the bottom of the screen.
3. Paste the entire script code into the editor.
4. Click "Save" and enter a name (e.g., "TicTacAI_v6").
5. Click "Add to Chart". Verify the 3x3 table renders on your chart pane with zero errors.
STEP 2: PREPARE DEFAULT THUMBNAIL SNAPSHOT
1. Double-click the table to open the indicator "Settings".
2. Confirm the "Game Moves History" field is empty ("").
3. Set "Order of Play" to "Human (X) • First".
4. Set "AI Engine Intelligence" to "Grandmaster (Unbeatable)".
5. Pick your favorite visual theme (e.g., "Cyber Neon").
6. Click "OK". Keep the chart layout clean and readable; TradingView captures a snapshot of this active pane as your publication thumbnail.
STEP 3: LAUNCH PUBLISHING MODAL
1. Click the blue "Publish Script" button located at the top-right of the Pine Editor.
2. Choose "Publish New Script".
STEP 4: FILL PUBLICATION METADATA
1. Title: Tic-Tac-Toe Pro • Autonomous AI Edition
2. Visibility: Select "Open Source" and "Public" (complies with Mozilla Public License 2.0).
3. Category: Select "Utilities" or "Other".
4. Tags: game, ai, tictactoe, table, utility, v6
STEP 5: PUBLISH
1. Copy the description template in Section 4 below and paste it into the description box.
2. Click the "Publish Script" button at the bottom right.
--------------------------------------------------------------------------------
3. HOW TO PLAY AGAINST THE AI ENGINE
--------------------------------------------------------------------------------
BOARD REFERENCE MAP:
1 | 2 | 3
---+---+---
4 | 5 | 6
---+---+---
7 | 8 | 9
1. STARTING A GAME:
Double-click the table on the chart to open Settings. Ensure the "Game Moves History" field is completely blank.
2. MAKING YOUR FIRST MOVE:
Type your selected cell number (1 to 9) into "Game Moves History" (e.g., 5) and click OK.
3. AI COUNTER-ATTACK:
The engine places your mark, scans the board tree, picks its optimal counter-move, places its mark, highlights the cell, and displays its action in the status bar.
4. NEXT TURNS:
Look at the bottom footer status bar. It shows the suggested string to copy/append (e.g., ). Re-open Settings, append the next number to the history line, and click OK.
5. RESETTING:
Whenever you want a new match, simply delete all text in "Game Moves History" and click OK.
--------------------------------------------------------------------------------
4. COPY-AND-PASTE TRADINGVIEW SCRIPT DESCRIPTION
--------------------------------------------------------------------------------
### Overview
Tic-Tac-Toe Pro • Autonomous AI Edition brings a fully interactive, algorithmic board game directly into your TradingView chart pane. Built entirely with native Pine Script v6 arrays, tables, and procedural decision trees, it runs an automated opponent engine that calculates tactical counter-moves in real time.
### The 3x3 Coordinate Map Indikator

Hurst Exponent Regime [RC Tools]RC Tools — Hurst Exponent Regime
────────────────────────────────────────────────────────────────────
█ OVERVIEW
Most regime tools ask "is price trending right now." This one asks a more fundamental question: does this market's statistical character currently reward trend-following or mean-reversion? It applies the Hurst Exponent — a statistic originally developed to study Nile river flood records — via rescaled-range analysis, to classify the market into one of three long-memory regimes.
█ WHAT IT DOES
Estimates the Hurst Exponent (H) over a rolling window and classifies each confirmed bar as Trending (persistent), Mean-Reverting (anti-persistent), or Random Walk (no memory). Colours the chart background accordingly, plots both the smoothed and raw H line in a dedicated pane against static threshold lines and the 0.5 "true random walk" reference, and shows a table with the current state, how long price has been in it, and historical base rates (average forward return and win rate) for each state.
█ THE THEORY BEHIND IT
H.E. Hurst developed this statistic in the 1950s while studying how to size reservoirs for the Nile, where flood years tended to cluster rather than arrive randomly — a property he needed to measure and design around. The same statistic applies to any time series: it measures whether large values tend to be followed by more large values of the same sign (persistence, H > 0.5), whether they tend to reverse (anti-persistence, H < 0.5), or whether the series has no memory at all (H = 0.5, a true random walk).
Applied to price, this is a genuinely different question from "is this asset trending." A trend-following indicator can flag a trend within a market whose underlying character is actually mean-reverting — in which case that trend is more likely to be a temporary deviation that reverses. Knowing which regime you're in tells you which family of tools (trend-following vs. mean-reversion) is statistically better suited to current conditions, independent of what any single trend or oscillator reading says right now.
█ HOW IT IS CALCULATED
1. Take log returns over the window.
2. Build the cumulative deviation-from-mean series within the window, in chronological order, and take its range (maximum minus minimum) — this is R.
3. Compute S, the window's standard deviation of returns.
4. Apply Hurst's classic empirical relation: R/S is approximately equal to (window length / 2) raised to the power H. Rearranging gives H = ln(R/S) / ln(window length / 2).
5. Optionally smooth H (the raw rescaled-range estimate is noisy bar-to-bar by construction).
6. Classify: H above the Trending threshold (default 0.55) → Trending. H below the Mean-Reverting threshold (default 0.45) → Mean-Reverting. Otherwise → Random Walk.
Classification occurs ONLY on confirmed bar close — the plotted H, the background colour and the table all update together, so nothing here can disagree mid-bar or flip back and forth as the current bar forms.
Note: this is a single-scale rescaled-range estimate using Hurst's classic empirical formula, not a full multi-scale regression across many window sizes. It is a practical, computationally efficient approximation, not a research-grade estimator — treat it as a useful compass, not a precise measurement.
█ SETTINGS & CONFIGURATION
• Source (default close)
• Window Length (default 100) — longer windows give a more stable estimate but react slower to a genuine regime change
• Trending / Mean-Reverting Thresholds (default 0.55 / 0.45) — the H values beyond which a regime is declared; the gap between them is the "Random Walk" zone
• Smoothing Length and Type (default 5-period EMA) — reduces the raw estimate's bar-to-bar noise
• Forward Return Window (default 20 bars) — the horizon used for the base-rate table
• Table visibility, position and colours are fully configurable; the main-chart background painting can be toggled off if you only want the statistics pane
█ HOW TO USE IT
Use it to decide which family of tools to trust right now, not as a standalone entry signal. Example: if you run a mean-reversion system, check whether it has historically performed better when this tool reads Mean-Reverting than when it reads Trending; a trend-following system should show the opposite pattern. Check the base-rate table's sample count before treating any single state as meaningfully predictive.
Works on any asset and timeframe with sufficient history for the Window Length. Best used on daily and above, where regime persistence is greatest and the R/S window has enough independent observations to be meaningful.
█ LIMITATIONS
• This is a SINGLE-SCALE rescaled-range estimate, not a full multi-scale regression across many window sizes — a practical approximation, not a research-grade estimator.
• H describes the market's statistical character over the window — it does NOT identify direction. A "Trending" reading means persistence is likely, not which way.
• The R/S statistic assumes no major structural breaks within the window; a sudden regime shift partway through the window can distort the estimate until it fully rolls off.
• Shorter windows react faster but produce noisier, less reliable H estimates; longer windows are more stable but slower to reflect a genuine regime change.
• Historical base-rate stats need a meaningful sample count (check N) before being trusted, especially for the less common states.
• This script does NOT repaint. All classification updates on confirmed bar close only.
█ DISCLAIMER
For educational and informational purposes only. Nothing here is financial advice. Past behaviour of any regime state does not indicate future results. Trade at your own risk.
Indikator

VIX Term StructureVIX at 14 does not tell you whether volatility is cheap. The curve does.
A single VIX print is one number on one horizon. What actually tells you something is the shape across horizons: whether the market is asking more for protection next week than for protection in three months, or less. That shape is where the information is, and it is free public data that almost nobody puts on a chart.
This plots the four CBOE volatility indices as a curve you can read at a glance -- 9-day, 30-day, 3-month and 6-month -- and reduces it to the one ratio that matters, 30-day over 3-month.
Below 1, the curve is in contango. Near-dated volatility is cheaper than deferred, which is the normal state and roughly two thirds of all trading days. The lower the ratio, the steeper the curve, and the calmer the market thinks the next month will be relative to the next quarter.
Above 1, the curve is inverted, or in backwardation. Near-dated volatility is bid over deferred, which means the market is paying up for protection it needs soon rather than eventually. That is a stress reading and it does not persist for long.
The dashboard shows each tenor, both ratios, and a plain verdict: STEEP CONTANGO, CONTANGO, or BACKWARDATION. The 9-day over 30-day ratio sits alongside it as the very front of the curve, which moves first and moves hardest.
What the shape is actually telling an option seller. A rich premium reading and a steep contango curve are the same market saying two things that agree: insurance is expensive relative to what has happened, and the market does not expect that to change soon. A rich premium reading against an inverted curve is a different animal. The premium is rich because something is coming, and selling into it is selling insurance to somebody who knows they need it. The IV-minus-RV gap looks identical in both cases. The curve is what separates them.
There is a trap on the other side too, and it is the more common one. The urge to sell premium is strongest when the tape is calm, and a calm tape is exactly what a steep contango curve looks like from the inside. Steep contango means the front is cheap, and cheap is the least you will ever be paid to take the risk. The moment selling feels safest is the moment it pays least.
Pairing. This answers a question my other two volatility scripts do not. Vol Premium Gauge answers whether you are paid, by comparing implied against realized. Expected Move Bands answers which strike, by drawing the one-standard-deviation range. Term structure answers whether the premium is there for a good reason or a bad one. Paid, why, where -- three different questions, three different reads.
Scope. Equity indices only. There is no term structure for crypto volatility, because DVOL publishes a single tenor rather than a curve, so unlike the other two this script does not auto-detect crypto. On a crypto chart the dashboard will read NO CURVE, which is honest rather than broken.
Alerts fire on the flip in each direction: into backwardation, and back into contango.
The thresholds are inputs, defaulting to 0.90 for steep and 1.00 for the inversion. The symbols are inputs too, so if CBOE changes a ticker the script keeps working.
Indikator

Indikator

Indikator

Volatility Supply and Demand ZonesMost supply and demand tools have the same two problems. They stack near-identical zones on top of each other until the chart is unreadable, and they leave dead zones projecting to the right edge forever, long after price has traded straight through them. This script is built to fix both.
Everything here is measured in ATR, so the same settings behave proportionately on a quiet instrument and a violent one.
HOW A ZONE IS BUILT
A confirmed pivot marks the edge of a zone. Its depth is a fraction of ATR(50):
buffer = ATR(50) * zone depth / 10
A sell zone takes the pivot high as its top and extends the buffer downwards. A buy zone takes the pivot low as its bottom and extends the buffer upwards. A dotted mid line marks the centre of each zone.
Zone depth 2.5 therefore spans a quarter of one ATR. The zone is anchored to the bar the pivot actually formed on, not the bar that confirmed it.
WHY ZONES DO NOT PILE UP
This is the part that changes how the chart reads.
Before a zone is drawn, its midpoint is measured against the midpoint of every live zone on the same side. If it falls inside a separation band of a chosen ATR multiple, it is refused and nothing is drawn.
The effect is most obvious during consolidation, which is exactly where an unfiltered supply and demand indicator produces a dozen overlapping bands that all mean the same thing.
One detail matters here: a zone that has already been broken is removed from the live set, so it can never block a fresh zone that forms in the same price area later. Zones filter each other only while they are still alive.
WHAT HAPPENS WHEN A ZONE IS BROKEN
A sell zone is broken by a close above its top, a buy zone by a close below its bottom. There is a switch for wick-based breaks, which retires zones far more aggressively.
Three behaviours are available:
- Remove deletes the zone outright. Cleanest chart.
- Freeze at the break stops it extending, so it stays as history at the bar it died.
- Leave it running keeps it projecting forever, for anyone who wants the old behaviour.
Frozen zones are capped by the same memory setting, so they cannot accumulate without limit.
MARKET STRUCTURE
A second, stricter detector runs alongside the zones.
A swing is only accepted when price staircased into it and staircased back out of it. Every bar approaching the swing must be higher than the one before, and every bar leaving it lower, with the swing bar itself the extreme of its own window. This is deliberately narrower than a plain pivot and it produces fewer, cleaner levels.
Strict staircase can be turned off. In tolerant mode an equal high or low no longer rejects a swing; only a bar moving the wrong way does. On instruments that print repeated highs this finds noticeably more structure, and the difference is worth measuring on your own symbol.
When a close takes a swing level out, the level is spent and cannot fire again. The break is classified against the standing phase:
- shift, when the break reverses the phase, or when it is the first break on the chart and there is no phase to continue
- cont, when the break extends the phase already in force
The tag sits midway along the line back to the level it took out, so it reads as a label for the whole move rather than an annotation on one bar.
SUPPORT AND RESISTANCE RAYS
Optional and off by default. After a structure break, a backward scan finds the extreme reached between the swing and the break, then projects it forward until a close takes it out.
It is off by default because it runs a scan on every break. The scan limit is adjustable and bounds the work done on a single bar.
SETTINGS THAT MATTER MOST
- Pivot length decides how much structure becomes a zone. Shorter reacts faster and draws more.
- Zone depth sets thickness only. It does not change where zones appear.
- Separation is the single most effective control over chart density.
- Structure span controls the swing detector independently of the zones.
NOTES FOR ANYONE READING THE CODE
Two things in here are easy to get wrong, and both are commented in the source.
ta.highest and ta.lowest carry rolling state and must be evaluated on every bar. Placed behind an and operator they get short-circuited away whenever an earlier condition fails, their window is then built from a sparse history, and the comparison silently stops matching. They are hoisted to the global scope for that reason.
The retirement pass walks its array backwards. Removing entries during a forward pass makes the loop skip the element that slides into the vacated index. Counted loops are also guarded against an empty array, because a Pine for loop from 0 to size minus one counts downwards when the array is empty and reads index minus one.
LIMITATIONS
- A pivot is only confirmed a number of bars after it forms. That delay is inherent to pivot detection and no indicator can remove it, here or anywhere else.
- Zone edges are drawn where the pivot was, so a zone appears on the chart later than the bar it is anchored to.
- In a tight range the separation filter will refuse most new zones by design. That is the intent, but it does mean the chart can look sparse exactly when price is busiest.
- The structure detector is strict by default and will miss swings on instruments that print equal highs and lows. Turn strict staircase off if that matters on your symbol.
- Nothing here predicts direction. It marks where price previously turned and whether those levels are still intact.
- Nothing here is financial advice. Position sizing and risk management remain your own responsibility.
This is original work. It reuses no code from any other publication. The source is open, so read it, change it, and take it further.
Indikator

LDO-PVSRA-Vol [1.2]Volume bars coloured by PVSRA classification instead of plain up/down, so a
volume spike tells you its direction and its size at a glance.
── Reading it ──
Bright green / bright cyan — 200% "climax" volume. The big ones.
Mid green / blue — 150% "rising" volume. Above average, worth noting.
Faded — normal volume. Deliberately recessed so it sits
in the background and the vector bars pop.
Green is a bar that closed up, blue/cyan a bar that closed down. Brightness is
the size of the volume, hue is the direction. (Averages are taken from the ten
candles BEFORE the current one, which is the standard PVSRA calculation.)
── Changing the colours ──
All colour settings are in the INPUTS tab, not the Style tab. TradingView's
Style tab cannot recolour this plot and its picker there will appear to do
nothing — use Inputs.
There are three colour groups, each with an Up and a Down picker:
"200% volume — climax" the bright pair
"150% volume — rising" the mid pair
"Normal volume — faded" the background pair
Normal volume also has two extras:
Colour mode — "By direction" keeps the green/blue split. "Single colour"
paints every normal bar the same neutral shade, so the pane
reads as spike-vs-background rather than up-vs-down. Useful if
your candles already show you direction.
Fade % — how recessed normal volume looks. 0 is solid, 65 is the
default, higher pushes it further back.
Match these to whatever candle colouring you already run and the two panes will
agree by eye as well as by logic.
── Using Binance volume ──
"Use volume of the equivalent BINANCE PERP chart" is ON by default, and on
crypto symbols it pulls volume from the matching Binance perpetual rather than
whatever exchange your chart is on. That is where the volume actually trades,
so the classification is far more meaningful than volume from a thin venue.
The feed it settled on is printed in the small label at the bottom right of the
pane. If the perpetual does not exist it quietly falls back to your chart's own
volume — and that label will say so, so you always know what you are looking at.
Want a specific feed instead? Tick "Force override symbol" and type it in. On
non-crypto symbols the setting does nothing and your chart volume is used.
── Setting alerts ──
Two alerts are built in:
"Vector volume (150% or 200%)" — any above-average bar
"Climax volume (200%)" — the big ones only
To set one: click the alert clock (or right-click the chart, Add alert), set
Condition to LDO-PVSRA-Vol, then pick one of the two from the dropdown
underneath. Set the trigger to "Once per bar close" unless you want to be
pinged mid-candle by a spike that fades before the bar finishes.
Alerts fire off the same volume feed the bars are drawn from, so a Binance-perp
alert on a non-Binance chart works as you would expect.
── The rest of the settings ──
Thresholds — the 2.0x and 1.5x multipliers. The defaults are the standard
PVSRA values; raise them for fewer, more selective bars.
Volume MA — optional average line over the histogram, off by default.
Price pane — optionally colour your candles with the same classification.
Leave it off if you already run a PVSRA candle script.
Version label — the small bottom-right box. Turn it off if it is in your way.
── Credits ──
Derived from the open-source PVSRA volume work of infernix and peshocore,
under the Mozilla Public License 2.0. Independent derivative; not affiliated
with, and not named in reference to, Traders Reality or Pattern Watchers. Indikator

Adaptive ATR% Extension ScannerIdentifying when a stock is historically overextended and due for a mean-reverting pullback is a critical component of risk management and scaling out of swing trades. The Adaptive ATR% Extension Scanner provides an objective, mathematical way to measure these extensions based entirely on a stock's unique historical volatility profile.
Rather than relying on static guesses for when a stock is "too far" from its moving average, this tool actively reads the chart's history to tell you exactly when current price action has reached an statistical extreme.
Key Features:
Dynamic Percentile Lookback: The indicator automatically scans the last 20 swing highs (pullbacks) for the specific ticker you are viewing. It calculates the exact ATR% multiple at each peak to establish a unique historical baseline for what constitutes an "extended" move.
Dual-Tier Signals: The script calculates the 75th percentile (Warning) and 90th percentile (Extreme) of past pullbacks. It plots highly customizable signals directly on your chart when the current price breaches these historically significant thresholds.
Multi-MA Variance Scanner: Not every stock respects the same baseline. The built-in dashboard tracks the 10 EMA, 20 EMA, 50 SMA, and 200 SMA simultaneously. It calculates the historical variance for each to determine which moving average produces the most tightly clustered, predictable extensions.
Auto-Best Fit: The script can automatically select the moving average with the lowest historical variance to drive your chart visuals and trigger your signals, completely removing the guesswork.
Customizable Price Bands: Toggle upper price bands on or off to project exactly what dollar amount the stock needs to hit to reach an overextended state, allowing you to easily set advance limit orders.
How to Use:
Leave the MA setting on "Auto (Best Fit)" to let the script find the most predictable baseline for the current ticker. Watch for the warning dots (yellow by default) as a signal to scale out partial positions, and extreme dots (red by default) as a signal to tighten trailing stops aggressively. Full customization options allow you to change dot colors, emojis/characters, opacity, and dashboard visuals to fit your exact charting style. Indikator

Run-Length Base Rate Gauge [BSL]Five closes up in a row. Is five a lot?
The usual answer is an adjective: extended, stretched, due. Run-Length Base
Rate Gauge answers with a count instead:
RUN OF 5 OR LONGER · n=41 BEFORE THIS ONE · 19/41 EXTENDED · 46.3%
Forty-one runs on this chart reached five before this one. Nineteen of them
went to six. That is the whole product: two lines, one table, no direction and
no signal.
THE RUN IN FRONT OF YOU IS NOT IN THE 41
This is the part that makes the number worth reading, so it is worth being
precise about.
The denominator counts runs that have ALREADY STOPPED. The run currently
underway is held as PENDING and counted nowhere: not as a success it has not
earned, and not as a failure that has not happened. It has not yet had the
chance to end.
The alternative is more tempting than it looks, and worse than it looks. A run
of eight in progress has already been a run of one, two, three, and so on up
to eight. Credit it to all eight denominators and you have added one
observation to rows whose totals differ enormously: a row with 400 prior runs
barely moves, while a row with 3 lurches. The output looks exactly like a real
effect of run length, long runs behaving differently from short ones, and it
is entirely an artefact of counting an unfinished thing.
No row would be looking into the future. The defect would live in the
comparison between rows, which is where the usual checks do not look.
The fix here is stronger than adjusting for it. A run enters the counters only
on the bar it STOPS on, so every length it passed through resolves at the same
instant. The delay is one bar, and it is one bar for every run length in the
table, so all sixty rows share a single cutoff by construction rather than by
correction.
WHEN THE PERCENTAGE DISAPPEARS
Below ten prior runs there is no percentage. The bare fraction is shown
instead, with a note that the rate is being held back.
The panel goes further: its transparency is a step function of the sample
size. A rate resting on four runs is drawn faintly. A rate resting on four
hundred is drawn solid. You cannot read the number without also reading how
much is behind it, and no percentage ever appears without the count it came
from.
THE EDGES, AND WHAT HAPPENS AT THEM
A run longer than sixty bars is read at row sixty, and the panel says so
rather than clipping in silence.
An unchanged close ends a run and starts none. The headline reads NO RUN.
While the bar is still open the headline is prefixed FORMING and drawn
faintly. A table cell in Pine cannot have a dashed border, so an unconfirmed
reading is marked with transparency and a word, and the word is doing real
work, not decorating.
TWO NUMBERS THAT LOOK ALIKE AND ARE NOT
The panel always reports the rate at the run length in front of you. That
length changes bar to bar, which is right for something you read.
The value published for other scripts uses a FIXED threshold you set once.
That is right for something that gets measured, and the two are deliberately
kept apart: a series whose definition moved with the live run length would not
be one event, and anything measuring it would be measuring a different
population on every bar.
THE TWO SETTINGS
- Exported threshold: 5 bars in a row
- Panel position: Bottom center
Pick any of six positions. The gauge starts at the bottom center, the one strip
the platform is not already using for the legend, the trading buttons, its own
logo or the price scale.
A RUN OF AVERAGES IS NOT A RUN
A run of Heikin Ashi closes is a run of averages, and a base rate taken over
it describes the averaging rather than the market. Renko, Kagi, Point & Figure
and Range have the same problem for their own reasons.
On those chart types the gauge freezes and publishes nothing.
THE ONE PUBLISHED VALUE
One value is published for other indicators to pick up in their Source
setting: the outcome of the fixed-threshold trial. Before a trial resolves it
carries no value at all, which is not the same as a trial that resolved as
zero.
Two alert conditions share that dropdown and are not values. The gauge draws
nothing else, so there is nothing else to connect to.
WHAT THE GAUGE REFUSES TO PRINT
No verdict. Not "unusual", not "overextended", not "due for a reversal".
No percentage below ten prior runs. No count that includes the run in
progress. No confidence interval, no significance test, no p-value. The sample
size is printed and you weigh it yourself.
No colour coding by outcome. The headline is green on an up run and red on a
down run because that is the run's DIRECTION, and for no other reason; the
strip below it is one neutral colour whose transparency carries the sample
size.
WHAT IT WILL NOT TELL YOU
It measures one thing at a horizon of one bar: whether the next bar closed the
same way. It has no forward return at longer horizons, no excursion figures,
no regime splits and no cost sensitivity. Those belong to Signal Audit Lab
, and this gauge is a producer feeding into it.
It does not report a mean or expected run length, and it draws no
distribution. It contains no entry, exit, stop or position size, and it
asserts no direction: a run of eight is reported as a run of eight.
This tool reports historical base rates with their denominators. It does not
predict price, guarantee performance or provide trading advice. Validate the
behaviour on your own symbols, timeframes and execution assumptions before
making decisions.
Open-source Pine Script® v6. Educational use only. Indikator

Edo Swing StateEdo Swing State — Labels Every Swing as HH, HL, LH or LL and Resolves Market Structure into a Single State
Market structure is the skeleton beneath almost every method of technical analysis: an uptrend is a run of higher highs and higher lows, a downtrend a run of lower highs and lower lows, and the moment that sequence breaks is the moment a trend starts to change. Edo Swing State makes that skeleton explicit. It detects each price swing, labels it with its structural role — higher high (HH), higher low (HL), lower high (LH) or lower low (LL) — and combines the last high and last low into one readable market state.
It draws a swing line that connects the confirmed pivots, marks each swing with a coloured HH/HL/LH/LL label, and reads the whole into Bullish, Bearish or Ranging in a compact panel — all validated on closed bars so the indicator does not repaint. It is a self-contained structure reader: the swings, their roles and the resulting state are all derived from the price series on the chart alone, with no dependency on any other tool.
THE HH / HL / LH / LL CLASSIFICATION
The indicator compares each new swing with the previous one of the same type. A swing high above the previous high is a Higher High (HH); below it, a Lower High (LH). A swing low above the previous low is a Higher Low (HL); below it, a Lower Low (LL). Each label is written at the pivot and does not move. Rising highs and rising lows are the signature of buying strength; falling highs and falling lows, the signature of weakness. High labels are drawn above the swing, low labels below it, colour-coded green for the bullish roles and red for the bearish ones.
SWING PROFILES
The sensitivity of the swings is set by a single Swing Profile input: Scalper (5 bars each side) for fast intraday swings on low timeframes, Swing (10 bars, the default) for the balanced 4H and daily read, and Long Term (21 bars) for the major swings on weekly and higher horizons. The larger the length, the more significant a turn has to be, and the fewer but more important the swings that are marked.
THE MARKET STATE
Above the individual labels, Edo Swing State resolves one overall state by combining the role of the last high with that of the last low. Bullish requires a last high of HH and a last low of HL — rising highs and lows. Bearish requires a last high of LH and a last low of LL — falling highs and lows. Any mixed combination is treated as Ranging. Requiring both sides to agree is deliberate: if price makes a higher high but then loses the previous low, the structure is no longer cleanly bullish, and the state turns to Ranging — precisely the transition zone where a trend starts to fail before the full turn is confirmed. The first LH after a run of HHs, or the first HL after a run of LLs, is the earliest crack in a trend, labelled the moment it is confirmed.
THE SWING LINE
The swing line connects the confirmed pivots in a continuous zigzag, tracing only the legs that run from one swing to the next and filtering out the intermediate noise. It reveals the real skeleton of the move — where price accelerates and where it loses momentum. The line and the labels can each be toggled independently, for a cleaner or a more informative chart.
INFORMATION PANEL
The panel condenses the read into a compact table under the indicator header: the overall market state (Bullish / Bearish / Ranging), the role of the most recent confirmed swing, and the role of the last high and the last low, in the same green/red colour code. The state row is the underlying read; the last-high and last-low rows explain why the state is what it is. The panel sits in any of the four chart corners (Top Right by default), comes in three sizes (Tiny / Small / Normal) and two themes (Dark / Light), and can be hidden entirely. To keep the calculation light, it is drawn only on the last bar.
NO REPAINTING
Swings are built on confirmed pivots and the state change is validated on closed bars, so a label never appears or disappears intrabar. There are no higher-timeframe functions: all logic runs on the current chart timeframe, which keeps the indicator lightweight and repaint-free. For a multi-timeframe read, apply it on several charts at once and look for the confluence of states.
CONFIGURATION
The inputs are grouped by block. Structure sets the swing profile and toggles the HH/HL/LH/LL labels and the swing line, listed in the settings as Show structure line (zigzag). Style exposes the bullish and bearish colours, the line colour and width, the label size and the Dark/Light theme. Panel controls panel visibility, position and size. The defaults are calibrated to work without adjustment on stocks, crypto, forex, indices and futures, on any timeframe — the input most users touch is the Swing Profile, to match the swings' sensitivity to their trading horizon.
ALERTS
Six predefined alerts cover the structure read. Four swing alerts — New Higher High, New Higher Low, New Lower High and New Lower Low — fire when each new pivot is confirmed with its role. Two structure alerts — Structure Bullish and Structure Bearish — fire only on the phase turn, when the overall state flips. All alerts fire on bar close, consistent with the indicator's anti-repaint validation.
HOW TO READ IT
Use the state as a context filter: look for longs while structure is Bullish and shorts while it is Bearish, and treat Ranging as caution — the zone where trends run out and false moves cluster. Use the change labels as an early warning: the first LH after a series of HHs, or the first HL after a series of LLs, flags a fading trend before the overall state fully turns. And read it in confluence: a Bullish state on the trading timeframe that sits inside a Bullish state on a higher one is a far more solid trend than an isolated read. Read on its own terms, the sequence of labels is the whole method: the roles say what the market is doing, and the state says whether it is doing it cleanly.
OPEN SOURCE
Edo Swing State is published as a free open source indicator. The full Pine Script is publicly accessible on TradingView for study, adaptation and integration into any workflow. Part of the Edolab Markets free tools ecosystem, all available on TradingView.
This indicator is a technical analysis tool for educational and informational purposes only. It does not generate automatic buy or sell signals and should not be considered financial advice. Trading financial markets involves significant risk of capital loss. Past performance does not guarantee future results. Always use proper risk management.
Indikator

Indikator

Cost-to-Range Gauge [BSL]Before asking whether a method works on this chart, there is an earlier
question that almost nobody asks: can a result exist here at all?
Cost-to-Range Gauge answers it with one drawing. A twenty-cell bar
represents the typical range of the last 500 confirmed bars. The filled part
of it is your round-trip cost. If the fill takes up a quarter of the bar, the
typical bar is four round trips wide. If it fills the whole thing, the typical
bar cannot pay for a single trade.
Under the drawing sits the number that goes with it: how many bars in the
window could not have covered one round turn at all.
WHY THE COST IS DRAWN AND NOT DESCRIBED
"Your cost is 3 ticks and the typical range is 12.6 ticks" is a sentence you
have to do arithmetic on. A bar with a quarter of it filled is a picture you
have already understood.
The ratio is printed as well, and it goes range divided by cost: above 1, the
typical bar covers a round turn. At or below 1 the drawing fills completely
and turns red, and the panel adds that the cost exceeds the typical range,
because a full bar on its own could be read as the drawing running out of room
rather than as the answer.
A bar whose entire range is smaller than the cost could not have paid for a
trade taken inside it, whichever direction that trade went. That is what the
count underneath is counting.
BOTH INPUTS ARE IN TICKS, ON PURPOSE
Every instrument on TradingView has a tick size, so ticks convert to price
everywhere. Not every instrument has a currency value per point. That figure
is missing for whole classes of symbol.
If the commission were entered in currency, the entire gauge would go dark on
any symbol without one. Taking both inputs in ticks means the price-space
reading always works, and the currency line is the only thing ever withheld.
It is withheld rather than guessed, and the panel says so where it would
otherwise have appeared.
If you have a figure in currency, divide it by the currency value of one tick.
The commission field is the WHOLE ROUND TURN, not one side. Enter one side and
you have halved your own cost; the script cannot detect it and will faithfully
report a flattering number.
The cost is your declaration. Nothing here can verify it.
A total cost of zero is refused. A ratio against zero is not a large number,
it is not a number, and the panel asks for a cost instead of printing
infinity.
WHAT THE RATIO LOOKS LIKE ON A DAILY CHART
Large. A daily bar is worth many round trips on any liquid instrument, so the
drawing fills a sliver and the ratio runs into the hundreds or thousands. That
is the correct answer to the question, and it is the answer you want before
committing to a timeframe. The gauge earns its keep further down, on the
intraday charts where a bar and a round trip are comparable and the fill is no
longer a sliver.
WHAT IS IN THE WINDOW
Confirmed bars only. The bar still forming is left out and named as pending.
Every reading on this panel is complete the moment a bar closes: a bar's range
is finished at its close, and none of these numbers is waiting on an outcome.
That means all rows share one cutoff, the last confirmed bar, and the only
unfinished observation on the whole chart is the bar still open.
That is the simplest possible case of a rule this family applies everywhere,
and it is stated rather than skipped. A rule mentioned only when it bites is a
rule you cannot check.
Below 100 bars the whole gauge is faded and prints its own sample size, so a
reading taken over 40 bars never looks as solid as one taken over 500.
WHAT YOU ENTER
- Spread: 2.0 ticks
- Commission per round turn: 1.0 ticks
- Window: 500 confirmed bars
- Panel position: Bottom center
Six positions are available and the gauge begins at the bottom center. Both
left corners are spoken for by the platform, the legend above and the
TradingView logo below, and the right is where the price scale and most other
panels crowd.
A BRICK'S RANGE IS A SETTING, NOT A FACT
A Renko brick has the range you told it to have. Its size is a setting, not a
market fact, so a cost-to-range ratio measured against it is a ratio against
your own configuration. The same applies to Heikin Ashi, Kagi, Point & Figure
and Range charts.
On those chart types the drawing, the ratio and the published values all stop.
THREE VALUES FOR OTHER SCRIPTS
Three values are published for other indicators to pick up in their Source
setting: the range-to-cost ratio, the share of bars under cost, and the sample
size. All three are descriptions, not events. They change gradually and mean
something on every bar, rather than firing at a moment. Before the gauge has
an opinion they carry no value at all, which is not the same as a value of
zero.
The alert condition is listed beside them and is not a reading. The gauge
draws only its table, which cannot be selected, so these three are the whole
readable surface.
WHAT IT WILL NOT TELL YOU
No verdict. Not "tradeable", not "avoid", not a traffic light. The single
colour change on the panel, the drawing turning red, restates the number
beside it and adds no judgement to it, because the judgement depends on a
method this script has never seen.
It issues no events and stamps nothing at an event bar. It is a screen you run
before a method, and calling any of its readings a signal would be the exact
overreach it exists to argue against.
It contains no equity curve, no fill model and no slippage simulation. What
costs do to a result under realistic fills belongs to Execution-Aware Trend
; how a hit rate responds to a cost belongs to Signal Audit Lab .
This answers only whether a result can exist at all, and that is asked before
either of them.
This tool compares a cost you declare against typical bar size. It does not
predict price, guarantee performance or provide trading advice. Validate the
behaviour on your own symbols, timeframes and execution assumptions before
making decisions.
Open-source Pine Script® v6. Educational use only. Indikator

RTH 1st Presented FVGPlots the first Fair Value Gap of the Regular Trading Hours session and keeps those levels on the chart.
First presented FVG
Detects the first 3-candle wick-and-body FVG after the cash open. The middle candle cannot be the 09:30 bar, so the earliest valid gap starts at 09:31. By default the gap is measured on 1-minute data and drawn on any chart up to the Max Timeframe. Turn on “Use Chart Timeframe for 1st Presented” to measure it on the chart’s own timeframe instead.
Gradient Levels
Each gap can show high/low, equilibrium, quartiles, and optional eighths. One label sits at the midpoint. Boxes and lines can extend right with a bar buffer.
History
Choose how many daily first-FVGs to keep. Optionally keep a separate count of Monday and Friday gaps so those days stay visible longer.
Premium / Discount
Builds a range from recent first-FVG highs and lows. A table shows premium or discount versus equilibrium, with optional gradient lines at high, low, mid, quartiles, and eighths.
Overlapping FVGs
Optionally highlight later FVGs that trade through a stored first-FVG level. Can limit that to the first overlap of the session.
Session hours, timezone, colors, line styles, and Max Timeframe are all user-controlled. Indikator

RSI with Bollinger BandsRSI with Bollinger Bands combines the Relative Strength Index with Bollinger Bands calculated directly on the RSI itself.
This indicator is designed to help identify periods when RSI momentum becomes unusually stretched relative to its recent behavior, instead of relying only on the traditional fixed 30 and 70 RSI levels.
The RSI is displayed together with a Bollinger Band basis, upper band, and lower band. When RSI moves outside the bands, the indicator can display overbought or oversold breach signals and highlight the background.
Features
RSI oscillator
Standard RSI calculation
Default RSI Length: 14
Adjustable price source
Bollinger Bands on RSI
Bollinger Bands are calculated from the RSI value
Default BB Length: 20
Default Upper Multiplier: 2.0
Default Lower Multiplier: 2.0
Upper and lower multipliers can be adjusted independently
Overbought Breach Signals
Displays an OB signal when RSI moves above the upper Bollinger Band
Red background highlighting can appear during the condition
Oversold Breach Signals
Displays an OS signal when RSI moves below the lower Bollinger Band
Green background highlighting can appear during the condition
Traditional RSI Reference Levels
70 level
50 level
30 level
These levels can be shown or hidden
Customizable Display
Show or hide breach signals
Show or hide the Bollinger Band fill
Show or hide the 30 / 50 / 70 RSI levels
Settings
Length
Controls the RSI calculation period.
Default: 14
BB Length
Controls the lookback period used to calculate the Bollinger Band basis and standard deviation on RSI.
Default: 20
BB Up
Controls the standard-deviation multiplier for the upper Bollinger Band.
Default: 2.0
BB Down
Controls the standard-deviation multiplier for the lower Bollinger Band.
Default: 2.0
Price Source
Selects the price source used for the RSI calculation.
Default: Close
Show Breach Signals
Turns the OB and OS markers on or off.
Fill Bands
Turns the shaded area between the upper and lower Bollinger Bands on or off.
Show RSI 30/50/70 Levels
Turns the traditional RSI reference levels on or off.
How to Read the Indicator
When RSI moves above the upper Bollinger Band, it means RSI is unusually strong relative to its recent range. This can indicate elevated bullish momentum or a potentially overextended condition.
When RSI moves below the lower Bollinger Band, it means RSI is unusually weak relative to its recent range. This can indicate elevated bearish momentum or a potentially oversold condition.
The traditional 30 and 70 RSI levels remain available as additional reference points.
Alerts
The indicator includes built-in alert conditions for:
RSI Above Upper Band
RSI Below Lower Band
These alerts can be used to notify you when RSI breaches either Bollinger Band.
Important
A breach of the upper or lower band should not automatically be treated as a reversal signal. Strong trends can keep RSI extended for a significant period.
This indicator is best used together with price action, trend analysis, support and resistance, volume, or other forms of confirmation.
For educational and informational purposes only. This indicator does not constitute financial advice. Indikator

Indikator

TheStrat Command Center v1.5TheStrat Command Center
TheStrat Command Center is a chart-based decision-support tool built for traders who use "The Strat" methodology created by Rob Smith (R.I.P.)
Its purpose is to organize several pieces of TheStrat information that normally have to be monitored separately — current candle structure, possible next directional setups, Full Time Frame Continuity (FTFC), entry and invalidation levels, nearby objectives, and risk-based targets — into one live dashboard.
It is not intended to predict the market or replace the trader's own interpretation of price action. The goal is to make the current Strat structure easier to read and manage.
Strat Structure
The indicator classifies price bars using the standard Strat framework:
1 - Inside bar
2U - Breaks the previous high without breaking the previous low
2D - Breaks the previous low without breaking the previous high
3 - Outside bar that breaks both sides
The prior closed candle is treated as the current setup candle. The developing candle is then evaluated against that completed setup.
The Command Center uses that relationship to identify possible structures such as:
2-2 reversals
2U or 2D continuation
2-1-2 structures
3-to-2 directional resolution
Failed 2 reversals
Both the upside and downside possibilities remain visible so the trader can see what price would need to do in either direction.
Failed 2 Recognition
Failed 2 candles are handled separately from ordinary 2 bars.
A Failed 2U must first be a true 2U and then close below its own open.
A Failed 2D must first be a true 2D and then close above its own open.
If the candle breaks both the previous high and previous low, it is classified as a "3", which overrides the Failed 2 condition.
Failed 2 markers are placed on the actual failed candle after it closes.
Full Time Frame Continuity
The indicator monitors up to six user-selected timeframes for Full Time Frame Continuity.
Each timeframe is evaluated by comparing its current price with its timeframe open:
Green = above the timeframe open
Red = below the timeframe open
Flat = at the timeframe open
Users can choose which of the six timeframes are required for FTFC.
Full bullish FTFC exists only when every required timeframe is bullish. Full bearish FTFC exists only when every required timeframe is bearish. A majority or directional lean is not treated as Full Time Frame Continuity.
An optional setting can restrict new suggested trades to setups that agree with Full FTFC. Timeframes that are displayed but not marked as required remain informational and do not block a setup.
Command Center Dashboard
The dashboard is intended to answer, at a glance:
* What is happening now?
* What was the last completed Strat candle?
* Is a reversal currently available?
* Is Full Time Frame Continuity present?
* What is the best structural play under the selected FTFC rules?
* What are the possible upside and downside plays?
* Where are the applicable entry and stop levels?
* How far is price from the next trigger?
* Where are nearby structural objectives?
* Where is price relative to the trading-session open?
The indicator includes separate Desktop and Mobile layouts. The Desktop dashboard can also hide its lower detail section to conserve chart space.
Entry, Stop and R-Based Target
For standard Strat setups, the indicator calculates a potential entry beyond the setup candle high or low using a user-selected tick offset.
The opposite side of the setup candle is used as the invalidation/stop reference.
Failed 2 reversals use a fixed rule:
* Failed 2D long: entry one minimum tick above the Failed 2D high and stop one tick below its low.
* Failed 2U short: entry one minimum tick below the Failed 2U low and stop one tick above its high.
Once the entry-to-stop distance is known, the indicator calculates a user-selected reward target from 0.5R through 5R, where 1R equals the initial entry-to-stop risk.
These levels are informational chart references and are not brokerage orders.
Waiting and Active Trade Lines
Before a setup triggers, optional dashed entry stubs show the available directional trigger levels.
If one side triggers, the opposite waiting setup is removed and the chart can display:
* Entry
* Stop
* Selected R target
The lines remain while that setup is active.
When the target or stop is reached, the active trade lines are removed automatically. A user may also manually dismiss a waiting setup or cancel the indicator's monitoring of an active setup without recording it as a target or stop result.
If both sides of the setup candle are broken by the same developing bar, the condition is treated structurally as an outside/3 bar rather than assuming a directional entry.
Session Levels and Objectives
The indicator can also display contextual price levels.
For futures, the reference trading session begins at 6:00 PM Eastern Time .
For equities, indexes and other non-futures instruments, the reference session begins at 9:30 AM Eastern Time .
The dashboard can show:
* Reference session open
* Previous session high
* Previous session low
* Recent range high and low
* Distance to the next upside or downside trigger
* Nearby prior-high or prior-low objectives
The recent-range lookback is user-adjustable.
These objective levels are contextual references. They are not predictions that price will reach those levels.
Alerts
Alert conditions are included for:
* Confirmed Failed 2U
* Confirmed Failed 2D
* Confirmed upside trigger
* Confirmed downside trigger
* Target reached
* Stop reached
Developing vs. Confirmed Information
The Command Center intentionally contains both closed-bar structural information and live developing information.
The setup itself is based on the prior completed candle. Failed 2 identification is confirmed on candle close.
The current developing candle type can change before that candle closes as new highs or lows are made.
FTFC also uses the current state of the selected higher-timeframe candles. Because those candles remain open until their respective timeframes close, their green/red state — and therefore live FTFC — can change intrabar.
Users should distinguish these live contextual readings from closed-bar confirmations.
Limitations
This is an indicator, not a TradingView strategy or backtest . It does not provide historical profitability statistics or claim that a displayed setup will be successful.
The indicator does not know the exact sequence of every price movement inside a completed historical candle. If multiple relevant levels are touched within the same bar, OHLC chart data may not reveal which price traded first.
Results and displayed structures can also vary depending on symbol, chart timeframe, market session, selected FTFC timeframes, tick offset, R target, and available chart data.
The tool is designed for standard price charts and should be interpreted alongside the trader's own analysis and risk-management process.
What Makes the Script Different
The Command Center is designed as an integrated Strat workflow rather than simply placing candle numbers on a chart.
It combines the prior closed-bar setup, live directional resolution, exact Failed 2 handling, user-defined FTFC requirements, two-sided structural possibilities, trigger/invalidation levels, R-based trade planning, session context, nearby objectives, active-setup management, alerts, and desktop/mobile presentation into a single decision hierarchy.
Its purpose is to reduce the amount of separate chart information a Strat trader has to mentally assemble while preserving the underlying price-action structure.
Indikator

Streak Reality Check - was that losing run actually unusual?Most people abandon a working strategy during a losing run rather than because of anything in the numbers. The run feels like new information. Usually it is not, and roughly how long a run you should expect is calculable before it happens.
For n trades at a win rate w, the expected longest run of losses is about:
log(n × w) / log(1 / (1 − w))
That is the standard result for the longest run of failures in n Bernoulli trials. It has one property worth sitting with: n is inside it. More trades means more chances for a long run, so the run you should expect grows as you collect data. Slowly, because it is logarithmic, but it grows.
Which is why a fixed limit — "abandon anything with a run above 10" — gets stricter the more data you have. The same strategy passes early and fails later, having done nothing different in between. This script reports the ratio of observed to expected instead, because that is the number which means the same thing at every sample size.
What the table shows
Trades (non-overlapping). How many complete trades the sample produced, and how many timed out rather than resolving.
Win rate. Measured, not assumed. The expected run depends on it heavily.
Worst losing run. The longest consecutive run of losses in the sequence.
Expected at this sample. What that trade count and win rate should produce by chance.
Observed / expected. The number you came for. Around 1.0 means the worst thing that happened was typical. Below about 1.3 a long run is a long run and not a signal. Well above it, something in that stretch is worth understanding.
Sample covers. The period measured. A run length with no period attached invites more confidence than it has earned — 3,000 bars is six weeks on a 15m chart and twelve years on a daily one.
Non-overlapping trades, and why that matters
This measures differently from its two companions, deliberately.
Edge Reality Check and Filter Reality Check resolve from every bar. That is correct for measuring a hit rate: it uses the whole sample, and the overlap does not bias an average.
It would wreck a streak measurement. Samples opened on consecutive bars share almost all of their holding window, so their outcomes are strongly correlated, and one bad stretch of price would show up as a single enormous run of losses. Compared against a formula that assumes independent trades, that returns a ratio of three or four and a verdict of catastrophe on perfectly ordinary history.
So this one opens a trade, resolves it, and only then looks for the next entry. Fewer trades from the same history, and a sequence whose runs mean something. Expect a much lower trade count than the other two give on the same chart — that is the rule working, and the table labels the row so the difference is visible rather than mysterious.
Method, and its limits
A bar spanning both stop and target counts as a loss. There is no way to know which came first from bar data, and being wrong pessimistically is the only honest resolution. It matters more here than in the companion scripts: resolving those ties optimistically would break up runs and flatter every streak on the chart.
Distances can scale with each historical bar's own ATR, so the test uses the volatility of the time rather than today's.
Trades reaching neither level within the holding window are reported as timed out, not counted as losses. Counting them as losses would manufacture runs that never happened.
Fifty resolved trades is the floor. Below that the script refuses to compare, and says so. A streak is a tail statistic and needs more sample than an average does — a hit rate stabilises long before the longest run does.
The formula assumes independent trades. If your own trades overlap in time, or fire on correlated instruments, your effective sample is smaller than your trade count, the expected run is correspondingly smaller, and your real run is worse than the ratio suggests. The non-overlapping rule handles this inside the script; it cannot handle it for the strategy you are comparing against.
It is an expectation, not a bound. Runs longer than it are ordinary. The distribution has a tail on both sides, and a single measurement on one window settles nothing — run it across several.
What it is not
It places no trades, gives no signals and predicts nothing. It cannot tell you a strategy is broken. It tells you whether a losing run is evidence of anything, which is a smaller and more useful question, and the answer is usually no.
Open source. Companion to Edge Reality Check, which measures the hit rate entering at random would have produced at your reward-to-risk, and Filter Reality Check, which tells you whether a condition you are using beats that baseline. Indikator

Equalhigh True FVG Scanner# Equalhigh — True FVG Scanner
### User Guide · Version 5.2
Equalhigh True FVG Scanner combines filtered Fair Value Gaps, confirmed swing levels and classic two-candle gaps from a lower timeframe.
Its purpose is to organize potential reaction areas into a readable price map. It is an indicator, not an automated trading strategy.
## 1. Three Different Types of Levels
**Fair Value Gaps — turquoise and pink**
FVGs are detected on the chart timeframe using three consecutive candles:
* Bullish: the third candle’s low is above the first candle’s high.
* Bearish: the third candle’s high is below the first candle’s low.
The rectangle marks the space between those prices. The middle line represents the 50% level, also called Consequent Encroachment.
**Confirmed swing levels — gold**
These horizontal lines mark confirmed pivot highs and lows. By default, a pivot requires five candles on each side.
The line starts when the pivot is confirmed, five candles after the turning point. A closing break above a swing high or below a swing low removes that level. A wick alone does not remove it.
These levels do not contribute to the FVG score.
**Classic lower-timeframe gaps — blue/violet**
These use two consecutive candles on the selected lower timeframe:
* Gap up: the current low is above the previous high.
* Gap down: the current high is below the previous low.
These are complete gaps between candle ranges, not simply differences between the previous close and the next open. They are tracked independently of FVGs.
## 2. How FVGs Are Selected
Every displayed FVG must meet the minimum gap-size requirement and the middle-candle displacement requirements.
With the default settings:
* Minimum FVG size: 0.10 ATR.
* Minimum middle-candle body: 0.80 ATR.
* Minimum body-to-range ratio: 65%.
* Structure break required: enabled.
* Minimum score: 70/100.
The structure-break check requires the middle candle to close beyond the highest high or lowest low of the preceding lookback window. The default lookback is ten candles.
This is a rolling-range break definition, not a full BOS/CHoCH classification system.
## 3. Understanding the Score
The creation score combines:
* Displacement: 25 points.
* Structure break: 25 points.
* Liquidity sweep: 20 points.
* Premium/discount location: 10 points.
* Freshness at creation: 10 points.
* Session criterion: 5 points.
* Opposite-coloured candle before displacement: 5 points.
The sweep check uses the first candle of the three-candle pattern: it must exceed a previous extreme and close back inside.
Premium/discount compares the FVG midpoint with the midpoint of the preceding rolling range, using 50 candles by default.
The opposite-coloured candle criterion is a simple proxy. It does not establish a validated Order Block.
When session scoring is disabled, both directions receive its five points.
**The score is a rule-based ranking, not a win probability.** It remains fixed after creation, including the initial freshness points. Subsequent mitigation is shown separately.
There is no higher-timeframe EMA or trend filter in this version.
## 4. Reading FVG States
**FRESH**
The zone has not been touched by a subsequent candle. Its border is solid.
**TOUCHED**
Price has reached the zone without reaching its midpoint. The border becomes dashed and the fill more transparent.
**MITIGATED 50%**
Price has reached or crossed the midpoint. The border becomes dotted and the median line becomes thicker and solid.
These states are confirmed at chart-candle close and retain the deepest penetration recorded.
With “Remove fully filled FVG” enabled, reaching the opposite boundary removes the zone, even with a wick. This removal rule operates independently of the closing-invalidation setting.
If full-fill removal is disabled, a filled zone is retained as a grey, frozen archive unless invalidated. Focused nearest-zone mode hides these archives.
## 5. Keeping the Chart Readable
“Show nearest active FVG only” displays two zones above and two below the last confirmed close by default.
Zones containing that price are also displayed, so the total can exceed four.
Distance is measured to the nearest zone boundary. Hidden zones continue to be tracked within the storage limit and can reappear as price approaches them.
FVG price cards show the upper boundary, midpoint and lower boundary.
Historical creation triangles are optional and disabled by default. They mark FVG creation, not confirmed trade entries.
## 6. Configuring Classic Gaps
Open section **“5. Classic two-candle gaps (lower timeframe)”**.
Automatic timeframe selection chooses a supported timeframe approximately one-quarter of the chart timeframe. Disable it to select a lower timeframe manually.
Both initial size filters apply:
* Minimum gap in ticks: 2 by default.
* Minimum gap relative to lower-timeframe ATR: 0.05 by default.
Set the ATR threshold to zero to use only the tick filter.
The script processes available lower-timeframe candles chronologically. Overlapping candle ranges reduce the remaining open gap. A complete overlap removes it.
A jump entirely across a gap does not count as a fill. A candle contained inside a gap can leave two separate open portions.
By default, the module stores up to 40 open portions and displays the nearest two per side, plus portions containing the reference price.
## 7. GAP Prices on the Right Scale
Enable **“GAP prices on the price scale”** to display the remaining upper and lower boundaries directly on the price scale.
Up to ten nearest visible gap portions receive native scale markers.
Also enable **“Labels on price scale”** in the indicator’s **Style** tab. TradingView’s chart settings must permit indicator value labels.
Native scale markers show boundary prices. Optional floating GAP cards additionally show direction and timeframe.
The floating cards use a bar-based offset. They are not fixed to the screen edge.
## 8. Updates and Alerts
FVG creation, mitigation and swing confirmation use closed chart candles.
Classic gaps are also committed at chart-candle close. On a daily chart, their displayed state therefore updates when the daily candle closes.
Available alerts cover:
* New qualifying bullish FVG.
* New qualifying bearish FVG.
* New classic bullish lower-timeframe gap.
* New classic bearish lower-timeframe gap.
Alerts are independent of proximity visibility. A classic-gap creation alert can occur even if that gap was subsequently filled within the same chart candle.
Use “Once Per Bar Close” when configuring alerts.
## 9. Practical Limits
Lower-timeframe history depends on TradingView’s available data and your plan. The coverage panel shows the first processed date and latest update; older gaps may be outside coverage.
Storage limits can discard older zones or gap portions. Missing lower-timeframe data can also limit tracking.
Gap filling is inferred from candle high/low ranges, not transaction-by-transaction data.
Use standard time-based candlestick charts for interpretation. Synthetic candles can produce different patterns.
These levels are areas to observe, not guaranteed support, resistance or future targets. Neither a high score nor an open gap guarantees a reversal or eventual fill.
Indikator

Indikator

52 Week High/Low Offset ScreenerTitle:
52 Week High/Low Offset Screener
Visibility: Open (recommended) or Protected
Category: Indicator (not overlay)
Companion script: 52 Week High/Low (Current & Offset)
→ After the indicator is published, paste its script URL here in the description
(English NOTES / German HINWEISE).
----- Description (paste below; English first) -----
█ OVERVIEW
This is a Pine Screener companion to “52 Week High/Low (Current & Offset)”.
It scans a watchlist for where price sits relative to a lagged 52-week high/low (default offset: 52 weeks). You can constrain those distances in the script settings and/or with column filters in the Pine Screener.
Same calculation as the chart indicator. This script does not overlay on price; it outputs columns and a Hit flag.
This is a scan helper, not a buy or sell signal.
█ HOW TO RUN THE SCAN
1. Add this script to your Favorites (star). It will not appear in Pine Screener otherwise.
2. Open Products → Screeners → Pine (or tradingview.com/pine-screener/).
3. Choose a watchlist (keep it under 1,000 symbols).
4. Select “52 Week High/Low Offset Screener”.
5. Set the timeframe (daily is typical) and optional distance filters in the script settings.
6. Click Scan.
7. To apply the built-in distance filters, add a column filter: Hit = 1.
Only one Pine script can be used per scan.
█ COLUMNS
• Hit — 1 if all enabled script filters match, otherwise 0
• Distance % nearer offset — distance to the closer of the two offset levels
• Nearer to (1=High, −1=Low)
• Distance % offset high / offset low
• Offset high / Offset low — lagged 52-week levels
• Current 52W high / Current 52W low
• Close
Distance formula:
(close − offset level) / close × 100
Positive = price above that level, negative = below.
█ DISTANCE FILTERS (SCRIPT SETTINGS)
Disabled filters are ignored. All enabled filters must pass for Hit = 1.
• Side: All / only nearer to offset high / only nearer to offset low
• Constrain nearer distance (from % / to %)
• Constrain distance to offset high
• Constrain distance to offset low (DCA-style example: −15 to +8)
• Only below offset low
• Only above offset high
You can also filter on the columns themselves. Numeric filters are literal:
• Distance % offset low < 1 includes +0.08 (slightly above the low) and −16 (below the low)
• Below the offset low only: Distance % offset low < 0
• At least 1% below the low: Distance % offset low < −1
• Within 1% of the low: between −1 and 1
█ ALERT
Alert condition “52W Offset Hit” fires when a symbol matches the script’s distance filters.
█ NOTES
• Uses 52 weekly bars and a weekly offset; the current 52-week high/low includes the developing week.
• Chart companion: “52 Week High/Low (Current & Offset)”.
(Add the published indicator URL here after step 1 of the publishing sequence.)
This script does not generate trading signals and is not investment advice.
--------------------------------------------------------------------------------
DEUTSCH
█ ÜBERBLICK
Das ist der Pine-Screener zum Indikator „52 Week High/Low (Current & Offset)“.
Er scannt eine Watchlist danach, wo der Kurs relativ zu einem zeitversetzten 52-Wochen-Hoch/-Tief steht (Standard-Offset: 52 Wochen). Diese Abstände kannst du in den Skript-Einstellungen und/oder über Spaltenfilter im Pine Screener eingrenzen.
Dieselbe Berechnung wie der Chart-Indikator. Dieses Skript liegt nicht über dem Kurs; es liefert Spalten und ein Hit-Flag.
Das ist eine Scan-Hilfe, kein Kauf- oder Verkaufssignal.
█ SCAN AUSFÜHREN
1. Dieses Skript zu den Favoriten hinzufügen (Stern). Sonst erscheint es nicht im Pine Screener.
2. Products → Screeners → Pine öffnen (oder tradingview.com/pine-screener/).
3. Eine Watchlist wählen (unter 1.000 Symbole halten).
4. „52 Week High/Low Offset Screener“ auswählen.
5. Timeframe setzen (typisch Tageschart) und optional die Abstandsfilter in den Skript-Einstellungen.
6. Scan klicken.
7. Um die eingebauten Abstandsfilter anzuwenden, Spaltenfilter setzen: Hit = 1.
Pro Scan kann nur ein Pine-Skript verwendet werden.
█ SPALTEN
• Hit — 1, wenn alle aktivierten Skript-Filter zutreffen, sonst 0
• Distance % nearer offset — Abstand zum näheren der beiden Offset-Niveaus
• Nearer to (1=High, −1=Low)
• Distance % offset high / offset low
• Offset high / Offset low — zeitversetzte 52-Wochen-Niveaus
• Current 52W high / Current 52W low
• Close
Abstandsformel:
(Schlusskurs − Offset-Niveau) / Schlusskurs × 100
Positiv = Kurs über diesem Niveau, negativ = darunter.
█ ABSTANDSFILTER (SKRIPT-EINSTELLUNGEN)
Deaktivierte Filter werden ignoriert. Alle aktivierten Filter müssen für Hit = 1 gleichzeitig erfüllt sein.
• Side: All / only nearer to offset high / only nearer to offset low
• Constrain nearer distance (from % / to %)
• Constrain distance to offset high
• Constrain distance to offset low (DCA-Beispiel: −15 bis +8)
• Only below offset low
• Only above offset high
Du kannst auch direkt über die Spalten filtern. Numerische Filter gelten wörtlich:
• Distance % offset low < 1 enthält +0,08 (knapp über dem Tief) und −16 (unter dem Tief)
• Nur unter dem Offset-Tief: Distance % offset low < 0
• Mindestens 1 % unter dem Tief: Distance % offset low < −1
• Höchstens 1 % vom Tief entfernt: zwischen −1 und 1
█ ALERT
Die Alert-Bedingung „52W Offset Hit“ löst aus, wenn ein Symbol die Abstandsfilter des Skripts erfüllt.
█ HINWEISE
• Nutzt 52 Wochenkerzen und einen Wochen-Offset; das aktuelle 52-Wochen-Hoch/-Tief bezieht die laufende Woche ein.
• Chart-Begleiter: „52 Week High/Low (Current & Offset)“.
(Nach der Indikator-Veröffentlichung hier die Skript-URL einfügen.)
Dieses Skript erzeugt keine Handelssignale und ist keine Anlageberatung.
Indikator

52 Week High/Low (Current & Offset)Title:
52 Week High/Low (Current & Offset)
Visibility: Open (recommended) or Protected
Category: Overlay / indicator
Companion script: 52 Week High/Low Offset Screener
----- Description (paste below; English first) -----
█ OVERVIEW
This indicator plots two 52-week ranges at once:
• Current 52-week high/low, including today’s price, as two horizontal lines.
• Historical 52-week high/low, lagged by a user-defined number of weeks, as a full history.
The current range always moves with price. After a sharp rally or sell-off that can make the live 52-week band less useful for context (for example dollar-cost averaging). The offset range shows where the 52-week high and low stood N weeks ago, before the latest move fully rewrote those extremes.
A distance label shows how far the close is from the nearer offset level, in percent of the current price. Positive = price is above that level, negative = below.
This is a positioning tool, not a buy or sell signal.
█ HOW IT WORKS
Current 52-week high/low
Calculated on the weekly timeframe over 52 weeks and combined with the developing week’s high/low on the chart timeframe, so today’s price is included.
Historical 52-week high/low (offset)
The same 52-week calculation, shifted by N weekly bars (default: 52). The offset is applied on the weekly timeframe, not in chart bars, so “52 weeks” remains 52 weeks on a daily chart.
Distance %
(close − offset level) / close × 100
The label is attached to whichever offset level is closer in price:
• Orange = nearer the offset high
• Teal = nearer the offset low
If the current 52-week high and the offset high print as the same price, they are merged into one label: “52W High = Offset”. The same logic applies independently to the low.
█ HOW TO USE
1. Add the script to a chart (daily is a typical timeframe).
2. Set Historical offset (weeks). Default is 52 (about one year); 13 ≈ one quarter, 4 ≈ one month.
3. Read price against the white historical path, not only against the green/red current lines.
4. Use the distance label and the table (Current vs −Nw) for a quick readout.
Reading for DCA-style context (not advice):
• Near the offset low, slightly negative or slightly positive → closer to the older low.
• Near the offset high, small negative → still below the older high, relatively expensive vs that band.
• Near the offset high, positive → price has left the older high.
█ SETTINGS
52-week setup
• Basis for 52-week values: Highs/Lows (default) or Close
• Historical offset (weeks)
Current 52W High/Low
• Horizontal lines, colors, width, style (solid / dashed / dotted), price labels
Historical 52W High/Low (Offset)
• History on/off, colors, fill, fill color
• In the Style tab, historical lines default to dashed and can be switched to solid or dotted
Info panel
• Table on/off, position, distance label
█ NOTES AND LIMITS
• 52 weeks means 52 weekly bars, not exactly 365 calendar days.
• The current 52-week high/low updates with the developing week.
• The offset uses closed weekly values (no lookahead inside the forming week).
• Companion screener: “52 Week High/Low Offset Screener” (add to Favorites, then Products → Screeners → Pine).
This script does not generate trading signals and is not investment advice.
--------------------------------------------------------------------------------
DEUTSCH
█ ÜBERBLICK
Der Indikator zeigt zwei 52-Wochen-Spannen gleichzeitig:
• Das aktuelle 52-Wochen-Hoch/-Tief inklusive heutigem Kurs, als zwei horizontale Linien.
• Das historische 52-Wochen-Hoch/-Tief, um eine wählbare Anzahl Wochen versetzt, als vollständigen Verlauf.
Die aktuelle Range wandert immer mit dem Kurs. Nach einer starken Rally oder einem Ausverkauf ist das live 52-Wochen-Band für den Kontext oft weniger nützlich (zum Beispiel beim Averagen / DCA). Die Offset-Range zeigt, wo Hoch und Tief vor N Wochen standen, bevor die jüngste Bewegung diese Extreme überschrieben hat.
Das Abstands-Label zeigt, wie weit der Schlusskurs vom näheren Offset-Niveau entfernt ist (in % vom aktuellen Kurs). Positiv = Kurs liegt darüber, negativ = darunter.
Das ist eine Lagehilfe, kein Kauf- oder Verkaufssignal.
█ BERECHNUNG
Aktuelles 52-Wochen-Hoch/-Tief
Berechnung auf dem Wochen-Timeframe über 52 Wochen, kombiniert mit dem laufenden Wochenhoch/-tief auf dem Chart-Timeframe, damit der heutige Kurs einbezogen wird.
Historisches 52-Wochen-Hoch/-Tief (Offset)
Dieselbe 52-Wochen-Berechnung, um N Wochenkerzen verschoben (Standard: 52). Der Versatz greift auf dem Wochen-Chart, nicht in Chart-Balken. „52 Wochen“ bleiben also auch auf dem Tageschart 52 Wochen.
Abstand %
(Schlusskurs − Offset-Niveau) / Schlusskurs × 100
Das Label hängt an dem Offset-Niveau, das preislich näher liegt:
• Orange = näher am Offset-Hoch
• Türkis = näher am Offset-Tief
Sind aktuelles 52W-Hoch und Offset-Hoch als derselbe Preis dargestellt, werden sie in einem Label zusammengefasst: „52W High = Offset“. Dieselbe Logik gilt unabhängig fürs Tief.
█ NUTZUNG
1. Skript auf einen Chart legen (Tageschart ist ein üblicher Timeframe).
2. Historical offset (weeks) einstellen. Standard ist 52 (ca. ein Jahr); 13 ≈ ein Quartal, 4 ≈ ein Monat.
3. Den Kurs gegen den weißen historischen Verlauf lesen, nicht nur gegen die grünen/roten aktuellen Linien.
4. Abstands-Label und Tabelle (Current vs. −Nw) für die schnelle Ablesung nutzen.
Lesart für DCA-Kontext (keine Empfehlung):
• Nah am Offset-Tief, leicht negativ oder leicht positiv → näher am älteren Tief.
• Nah am Offset-Hoch, leicht negativ → noch unter dem älteren Hoch, relativ teuer zu diesem Band.
• Nah am Offset-Hoch, positiv → der Kurs hat das ältere Hoch verlassen.
█ EINSTELLUNGEN
52-week setup
• Basis for 52-week values: Highs/Lows (Standard) oder Close
• Historical offset (weeks)
Current 52W High/Low
• Horizontale Linien, Farben, Stärke, Stil (solid / dashed / dotted), Preis-Labels
Historical 52W High/Low (Offset)
• Verlauf an/aus, Farben, Füllung, Füllfarbe
• Im Tab Style sind die historischen Linien standardmäßig gestrichelt und können auf durchgezogen oder gepunktet gestellt werden
Info panel
• Tabelle an/aus, Position, Abstands-Label
█ HINWEISE UND GRENZEN
• 52 Wochen bedeutet 52 Wochenkerzen, nicht exakt 365 Kalendertage.
• Das aktuelle 52-Wochen-Hoch/-Tief aktualisiert sich mit der laufenden Woche.
• Der Offset verwendet geschlossene Wochenwerte (kein Vorgriff innerhalb der entstehenden Woche).
• Begleit-Screener: „52 Week High/Low Offset Screener“ (zu den Favoriten, dann Products → Screeners → Pine).
Dieses Skript erzeugt keine Handelssignale und ist keine Anlageberatung. Indikator
