Alea Magna Traders choch, bosThis script is a lightweight, custom-built Smart Money Concepts (SMC) Market Structure Indicator written in Pine Script v6 for PulseWire.
It tracks real-time market structure shifts on your chart by identifying and plotting two core price action events: CHoCH (Change of Character) and BoS (Break of Structure).
Core Mechanics & Features
Dual-Timeframe/Sensitivity Structure Tracking:
Internal Structure (Micro): Tracks fast, short-term structural breaks using a smaller pivot sensitivity (default: 5). Ideal for finding lower-timeframe entries.
External Structure (Macro): Tracks major, high-timeframe structural pivots using a higher sensitivity (default: 25). Ideal for determining overall trend direction.
Market Structure Mapping:
CHoCH (Change of Character): Detects when price breaks the previous structure in the opposite direction of the current trend, signaling a potential trend reversal.
BoS (Break of Structure): Detects when price breaks structure in the same direction as the current trend, signaling trend continuation.
Clean Visual Overlay:
Draws horizontal dashed lines connecting the original pivot level to the breakout point.
Places color-coded labels (Bullish / Bearish) directly above or below the breakout candle.
Advanced Data Management:
Uses Pine Script v6 map.new() data structures to dynamically track swing high/low coordinates (upaxis, dnaxis, direction states) without lagging the chart.
Employs custom array slicing to calculate swing highs and lows independently.
Customizability & Filtering:
Allows traders to toggle Internal and External structures on or off independently.
Includes pattern filters to show All, BoS-only, or CHoCH-only markers.
Full control over Bullish and Bearish colors. Indicator

Indicator

Indicator

MSNR Bias HTFAKFX Storyline Alignment Dashboard (Multi-Timeframe Analysis)
The AKFX Storyline Alignment Dashboard is a multi-timeframe analysis tool designed to help traders quickly determine market bias and alignment across higher and lower timeframes using the concept of Market Storylines.
Instead of trading off single-timeframe signals, this indicator evaluates structural price action on higher timeframes (HTF) and confirms directional continuation via line-chart breakouts on the lower timeframe (LTF).
🟢 How the Storyline Logic Works
A Storyline is defined as the price movement initiated when price interacts with a higher timeframe zone and receives confirmation from the timeframe directly below it.
Weekly Storyline (Macro Bias):
Checks if Current Market Price (CMP) is reacting at a Weekly Support or Resistance zone.
Confirmed when a Daily line-chart breakout occurs (a Daily candle body closes past the local Daily swing high/low).
Daily Storyline (Intermediate Bias):
Checks if CMP is reacting at a Daily Support or Resistance zone.
Confirmed when a 4-Hour (H4) line-chart breakout occurs (an H4 candle body closes past the local H4 swing high/low).
Bias Alignment Status:
ALIGNED (BULLISH 🟢): Both Weekly and Daily storylines are confirmed Bullish. High-probability environment to look for Buy setups.
ALIGNED (BEARISH 🔴): Both Weekly and Daily storylines are confirmed Bearish. High-probability environment to look for Sell setups.
CONFLICTED 🔴: Weekly and Daily storylines point in opposite directions. Exercise caution or wait for alignment.
WAITING FOR SETUP ⚪: One or both storylines are in a neutral/unconfirmed state.
🎨 Key Customization Features
Customizable Dashboard Colors: Configure background fill, text, border, and header colors via the indicator settings.
Default High-Contrast Theme: Pre-styled with a dark gray fill, crisp black text, and a solid black border for maximum readability on any chart background.
Optional Status Highlighting: Includes a toggle (Use Green/Red Status Colors instead of Solid Gray) to instantly highlight alignment with green/red status boxes.
💡 How to Use in Your Trading Strategy
Add the dashboard to your preferred asset (Forex, Crypto, Indices, Stocks).
Check the Bias Alignment Status row:
When ALIGNED: Look for pullback entries at fresh Support/Resistance zones on your execution timeframe (e.g., H1 or 15m) in the direction of the alignment.
When CONFLICTED or WAITING: Sit on your hands or restrict trades to quick scalps, as higher timeframe momentum is divided. Indicator

GCGrid Psych Levels NomadaScalper# GCGrid, Psych Levels (NomadaScalper)
**Dual absolute grid of psychological levels for gold: every $100 and every $250, drawn as reaction zones instead of single lines.**
## What this is
Gold trades in the thousands, and round prices carry real weight up there. Whole hundreds like 4,100 or 4,300, and the bigger quarter thousand steps like 4,250 or 4,500, are the numbers people keep in their heads, park orders around and quote to each other. GCGrid draws that map for you and then stays out of the way.
Everything on the chart is absolute. A level is a multiple of 100 or a multiple of 250, and that is the whole definition. Nothing comes from a lookback window, a pivot search, a moving average or a fitted parameter. The consequence matters more than it sounds: the same levels appear on the 1 minute and on the daily, on any broker feed, on any date range, and they never shift after a candle closes.
I built this because I got tired of redrawing the same hundreds by hand every session, and because I wanted the two scales visible at once without the chart turning into a ladder of identical lines.
## How the grid is built
The script takes the current close and walks outward in both directions on each grid. You choose how many levels you want above and below price for each layer, up to four on each side, so the chart only ever shows the neighbourhood you are actually trading in.
Each level is drawn as a band rather than a line. You set the half width in points, so a half width of 5 on the $100 grid means 4,300 is shown as a zone from 4,295 to 4,305. Price rarely turns exactly on a round number, it turns near it, and a band says that honestly where a hairline pretends otherwise. If you still want the exact price marked, the centreline option puts a solid hairline at the level itself inside the band.
There is an opacity hierarchy so the chart reads at a glance. The nearest level on each side is drawn strongest and outer levels fade as they get further away. The $250 layer uses a wider, fainter body with a sharper edge, since a major level should announce itself by its boundary rather than by its mass, and it is painted underneath the $100 layer so the two never fight.
Every multiple of 500 belongs to both grids at the same time. By default those confluent levels are drawn once, as the wider $250 band, and flagged with a gold star chip so you can see instantly that two scales agree there. You can switch that off and have both bands drawn nested if you prefer to see the structure literally.
FastZone is the last piece of geometry: a dashed line at the 50 percent midpoint between consecutive $100 levels. It is purely a display layer and it never feeds anything else in the script. It exists because the halfway point of a hundred is where a lot of intraday rotation dies.
## The reaction markers
This is the part I spent the most time on, and the part where I wanted no ambiguity at all.
A marker is classified by the **direction of approach**, not by where the candle closes. If the previous bar closed above a zone and the current bar reaches down into it, that is marked as a Possible Support test. If the previous bar closed below a zone and the current bar reaches up into it, that is a Possible Resistance test. Falling into a level makes it support, rising into it makes it resistance. That is the whole rule, and there is nothing to tune inside it.
Three design choices keep it honest:
Markers are evaluated on confirmed bars only. Nothing appears and vanishes while a candle is still forming, and nothing repaints when you reload the chart.
The marker fires on arrival, on the first closed bar that reaches the zone from that side. One marker per level per episode, and that level only becomes eligible again once price moves more than half a grid step away from it.
The marker stays on the chart even if price later slices straight through. It flags that a test happened. It says nothing about whether the test held, and the script does not measure, store or imply any success rate anywhere.
Marker distance from the zone edge is scaled by ATR(14), so the labels sit off the candles whether you are on a 1 minute chart or a weekly one. You can show arrows, labels, both, or cap how many recent events stay visible.
## The dashboard
A compact panel that answers the questions you would otherwise squint at the chart for: which layers are active and how many levels each is showing, how many confluent levels are currently in view, the nearest level above and below the close with the signed distance in dollars to each, and the full span of what is currently drawn. Position and size are configurable, and it can be switched off entirely.
## How I use it
As context, not as a trigger. The grid tells me where the obvious prices are before the session starts, the bands tell me how much room a level realistically deserves, the star tells me which levels have two scales behind them, and the markers give me a clean record of which levels price has already come to test today and from which side. What I do with that information is a separate decision that this script does not make for me.
A practical note on scope: the 100 and 250 steps are fixed constants, chosen for gold, where price sits in the four figure range. On instruments priced very differently those steps will not be meaningful, and they are deliberately not user editable because making them editable would turn a specific idea into a generic round number tool.
## Settings summary
**Grid $100:** levels above, levels below, band half width, level labels.
**Grid $250:** on or off, levels above, levels below, band half width, level labels, duplicate removal for confluent levels.
**Level styling:** centreline inside the bands.
**Reaction markers:** on or off, style (arrow plus label, label only, arrow only), how many recent events to keep, show the level price in the marker text, marker gap as a multiple of ATR, and whether the $250 layer is marked as well.
**FastZone:** show the 50 percent midpoints, show their labels.
**Colors:** resistance, support and FastZone tints, all tuned for a light chart background by default.
**UI:** dashboard on or off, panel position, panel size.
## Credits and disclaimer
Original work by NomadaScalper. This is the public evolution of my private Key100 and KeyPoint250 scripts, merged into a single dual grid engine with the approach based marker logic added. Written in Pine Script v6.
This indicator is a charting and context tool. It does not produce buy or sell signals, it does not claim or measure any win rate, and it is not financial advice. Anything you trade is your own decision and your own risk. Indicator

