ICT Killzones & Pivots Update 07_2026ICT Killzones & Pivots – Sessions Only is a streamlined PulseWire indicator that highlights major institutional trading sessions directly on the chart.
It displays configurable session boxes for:
Asia
London
New York AM
New York Lunch
New York PM
Regular Trading Hours
Each session is identified with large, 50%-transparent text inside its corresponding box. Session times, colors, visibility, timezone, and historical session limit can be adjusted through the indicator settings.
This simplified version removes the statistics table, midlines, opening-price labels, pivot text, and other right-side annotations to provide a cleaner chart focused on the primary global trading sessions. Session high and low boundaries can still be displayed through the configurable pivot-line settings.
The indicator is intended for traders who use ICT-style killzones, session liquidity, and time-based market analysis. Indicator

Strategy

SBP Market Levels NavigatorSBP Market Levels Navigator is a standalone market-level mapping tool designed to identify and display only the strongest qualified support and resistance references for the trading day positioned at the right edge of the visible chart.
The script is intended to reduce chart clutter. It does not display intermediate or minor levels. Only Major levels that satisfy the internal qualification threshold are selected for plotting.
The script does not place orders, calculate position size, provide profit targets, define stop-loss levels, or present performance statistics. It is an analytical aid for independent chart study and risk-managed decision-making.
Methodology
The script uses one integrated level-selection workflow. Confirmed swing pivots, previous-day high and low, and previous-week high and low create candidate price references. Nearby candidates are consolidated so that similar prices are treated as one area rather than as multiple unrelated lines.
Each retained level is evaluated using:
Confirmed occurrence count
Price interaction count
Confirmed rejection behaviour
Reference-source weighting
Level freshness
Confirmed support-resistance role change
Only candidates that meet the Major-level score requirement are eligible for display. The strongest qualified levels nearest to price are selected separately above and below the market.
Selected trading-day display
The displayed trading day is the exchange-calendar day containing the chart's rightmost visible candle. Moving another historical day to the right edge of the visible chart causes the indicator to rebuild its display for that day.
Lines begin at the first bar of the selected day and end at the configured label offset after that day. They do not extend indefinitely across unrelated trading days.
Pine Script cannot detect the candle under the mouse pointer, so the rightmost visible candle is used as the practical historical-day selector.
Major levels only
The indicator displays only Major levels.
Support and resistance levels use thick lines and plain-text labels.
Intermediate and Minor classifications are not displayed and are not available as user controls.
This design keeps the chart focused on the strongest internally ranked areas.
Level colours and role changes
Support is displayed in green.
Resistance is displayed in red.
A resistance level that changes into support remains green and is labelled Rev Sup.
A support level that changes into resistance becomes red and is labelled Rev Res.
Normal support and resistance lines are solid. Confirmed role-reversal lines are dashed so that the change in market function remains visually identifiable without adding extra colours.
A support changes into resistance only after the required number of confirmed closes below the level. A resistance changes into support only after the required number of confirmed closes above the level.
Round-number display
Displayed levels can use exact prices, automatic rounding, or a manual rounding step of 1, 5, 10, 25, 50, or 100.
Auto mode chooses a practical rounding interval according to the instrument type and price range. This is intended to produce readable levels for indices, stocks, futures, commodities, forex, and other supported symbols.
The internal scoring process retains the calculated candidate price. The displayed line and label use the selected rounded price.
Nearby-level control
The indicator suppresses duplicate rounded prices and closely spaced levels. The minimum spacing is measured as a user-defined multiple of ATR. When two selected candidates are too close, only the stronger qualified level is retained.
Previous-day-origin levels may contribute to the internal ranking and may be plotted when they qualify, but they do not receive text labels. This reduces repetitive labels around commonly watched daily reference prices.
Labels
Labels are plain text with no shaded background and no border.
The available texts are:
Support
Resistance
Rev Sup
Rev Res
Labels include the displayed rounded price and appear after the selected trading day. Text size and label offset remain user controlled.
Main settings
Maximum Stored Levels limits the number of candidates retained in memory.
Maximum Level Age removes stale candidates from active consideration.
Confirmed Closes for Role Change controls how many closes beyond a level are required before its role changes.
Levels Per Side controls the maximum number of Major supports and Major resistances displayed.
Round Level Prices selects exact, automatic, or manual price rounding.
Minimum Display Separation controls the minimum distance between displayed levels as an ATR multiple.
Label Text Size controls the plain-text label size.
Label Offset After Selected Day controls how many bars after the selected day the labels are positioned.
Alerts
Alert conditions are available for:
Support-level tests
Resistance-level tests
Confirmed bullish rejections
Confirmed bearish rejections
Confirmed resistance-to-support changes
Confirmed support-to-resistance changes
These alerts describe analytical events only. They are not trade instructions.
Suggested use
Place the script on a standard price chart.
Move the current or historical trading day you want to study to the right edge of the visible chart.
Use Auto rounding for general use or select a manual step suited to the instrument.
Adjust Levels Per Side to control how many Major supports and resistances are shown.
Increase Minimum Display Separation when displayed levels remain too close.
Treat the plotted levels as areas for further observation rather than guaranteed reversal or breakout points.
Limitations
The levels are derived from historical price structure and confirmed reference data. They do not predict whether price will hold, reverse, or break.
Confirmed pivots appear only after the required confirmation bars have completed.
The historical-day selector follows the rightmost visible candle, not the mouse pointer.
Calendar-day selection may not perfectly represent instruments whose trading sessions cross midnight.
Rounded displayed prices may differ from the exact internal candidate prices.
The script should not be used as the sole basis for a trading decision.
Educational notice
This script is an analytical charting tool. It does not provide investment advice, guarantee outcomes, or replace independent analysis and risk management. Indicator

XAUUSD Multi-TF Buy/Sell INSTANT [1m-1H]The idea. It's a trend-following system. It never tries to guess tops or bottoms — it waits until gold (or NQ) is clearly moving in one direction, confirmed several ways at once, then jumps in and rides the move with a fixed risk plan.
What makes a signal. On every timeframe it runs three checks:
Trend — the fast EMA (9) above the slow EMA (21) means the market is trending up; below means down.
Momentum — RSI above 50 means buyers are in control; below 50, sellers.
Acceleration — the MACD histogram positive means the move is gaining strength; negative means it's fading.
When all three say "up," that timeframe shows BUY. All three "down" → SELL. Mixed → WAIT.
The multi-timeframe filter. That same check runs on 1m, 5m, 15m, 30m and 1H at the same time — that's the panel in the corner. A trade only fires when your chart gives a signal AND at least 3 of the 5 timeframes agree. In other words: it refuses to buy a 1-minute blip while the bigger picture is still bearish. This filter is the main thing separating it from a basic EMA-cross script.
Entry and exit. In instant mode, the arrow fires the moment everything lines up mid-candle. From the entry price it sets a stop-loss at 1.5× ATR below and a take-profit at 2.5× ATR above (mirrored for sells) — ATR measures how much the market is currently moving, so the levels automatically get wider on wild days and tighter on quiet ones. That's roughly 1 : 1.7 risk-to-reward: it can be wrong nearly half the time and still come out ahead, as long as the market trends. The green/red zones you see are exactly those two targets, tracking each trade until price tags one. An opposite signal before that flips the position.
Its weakness — worth knowing. Trend systems make their money in moving markets and bleed in sideways chop, where EMAs cross back and forth and stops get nicked repeatedly. That's why the alignment filter and the active-session hours matter so much: they keep it out of the chop where this kind of system loses. Strategy