Indicator

Chronological Elliott Wave Tracker With ProjectionsTired of automated Elliott Wave scripts that plot Wave 5 on a dip or scramble the sequence during consolidation?
Standard zigzag indicators often fail in complex market environments because they hunt for price extremes in a vacuum. They ignore the strict chronological timeline required by Elliott Wave Theory, leading to broken counts and overlapping labels.
This indicator solves that problem by utilizing a Strict Alternating ZigZag Engine. It tracks the actual chronological path of the market (High ➔ Low ➔ High ➔ Low) and anchors the motive (1-5) and corrective (A-B-C) labels exactly where they belong, ensuring a structurally accurate map of the price action.
Key Features
True Chronological Wave Mapping: Forces impulse waves (1, 3, 5) strictly to peaks and corrective waves (2, 4) strictly to dips (in a bullish setup). The internal logic respects the timeline of the chart.
Dynamic Wedge Detection: Automatically scans a macro lookback window to find the absolute structural extremes, drawing a clean, converging wedge pattern based on historical anchors.
Actionable Zones: Automatically generates a shaded Buy Zone (accumulation area based on recent corrective dips) and a Bull Case breakout line for quick invalidation/validation reference.
Adaptive Fibonacci Targets: Projects Wave III (1.618 extension) and Wave IV (0.382 retracement) targets based on the actual detected sub-wave structure, rather than random wicks.
Tick-Safe Memory Management: Built with advanced array cleanup to completely bypass the notorious PulseWire "label limit" bug. Your counts will never flicker or disappear on the live tick.
How to Use & Customize
Pivot Sensitivity: The core of the indicator. Lower this number (e.g., 3 to 5) to catch tighter, more frequent waves on higher timeframes (like the Daily chart). Raise it (e.g., 10 to 15) to ignore noise and only map major macro swings.
Bullish vs. Bearish Toggle: By default, the script assumes you are mapping a bullish motive phase (where 1, 3, and 5 are peaks). If you are mapping a downward impulse, simply uncheck the "Bullish Impulse" box in the settings to perfectly invert the structure.
Label Distance (ATR): If the counts are clashing with long candle wicks, adjust the ATR multiplier in the settings to push the labels further away from the price action.
Disclaimer: This script is designed for structural analysis and educational purposes. Automated Elliott Wave counting is highly complex, and this tool is best used as a structural baseline to assist your own manual charting, not as a standalone financial signal. Indicator

Indicator