MACD Pro: Presets by Trading Style with Trend and Chop Filters-------DESCRIPTION
There is no single best MACD setup. The right one depends on your timeframe and on how you trade.
Gerald Appel built the indicator around 12, 26 and 9 for daily and weekly charts. Put those numbers on a fast intraday chart and the signal lags behind the price action. MACD Pro carries the tested setup for each trading style, and it will pick one for you based on the chart you are on.
----------THE PRESETS
Swing (4H, daily, weekly) uses 12, 26 and 9. This is the original setup. It finds macro trends and major reversals without catching every bit of market noise.
Day trading (5m, 15m, 1H) uses 8, 17 and 9. Balanced responsiveness. It cuts the lag on intraday charts while keeping enough smoothing to avoid constant whipsaws.
Intraday momentum (3m, 5m) uses 5, 13 and 1. Dropping the signal length to 1 turns the signal into a direct zero-line cross, which is the sweet spot for catching quick intraday momentum pushes.
Scalping (1m, 3m) uses 3, 10 and 1. Maximum sensitivity to short-term price bursts. High frequency and noisy, so it demands strict risk management.
"Auto by timeframe" reads your chart and loads the right setup for you. Move from a 5-minute chart to a daily chart and the settings follow you. Custom is there when you want your own numbers.
-----------WHY A SIGNAL LENGTH OF 1 IS HANDLED DIFFERENTLY
An exponential average of one period returns the input unchanged. That means at a signal length of 1, the signal line sits exactly on top of the MACD line and a crossover can never fire.
In that mode the script hides the signal line and switches the trigger over to the zero-line cross. The table on the pane tells you which mode is running.
--------------THE FILTERS
200 EMA trend filter. Longs only while price is above the 200 EMA, shorts only while price is below it. A crossover that passes prints a solid triangle. A crossover that fails prints a hollow circle, so you still see that it happened and can judge it yourself.
Chop filter. The MACD is a trend-following momentum tool. In a sideways range, crossovers fire over and over, and every one of them is a whipsaw. When ADX sits under your threshold, the pane shades gray and crossovers are marked as failed. Rely on crossovers only when price is expanding or breaking out.
----------------THE HISTOGRAM AS AN EARLY WARNING
The histogram measures the distance between the MACD line and the signal line. When those bars start shrinking toward zero, momentum is exhausting, even before any crossover happens.
Bars print bright while the histogram is expanding and fade to translucent while it is contracting. A bright green run turning pale is your cue to tighten stops or take something off the table. Yellow dots mark two shrinking bars in a row if you want it called out explicitly.
--------------PAIR IT WITH STRUCTURE
Never take a MACD entry on its own. Line the signals up with breaks of support and resistance, or with an opening range breakout backed by above-average volume. The more elements in agreement, the more confidence you can carry into the trade.
---------------ALERTS
- Filtered bullish signal
- Filtered bearish signal
- Upside momentum exhausting
- Downside momentum exhausting
-----------------NOTES
Written in Pine Script version 6. Every setting is editable, so nothing here is locked to my preferences.
Indicator

Indicator

Indicator

HPS Quad Pro [Divergence/Bull Flag/Exits]HPS Quad Pro - Jon Kurisko - Day Trading Radio
A price-chart signal engine that turns the "quad stochastic" momentum method into concrete, non-repainting long and short setups. It layers the key moving-average and volume context (EMA 20/50/200, VWAP, Daily Pivot) over price and fires three complementary entry/exit models. Pairs naturally with the companion oscillator panel HPS Quad Stochastics, but works standalone.
The three setups
Quad Divergence — a two-stage momentum reversal.
Stage 1: all four stochastics push into a "quad extreme" (all below 20 for longs, all above 80 for shorts).
Stage 2: price prints an equal/lower low while the fast 9-3 stochastic makes a higher low (bullish divergence), then the 9-3 turns back through the 20 line to trigger. Shorts mirror this.
20/20 Bull Flag — a trend-continuation pullback.
Uptrend context (EMA20 > EMA50, price above EMA50), an aggressive ≥1.5×ATR extension away from the 20 EMA, then a pullback to the 20/50 EMA while the fast 9-3 cools toward the 20 line and the slow 60-10 holds its trend-strength gate (default 85+). Entry triggers on the EMA20 touch or the 9-3 reaching the pullback level. Bear-flag logic mirrors it for shorts.
Quad Super Signal Exits — context-aware trade management for the last entry.
Reads trend context from the 200 EMA and VWAP. In a weak/counter context it flags a scale-out and moves the stop to breakeven when the 9-3 reaches the far band. In a strong trend it gives the trade room and exits on a 60-10 rotation out of strength or a break of the stop.
On the chart
EMA 20/50/200, VWAP, and the non-repainting prior-day Daily Pivot.
Entry labels (Div / Flag) with tooltips explaining the trend, stochastic, and stop context.
Automatic stop line placed a configurable number of ticks beyond the pattern low/high.
Scale/Breakeven and Exit markers from the management engine.
A status dashboard showing session state, trend, open position + setup, stop level, and all four live stochastic values.
Optional NY-session filter so signals only fire during regular hours.
Alerts
Quad Divergence Long/Short, Bull Flag Long/Short, Scale/Breakeven, and Exit.
How to use it
Add to the price chart (index futures on 1–5 min is the intended use case) and optionally add HPS Quad Stochastics in a lower pane.
Let the dashboard tell you the trend regime and which setup is active.
Take entries on the Div/Flag labels, place the stop at the drawn line, and manage the trade with the Scale/BE and Exit markers.
Notes
Non-repainting by design: pivots are confirmed after their right-hand bars and every signal is committed only on bar close.
This is an analysis/visualization tool, not financial advice. Combine it with your own price-action reading and risk management. Past performance does not guarantee future results.
Indicator

HPS Quad Stochastics [9-3/14-3/40-4/60-10]HPS Quad Stochastics - Jon Kurisko - Day Trading Radio
A four-stochastic oscillator panel built to visualize the "quad stochastic" stacking method used in high-probability momentum setups. Instead of watching a single stochastic, this panel plots four at once so you can read short-term triggers and longer-term trend strength on one pane.
What it plots
9-3 (FastStoch 9,3) — the fast trigger line. First to turn at reversals and pullback entries.
14-3 (FastStoch 14,3) — a second confirming band.
40-4 (FastStoch 40,4) — an intermediate band that filters noise.
60-10 (FullStoch 60,10,1) — the slow trend-strength line. The higher it holds, the stronger the underlying trend. This is the "key" band.
Core features
Quad Zones — the background shades when all four stochastics are simultaneously oversold (below 20) or overbought (above 80). This "quad extreme" is the classic stage-one condition before a divergence or exhaustion move.
9-3 Pivot Divergence — using confirmed pivots (ta.pivotlow / ta.pivothigh), it marks bullish divergence when price makes an equal/lower low while the 9-3 makes a higher low, and bearish divergence on the mirror. Because pivots are only confirmed after the right-hand bars complete, these markers do not repaint.
Trend-Strength Guide — an adjustable reference line (default 85) on the 60-10 so you can see at a glance when the dominant trend is strong.
Horizontal value table — a compact readout of all four live stochastic values plus a Quad OS/OB status flag, with a light background for easy reading on any theme.
Alerts — Bullish/Bearish 9-3 Divergence, Quad Oversold, and Quad Overbought.
How to use it
Add it to a separate pane (works on any symbol/timeframe; intraday index futures on 1–5 min is the intended use case).
Watch for a Quad Zone shade to flag a stretched, stage-one condition.
Look for a 9-3 divergence marker as momentum diverges from price.
Use the 60-10 to judge whether the broader trend supports the move (high = with-trend continuation, low = counter-trend).
Settings
Lengths and smoothing for all four stochastics.
Overbought / oversold / midline / strength levels.
Divergence pivot left/right sensitivity and marker toggle.
Colors for each line, quad zones, and divergence markers.
Value table toggle.
Notes
Non-repainting: all comparisons use closed-bar data and confirmed pivots.
This is an analysis/visualization tool, not financial advice. Combine it with your own price-action context and risk management. Past performance does not guarantee future results.
Indicator

Indicator

Volume Bubble | julzALGO📘 Overview
Volume Bubble | julzALGO is a clean and intuitive volume analysis indicator that transforms volume into an easy-to-read visual display using color-coded histogram bars and dynamic bubble markers.
Rather than relying on complex oscillators or derived calculations, the indicator focuses on one of the market's most fundamental metrics: volume. By combining volume, an average volume baseline, relative bubble sizing, and automatic highest-volume detection, traders can quickly identify periods of increased market activity.
Whether you're analyzing breakouts, reversals, trend continuation, or liquidity shifts, Volume Bubble helps highlight when market participation meaningfully changes.
◉ Features
Volume Histogram
The indicator plots the volume provided by the chart's data source as a histogram.
Each bar is automatically colored based on candle direction:
- Bullish candles
- Bearish candles
- Neutral candles
This provides an immediate visual relationship between price movement and trading activity.
◉ Average Volume Baseline
An optional moving average line is plotted over the histogram to provide a reference for normal market participation.
This allows traders to quickly determine whether current volume is:
- Below average
- Near average
- Significantly above average
The averaging period is fully configurable.
◉ Dynamic Volume Bubbles
Each confirmed candle can display a volume bubble positioned above its histogram column.
Bubble text can optionally display abbreviated volume values such as:
- 850
- 12.4K
- 1.8M
- 25M
Bubble placement is adjustable through the offset setting, making the display adaptable to different symbols and timeframes.
◉ Relative Bubble Sizing
Bubble size automatically adjusts according to the relationship between current volume and its recent average.
- Small bubbles represent typical market activity.
- Medium bubbles indicate stronger-than-average participation.
- Large bubbles identify exceptional volume events.
This provides an instant visual comparison without hiding the underlying histogram values.
◉ Highest Volume Highlight
The script continuously evaluates a configurable lookback period and automatically highlights the highest-volume bar.
The highlighted bubble receives its own color, making significant participation events easy to identify.
These events may coincide with:
- Breakouts
- Breakdowns
- News-driven volatility
- Trend acceleration
- Buying climaxes
- Selling climaxes
- High-liquidity sessions
- Potential exhaustion points
An alert is also available whenever a new highest-volume bubble is detected.
◉ Confirmed-Bar Processing
Bubble objects are created only after a candle has closed.
This prevents temporary intrabar changes from creating historical drawing inconsistencies and ensures every displayed bubble represents confirmed volume data.
◉ Efficient Object Management
To maintain performance, the script automatically manages bubble objects using a configurable maximum label count.
Older bubbles are removed as new ones are created, helping keep charts responsive while respecting PulseWire's drawing-object limits.
⚙️ Inputs
◉ Volume
Average Volume Length
Defines the number of bars used to calculate the average volume.
Highest Volume Lookback
Determines how many historical bars are evaluated when searching for the highest-volume bubble.
◉ Volume Bubbles
Show Bubbles
Enable or disable volume bubbles.
Bubble Text
Display formatted volume values or hide bubble text.
Bubble Top Offset %
Adjust the vertical position of the bubbles above the histogram.
Max Bubble Labels
Limits the number of bubble objects stored on the chart.
◉ Display
Show Average Volume
Displays or hides the average volume line.
Highlight Highest Bubble
Highlights the highest-volume bubble within the selected lookback period.
◉ Style
Customize:
- Bull Volume Color
- Bear Volume Color
- Neutral Volume Color
- Average Line Color
- Highest Bubble Color
- Automatic Bubble Text Contrast
📊 Suggested Applications
Volume Bubble can complement many trading approaches, including:
- Price Action
- Market Structure
- Support and Resistance
- Trend Analysis
- Breakout Trading
- Pullback Trading
- Supply and Demand
- Order Blocks
- Fair Value Gaps (FVG)
- VWAP Analysis
- Liquidity Studies
The indicator is designed to provide additional context for market participation rather than generate standalone buy or sell signals.
📝 Notes
Volume values depend on the selected symbol and its data provider.
For exchange-traded instruments, the displayed values typically represent traded volume. For some OTC, CFD, or Forex markets, the available volume may represent tick volume rather than centralized transaction volume.
If no volume data is available, the script automatically notifies the user.
Like all technical analysis tools, this indicator should be used alongside sound risk management and broader market analysis.
⚠️ Disclaimer
This script is provided for educational and analytical purposes only. It does not provide financial advice or guarantee future market performance. Always evaluate trading decisions using your own analysis and risk management.
Indicator

Indicator

SBP Structural State DetectorSBP Structural State Detector is a rule-based analytical indicator designed to identify confirmed changes between bullish and bearish structural states. It does not attempt to predict exact market tops or bottoms. Instead, it evaluates whether current price behaviour provides sufficient evidence that the prevailing directional state has changed.
The script uses one integrated calculation process. It does not require another indicator, external script, higher-timeframe data source, or manual confirmation tool.
Core Method
The calculation begins by measuring price-path efficiency. This compares the net movement of price with the total distance travelled over the same period. A more direct price path receives a higher efficiency reading, while irregular movement produces a lower reading.
That efficiency value controls the response rate of an internal structural centre. The centre adapts more quickly when price movement is directional and more slowly when movement is noisy. The centre is used internally and is not drawn as a separate trendline.
A volatility-normalized structural band is then calculated around the internal centre. Its width expands when price behaviour is less efficient and contracts when movement becomes more orderly. This makes the visible band responsive to both volatility and market noise rather than relying on a fixed price distance.
Directional qualification uses five related observations:
1. Price location relative to the internal structural centre.
2. Normalized displacement from that centre.
3. Direction of the structural slope.
4. Volatility-normalized momentum.
5. Candle direction, body expansion, and closing location.
A bullish or bearish candidate must receive the required level of evidence and must exceed the evidence supporting the opposite direction. The condition must then persist before it can reach the final event process.
Signal Behaviour
All events are evaluated on confirmed bars.
The final event process enforces strict alternation. After a BUY event, another BUY cannot be accepted until a SALE event has occurred. After a SALE event, another SALE cannot be accepted until a BUY event has occurred.
The Minimum Signal Gap setting specifies the minimum number of confirmed bars required between accepted opposite-direction events. It is a spacing control and does not create same-direction re-entry signals.
Chart Display
The Structural State Band changes colour according to the last accepted directional state:
Green indicates that the last accepted event was bullish.
Red indicates that the last accepted event was bearish.
Gray indicates that no directional event has yet been accepted in the loaded chart history.
BUY and SALE triangles identify accepted state changes. They are placed outside the candle using an ATR-based visual distance so that the markers remain readable without changing their event bar.
Inputs
Minimum Signal Gap: Controls the minimum number of confirmed bars between accepted opposite-direction events.
Show Structural State Band: Shows or hides the volatility- and noise-adjusted state band.
Show BUY / SALE: Shows or hides accepted event markers.
State Band Transparency: Controls only the visual transparency of the band and does not affect calculations or events.
Alerts
Two alert conditions are available:
SBP Structural BUY Event
SBP Structural SALE Event
Alerts should be created through PulseWire's Create Alert dialog. Alert behaviour follows confirmed BUY and SALE events generated by the script.
How to Use
Apply the indicator to a standard candlestick or bar chart. Observe the band colour together with accepted BUY and SALE events. The indicator is intended to provide a consistent structural-state reference that can be considered alongside the user's own entry, exit, position-sizing, and risk-management rules.
Limitations
This is an indicator, not a strategy. It does not place orders, calculate position size, provide stop-loss levels, provide profit targets, or report backtested performance.
Signals are based on historical and current confirmed price data. Confirmation introduces delay, especially when price changes direction rapidly. Sideways or volatile markets can produce alternating state changes. The Minimum Signal Gap can reduce closely spaced events but cannot eliminate false or late signals.
The indicator does not guarantee accuracy, profitability, or future market direction. Past chart behaviour does not ensure similar future behaviour. Use standard charts for signal interpretation and conduct independent analysis before making trading decisions. Indicator