ATH Market Position Suite 3.0Publication title
ATH Market Position Suite 3.0
Short description
ATH Market Position Suite 3.0 visualizes where an asset trades within multiple historical price ranges. It combines configurable percentage levels, multi-horizon range analysis, drawdowns, relative performance, a descriptive Market Position Score, market-zone classification, a dashboard, and customizable alerts.
English description
Overview
ATH Market Position Suite 3.0 is a historical price-position analysis tool designed to show where an asset currently trades within several relevant market ranges.
Instead of interpreting the current price in isolation, the indicator compares it with:
its available all-time high and low,
its 52-week range,
its 3-year range,
its 5-year range,
a configurable manual range,
and the performance of a selected benchmark.
The active reference range is divided into horizontal percentage levels from 0% to 100%. A dashboard then summarizes the asset’s current position, drawdowns, relative performance, historical range status, and composite Market Position Score.
The indicator is intended for long-term investors, swing traders, position traders, portfolio analysis, and market-cycle observation.
It does not generate automatic buy or sell signals.
Core concept
Each market-position value describes where the current price is located between a defined lower and upper boundary.
A position near 100% means the asset is trading close to the upper boundary of the selected range.
A position near 0% means the asset is trading close to the lower boundary.
For example, in the 52-week mode:
the 52-week low represents 0%,
the 52-week high represents 100%,
and the current price is placed proportionally between those values.
In the default All-Time High mode, the available all-time high represents 100%, while zero price represents 0%.
In the ATH-ATL Range mode, the available all-time low represents 0% and the available all-time high represents 100%.
Reference modes
All-Time High
Uses the highest price available to the script as the 100% reference.
The lower boundary is zero.
This mode is useful for evaluating how much of the asset’s maximum historical price has been retained.
ATH-ATL Range
Uses the full available historical range:
available all-time low = 0%
available all-time high = 100%
This mode shows the current price position within the asset’s full available trading history.
52-Week Range
Uses the highest and lowest daily prices from approximately 252 trading days.
This mode is useful for evaluating the current position within the most recent annual range.
3-Year Range
Uses the highest and lowest daily prices from approximately 756 trading days.
This provides a medium-term historical perspective.
5-Year Range
Uses the highest and lowest daily prices from approximately 1,260 trading days.
This mode is intended for longer-term market-cycle analysis.
Manual Range
Allows the user to define both the upper and lower boundaries manually.
This can be useful for analyzing:
a previous market cycle,
a major historical swing,
a custom valuation range,
a fixed reference high,
or a specific technical price structure.
Percentage levels
The active reference range can be divided into regular percentage intervals.
Available intervals include:
1%
2%
4%
5%
10%
20%
25%
50%
A separate Favorite Levels mode displays a selected set of important levels:
100%
95%
90%
80%
75%
70%
60%
50%
40%
30%
25%
20%
10%
5%
0%
Major levels are displayed with increased visual emphasis.
Labels can optionally show both the percentage value and the corresponding price.
Market zones
The indicator divides the active range into descriptive market zones:
90-100%: near the upper boundary
70-90%: upper market range
50-70%: middle-upper range
30-50%: lower-middle range
0-30%: lower market range
The zone colors are fully configurable.
These zones describe historical price location only. They do not determine whether an asset is fundamentally overvalued or undervalued.
Multi-horizon analysis
The dashboard compares the asset across several historical horizons:
52 weeks
3 years
5 years
available all-time range
For each horizon, the indicator displays:
current range position,
drawdown from the corresponding high,
and a descriptive range status.
This helps reveal whether the asset is positioned similarly across short-, medium-, and long-term history.
For example, an asset may trade near its 52-week high while still remaining far below its 5-year high.
Drawdown analysis
Drawdown is calculated as the percentage distance between the current price and the relevant historical high.
A value of:
0% means the price is at the reference high,
-10% means the price is 10% below the reference high,
-40% means the price is 40% below the reference high.
The dashboard includes drawdowns for:
52 weeks,
3 years,
5 years,
the available all-time high,
and the selected primary reference range.
Market Position Score
The Market Position Score is a descriptive composite value from 0 to 100.
Its base calculation combines:
35% weighting for the 52-week position,
25% weighting for the 3-year position,
20% weighting for the 5-year position,
20% weighting for the available all-time range position.
An optional and limited adjustment is then applied based on relative performance versus the selected benchmark.
The adjustment is capped by the user-defined maximum, preventing benchmark performance from dominating the score.
A higher score means the asset is positioned closer to the upper portions of its historical ranges.
A lower score means the asset is positioned closer to the lower portions.
The Market Position Score is:
not a probability,
not a valuation model,
not a forecast,
not a momentum signal,
and not a recommendation to buy or sell.
It is a compact summary of historical price location and relative performance.
Relative performance
The indicator compares the asset’s percentage return with the return of a selected benchmark over a configurable number of trading days.
The default benchmark is:
AMEX:SPY
The relative-performance value is calculated as:
asset return minus benchmark return
A positive value means the asset outperformed the benchmark during the selected period.
A negative value means the asset underperformed.
Users should select a benchmark that is appropriate for the asset being analyzed.
Examples may include:
a broad-market ETF,
a regional equity index,
a sector ETF,
or another relevant comparison instrument.
Relative performance is not the same as absolute performance. An asset can decline while still outperforming a benchmark that declined more sharply.
Dashboard
The dashboard provides a compact summary of the current market structure.
It includes:
symbol and chart timeframe,
52-week position and drawdown,
3-year position and drawdown,
5-year position and drawdown,
available all-time position and drawdown,
Market Position Score,
active primary reference range,
current price,
available all-time high,
available all-time low,
relative performance versus the selected benchmark,
recovery from the available all-time low,
distance from the 50% midpoint,
and descriptive market-status labels.
The dashboard position and text size can be configured.
Alerts
The script provides alert conditions for:
primary position crossing the selected alert level upward,
primary position crossing the selected alert level downward,
Market Position Score crossing the selected score level upward,
Market Position Score crossing the selected score level downward,
entering the 90-100% zone,
leaving the 90-100% zone,
entering the lower range below 30%,
relative performance crossing above zero,
relative performance crossing below zero,
a new available all-time high,
and a new available all-time low.
After adding the indicator to a chart, alerts must be created manually through PulseWire’s alert dialog.
Suggested use cases
The indicator may be used for:
long-term market-position analysis,
correction-depth measurement,
historical range comparison,
portfolio monitoring,
market-cycle observation,
benchmark comparison,
identifying differences between short- and long-term price position,
and monitoring predefined percentage thresholds.
It is best used together with additional context such as:
trend structure,
volatility,
volume,
market fundamentals,
risk management,
and the characteristics of the analyzed asset.
Interpretation examples
A high 52-week position combined with a low 5-year position may indicate that the asset is strong over the most recent year but remains below a longer-term historical high.
A high position across all horizons shows that the asset is trading close to the upper areas of both recent and long-term ranges.
A low position across all horizons shows that the asset is trading near the lower areas of its historical ranges.
Positive relative performance indicates strength versus the selected benchmark, but does not necessarily mean that the asset itself produced a positive return.
Important limitations
The available all-time high and all-time low depend on the historical data PulseWire provides to the script.
They may therefore differ from the absolute historical high or low when:
the chart contains limited history,
the symbol has changed exchange or data provider,
earlier price history is unavailable,
the instrument has been adjusted,
or the data feed differs from another source.
The 52-week, 3-year, and 5-year ranges use daily data and approximate trading-year lengths of:
252 trading days,
756 trading days,
1,260 trading days.
These values are practical approximations and do not represent exact calendar periods for every market.
Assets with insufficient history may display n/a for some calculations.
On logarithmic charts, percentage levels may not appear equally spaced. A linear price scale provides a more direct visual representation of the calculated price intervals.
The indicator does not use future data or intentional lookahead logic.
Recommended chart setup
For a clear presentation:
use a standard candlestick or bar chart,
keep additional indicators to a minimum,
choose a reference mode appropriate for the analysis,
select a relevant benchmark,
and adjust the number of visible levels according to the chart timeframe.
For long-term analysis, the Favorite Levels mode often provides a cleaner chart.
Disclaimer
This indicator is provided for informational and analytical purposes only.
It does not constitute financial, investment, trading, tax, or legal advice.
Historical price position does not predict future performance. A low historical position does not automatically indicate value, and a high historical position does not automatically indicate excessive valuation.
All trading and investment decisions remain the sole responsibility of the user.
Version 3.0
New features include:
multi-horizon market-position analysis,
52-week, 3-year, 5-year, and all-time range comparison,
composite Market Position Score,
configurable benchmark comparison,
relative-performance analysis,
expanded drawdown statistics,
market-status classification,
improved dashboard,
manual range mode,
configurable percentage levels,
Favorite Levels mode,
market-zone visualization,
and extended alert conditions.
Deutsche Beschreibung
Überblick
ATH Market Position Suite 3.0 zeigt, an welcher Stelle sich der aktuelle Kurs innerhalb verschiedener historischer Preisspannen befindet.
Der Indikator analysiert:
das verfügbare Allzeithoch und Allzeittief,
die 52-Wochen-Spanne,
die 3-Jahres-Spanne,
die 5-Jahres-Spanne,
einen frei definierbaren manuellen Bereich,
sowie die relative Wertentwicklung gegenüber einem ausgewählten Vergleichswert.
Der aktive Referenzbereich wird in horizontale Prozentstufen von 0% bis 100% unterteilt. Ein Dashboard fasst Marktposition, Drawdowns, relative Performance, historischen Bereichsstatus und den zusammengesetzten Market Position Score zusammen.
Der Indikator richtet sich an langfristige Investoren, Swing-Trader, Positions-Trader und Nutzer, die Marktzyklen oder Portfolios beobachten möchten.
Er erzeugt keine automatischen Kauf- oder Verkaufssignale.
Grundprinzip
Jeder Marktpositionswert beschreibt, wo der aktuelle Kurs zwischen einer unteren und einer oberen Grenze liegt.
Eine Position nahe 100% bedeutet, dass der Kurs in der Nähe der oberen Grenze handelt.
Eine Position nahe 0% bedeutet, dass der Kurs in der Nähe der unteren Grenze liegt.
Im 52-Wochen-Modus entspricht beispielsweise:
das 52-Wochen-Tief dem 0%-Level,
das 52-Wochen-Hoch dem 100%-Level,
und der aktuelle Kurs wird proportional dazwischen eingeordnet.
Im Standardmodus All-Time High entspricht das verfügbare Allzeithoch 100%, während der Nullpreis als 0% verwendet wird.
Im Modus ATH-ATL Range entspricht das verfügbare Allzeittief 0% und das verfügbare Allzeithoch 100%.
Referenzmodi
All-Time High
Das höchste dem Script verfügbare Hoch wird als 100%-Referenz verwendet.
Die untere Grenze liegt bei null.
ATH-ATL Range
Verwendet den vollständigen verfügbaren historischen Preisbereich:
verfügbares Allzeittief = 0%
verfügbares Allzeithoch = 100%
52-Week Range
Verwendet das höchste und niedrigste Tageshoch beziehungsweise Tagestief aus ungefähr 252 Handelstagen.
3-Year Range
Verwendet ungefähr 756 Handelstage und bietet eine mittelfristige historische Einordnung.
5-Year Range
Verwendet ungefähr 1.260 Handelstage und dient der langfristigen Marktzyklusbetrachtung.
Manual Range
Der Nutzer kann obere und untere Referenzgrenze selbst festlegen.
Dieser Modus eignet sich unter anderem für frühere Marktzyklen, markante Hoch- und Tiefpunkte oder individuelle Analysebereiche.
Prozent-Level
Der aktive Referenzbereich kann in regelmäßige Prozentabstände unterteilt werden.
Zur Auswahl stehen:
1%
2%
4%
5%
10%
20%
25%
50%
Der Modus Favorite Levels zeigt eine reduzierte Auswahl wichtiger Stufen:
100%, 95%, 90%, 80%, 75%, 70%, 60%, 50%, 40%, 30%, 25%, 20%, 10%, 5% und 0%.
Wichtige Level werden optisch hervorgehoben. Optional können die Labels den Prozentwert und den zugehörigen Preis anzeigen.
Marktposition und Zonen
Der aktive Preisbereich wird in beschreibende Zonen gegliedert:
90-100%: Nähe zur oberen Grenze
70-90%: oberer Marktbereich
50-70%: mittlerer bis oberer Marktbereich
30-50%: unterer bis mittlerer Marktbereich
0-30%: unterer Marktbereich
Diese Zonen zeigen ausschließlich die historische Kursposition. Sie sagen nicht aus, ob ein Vermögenswert fundamental über- oder unterbewertet ist.
Multi-Horizon-Analyse
Das Dashboard vergleicht die Marktposition über mehrere Zeiträume:
52 Wochen
3 Jahre
5 Jahre
verfügbare Gesamthistorie
Für jeden Zeitraum werden Marktposition, Drawdown und ein beschreibender Status dargestellt.
Dadurch lassen sich Unterschiede zwischen kurzfristiger und langfristiger Kursposition erkennen.
Market Position Score
Der Market Position Score ist ein beschreibender Gesamtwert zwischen 0 und 100.
Die Grundberechnung verwendet:
35% Gewichtung für die 52-Wochen-Position,
25% Gewichtung für die 3-Jahres-Position,
20% Gewichtung für die 5-Jahres-Position,
20% Gewichtung für die Position innerhalb der verfügbaren Gesamthistorie.
Anschließend kann eine begrenzte Anpassung auf Basis der relativen Performance gegenüber dem gewählten Benchmark erfolgen.
Ein hoher Score bedeutet, dass sich der Kurs überwiegend in den oberen Bereichen seiner historischen Spannen befindet.
Ein niedriger Score bedeutet, dass er sich überwiegend in den unteren Bereichen befindet.
Der Score ist keine Wahrscheinlichkeit, keine Prognose, kein Bewertungsmodell und kein Handelssignal.
Relative Performance
Die relative Performance vergleicht die prozentuale Wertentwicklung des Assets mit der Wertentwicklung eines frei wählbaren Benchmarks.
Standardmäßig wird AMEX:SPY verwendet.
Ein positiver Wert bedeutet, dass das Asset den Benchmark im ausgewählten Zeitraum übertroffen hat.
Ein negativer Wert bedeutet eine relative Underperformance.
Der Benchmark sollte passend zum analysierten Asset gewählt werden.
Dashboard
Das Dashboard zeigt unter anderem:
Symbol und Chart-Zeiteinheit,
Marktposition und Drawdown über 52 Wochen,
Marktposition und Drawdown über 3 Jahre,
Marktposition und Drawdown über 5 Jahre,
Position und Drawdown innerhalb der verfügbaren Gesamthistorie,
Market Position Score,
aktiven Referenzmodus,
aktuellen Kurs,
verfügbares Allzeithoch und Allzeittief,
relative Performance,
Erholung vom verfügbaren Allzeittief,
und Abstand zum 50%-Mittelpunkt.
Position und Textgröße des Dashboards können angepasst werden.
Alarme
Der Indikator stellt Alarmbedingungen bereit für:
Aufwärts- und Abwärtskreuzung eines frei wählbaren Positionslevels,
Aufwärts- und Abwärtskreuzung eines Scorelevels,
Eintritt in die 90-100%-Zone,
Verlassen der 90-100%-Zone,
Eintritt in den Bereich unter 30%,
Wechsel der relativen Performance über oder unter null,
neues verfügbares Allzeithoch,
und neues verfügbares Allzeittief.
Die Alarme müssen nach dem Hinzufügen des Indikators über den PulseWire-Alarmdialog angelegt werden.
Einschränkungen
Das verfügbare Allzeithoch und Allzeittief hängen von den historischen Daten ab, die PulseWire dem Script bereitstellt.
Bei begrenzter Historie, unterschiedlichen Datenanbietern oder angepassten Kursreihen können die Werte von anderen Quellen abweichen.
Die Zeiträume von einem, drei und fünf Jahren beruhen auf ungefähren Handelstageswerten von 252, 756 und 1.260 Tagen.
Bei unzureichender Historie können einzelne Werte als n/a erscheinen.
Auf logarithmischen Charts wirken die Level optisch nicht gleichmäßig. Für eine direkte Darstellung der berechneten Preisabstände eignet sich eine lineare Preisskala besser.
Haftungsausschluss
Dieser Indikator dient ausschließlich Informations- und Analysezwecken.
Er stellt keine Finanz-, Anlage-, Handels-, Steuer- oder Rechtsberatung dar.
Eine niedrige historische Marktposition bedeutet nicht automatisch, dass ein Asset günstig ist. Eine hohe Marktposition bedeutet nicht automatisch, dass ein Asset überbewertet ist.
Historische Kurspositionen erlauben keine verlässliche Vorhersage zukünftiger Ergebnisse.
Alle Handels- und Investitionsentscheidungen erfolgen eigenverantwortlich. Indicator

IREN LTD (RON DAVID SHALOM)COMPOSITE SIGNAL WITH SELF-MEASURED STATISTICS
This indicator combines several classic factors into one buy/sell
signal — and, more importantly, measures its own track record on
whatever symbol and timeframe you load it on.
HOW THE SIGNAL WORKS
Each candle is scored by factors that vote independently: trend
(EMA 9 vs EMA 20), RSI extremes, volume surges, candlestick
patterns, Stochastic crosses in oversold/overbought zones, and
rejection at a confirmed prior pivot high. A signal fires only when
enough factors agree — you set the threshold. Buy stays "active"
until a sell fires and vice versa, so you get one label per turn
instead of a cluster.
WHAT MAKES IT DIFFERENT: THE MEASUREMENT
Every pattern and factor is backtested live across the full history
of the chart. Tables show, for each one: how many times it occurred,
what percentage worked, and average return.
Crucially, there is a BASELINE row measuring what happens after a
random candle. On a stock with strong upward drift, a pattern
scoring 55% may show no edge at all if the baseline is also 55%.
Read every row against the baseline, not against 50%.
WHAT IT MEASURES
- All 11 classic candlestick patterns, with trend context (hammer
vs hanging man are the same shape — the prior trend decides which)
- Trend age and depth: how long and how far the current move has
run, versus what is typical, plus the share of past moves that
continued from this point
- Support/resistance zones tested from both directions
- Intraday floor and ceiling tests: did price pierce a level during
the session and close back, or close through?
- Opening gap versus session move
- Correlation with a reference asset, sector ETFs and the index
SETTINGS
Signal threshold, evaluation horizon, zone boundaries and all
comparison symbols are configurable. Tables can be toggled off.
HONEST LIMITATIONS
- These are historical frequencies, not predictions. A 65% pattern
is still wrong one time in three.
- Small sample sizes are shown deliberately. A percentage built on
5 cases means nothing — always check the count.
- Testing many conditions at once means some will look good by
chance. Treat only large differences on decent samples as real.
- Default zone levels and factor selection were tuned on one
specific stock. On other symbols, check the tables first and
adjust — what works on one stock often fails on another.
Not financial advice. For research and study. Indicator

ICT Pre-market ranges (NY AM)This indicator plots the New York pre-market range — the high-to-low of price action between 07:00 and 09:00 NY time — as a box, with optional internal quarter, eighth, and range-boundary level lines, plus projected fib target lines and shaded target areas.
The two hours before the 09:30 cash open often establish the day's early liquidity and balance. Within ICT (Inner Circle Trader) methodology, the boundaries of this pre-market range and its internal subdivisions act as reference points once the NY AM session begins: price frequently reacts at the range extremes, the 0.5 equilibrium, and the intermediate quarter and eighth levels. Drawing these levels ahead of the open gives a ready-made framework for the session.
What It Plots
Once the 07:00–09:00 NY window closes, the indicator measures the highest high and lowest low of that window (from wicks by default, or candle bodies if you prefer) and draws a box between them. Level lines subdivide the range, and fib target lines project beyond it, so equilibrium, retracement, and extension levels are visible at a glance.
Visual Elements
Peach range box spanning the 07:00–09:00 NY pre-market window
Optional centered box title ("Pre-Market range" plus the weekday and date), with selectable position and font size
Range boundary lines at 0 and 1 (low and high)
Quarter lines at 0.25, 0.5, and 0.75
Eighth lines at 0.125, 0.375, 0.625, and 0.875
Optional extension of level lines toward the trading day end (00:00), tracking the current time
Fib target lines outside the range at ±0.5, ±1.0, ±1.5, ±2.0, and a custom multiple
Optional filled target-area bands per fixed target step — bullish (above the high) and bearish (below the low), each successive band a bit darker
Optional fib labels (0 … 1 and ±targets) beside each line, on the left or right side
How To Use It
Add the indicator to an intraday chart (15m–1H shows the pre-market range and the NY AM session together well).
Watch for reactions at the range high/low, the 0.5 equilibrium, and the quarter/eighth levels during the NY AM session.
Use the ± fib targets and shaded target areas to frame where an expansion out of the range may be heading.
Enable "Extend Levels to Day End" to carry the levels across the whole trading day as reference.
Use "Days to Show" to compare the current pre-market range against previous days.
Settings Overview
General: show/hide box, box title with its position and font size, days to show (1–10), pre-market window time, wicks vs bodies
Level Lines: range lines (0/1), quarter lines (0.25/0.5/0.75), eighth lines, extend to day end, line labels on/off, label side (left/right), label horizontal offset
Fib Target Lines: ±0.5, ±1.0, ±1.5, ±2.0, and a custom multiple; "Fill Target Areas" on/off; bullish and bearish target-band colors
Colors: box fill color, line color, line weight, line style (solid/dashed/dotted), and an optional box border (uses the line color)
Technical Notes
Range detection uses 1-minute intrabar data via request.security_lower_tf(), so the pre-market high and low are captured accurately on any chart timeframe. Boxes and level lines are time-anchored (xloc.bar_time) so past days line up with their real timestamps. The box is fixed to the 07:00–09:00 window; when the day-end extension is enabled, the level lines extend to the current time and are capped at the trading day end (00:00), so they never project past the latest bar. Only weekdays (Monday–Friday) are processed. Indicator

Indicator

Indicator