Bottom Climax# Bottom Climax
**Bottom Climax** is a transparent 12-gauge weighted checklist: it
measures how much of the market's strongest capitulation composite —
the signal pattern historically seen in the last 1–3 days before major
S&P 500 bottoms — is present today. Nothing is curve-fit: each gauge's
weight is simply its measured historical effect size, published below,
so the score stays auditable gauge by gauge.
## Where it comes from
In a statistical study of 100+ indicators against SPX turns (1990–2026),
we measured each indicator's z-score in the final 1 and 3 days before
swing bottoms of every size. The composite that emerges the day before
big bottoms: VIX ≈ +3σ vs its own trailing year, ATM implied vol (VOLI)
≈ +2.9σ, breadth (% of SPX above the 200d MA) ≈ −2.9σ, SPY volume
≈ +2σ, implied correlation up, put-skew premium collapsing against the
vol level, VX futures in backwardation, junk credit (HYG/SHY) hit, and
European vol (VSTOXX) confirming. This script simply checks, every day,
how much of that composite is present.
## How to read it
- Each gauge becomes a 252-day z-score, sign-adjusted so **positive =
bottom-like**, and **votes** when it exceeds the threshold (default
1.5σ; the historical day-before-bottom medians run ~1.7–3σ).
- Votes are **weighted by each gauge's historical day-before-bottom
stretch** (VIX and VIX3M ≈ 3.0σ carry the most weight, implied
correlation and VSTOXX ≈ 1.9σ the least), and the score is the voting
weight as a **percentage of the live panel's total weight (0–100%)** —
the share of the capitulation composite present today.
- **Columns = score.** Gray/blue = quiet to mildly stressed,
**orange ≥ 40% = watch** (broad panic building), **red ≥ 65% =
strong** (most of the composite lit up). Threshold and tiers are
inputs.
- Alerts fire when the score crosses the watch or strong tier.
## The honest caveat — read this first
These gauges are **concurrent with a violent decline, not ahead of it**.
Fear stays stretched through *entire* crashes, so the count can sit at
watch/strong for days while price keeps falling. A high count means
"capitulation conditions are present — historically, major lows form in
this state," never "today is the low." Intended use: a **scale-in
filter** during declines, one input among many — not a standalone buy
trigger. For a calibrated probability version of the same question, see
**Bottom Radar** (fitted model, walk-forward tested).
## Gauges and data feeds
VIX, VIX3M, VIX9D (Cboe) · VOLI and SDEX/VIX (Nations) · S5TH, S5FI
(SPX breadth) · SPY volume · COR1M (implied correlation) · VX1!/VX2!
futures carry · HYG/SHY (credit) · VSTOXX (EUREX FVS front future as
proxy). Every symbol is an input and can be overridden. Some feeds need
specific data subscriptions; a missing feed simply drops out of the
score (its weight leaves both numerator and denominator), and the
script requires **at least 6 of 12 gauges live** —
otherwise it plots nothing rather than pretending things are quiet.
Indicator

Turn Radar# Turn Radar — user guide (PulseWire publish description)
**Turn Radar** plots one number per day: **net = P(bottom within k) −
P(top within k)** — two logistic probability models (the same heads
published standalone as *Bottom Radar* and *Top Radar*) subtracted into a
single dial. It answers: which is more likely inside your chosen window,
a resolved S&P 500 swing low or swing high — and by how much?
## How it works
Each side scores **signal families** — the mean of each family's members'
signed 252-day z-scores — and feeds them to a one-layer logistic model
fit on daily data since 2006. Ten families on the bottom side, nine on
the top side; six are shared with opposite signs:
- **Shared (vote both ways):** volatility (VIX complex, term structure,
VX carry, SKEW, the Nations skew/tail divergences, VSTOXX),
correlation (COR1M), put/call, AAII sentiment, breadth (% of SPX above
200d/50d MAs), volume (SPY/QQQ/RSP)
- **Bottom-only:** copper/gold, Chicago Fed NFCI, international stress
(Hang Seng vs SSE Composite, EEM vs SPY), carry FX (AUD/JPY, EUR/USD)
- **Top-only:** credit (HYG/SHY), leadership (NDX/SPX), international
equity (SSE/KOSPI/FTSE/Hang Seng vs SPX, VEU/SPY — the US melting up
alone is the classic late-cycle divergence)
Bottoms are made of broad panic; tops of broad complacency. No single
input decides anything.
**Honesty first.** All skill numbers are *walk-forward* (model re-fit
each year on prior data only, scored on the unseen year); published
weights are a final full-sample fit. This is a probability dial, not a
trade signal generator.
## Orientation (default: price-intuitive)
By default the plot is **flipped** to follow price: **columns UP = the
market has been trending up and complacency is building — watch for a
TOP. Columns DOWN = the market is selling off and panic is building —
watch for a BOTTOM.** (Panic statistically accompanies drawdowns and
complacency accompanies uptrends, so the dial usually tracks trend — but
it measures crowd stress, not trend itself.) Turn the flip off in
settings to get the study's raw convention (positive = bottom side).
Alerts, the family table and the background zones always use the raw
convention, so their meaning never changes with the flip.
## How to read it
- **Columns** = the net, one per day. **Gray** = coin-flip zone: neither
head beats its own base rate — ignore. **Blue** = a lean above chance,
below the watch tier. **Orange** = past the watch tier. **Red** = past
the strong tier. Direction picks the side.
- Optional **dual color scheme** tints each side from the first lean:
the bottom/panic arm runs teal wash → teal (watch) → green (strong),
the top/complacency arm orange wash → orange (watch) → red (strong);
the quiet gray is shared. The palette is validated for light and dark
chart surfaces and color-vision deficiency (washes blend toward your
chart background); side identity never relies on hue alone — column
direction, tier lines and background zones carry it too. Every state
color is customizable in settings.
- **Background** (raw convention): green = bottoming zone (light watch,
solid strong), red = topping zone.
- **Family table** (price chart, dark): one row per family, value =
signed z in panic-positive orientation — red fill favors a bottom,
teal favors a top; (B)/(T) rows belong to one head only; last row =
the raw net against its own tiers. Gray dash = feed missing.
- **Net family votes** columns (off by default) show breadth of
agreement: (bottom votes − top votes)/10 for families with signed
z ≥ 0.5, with optional EMA/Kalman smoothing and zero-cross dots.
- Tiers mean **"in the zone", not "now"** — scale in gradually on the
bottom side; on the top side tighten risk and buy hedges while they
are cheap. **Never short on the top signal alone.**
- The **display curve** (default 0.5 = square root) only reshapes the
plot; tier lines get the same curve so crossings look right; colors,
background and alerts use raw values.
## Event horizon
Per timeframe — walk-forward AUC of the net against each side's label,
and the default tier levels (bottom +watch/+strong, top −watch/−strong):
- universal — AUC 0.71 bottoms / 0.64 tops · tiers +0.15/+0.40 −0.05/−0.20
- within 1d — AUC 0.82 / 0.66 · tiers +0.05/+0.10 −0.05/−0.40
- within 2d — AUC 0.79 / 0.66 · tiers +0.05/+0.10 −0.05/−0.10
- within 3d — AUC 0.76 / 0.65 · tiers +0.05/+0.10 −0.05/−0.10
- within 5d — AUC 0.71 / 0.63 · tiers +0.05/+0.15 −0.05/−0.10
- within 10d — AUC 0.66 / 0.61 · tiers +0.30/+0.40 −0.10/−0.15
- within 21d — AUC 0.57 / 0.60 · tiers +0.40/+0.40 −0.15/−0.20
("Universal" scores each turn size within its own horizon; day-windows
pool all turn sizes; 42/63d showed no skill and are not offered.) The
net couples the two heads: a stronger top head lowers the net-vs-bottom
AUC without any loss of bottom skill — per-side skill is what the
standalone radars report (bottoms 0.62–0.84, tops 0.58–0.63). The gray
coin-flip coloring uses each head's own base rate, like the standalone
radars' base-rate line.
Indicator