Elliott Impulse Engine [WillyAlgoTrader]📊 Elliott Impulse Engine (EIE) is an overlay indicator that counts a full Elliott cycle — impulse 0-1-2-3-4-5 plus correction A-B-C — completely automatically, using a Change-of-Character (CHoCH) trigger to start each count, a strict state machine to accept every wave point, Fibonacci target boxes to show where the next point is expected, a dashed "ghost" projection of the entire remaining path, and a trailing red invalidation line that tells you the exact price where the current count dies.
The core insight: most Elliott Wave tools either repaint their labels endlessly or force you to draw everything by hand. EIE does neither. It treats every count as a hypothesis : a CHoCH break seeds it, each confirmed pivot advances it one wave at a time, and a single hard price level can kill it. When the hypothesis dies, the chart is wiped clean and the engine waits for the next CHoCH — no stale labels, no silent redrawing of history. You always know three things at a glance: what wave the market is in, where price should go next, and where the idea is wrong.
Works on any symbol and any timeframe. Free and open for everyone.
🧩 WHY THESE COMPONENTS WORK TOGETHER
A ZigZag alone gives you swings but no wave logic. A Fibonacci tool alone gives you levels but no structure. A CHoCH detector alone tells you the trend flipped but not what comes next. And a manual Elliott count gives you structure but demands hours of drawing and constant re-labeling.
EIE chains all of these into one pipeline:
Swing structure engine → CHoCH detection → count seeding (point 0 + point 1) → fib grid on leg 0-1 → target boxes for points 2/3/4 → pivot-based point acceptance with soft-marking → ghost projection of the remaining path → trailing invalidation level → reset with a stated reason
The swing engine finds structural highs and lows. A confirmed close through a swing level against the previous trend is a CHoCH — the only event allowed to start a new count, so counts always begin at genuine structure shifts, not random noise. The moment leg 0-1 is confirmed, the engine builds a Fibonacci grid on that leg and projects the whole expected structure forward as a dashed ghost path. Each subsequent wave point is accepted from a separate, faster pivot stream, checked against its expected fib range, and either labeled clean ("2") or soft-marked ("2~") if it landed outside the range. At every state the engine maintains exactly one critical price — the trailing invalidation level — and if price breaks it, the count is declared dead with an explicit reason (BELOW_0, BELOW_W2, W3_SHORTEST, and so on), the markup is wiped, and the engine returns to scanning.
No single public tool does this loop. The combination turns Elliott counting from a subjective drawing exercise into a rule-driven process you can watch unfold bar by bar.
🔍 WHAT MAKES IT ORIGINAL
1️⃣ CHoCH-seeded counting — every count starts at a real structure break.
The engine tracks swing highs and lows using symmetric pivots (default 10 bars left / 10 bars right). A break is registered only on a confirmed bar close through the swing level. If that break goes against the current internal trend, it is a CHoCH — and only then does the engine arm a new count: point 0 is set to the extreme of the run that preceded the break, and the engine waits for a with-trend pivot beyond the CHoCH level to lock point 1.
Anti-noise guards built into the seeding:
— a warm-up gate (no CHoCH before max(3 × swing length, 50) bars of history),
— an optional cooldown (N bars after any count ends before a new CHoCH may seed),
— a level lock: after an invalidation, the same CHoCH level cannot immediately re-seed a new count (compared with half-a-tick tolerance, so floating-point equality can never leak a duplicate seed).
Why this matters: counts started from random pivots produce random labels. Counts started from structure breaks start where trend logic actually changed.
2️⃣ Non-blocking Fibonacci ranges with soft-marking — geometry informs, price decides.
Each wave point has an expected fib range measured on the 0→1 grid (retracement for 2, negative extension beyond point 1 for 3, 5 and B; point 4 uses its own 2→3 grid; C uses 0→1 again):
— Point 2: 0.5 – 0.705 (retracement of 0→1)
— Point 3: −0.5 – −0.618 (extension beyond point 1)
— Point 4: 0.5 – 0.705 (retracement of leg 2→3)
— Point 5: −0.618 – −1.0
— Point B: −0.5 – −0.618
— Point C: 0.0 – 0.236
The fib level of any price p on the 0→1 grid is computed as L = (p1 − p) / (p1 − p0); on the 2→3 grid as F = (p3 − p) / (p3 − p2). A pivot inside its range is labeled clean ("3"); a pivot outside it is still accepted but soft-marked ("3~") — because in real markets a valid wave frequently overshoots textbook levels. Only the hard invalidation rules can reject a point. Every range is a user input (min/max per point), so you can tighten or widen the geometry to your market.
Why this matters: strict-range engines discard perfectly good structure; free-form engines accept garbage. Soft-marking keeps the count honest while telling you visually which points are textbook and which are stretched.
3️⃣ Ghost projection — the whole remaining path drawn before it happens.
As soon as leg 0-1 is confirmed, EIE draws a dashed projection of every remaining point: 2? 3? 4? 5? A? B? C?. Each ghost point is placed inside its fib range at a position you choose (Middle of the range, Near edge, or Far edge), and spaced horizontally at step = round((b1 − b0) × coefficient) bars — i.e., the time geometry of the projection scales with the actual duration of leg 0-1. Ghost point 5? sits at extension −1.0 plus a configurable offset.
The projection is re-anchored from every newly accepted real point : once point 2 locks, the ghost path redraws starting from the real 2; once point 3 locks, from the real 3, and so on. Point 4's ghost is computed on the 2→3 grid using the best available references (real points when confirmed, ghost estimates before that).
Why this matters: you see the expected shape of the entire move — including the A-B-C correction after the impulse — while the impulse is still in wave 2.
4️⃣ Trailing invalidation level — one red line that answers "where am I wrong?".
At every state the engine maintains exactly one critical level, drawn as a dashed red line with an "INVALID + price" label:
— waiting for 1 / wave 2 in progress: point 0
— wave 3 before point 1 is broken: point 0; after the break: point 2
— wave 4: point 2
— wave 5 before point 3 is broken: point 2; after the break: point 4
— correction A/B/C: point 2
A break of this level resets the hypothesis with a named reason. The check runs every bar, before pivot processing , so a violent bar cannot both break the invalidation level and sneak a new wave point into the count on the same bar. Wick-driven pivots that slip past a close-based check are caught by a second, pivot-level guard (a pivot beyond point 2 / point 4 in the protected phases also triggers the reset). Classic Elliott rules are enforced on top: wave 2 may never retrace below point 0, wave 4 may never enter below point 2, and if wave 3 turns out shortest among 1, 3 and 5 at the moment point 5 is proposed, the count is rejected with reason W3_SHORTEST.
Why this matters: an Elliott count without a falsification level is a story, not a hypothesis. EIE makes the falsification price explicit on every bar.
5️⃣ Two-speed pivot system — stable structure, fast confirmation.
Structure and CHoCH run on the main swing length (default 10/10). Wave points 1-5 and A-C are accepted from a separate, shorter pivot stream (default 5/5, always ≤ swing length — validated at load). This decouples two jobs that a single pivot length cannot do well simultaneously: the long pivots keep the structural skeleton stable, the short pivots confirm wave points with roughly half the lag.
A dedicated backfill scan (up to ~480 bars) closes the pivot-lag gap for point 2: when point 1 locks or repositions, the engine re-scans all bars since point 1 for the true retracement extreme, so the best low/high inside the confirmation window is never missed. If price breaks point 1 before any counter-trend pivot confirmed point 2, the tracked extreme itself is accepted as point 2 and wave 3 is activated immediately.
Why this matters: one pivot length forces a trade-off between stability and speed. Two lengths plus a backfill scan give you both.
6️⃣ Repositioning logic — labels refine forward, never silently rewrite history.
Until the next wave locks, the engine allows controlled repositioning: a higher high repositions point 1 (rebuilding the grid and the point-2 box on the new geometry), a deeper pullback repositions point 2 (only until point 1 is broken — after the break, a deeper pivot is an invalidation, not a reposition), point 3 extends while wave 4 forms, point 4 deepens until point 3 is broken, point 5 extends during the correction, A deepens until B appears, B rises until C appears. Every reposition deletes and redraws only the affected segment and label, and the associated target box and its center line are rebuilt on the fresh grid — no stale geometry is left behind.
Why this matters: this is the honest middle ground between "repaints everything" and "freezes wrong labels forever". The rules for what may move, and until when, are fixed and stated.
7️⃣ OTE target boxes for points 2, 3 and 4 — the next objective is always a zone, not a guess.
When point 1 locks, a yellow box covering the point-2 fib range appears with a dashed center line at the range midpoint. When point 2 locks, the point-3 target box (on the extension side) appears. When point 3 locks, the point-4 box appears on the 2→3 grid. Each box extends forward a configurable number of bars (default 20) and its right edge snaps to the bar where the point actually forms. Box fill transparency adapts to the theme (65 dark / 55 light); the border and center line stay fully opaque.
Why this matters: "wave 4 should come" is vague. "Wave 4 is expected inside this drawn box, centered here" is actionable.
8️⃣ Explicit reset reasons + persistent CHoCH history — the chart tells you why.
Every count ends with a machine reason: FALSE_CHOCH (price broke back through point 0 before point 1 formed), BELOW_0, BELOW_W2, BELOW_W4, W3_SHORTEST, DEEP_C (correction retraced beyond point 2), TIMEOUT (optional: state lasted longer than k × leg 0-1 duration), B_ABOVE_5 (the "correction" broke above point 5 — the impulse is closed as done), or DONE (point C accepted, full cycle complete). On invalidation a ✖ marker with the reason in its tooltip is placed on the bar, and the dashboard keeps showing the last reason.
The active markup is wiped on reset — but CHoCH lines and labels live on a separate persistent layer (FIFO history, up to 100, default 50). When price later closes back through a CHoCH level, that line is clipped to the mitigation bar and turns dotted. So your chart accumulates a clean structural map of every trend change while dead counts disappear.
A special same-bar case is handled explicitly: if a reset and a fresh opposite CHoCH land on the same bar (with cooldown off), the engine wipes first, then seeds the new count on that same bar — the new hypothesis is never lost to ordering.
Why this matters: most auto-counters just vanish or redraw without explanation. EIE always states its reason, and the CHoCH map survives as context.
9️⃣ Anti-repaint discipline — confirmed pivots, close-confirmed breaks, honest Wick mode.
Three independent mechanisms:
— All pivot values are consumed only on confirmed bars: a forming real-time bar can make a pivot flicker, so transient pivot values are masked out and can never trigger an irreversible state transition. Historical bars are unaffected (they are all confirmed).
— In the default Close confirmation mode, invalidation breaks and wave-top breaks are evaluated only on the confirmed bar close — an intrabar excursion of the close cannot fire a reset that "un-happens" seconds later.
— The optional Wick mode reacts to any intrabar touch — faster, and by design irreversible within the bar. This is stated openly so you can choose speed vs. strictness.
Zone-entry events (price entering the point-2 OTE zone, the point-4 box, or tagging the −1.0 target) intentionally use wick extremes — a touch is a touch — and are one-way flags.
🔟 Theme-adaptive visual system with auto-contrast labels.
Theme is Auto-detected from the chart background (or forced Dark/Light). By default, long counts use a theme-adaptive green (dark green on light charts, bright green on dark charts) and short counts use red. If you enable custom colors, label text color is derived from the luminance of your chosen background — luma = 0.299R + 0.587G + 0.114B, threshold 140 — so digits stay readable on any shade you pick. The fib grid uses role-based color inputs (red 0.236, teal 0.705 OTE, blue retracement levels, gray round levels), all editable. Label font size is selectable from Tiny to Huge.
⚡ HOW IT WORKS — CALCULATION FLOW
Step 1 — Structure scan: Symmetric pivots (default 10/10) maintain the latest swing high and swing low; the engine also tracks the running extreme since the last swing (the future point 0).
Step 2 — CHoCH: A confirmed close through a swing level against the internal trend flips the trend and — if the engine is idle, cooled down, and the level is not locked — seeds a count: direction, CHoCH level, point 0.
Step 3 — Point 1: The first fast pivot beyond the CHoCH level becomes point 1. The 0→1 fib grid, the point-2 target box, and the full ghost projection are drawn.
Step 4 — Impulse counting: Fast counter-trend pivots propose points 2 and 4; fast with-trend pivots propose 3 and 5. Each is checked against its fib range (clean or "~"), each unlocks the next state, target boxes appear for the next objective, and the ghost path re-anchors from every real point.
Step 5 — Hard rules per bar: Before any pivot is processed, the trailing invalidation level is checked (Close or Wick mode). Wave 2 below point 0, wave 4 below point 2, a broken point 4 in late wave 5, or a shortest wave 3 all kill the count with a named reason.
Step 6 — Impulse complete: Point 5 accepted → the impulse counter increments and the engine rolls into correction tracking.
Step 7 — Correction A-B-C: A forms on a counter-trend pivot, B on a with-trend pivot (a B at or beyond point 5 closes the whole structure as B_ABOVE_5 instead), C completes the cycle → DONE.
Step 8 — Reset: On any ending — invalidation or completion — the active markup is wiped, the cooldown starts, and the engine returns to scanning. CHoCH history stays.
📖 HOW TO USE
🎯 Quick start (works even if you have never counted a wave):
1. Add the indicator to a clean chart. Nothing to configure — defaults are ready to use.
2. Wait for a CHoCH label. That is the engine saying: "the trend character just changed, I am watching for a new impulse here."
3. When labels 0 and 1 appear, the count is live. The dashed gray path with 2? 3? 4? 5? A? B? C? is the expected roadmap of the entire move.
4. Watch the yellow box — that is where the next wave point is expected. The dashed line inside it is the center of the zone.
5. Keep one eye on the red dashed INVALID line at all times. If price breaks it, the count is over — a ✖ appears, the markup clears, and the engine starts hunting for the next CHoCH. Hover the ✖ to read the exact reason.
👁️ Reading the chart:
— 🟢 Green numbered labels (0, 1, 2, 3, 4, 5) = accepted impulse points of a long count; red labels = a short count. Letters A, B, C = the correction.
— A label with ~ (like "2~") = the point is accepted, but it landed outside its textbook fib range — the count continues, treat it with slightly more caution.
— Solid colored path = confirmed structure. Dashed gray path with "?" labels = the ghost projection of what is still expected.
— 🟡 Yellow boxes = target zones for points 2, 3 and 4, each with a dashed center line.
— Dotted horizontal grid = the Fibonacci grid of leg 0-1 (retracements 0.236…1.0 above, extensions −0.5 / −0.618 / −1.0 below), each level labeled with its ratio and price.
— 🔴 Red dashed line + "INVALID price" = the trailing invalidation level of the current count.
— Dashed horizontal CHoCH lines = historical structure breaks; a line that turns dotted has been mitigated (price closed back through it).
— ✖ = the count was invalidated on this bar (reason in the tooltip).
📊 Dashboard fields:
— State: current phase (Scanning / CHoCH · wait 1 / Wave 2…5 / Corr · A-B-C).
— Direction: Long, Short, or — when idle.
— Invalidation: the current critical price.
— Last Reset: why the previous count ended (reason, DONE, or B_ABOVE_5). Resets on chart reload.
— Impulses: completed 5-wave impulses on the loaded history. Resets on chart reload.
— TF: chart timeframe. Version: engine version.
🔧 Tuning guide:
— Counts appear too rarely: lower Swing Detection Length (structure forms faster, more CHoCH seeds) — or the market is simply ranging without character changes.
— Too many counts die instantly (FALSE_CHOCH / BELOW_0): raise Swing Detection Length, or add a Cooldown of 5-20 bars so the engine skips the chop right after a failed count.
— Points confirm too slowly: lower Point Confirmation (min 1); remember it must stay ≤ Swing Detection Length.
— Too many "~" soft marks: widen the fib ranges for those points — your market may simply run hotter than the defaults.
— Old counts hang around in dead phases: set Timeout k > 0 (e.g. 3.0) — any state lasting longer than k × the duration of leg 0-1 resets automatically.
— Chart feels crowded: toggle off the Fib Grid, OTE Boxes, or the Projection independently; reduce Historical CHoCH; shrink label font size.
⚙️ KEY SETTINGS
⚙️ Main Settings:
— Swing Detection Length (default 10): pivot length for structure and CHoCH. Higher = larger structure, fewer seeds.
— Point Confirmation, bars (default 5): the separate short pivot used to accept wave points. Must be ≤ swing length (validated).
— Breaks: Invalidation Mode (default Close): Close = confirmed bar close beyond the level (non-repainting); Wick = any intrabar touch (instant, irreversible within the bar).
📐 Point Ranges (fib): min/max expectation range per point — Point 2 (0.5–0.705), Point 3 (−0.5…−0.618), Point 4 (0.5–0.705 on the 2→3 grid), Point 5 (−0.618…−1.0), Point B (−0.5…−0.618), Point C (0–0.236). All validated at load (2 and 4 must be inside (0,1); 3, 5, B must be negative; C inside [0,1); no zero-width ranges).
👻 Ghost Projection:
— Show Projection (on), Point Inside Range (Middle / Near / Far), Time Step Coef (default 1.0 × leg 0-1 duration), 5?: Offset From −1.0 (default 0.05).
♻️ Reset:
— Cooldown After Reset, bars (default 0 = off) and Timeout, k × leg 0-1 (default 0 = off; in the wait-for-1 phase the timeout scales on swing length instead, since no leg exists yet).
🎨 Visual Settings: Theme (Auto / Dark / Light), Fib Grid toggle, OTE Boxes toggle, CHoCH layer toggle, Path Width (2), Box Length Forward (20), Historical CHoCH max (50), Label Font Size (Tiny…Huge), Watermark toggle.
📏 Grid Levels: individual on/off for 0.236, 0.382, 0.5, 0.618, 0.705, 0.786, 0.886, 1.0, −0.5, −0.618, −1.0.
🎨 Colors: Use Custom Colors switch (off = theme-adaptive defaults), long/short point label backgrounds (text auto-contrasts), target box color, path and ghost colors, bull/bear CHoCH colors, and role-based fib grid colors.
📊 Dashboard: on/off, position (5 anchors), font size (the version row renders one step smaller).
🔔 ALERTS
Ten alert conditions covering the full lifecycle:
— 🟢 1. CHoCH + projection — CHoCH confirmed, movement projection built
— 🟡 2. Price in W2 OTE — price entered the point-2 zone
— 🟢 3. Point 2 accepted
— 🟢 4. Break of point 1 — wave 3 active
— 🟡 5. Price in W4 box
— 🟢 6. Break of point 3 — wave 5 active
— 🎯 7. Target −1.0 reached
— 🟢 8. Impulse complete — point 5 locked
— 🎯 9. Target C — correction complete, full cycle done
— 🔴 10. Invalidation — hypothesis reset
In addition, the engine fires dynamic alert() messages on every reset and on B_ABOVE_5 completion, including the reason text. In Close mode these announce on confirmed bar close; in Wick mode once per bar.
⚠️ IMPORTANT NOTES
— 🚫 No repainting of confirmed structure. Pivots use equal left/right lookback and their values are consumed only on confirmed bars; CHoCH breaks require a confirmed close; in the default Close mode, invalidation and wave-top breaks are evaluated on confirmed closes only. A pivot is, by nature, confirmed N bars after the actual extreme — the indicator draws from the confirmed bar backward to the true swing point. This is delayed confirmation, not repainting of settled values.
— 📐 Controlled repositioning is part of the design. Until the next wave locks, the latest point may legitimately move to a more extreme pivot (e.g., point 1 to a higher high). The rules for what may move, and until when, are fixed and described above. Wick mode reacts intrabar by design and is irreversible within the bar.
— 📊 The Impulses counter and Last Reset field are computed on loaded chart history and reset when the chart reloads.
— ⚖️ EIE counts one impulse degree at a time from the latest CHoCH. It does not label nested sub-waves, diagonals, or complex W-X-Y corrections — it is a focused impulse + zigzag engine, and the fib ranges reflect one practical interpretation of Elliott guidelines, which you can re-tune.
— 🛠️ This is a wave-counting and projection tool, not an automated trading system. It identifies structure, projects expected zones, and shows the invalidation price — trade decisions remain yours.
— 🌐 Works on all markets (crypto, forex, stocks, indices, commodities) and all timeframes. Indicator

KOCA Order Blockskoca orrder block is a highly configurable PulseWire indicator designed to identify potential demand, supply, order-block, and pullback zones. It combines two different detection methods and allows the user to control how strict or loose the zone detection should be.
Detection modes
The indicator offers three detection methods:
Base Break
Identifies the last opposite-colored candle as a potential base. A demand zone is created when price breaks above a bearish base candle, while a supply zone is created when price breaks below a bullish base candle.
Candle Streak
Detects bullish or bearish momentum based on a configurable number of consecutive candles moving in the same direction. The zone can be created from either the last opposite candle or the first candle of the impulse.
Hybrid
Requires both conditions at the same time: price must break the base candle and a valid bullish or bearish candle streak must also be present.
Multi-timeframe functionality
The indicator can calculate zones from a separate source timeframe and display them on the current chart.
For example, it can display:
15-minute order blocks on a 5-minute chart
1-hour supply and demand zones on a 15-minute chart
Daily zones on an intraday chart
For correct behavior, the source timeframe should normally be equal to or higher than the chart timeframe. New source-timeframe zones are processed only after the source candle has closed, which helps reduce repainting.
Quality filters
The user can filter weaker setups using several optional conditions:
ATR-based displacement
Confirmed Break of Structure
Volume spike
Average impulse volume
Candle body-to-range ratio
Close location near the candle high or low
Directional confirmation candle
Four strictness presets are available:
Loose: no ATR or BOS requirement
Medium: requires at least 1.5 ATR displacement
Strict: requires at least 2.5 ATR displacement and a confirmed BOS
Custom: allows manual control of ATR and BOS requirements
The BOS logic uses confirmed swing highs and lows and attempts to count each structural break only once.
Zone construction
Zones can be drawn using three different methods:
Full Range: candle high to candle low
Body: candle open to candle close
Refined: open-to-low for demand and high-to-open for supply
An optional 50% midpoint line can be displayed inside every zone.
Zone lifecycle
Each detected zone can move through several states:
Fresh: price has not returned to the zone
Tested: price has touched the zone for the first time
Mitigated: price has entered a configurable percentage of the zone
Invalidated: price has closed or wicked through the opposite boundary
Breaker: an invalidated zone has been converted into a zone with the opposite direction
The first-touch behavior can be configured to:
Ignore the touch
Mark the zone as tested
Stop extending the zone immediately
Mitigation depth is adjustable from 1% to 100%. Invalidation can be based on either candle close or wick penetration.
Invalidated zones can be deleted, retained, recolored, or converted into breaker blocks.
Display controls
The indicator provides separate colors for:
Demand zones
Supply zones
Tested zones
Mitigated zones
Invalidated zones
Bullish breakers
Bearish breakers
The fill color, border color, transparency, border visibility, and border thickness can all be adjusted.
To keep the chart clean, the indicator can display only the nearest active zones above and below the current price while keeping more distant zones stored internally.
Debugging and alerts
The optional debug mode marks rejected candidates and shows why they failed, such as:
Insufficient ATR displacement
Missing BOS
Insufficient volume
Invalid base candle
Poor confirmation-candle quality
Alerts are available for:
New demand zone
New supply zone
First zone test
Zone mitigation
Zone invalidation
Bullish breaker creation
Bearish breaker creation
This indicator does not predict guaranteed reversals. It highlights areas where price previously showed structural or momentum-based displacement and where a future reaction may occur. Indicator