EWCore Docs (Help & Reference)EWCore Docs — On-Chart Help & Reference (companion to EWCore)
EWCore Docs is the documentation companion to the EWCore Elliott Wave indicator. It is one of three scripts published together: EWCore itself, the EWCoreEvaluators library that EWCore imports, and this reference panel. It must be used alongside EWCore — on its own it has nothing to document.
This script performs no price calculation . It draws a single text panel on the chart that carries EWCore's feature list, its full settings manual, and a short Elliott Wave vocabulary primer, so that a user working with EWCore can look something up without leaving the chart.
Why this exists
EWCore is a large indicator with an extensive settings dialog and a long list of named features, and its settings interact: a threshold in the detection stage changes what the scoring stage ever gets to see. Tooltips explain one setting at a time and cannot show that structure. A trader who wants to understand why a count looks the way it does needs the settings laid out in the same order the engine applies them, reachable while the chart is open. That is what this panel does, and it is why the reference lives in a script rather than on a page somewhere else.
How to use it — everything is in the Settings dialog
Add the script to a chart, then open its settings. There are no chart interactions; every input only selects which text is shown.
Group "EWCore Docs — Navigation" — always active:
Show Panel — turns the panel on and off.
Content — the main switch, choosing between the sections below.
Panel Position — anchor points from top left through centre to bottom right.
Panel Text Size — Small, Normal or Large.
Group "Feature List" — active when Content is set to Feature List:
Feature Group — pages through EWCore's features in blocks, from detection and rules through chains, labels and targets to the newer extension and calibration features. Each entry gets a short plain-English description.
Group "Settings Manual" — active when Content is set to Settings Manual. The controls, used in sequence:
Manual Category — the stages of the engine, in the order it applies them:
Detection & Verification — Pivot Detection (ATR-adaptive), Higher-Degree Detection, Pattern Detection, Sub-Wave Verification, Window Discriminator
Context & Anchoring — Count Anchoring, Display Window
Scoring — Scoring Module, Hard-Rule Tolerance, Parent-Timeframe Context Gate, Performance Safety
Visualization — Wave Labels, Historical Chain, Sequel Chain, Gap Raw Count, Pattern Explanation, Lines & Zones, Frame Count, Forward Projection, Fibonacci Target Zones, Table Settings
↳ Section — picks one section within the chosen category. Note that the dialog shows one "↳ Section" row per category; only the row belonging to your current Manual Category is active, the others are greyed out.
Setting # within section — pages through the settings of that section one at a time. Each page shows the setting's exact title, its default value, and its full explanation, reproduced word for word from EWCore's own tooltip.
Group "Elliott Wave Primer" — active when Content is set to Elliott Wave Primer:
Primer Topic — basic structure, the impulse hard rules, corrective pattern types, the degree scale, extensions, alternation, and diagonals. These are the terms the other two sections assume you already know.
What is not covered
Purely cosmetic settings — colors, line styles, label and text sizes — are left out of the manual on purpose. They are self-explanatory in EWCore's own dialog and are described collectively under the Theming feature instead.
What this script does NOT do
It does not plot, measure, or evaluate anything on the chart it is added to, and it produces no signals. It has no input that affects any calculation, because there is no calculation — every input only changes which piece of reference text is displayed. Panel width and height are not adjustable; both follow the fixed line wrapping of the text and the amount of content currently shown. If you are looking for the Elliott Wave counting and labelling itself, that is EWCore, not this script.
This script is a documentation tool. It is not financial advice, and not a technical analysis tool in itself. Indicator

The Ultimate Indicator by @JustinPerezTrades**Combined LuxAlgo Indicator**
**SMC + HTF PO3 + Opening Range Breakouts & Targets**
This is a single, all-in-one PulseWire indicator that merges three popular LuxAlgo tools:
1. **Smart Money Concepts (SMC)** – Market structure, order blocks, fair value gaps, equal highs/lows, premium/discount zones, etc.
2. **HTF PO3** – Higher-timeframe candle projections with open/high/low/close mapping and volume delta.
3. **Opening Range Breakouts & Targets (ORB)** – Opening range, breakout signals, measured targets, and session moving average.
Everything runs on one chart with organized input groups so you can turn features on/off independently.
---
### What Each Section Does
#### 1. Smart Money Concepts (SMC)
- **Internal & Swing Structure** → Shows BOS (Break of Structure) and CHoCH (Change of Character).
- **Order Blocks** → Internal and Swing order blocks (bullish/bearish).
- **Equal Highs / Equal Lows** → Liquidity levels.
- **Fair Value Gaps (FVG)** → Imbalance zones.
- **Strong/Weak Highs & Lows** → Current swing extremes labeled.
- **Premium / Discount / Equilibrium Zones** – Based on the current swing range.
- **Multi-Timeframe Highs & Lows** (Daily / Weekly / Monthly).
- Optional candle coloring based on internal trend bias.
#### 2. HTF PO3
- Projects higher-timeframe candles to the right of the chart.
- Shows Open, High, Low, Close levels with dashed connectors from the live chart.
- Displays running volume **Delta** for the current HTF candle.
- Useful for seeing where the higher timeframe is currently building its candle.
#### 3. Opening Range Breakouts & Targets (ORB)
- Draws the Opening Range (default 30-minute, or custom session).
- Marks OR High, OR Low, and midpoint.
- Breakout signals (▲ / ▼) with optional Daily Bias filter.
- Automatic measured targets based on a percentage of the Opening Range width.
- Adaptive or Extended target display.
- Optional session-based Moving Average that resets every day at the Opening Range start.
---
### How to Use the Indicator
#### Step 1 – Add to Chart
1. Open PulseWire Pine Editor.
2. Paste the full combined script (make sure it starts with `//@version=6` and has **no** markdown backticks or notes at the top/bottom).
3. Click **Save** → **Add to chart**.
#### Step 2 – Organize the Inputs
The settings are clearly grouped:
| Group Name | What it controls |
|-------------------------------------|--------------------------------------|
| **SMC - Smart Money Concepts** | Overall SMC mode & style |
| **SMC - Real Time Internal Structure** | Internal BOS/CHoCH |
| **SMC - Real Time Swing Structure** | Swing BOS/CHoCH + swing points |
| **SMC - Order Blocks** | Internal & Swing OBs |
| **SMC - EQH/EQL** | Equal Highs / Lows |
| **SMC - Fair Value Gaps** | FVG settings |
| **SMC - Highs & Lows MTF** | Daily/Weekly/Monthly levels |
| **SMC - Premium & Discount Zones** | Premium / Equilibrium / Discount |
| **HTF PO3 - Higher Timeframe Settings** | HTF timeframe, candles shown, offset |
| **HTF PO3 - Visual Style** | Colors, labels, delta |
| **ORB - Historical Display** | Keep or clear previous sessions |
| **ORB - Opening Range** | OR timeframe |
| **ORB - Custom Range** | Custom session times |
| **ORB - Breakout Signals** | Signal style & bias filter |
| **ORB - Targets** | Target % and display mode |
| **ORB - Session Moving Average** | Optional MA |
| **ORB - Style** | Colors and line styles |
#### Step 3 – Recommended Starting Setup
**For most traders:**
- **SMC**
- Mode: `Historical`
- Show Internal Structure: On
- Show Swing Structure: On
- Internal Order Blocks: On (size 5)
- Equal High/Low: On
- Fair Value Gaps: Off (or On if you use them)
- Premium/Discount Zones: On
- **HTF PO3**
- HTF Timeframe: `60` (or `240` / `D` depending on your style)
- Candles to Show: `1` or `2`
- Show Price Labels: On
- Show Running Delta: On
- **ORB**
- Time Period: `30` (or match your market’s opening range)
- Show Breakout Signals: On
- Signal Bias: `No Bias` (or `Daily Bias` if you want stricter signals)
- Show Targets: On
- Target % of Range: `50`
- Target Display: `Adaptive`
#### Step 4 – Practical Workflow
1. **Mark the Opening Range** first (ORB section).
2. Wait for a breakout of OR High or OR Low → look for the signal.
3. Use **SMC structure** to confirm the direction (BOS / CHoCH).
4. Check if price is interacting with an **Order Block** or **Fair Value Gap**.
5. Glance at the **HTF PO3** projection to see where the higher timeframe candle is currently trading relative to its open.
6. Use Premium / Discount zones to decide whether you are buying in discount or selling in premium.
---
### Tips & Best Practices
- Start with fewer features turned on. Too many lines/boxes can clutter the chart.
- Use the **Present** mode in SMC if you only want the most recent structure (cleaner look).
- The HTF PO3 candles are drawn to the **right** of the current bar — they are projections, not historical candles.
- ORB targets are measured moves based on the Opening Range width. Adjust the % to match the instrument’s typical volatility.
- The session MA only works properly on intraday timeframes (it resets at the start of the Opening Range).
---
### Alerts Available
All original SMC alerts are included:
- Internal / Swing BOS & CHoCH (bullish & bearish)
- Order Block breakouts
- Equal Highs / Lows
- Fair Value Gaps
You can set alerts on any of these from the PulseWire alert menu. Indicator