Indicator

Indicator

Heikin Ashi RSI Oscillator with Opposing AlertsHeikin Ashi RSI Indicator
The Heikin Ashi RSI Indicator combines price action with a Heikin Ashi RSI oscillator to highlight potential fake pullbacks within an established trend.
The indicator compares the direction of the normal price candle with the direction of the Heikin Ashi candle inside the RSI oscillator.
When both candles move in the same direction, momentum is aligned. When they oppose one another, the signal is classed as an Imposter.
An diversion appears when:
The price candle closes bearish, but the HARSI candle closes bullish.
The price candle closes bullish, but the HARSI candle closes bearish.
This difference suggests that the visible price move may not reflect the underlying momentum. When it occurs during a clear trend, the opposing price candle can be considered a potential fake pullback, rather than an immediate trend reversal.
The indicator includes chart markers and alert conditions for both types of candles.
Trend rules
signals should only be considered in the direction of the established trend.
Bullish trend
The RSI line is above the Heikin Ashi RSI candles.
In a bullish trend, focus on bearish price candles that close against bullish HARSI candles. These may represent fake bearish pullbacks before the upward trend continues.
Bearish trend
The RSI line is below the Heikin Ashi RSI candles.
In a bearish trend, focus on bullish price candles that close against bearish HARSI candles. These may represent fake bullish pullbacks before the downward trend continues.
Suggested use
The indicator is best suited to the:
30-minute timeframe
1-hour timeframe
For cleaner signals, allow the candle to close before acting and set PulseWire alerts to Once Per Bar Close.
This indicator should be used as a confirmation tool rather than a standalone entry system. Always assess the wider market structure, trend direction, support and resistance, and your own risk-management rules before taking a trade. Indicator

Indicator

Indicator

GEEN Smart Signal What it does
GEEN Smart Signal is not a single-indicator tool. It combines several classic analysis engines into one weighted Decision Engine that scores every trade candidate from 0 to 100, then only prints signals that pass a minimum confidence threshold. Every signal comes with a full breakdown showing exactly why it was accepted.
How it works
A signal candidate is generated by an ATR trailing-stop flip (with optional Heikin Ashi smoothing of the calculation source). The candidate is then evaluated by 8 engines, each contributing a weighted score:
Market Structure (20 pts) — pivot-based HH/HL/LH/LL classification, BOS and CHoCH detection
Trend (20 pts) — EMA 50/100/200 stack, classified into 5 states from strong bullish to strong bearish
Momentum (15 pts) — RSI position + ADX strength, used as confirmation only
Volume (15 pts) — current volume vs. 20-bar average, rewarding volume spikes
Liquidity (10 pts) — liquidity sweeps of prior swings, price inside a Demand/Supply zone or FVG, and Premium/Discount location vs. equilibrium
Volatility (10 pts) — ATR vs. its average, filtering out dead markets
Multi-Timeframe (10 pts) — 1H/4H/D trend alignment (closed-bar data only)
Risk (10 pts) — estimated reward-to-risk toward the nearest opposing swing
The total is normalized to 100. Below the minimum threshold (default 60) the signal is rejected (WAIT). 60–75 prints as weak, 75–85 as good, above 85 as strong. Clicking any signal arrow shows the per-engine score breakdown, entry, ATR stop, and 1R/2R/3R targets.
Chart elements
Structure labels (HH/HL/LH/LL, BOS, CHoCH), auto Order Blocks with mitigation removal, Fair Value Gaps, Equal Highs/Lows (EQH/EQL), session Kill Zones (Asia/London/New York, with an optional session filter), a main panel (decision, confidence, trend, momentum, risk, entry/SL/TP, RR, 5-timeframe view, active session, SMT check vs. a correlated symbol), and a monthly statistics panel that tracks how many signals reached TP1/TP2/TP3 or hit the stop — so you can measure performance yourself on any symbol and timeframe.
Anti-repaint design
Signals are confirmed on bar close only, higher-timeframe data uses closed bars with lookahead off, and structure breaks are evaluated on confirmed closes.
How to use
Works on any symbol and timeframe. Start with defaults, or raise the minimum confidence and enable the London/New York session filter for intraday trading. Alerts are included for buy/sell and for strong (85+) signals. This tool is for educational purposes and is not financial advice; no indicator guarantees results — always use proper risk management. Indicator