Scalptastic with zonesScalptastic with Zones is a colorful indicator that combines multiple open source indicators into one and adds further information and trade management levels to help traders working with the Prop Trading Academy (formerly Academy55) method (it is not my method and I am not affiliated – just trying to simplify it for users of their method while learning pinescript).
The method is designed to work on the 1 minute chart on the FX:EURUSD or CAPITALCOM:NAS100 and requires waiting for several indicators to align with buy/sell signals for a valid entry. Scalptastic can also be used on other forex pairs, crypto, indices, though not commodities, funds, stocks, or futures. The indicators Scalptastic incorporates are:
The TRENDLINE, which is based on the Color Hull Moving Average (by SonicTheHedghog ). This trendline switches between green and red to indicate buy/sell (default period 100).
The RIBBON, which is based on the Hull Suite (by InSilico ). Again, this ribbon switches between green and red to indicate buy/sell signals (default period 55, other hardcoded inputs taken from InSilico’s original indicator).
The Heikin Ashi WAVE, which is based on Smoothed Heiken Ashi Candles v1 (by jackvmk ) with default periods of 31 and 1 and wicks made invisible. Again, this indicator switches between green and red to indicate buy/sell signals.
Supertrend (by everget ) with default ATR of 10, Source of (H+L)/2 and ATR Multiplier of 3, taking wicks into account. This shows the Buy/Sell labels.
The built-in Parabolic SAR indicator with default values of Start = 0.02, Increment = 0.02 and Maximum = 0.2. This draws the dots below/above the candles to indicate buy/sell signals.
The method involves waiting for all the above indicators to show the same signal. Scalptastic combines all these indicators into one, along with an EMA (default period of 462, as per the method, though I’ve absolutely no idea why!) and adds a number of enhancements, particularly around trade management levels and ease of use:
DASHBOARD
This gathers the signals from the above indicators to signal when they align. The dashboard also includes other helpful information: the number of bars since the last supertrend signal and since the last time price was in a buy or sell zone, the number of pips to the EMA and the nearest buy and sell zones, as well as the current Average True Range (period 14).
TIME FILTER
During the time filter, the canvas’s background colour changes to green if a buy signal activates or red if a sell signal activates to make the action more obvious. The action is set to OOH (Out of Hours) if outside the filter. The detection window and timezone are set in the settings.
BUY AND SELL ZONES
(adapted from FluidTrades – SMC Lite by pmgjiv )
These have a user-defined timeframe so that 5 min zones can be shown on the 1 min chart. Default values of 10 match the method for sensitivity and size. Waiting to sell in a sell zone and buy in a buy zone increases probability.
FAIR VALUE GAPS
(adapted from spacemanbtc )
Shows FVGs on the chart which may attract price. Increasing the void threshold will highlight the largest gaps and vice versa.
TRADE MANAGEMENT LEVELS
“Line Calculation Mode” offers the options of “Entry at Close”, which places the Entry level at the close of the candle, or “Anchor at Stop Loss”, which positions the Entry, Stop Loss and Take Profit lines based on the stop loss. The method suggests that this stop loss is taken as the closer to price of either the Trendline or Heikin Ashi. This can be configured with the “Base Line Source” – either the closer of the two, or explicitly choose Heikin Ashi or Trendline to anchor the stop loss to. The Entry and Take Profit levels are then calculated from this anchor.
The “Pip Risk” recommended by the method for Forex ( FX:EURUSD ) is 2.2 pips and for indices ( CAPITALCOM:NAS100 ) is 200 points. These can be changed in the settings, or there is the option to use and set an ATR multiplier for levels more appropriate to current candles’ range. “Show Spread Buffer” lines offers the user the ability to set a spread to accommodate the bid/ask spread and draws lines above/below for more realistic take profit and stop loss levels. When scalping on such small price differences, this spread becomes significant so should be taken into consideration.
These price levels will only be drawn during the time filter.
When backtesting the method, these levels for entry, take profit, stop loss and spreads will show how successful (or not) the method can be.
DASHBOARD SETTINGS
"Show Entry Price Markers" shows dotted lines for entry price, stop loss, and take profit. They appear red on a sell signal and green on a buy signal. The entry price is solid and dashed lines show the SL, 1R and 2R take profit. The method recommends aiming for 2R. If "Show Spread Buffer" is checked, these spread buffer lines are also drawn.
"Show Signal Background Color" changes the background to green on an active green signal for that bar and red for an active sell signal.
DISCLAIMER
This script is for informational and educational purposes only. It does not constitute financial, investment, or trading advice. The author is not affiliated with Prop Trading Academy or any other trading academy. Users should backtest the method to understand how it works before using it on a live account. Indicator

Geometric Matrix Intelligence [GMI]Description:
Welcome to the Geometric Matrix Intelligence + Market Structure indicator. This script is a hybrid trading tool that merges advanced structural concepts (BOS/CHoCH) with geometric probability levels and volatility-based trend analysis.
Core Features:
Geometric Probability Levels (GMI):
When a shift in trend direction is detected based on our custom ATR volatility filter, the script automatically projects forward geometric expansion levels (Φ1 to Φ4). These levels are highly versatile:
Reversal Zones: Price often reacts directly at these mathematical levels, creating excellent pivot or bounce areas.
Take Profit (TP) Targets: Once you are in a trade, these expansion lines provide objective, dynamic targets to scale out or close your positions.
Market Structure (BOS / CHoCH):
Automatically identifies structural pivot highs and lows using a fractal length (defaulted to 12).
Plots pending "Candidate" structure lines (in blue by default).
Confirms Break of Structure (BOS) or Change of Character (CHoCH) when the price breaks these pivots, updating dynamically on your chart.
VWAP Integration:
Includes a built-in Volume Weighted Average Price (VWAP) as a primary institutional baseline to help gauge overall intraday or multi-day bias. (Enabled by default).
Interactive Trend Dashboard & Shading:
An on-chart dashboard tracks the immediate trend status, the initial trigger entry price, maximum projected targets (Φ4), and current ATR volatility.
Visual trend shading allows for immediate macro-trend recognition.
How to Use:
Watch for Market Structure shifts (BOS/CHoCH) aligning with the GMI generated levels.
Use the projected Φ levels as primary take profit targets when trading a newly confirmed structural break.
Monitor the VWAP to ensure your structural trades are on the correct side of the institutional volume average.
Disclaimer:
This script is provided for educational and informational purposes only. It is not intended to be a financial advice, investment recommendation, or a signal to buy/sell any asset. Trading in financial markets involves significant risk of loss. Always do your own research and test any indicator or strategy in a paper-trading environment before committing real capital. Indicator

Pre-Trade Checklist Pro v1.1# Pre-Trade Checklist Pro v1.1
## Overview
**Pre-Trade Checklist Pro v1.1** is a visual trading discipline tool designed to help traders verify their trade plan before entering a position. It is **not a trading strategy** and **does not generate buy or sell signals**. Instead, it serves as a structured checklist to encourage consistency, improve risk management, and reduce emotional decision-making.
The indicator provides a clean dashboard where traders can review their planned trade, position sizing, and risk parameters before executing an order.
---
## Features
### ✅ Trade Setup Confirmation
* Confirm whether the trade matches your predefined trading plan.
* Acts as the first checkpoint before considering any trade.
### ✅ Risk Management Dashboard
* Account Capital
* Risk per Trade (%)
* Automatic Risk Amount calculation
### ✅ Position Size Calculator
Automatically calculates the recommended position size based on:
* Account Capital
* Risk Percentage
* Entry Price
* Stop Loss
### ✅ Lot Calculator
Displays the equivalent number of lots based on the user-defined lot size.
### ✅ Automatic Risk-to-Reward Calculation
Instantly calculates the Risk:Reward ratio using:
* Entry Price
* Stop Loss
* Target Price
This helps ensure every trade meets your minimum reward expectations.
### ✅ Long & Short Trade Support
Supports both:
* Long Trades
* Short Trades
with direction-aware calculations.
### ✅ Trade Discipline Check
Before taking a trade, confirm whether the decision is based on:
* **SYSTEM**
* **EMOTION**
This simple reminder reinforces disciplined execution.
### ✅ Trading Score
The indicator evaluates your checklist and provides a completion score, helping you verify whether all required conditions have been met.
### ✅ Ready to Trade Status
Displays a clear visual status:
* **READY** – All checklist conditions satisfied.
* **NOT READY** – One or more conditions require attention.
---
## Intended Use
This indicator is designed to be used **before placing a trade**.
It is suitable for:
* Intraday Trading
* Swing Trading
* Futures
* Options
* Stocks
* Forex
* Cryptocurrency
The dashboard can be used alongside any trading methodology, including price action, market profile, ICT, Smart Money Concepts (SMC), Wyckoff, Elliott Wave, Neo Wave, or indicator-based systems.
---
## What This Indicator Does NOT Do
* Does **not** generate buy or sell signals.
* Does **not** execute trades.
* Does **not** repaint.
* Does **not** backtest strategies.
* Does **not** predict market direction.
Its sole purpose is to promote disciplined trade execution.
---
## Best Practices
Before every trade, ask yourself:
* Does this setup match my trading plan?
* Is my position size based on my predefined risk?
* Is my stop loss correctly placed?
* Is my target realistic?
* Is my Risk:Reward acceptable?
* Am I trading because my system says so, or because of emotion?
If the answer to any of these questions is "No," reconsider the trade before executing it.
---
## Version 1.1
Included Features:
* Professional dashboard
* Automatic position size calculation
* Automatic lot calculation
* Automatic Risk:Reward calculation
* Risk amount calculation
* Long/Short support
* Trading readiness score
* Ready/Not Ready status
---
## Disclaimer
This indicator is an educational and trade-planning tool only. It does not provide financial advice or guarantee profitable trades. Trading in financial markets involves substantial risk. Always perform your own analysis and use appropriate risk management before making any trading decisions.
Indicator

Days of the Week Days of the Week Separators
This indicator provides a clean and customisable way to distinguish each trading day on an intraday chart. It places a vertical separator at the beginning of every enabled day and displays the corresponding weekday label in the centre of that day’s trading period.The day label is positioned above the developing daily high and automatically moves higher if a new high is established. This keeps the label clear of price action while maintaining a consistent and uncluttered chart layout.
The indicator can help traders:
• Distinguish individual trading days quickly
• Review how price developed throughout the trading week
• Identify daily market structure and directional progression
• Analyse day-to-day changes in volatility and momentum
• Locate the beginning of each new trading day
• Maintain a clearer chart when studying intraday price action
Default configuration
• Days displayed: Monday to Friday
• Day boundary: 00:00
• Time zone: Europe/London
• Separator style: Dashed
• Separator width: 1
• Label position: Halfway through each day
• Label style: Centred rectangle
• Display timeframes: Intraday charts only
The Europe/London time-zone setting automatically follows changes between Greenwich Mean Time and British Summer Time. The day-start hour and minute can also be changed to accommodate alternative trading-day definitions or different market methodologies.
Customisable settings
Users can:
• Enable or disable individual weekdays
• Change the day-start hour and minute
• Select a preferred time zone
• Show or hide the vertical separators
• Change the separator colour, width and style
• Choose between dashed, dotted and solid lines
• Show or hide the weekday labels
• Adjust the horizontal position of the labels
• Change the label colour, text colour, opacity and size
• Adjust the distance between each label and its daily high
• Enable or disable the restriction for daily and higher timeframes
Label behaviour
Each weekday label is positioned according to the selected number of hours after the beginning of the trading day. The default value of 12 places it halfway between the two daily separators. The label’s vertical position is calculated using the developing daily high and an ATR-based offset. If price establishes a new high during the day, the label moves upward automatically to remain above the price action. The offset can be increased or reduced from the settings.
Timeframe behaviour
The indicator is designed specifically for intraday analysis. By default, it automatically hides on the 1D timeframe and above, as daily separators provide limited value on daily, weekly and monthly charts. This restriction can be disabled from the settings if required.
Important information
On instruments with continuous or highly liquid intraday trading, the separator should appear at the selected day-start time. If no candle is available at that exact time because of a market closure, trading break or missing data, the separator will appear on the first available candle belonging to the new trading day.
This indicator is intended as a chart-organisation and market-context tool. It does not generate independent entry or exit signals. Indicator