Entry Point X500Entry Point X500 is an overlay envelope built on Nadaraya–Watson kernel regression with a Gaussian kernel. It smooths price into a local estimate of the underlying trend, draws volatility bands around that estimate using mean absolute deviation (MAD), and marks mean-reversion events when price interacts with those bands.
What makes it useful
Standard moving averages weight bars with fixed linear or exponential schemes. This script estimates price with a Gaussian kernel: bars closer to the estimation point receive higher weight, which helps reduce noise while still reacting to genuine structure changes.
Two calculation modes are included:
Fixed mode (default, non-repainting) — endpoint-anchored regression using past bars only. Historical bands and signals stay fixed after a bar closes. Use this mode for chart review, backtesting logic, and alerts.
Live mode (repainting) — full-window Nadaraya–Watson smoothing recalculated on every update of the last bar. The envelope can use a symmetrical neighborhood of bars around each point inside the lookback window. This can look smoother and more “responsive” on the current chart, but historical lines and signals may appear, move, or disappear as new data arrives.
How it works
Smoothing — a Gaussian kernel weight is applied across the lookback window to produce a regression estimate of price.
Bands — an envelope is built around the estimate using the mean absolute deviation of price from that estimate, scaled by the Deviation Multiplier. MAD reacts less aggressively to extreme outliers than a standard-deviation band.
Signals
Fixed mode: ▲ when close crosses under the lower band; ▼ when close crosses over the upper band. These mark breakouts into potential oversold/overbought extremes for mean-reversion context.
Live mode: ▲ when price returns inside the envelope from below the lower band; ▼ when price returns inside from above the upper band. These mark the start of a local move back toward the regression estimate.
A status label shows whether Live or Fixed mode is active.
Inputs
Kernel bandwidth — controls smoothness. Lower values follow price more closely; higher values create a slower, smoother filter.
Deviation multiplier — controls envelope width.
Price source — series used for the regression (default: close).
Live mode (repaints) — switches between Live and Fixed calculation. Default is OFF.
Live alert: last N bars — in Live mode, alerts fire only for newly appeared signals within the last N bars, to reduce noise while history is recalculated.
How to use
Use the envelope as a contextual overbought/oversold framework for mean-reversion analysis:
Price outside the bands = stretched relative to the local kernel estimate.
Signals highlight interactions with the bands; they are not standalone trade instructions.
Prefer Fixed mode when validating behavior historically or attaching alerts.
Treat Live mode as a real-time visual aid only, and always assume past signals can change.
Confirm with market structure, levels, volume, or other independent context. Do not trade the triangles alone.
Limitations (important)
Live mode repaints. Historical envelopes and triangles are redrawn on each last-bar update and must not be judged as stable historical signals.
Fixed and Live modes use different estimation methods and different signal rules; results will not match 1:1.
Like any smoothing tool, the script can lag or produce frequent signals in choppy markets, and fewer/later signals when bandwidth or deviation is high.
Non-standard chart types (Heikin Ashi, Renko, etc.) can distort signal interpretation; use standard candlesticks/bars for signal analysis.
Disclaimer
This script is for educational and analytical purposes only and does not constitute financial advice. Past visual behavior does not guarantee future results. Test settings carefully on historical data in Fixed mode before considering any real-money use. Indicator

Multi Pattern Candle Reversal RR System [ChartTechnicalx]A multi-pattern reversal/breakout scanner with automatic risk:reward boxes, forward trade tracking, and a live win-rate table.
This tool scans price action for four distinct setups — small-candle rejections, engulfing reversals, compression breakouts, and pole-and-flag structures — and, when one fires, plots the entry, stop-loss, and take-profit as boxes projected forward on the chart. Every signal is tracked bar-by-bar against its SL/TP so you get an honest, non-repainting record of how each pattern actually performed, summarized in an on-chart results table (win / loss / close-to-cost / win rate).
No repainting: every signal and every trade outcome is calculated only on confirmed (closed) bars.
How it works
The indicator looks for four independent pattern types. Any of them can trigger a long or short signal; you can enable/disable each one separately.
1. Small Candle Pattern
A small-bodied rejection candle at a fresh swing low/high, followed by a small-bodied confirmation candle in the same direction.
Small Body Max (x ATR) – caps how big candle 1 and candle 2's bodies can be, relative to ATR, to still count as "small."
Min Wick / Body Ratio (Candle 1) – how long candle 1's rejection wick must be relative to its own body.
Both candles must occur at a fresh low (longs) or high (shorts) versus the Pivot Lookback Bars.
2. Engulfing Pattern
A classic bullish/bearish engulfing candle occurring at a fresh swing low/high, with three optional confirmation filters:
Require Engulf Size Ratio – candle 2's body must be at least N× candle 1's body.
Require Volume Spike – candle 2's volume must exceed its average by a set multiple.
Require Strong Close – candle 2 must close within the top/bottom X% of its own high-low range (rules out engulfing candles with long opposing wicks/indecisive closes).
3. Compression Breakout Pattern
Catches violent expansion candles breaking out of a tight multi-bar base — the move the other two patterns miss because there's no small candle or engulfing shape involved, just a coil followed by a release.
Base Lookback (bars) – how many bars immediately before the signal candle are checked for a tight base.
Max Base Range (x ATR) – how tight that base's high-low range must be.
Min Breakout Candle Body (x ATR) – how large the signal candle's body must be to count as a genuine expansion rather than noise.
4. Flag Pattern
Pole + flag structures: a sharp impulse candle, a tight consolidation right after it, then a decisive breakout of that consolidation.
Min Pole Candle Body (x ATR) – how large the impulse candle must be.
Pole Search Window (bars before flag) – instead of requiring the pole to sit on one exact bar, the indicator scans this many bars before the flag and uses whichever one has the biggest body. This makes detection far more reliable on real charts, where the impulse candle rarely lands on a perfectly fixed offset.
Flag Consolidation Bars – how many tight bars make up the flag.
Max Flag Range (x ATR) – how tight the consolidation must be.
Min Breakout Candle Body (x ATR) – how decisive the breakout candle must be.
Only Signal Reversal vs Pole – when ON, only fires when the breakout direction is opposite the pole (spike up → tight pullback → breaks down, or vice versa — an exhaustion/blow-off structure). When OFF (default), it also catches same-direction continuation flags.
Show Flag Consolidation Zones (debug) – draws every detected pole+flag setup on the chart, even ones that never break out, so you can visually see why a flag you spotted by eye didn't fire (range too wide, breakout candle too small, etc).
Chop / Range Filter
Reversal and breakout patterns are far less reliable inside dead, sideways chop. This section filters signals by market condition:
Require Trending Market (ADX) – blocks signals unless ADX is above your threshold.
Min ADX to Allow Signal – the ADX floor (20–25 is the common baseline for "trending").
Override: Allow if ADX Rising – ADX is a lagging indicator, so a brand-new trend's first few bars often still show low ADX. If ADX has been climbing over the lookback window, the signal is allowed through anyway.
Override: Allow on Volatility Breakout – if the signal candle's own range is a large expansion versus ATR, that's independent evidence of a trend starting, so the signal is allowed even if the ADX checks fail.
Enable Signal Cooldown – enforces a minimum number of bars between signals, preventing clustered, overlapping signals during choppy stretches.
Require Range Expansion (ATR vs ATR-MA) – optional extra filter that blocks signals when current volatility (ATR) is below its own moving average, i.e., the market is quiet/contracting.
Trade Settings
Reward : Risk Ratio – sets the take-profit distance as a multiple of the stop-loss distance for every signal.
Box Forward Extension (bars) – how far forward the entry/SL/TP boxes are drawn.
Enable CTC (Close-To-Cost) Outcome – if price runs in your favor far enough (see below) before hitting stop-loss, the trade is logged as CTC instead of a full loss, reflecting a realistic breakeven-plus stop management approach rather than assuming you'd sit through a full round-trip back to your original stop.
CTC Threshold (min R reached before SL) – the minimum favorable excursion, in R multiples, required before a stop-out counts as CTC instead of a loss.
Table Settings
Show Trade Results Table – toggles the on-chart performance table.
Max Trades Shown – how many recent trades are listed.
Table Position – corner placement.
The table logs every signal with its pattern type, direction, entry/SL/TP, result (WIN/LOSS/CTC), and the maximum R multiple reached — plus running totals and a win rate that excludes CTC trades from both the win and loss counts (since they're neither).
Suggested starting settings
These are reasonable defaults to start from — always forward-test and adjust for your instrument, timeframe, and volatility profile before trading live:
Setting Suggested value Why
ATR Length 14 Standard volatility baseline
Pivot Lookback Bars 5–8 Confirms a genuine fresh swing point without being too strict
Small Body Max (x ATR) 0.4–0.6 Keep tight so "small" candles stay meaningfully small
Engulf Size Ratio 1.3–1.5x Filters out marginal engulfing candles
Require Volume Spike On, 1.2x+ Volume confirmation reduces false engulfs significantly
Compression Base Range 1.0–1.5x ATR Tighter = higher quality but fewer signals
Flag Pole Body 1.3–1.8x ATR Should clearly stand out from surrounding candles
Flag Range 1.0–1.3x ATR A true flag should be visibly tight vs. the pole
ADX Threshold 20–25 20 is looser/more signals, 25 is stricter/higher quality
Reward:Risk 2:1 to 3:1 Balances win rate against payout; lower R:R needs a higher win rate to be profitable
Signal Cooldown 8–15 bars Prevents signal clustering in choppy conditions
On lower timeframes (1m–5m) and noisy instruments (gold, indices), lean toward tighter compression/flag ranges and a higher ADX floor to cut down on false breakouts. On higher timeframes (1H+), the default settings tend to hold up well as-is.
Notes
This indicator does not repaint: signals and their outcomes are only finalized on confirmed, closed bars.
The trade results table reflects this indicator's rule-based SL/TP simulation, not a full backtest with fees, slippage, or position sizing — treat it as a pattern-quality gauge, not a P&L guarantee.
This is a tool for identifying and evaluating patterns, not financial advice. Always manage your own risk. Indicator