ChessPlay real, full games of Chess against the computer , live on your chart. The first playable chess on PulseWire.
🟩 HIGHLIGHTS
⭐ Genuine independent gameplay - infinite different games possible.
⭐ The computer ranked over 1200 at Blitz across 100+ rated games on a popular online chess website.
⭐ Optional trash talk from the computer.
⭐ Play as White or Black, with the board flipped so your pieces sit at the bottom.
⭐ The computer thinks and responds fast.
⭐ Only legal moves are allowed.
⭐ The computer knows all the rules of chess including en passant, castling, check, checkmate, and the threefold repetition draw.
⭐ The to and from squares of the most recent move from both sides are highlighted on the board.
⭐ Captured pieces are displayed; just-captured pieces are highlighted.
⭐ The colour scheme adjusts to light or dark chart backgrounds.
⭐ The computer sometimes resigns if it's about to lose, and sometimes lets you complete the win 🎉
🟩 SET UP THE FIRST GAME
Add the script to a chart with some history (it warns you if there's not enough); any timeframe, doesn't matter if the market is open or not.
The script opens on a separate pane below the main chart, appearing cut-off.
1. Don't panic.
2. Double-click the chart background to maximise the Chess pane and hide your chart (double-click again to get your chart back).
3. As an alternative, you can click the three dots next to the Chess script name and choose Move to > Existing pane above and then Hide the chart symbol.
4. The default settings should be good to get you started playing, although you might need to adjust the square height and width so that the chess board looks nicely square on your particular chart.
🟩 PLAY THE GAME
Let's play.
1. Open the indicator Settings dialog and move it to the side so you can see the board.
2. Type your move into the Moves text field. Use coordinate notation: `e2e4`, `g1f3`, `e7e8q`, etc.
3. Don't click OK , 'cos then you'll have to re-open the Settings. Instead, hit Enter . This makes the script pick up the changed text input.
4. The computer thinks a little (on my system, almost instantly) and then announces its move. It will say something like `Add my move d7d5 to the Moves input field`. The table cell goes orange.
5. Type that move into the Moves input field and hit Enter . The cell's orange colour disappears, and it tells you that it's your move. If you have trash talk on, it might comment about your move or its move.
If you enter an illegal move, the computer will tell you. It will try to help you if it recognises what you might have meant.
If you enter a move wrong, you can just delete it and press Enter and the game resumes from that point.
To save a game or show it to someone else with the same Chess script loaded, just copy the text out of the Moves input field (you'll need Replies: Deterministic set to ensure it makes the same next move).
Have fun! The computer will joke around with you even as it beats you (or you beat it).
🟩 RELOAD THE CHART TO PLAY THE NEXT GAME
To ensure that the computer can (if it wants) play different moves against the same position next game, leave Replies set on Random, and save and reload the board in between games.
Note that moves that are already entered are not changed. Only a pending move - one that the computer announced but you haven't yet typed in - can change if you reload the chart or change input values, and only if Replies: Random is selected in the settings.
🟩 ALL THE SETTINGS
Here are all the settings and what they do.
Moves : Holds your moves and the computer's moves. You can separate moves with a comma or a space or a new line. Only a new line, or some other change to the settings, triggers a script refresh and another move.
Play as : Choose who you want to play as. The board flips so that your pieces are always closest to you.
Thinking : Choose Deep so that the computer uses all of its tiny brain against you. Or Quick if you feel that it's responding too slowly or you run into timeout errors.
Replies : Choose Random so that the computer can play different moves against the same position next game (requires a chart reload to clear cache). It often still plays its favourite move but if it has two favourites, it can also choose between them. Choose Deterministic so that the computer always plays the same move given the same position (move sequence), even on a different chart, tab, or after a reload. This is useful for saving games or playing through saved games. For casual play, choose Random . Note : If you change any inputs to a new combination, the computer might choose a different reply if Random is selected.
Trash Talk : Enable this setting so the computer can misquote pop culture references at you.
Board : Move the board to the left, right, or centre.
Piece size : Make the pieces more bigger or smallerer.
Square width, height : Adjust the percentage sizes so that the squares look, well, square. The right ratio depends on your monitor.
Calculated Bars : This setting is precautionary to prevent any slowdown on long charts. Leave this at the default.
🟩 CREDITS
Thanks to @The_Peaceful_Lizard for discussions all that time ago about whether gameplay is possible in Pine.
Thanks to my beta testers for valuable usability feedback.
🟩 HOW TO CODE GAMEPLAY IN PINE
Turn-based gameplay as we know it is almost impossible. To play a game you need to make a move. So you need to tell the script something. All the possible ways to interact with a script are:
- Changing an input value (including interactive `input.time()` and `input.price()` lines).
- A value output from another script changing, if the consuming script reads it using `input.source()`.
- Scrolling or zooming the chart, if the script uses `chart.left_visible_bar_time()` or `chart.right_visible_bar_time()`.
- Changing the chart symbol or timeframe.
The latter two are not informative enough to build a game move from. And in any case, any change from this list reloads the script.
What happens when the script reloads? It forgets everything . This is actually a good thing, and by design, because a chart indicator needs to read from bar zero again if any of its inputs change, so that it can do all its calculations again and make sure they are accurate with the new settings. However, it means that there is nowhere to keep the game state :
- All variables reset, even `var` and `varip` ones.
- All drawings, plots, shapes, etc disappear.
- Pine cannot write to any external data source.
- Logs start from zero.
The only thing that persists is the most recent input values.
This means that the entire game state must be deterministically derivable from the values of inputs. Practically speaking, you must enter both your move and the computer's reply into inputs. That's the trick: the board is not stored between edits, it is re-derived from the move record (the computer checks ALL moves again, every move, that they are legal).
This pattern is actually already demonstrated in the only example of true gameplay in Pine that I was able to find: "Tic Tac Toe (For Fun)" by the Wizard @LonesomeTheBlue
🟩 HOW TO MAKE CHESS POSSIBLE IN PINE
The problem with chess is that there are so many possible moves that trying to foresee the responses to your move and the responses to that move and so on quickly becomes computationally impossible. Especially in a lightweight scripting language like Pine, which has limits on how long a script can take to run a loop or perform all its calculations.
The main thing you need to do is narrow it all down . So in building this thing from scratch, I started with some heuristics. What are some patterns when you play chess? If you're in check, you have to get out. If you're attacked, you defend. If you still have minor pieces on the back rank, you should probly get them out. And so on.
I quickly realised that not only did these rules hugely narrow down the number of things you need to calculate, but they stack in order of importance . The number one rule, for example, is: if you can win the game this move, you should. Nothing else can go before that. Developing your pieces, by contrast, comes somewhere at the back of the queue. And the others fall in line in between.
Another thing that comes fairly cheap is knowing the openings . I was always too lazy to memorise chess openings, but that's not a problem for a computer. I also figured that nailing the opening would put my engine in a good place for the midgame, and maybe cover up some weaknesses. Many of the rules are pitched slightly aggressive for the same reason 😆
🟩 MY LADDER
When you put a bunch of rules in priority order, you get a ladder .
SPOILER: If you want to enjoy a fresh game against the script, stop reading and play. Going further will give you insight into how it thinks (or avoids thinking) and allow you to beat it more easily.
Here's my chess ladder:
1. Mate in one .
2. Opening book .
3. Avoid checkmate .
4. Defence .
5. Win material .
6. Safe check .
7. Exchange when ahead .
8. Endgame .
9. Develop .
10. Any other safe move .
When you follow this ladder in order, it turns out, it looks quite a lot like you're playing chess. After I'd finished the script I found out that some very early chess engines did something similar (they likely had far weaker performance than mine), but modern ones function mainly by crunching predictions and even the most handicapped Stockfish engine is still stronger than this script.
On top of the ladder, you do need to layer in a little bit of actual looking ahead, or the engine makes terrible blunders. And you need to constrain that lookahead in turn with its own heuristics, so that you only map out a few moves and not an exponential number.
And there is a lot, lot more after that, like how we value pieces (we will deliberately lose material in an exchange when we're up big, because it hurts our opponent more), how we avoid forks, how we avoid repeating the same moves, and so on.
Still this is all smoke and mirrors - the engine doesn't really understand what makes a good position, or a good attack, or an elegant defence. It just does stuff.
🟩 HOW THIS SCRIPT WORKS END TO END
Here's what happens when you type a move and hit Enter:
Parse (bar zero). The input move text becomes board coordinates (via the ChessCore library). The tidied-up record also produces the random seed (via ChessAI), and the opening book (ChessBook) and the trash-talk banks (ChessTalk) get built.
Replay (one bar per move). For each move in the record, in order: generate every legal move in the current position, check that the next typed move is one of them, and if so apply it to the board. Along the way it collects captured pieces, watches for Game Over, and takes a fingerprint of each position so it can spot a threefold repetition. All ChessCore.
Prepare (one bar). If it's now the computer's turn: generate ALL its legal moves (ChessCore), note how well defended each move's landing square is, and flag moves that weaken the king's cover or just undo the previous move (ChessAI).
Foresee (up to three bars per candidate move). Score every potential move by how its story ends, in material: the opponent's best captures played all the way down the exchange, his checks, his quiet threats. The ChessAI library plays the stories out on ChessCore scratch boards.
The ladder (one rule per bar). Try the ten rules top down. The first that fires chooses the move. The scores from the foresee veto the doomed candidates in every rule, and break ties in some. ChessAI does all this, and rule 2 reads the ChessBook openings.
Done. The live bar draws the board and the status row announces the computer's move for you to type in. The live bar computes nothing - it only reads what the historical bars decided. The main Chess script draws, and any one-liners came from ChessTalk's banks.
Then you add its move to yours, hit Enter, and the entire thing runs again from bar zero: approves every past move, rebuilds the whole board, and chooses the next reply.
🟩 ARCHITECTURAL LESSONS
There are some things we did here that apply also to non-chess Pine scripts.
✨ "Library-first" design
Every large chunk was designed from the beginning to be its own library:
- Chess is the user-facing script that imports all the libraries.
- ChessAI decides the next move.
- ChessBook holds the openings.
- ChessCore does rules, the board, and what's legal.
- ChessTalk stores the trash talk.
Some libraries only hold data, and this split of calculations and data allows us to, for example, add more talk lines without republishing other libraries.
The main script and libraries together total ~5,000 lines, far too much to be manageable for a single script. Using libraries keeps everything organised and makes such a complex script possible.
Library-first design keeps you in control, as opposed to being forced to refactor functions into libraries when a script gets too big.
✨ Split work across bars
We do the work across historical bars, one small step per bar, so the live bar only has to draw the finished board. This prevents any one bar exceeding any timeouts. The ladder architecture makes this quite natural. For robustness, each stage declares its own completion, rather than using a hardcoded number of bars. We predict how many bars we'll need and warn if there's not enough. This pattern can help scripts with heavy calculations stay within budget.
✨ Draw once
We do all the calculations during historical bars and draw the board only on the last bar. In general, separating calculations from drawing is a good idea.
✨ Seeded randomness
If you want a random result (technically, pseudorandom) in Pine you can use `math.random()`. This returns a different number each time. We use random numbers to choose between equally promising options for the computer's moves.
However, sometimes you want a reproducible random result. You want the same random number each time the script runs. Fortunately, `math.random()` can take a `seed` parameter, and if this seed is the same, then the sequence of random numbers is the same.
For chess, the computer's choice of move must remain stable and not change to something else on the next tick of a realtime bar (seeing this happen in testing was quite a surprise). So we derive a seed from the move record . This means that for any given game, the computer's move is both random and repeatable. This helps a lot with testing.
For real games though, we want the user to be able to play the same moves next game and get a different reply from the computer (potentially; remember the computer can't remember what it did in any previous game). So for this reason, if Replies is set to Random, we also mix the script's loading time into the random seed (and each new move loads the script again). Reloading the chart now gives a new stable random sequence even for the same moves.
Understanding seeded randomness can be necessary for some scripts to use variety properly.
✨ Objects and library hierarchy
Libraries can import each other, but not in a circular way. Our lowest-level library declares object types, for example, for moves, but doesn't put data in them; the higher libraries do that.
When a more foundational library needs data that a higher-level library creates, a good pattern is for the lower library to create an object with fields that the higher library fills in. This avoids having to maintain parallel arrays so they don't get out of synch. Indicator

Indicator
