PHIMIND 222 PHIMIND 222 stacks three reads of the same chart and only speaks when
all three agree.
WHAT IT DRAWS
• Supply and demand zones, marked from major swings, with a BOS label
left behind when price breaks one
• Volumized order blocks — bull and bear, with the buy/sell volume
split drawn inside each block and overlapping zones merged
• Swing structure tagged automatically: HH, LH, HL, LL
• BUY / SELL labels
• A rolling table of the last five signals — time, side, price, the
zone it tapped, the structure, and the bias at the time
THE SIGNAL
A signal needs three things to line up:
1. Price taps a demand zone or bullish order block (or supply /
bearish for a sell)
2. The swing is a higher low for a buy, a lower high for a sell
3. Structure bias agrees — a bull BOS for a buy, bear BOS for a sell
Turn OFF "Require BOS confirmation" for the looser 2-of-3 version:
zone plus swing, no bias needed. Fewer misses, more noise.
SETTINGS WORTH KNOWING
• Signals-Only Mode — hides zones, blocks and structure tags, leaves
just the arrows. Start here if the chart feels busy.
• Swing High/Low Length — the noise filter. Higher = fewer, bigger
swings. It drives the structure tags and the signals.
• Zone Count — how far back order blocks are kept on the chart.
• Zone Invalidation — Wick or Close. Wick kills a zone sooner.
Works on any symbol and any timeframe. Everything is toggleable, so
run the full picture or strip it to arrows.
Built on open-source Smart Money and volumized order-block work from
the PulseWire community. Added here: the three-way confluence gate,
the automatic HH/LH/HL/LL tagging, Signals-Only mode, and the last-five
signal table.
This is a charting tool, not advice. It marks structure and zones — it
does not know Indicator

OSAMA ZALLOUM V2//@version=6
indicator("XAUUSD SMC/ICT System", shorttitle="XAU SMC-ICT", overlay=true, max_boxes_count=300, max_lines_count=300, max_labels_count=300)
// ============================================================================
// INPUTS
// ============================================================================
swingLen = input.int(5, "Swing Pivot Length", minval=2, maxval=50, group="Market Structure", tooltip="Lower = faster/more sensitive. Higher = major structure only. Suggested: H4/D=7-8, H1=5-6, M15=5, M5=8-10.")
showStructure = input.bool(true, "Show BOS / CHoCH Labels", group="Market Structure")
showSwingSR = input.bool(true, "Show Auto Support/Resistance", group="Market Structure")
maxSRLines = input.int(6, "Max S/R Lines Kept", minval=1, maxval=20, group="Market Structure")
showOB = input.bool(true, "Show Order Blocks", group="Order Blocks")
obSearchBars = input.int(15, "OB Search Window (bars)", minval=3, maxval=50, group="Order Blocks")
maxOBBoxes = input.int(4, "Max Order Blocks per Side", minval=1, maxval=20, group="Order Blocks")
bullOBColor = input.color(color.new(color.teal, 82), "Bullish OB Color", group="Order Blocks")
bearOBColor = input.color(color.new(color.red, 82), "Bearish OB Color", group="Order Blocks")
showFVG = input.bool(true, "Show Fair Value Gaps", group="Fair Value Gap")
maxFVGBoxes = input.int(5, "Max FVG Boxes per Side", minval=1, maxval=30, group="Fair Value Gap")
minFVGSizeATR = input.float(0.0, "Min FVG Size (x ATR, 0 = off)", minval=0.0, maxval=5.0, step=0.1, group="Fair Value Gap", tooltip="Filters out small gaps. Raise to 0.3-0.5 during strong trends when FVGs stack up too much.")
bullFVGColor = input.color(color.new(color.blue, 82), "Bullish FVG Color", group="Fair Value Gap")
bearFVGColor = input.color(color.new(color.orange, 82), "Bearish FVG Color", group="Fair Value Gap")
showLiquidity = input.bool(true, "Show Equal Highs/Lows", group="Liquidity")
eqTolerancePct = input.float(0.10, "Equal High/Low Tolerance (%)", minval=0.01, maxval=2.0, step=0.01, group="Liquidity")
maxEQLines = input.int(6, "Max Liquidity Lines Kept", minval=1, maxval=20, group="Liquidity")
showSweeps = input.bool(true, "Show Liquidity Sweeps", group="Liquidity")
showFib = input.bool(true, "Show Auto Fibonacci (last swing leg)", group="Fibonacci")
showOTEZone = input.bool(true, "Highlight OTE Zone (0.618 - 0.79)", group="Fibonacci")
fibExtendBars = input.int(20, "Fibonacci Right Extension (bars)", minval=5, maxval=100, group="Fibonacci")
// ============================================================================
// SWING / MARKET STRUCTURE (BOS / CHoCH)
// ============================================================================
ph = ta.pivothigh(high, swingLen, swingLen)
pl = ta.pivotlow(low, swingLen, swingLen)
var float lastSwingHighVal = na
var int lastSwingHighBar = na
var float prevSwingHighVal = na
var int prevSwingHighBar = na
var float lastSwingLowVal = na
var int lastSwingLowBar = na
var float prevSwingLowVal = na
var int prevSwingLowBar = na
var bool brokeHighFlag = false
var bool brokeLowFlag = false
var int trendState = 0
if not na(ph)
prevSwingHighVal := lastSwingHighVal
prevSwingHighBar := lastSwingHighBar
lastSwingHighVal := ph
lastSwingHighBar := bar_index - swingLen
brokeHighFlag := false
if not na(pl)
prevSwingLowVal := lastSwingLowVal
prevSwingLowBar := lastSwingLowBar
lastSwingLowVal := pl
lastSwingLowBar := bar_index - swingLen
brokeLowFlag := false
bullBreak = not na(lastSwingHighVal) and close > lastSwingHighVal and not brokeHighFlag
bearBreak = not na(lastSwingLowVal) and close < lastSwingLowVal and not brokeLowFlag
if bullBreak
brokeHighFlag := true
if showStructure
label.new(bar_index, low, trendState == 1 ? "BOS" : "CHoCH", style=label.style_label_up, color=color.new(color.green, 0), textcolor=color.white, size=size.tiny)
trendState := 1
if bearBreak
brokeLowFlag := true
if showStructure
label.new(bar_index, high, trendState == -1 ? "BOS" : "CHoCH", style=label.style_label_down, color=color.new(color.red, 0), textcolor=color.white, size=size.tiny)
trendState := -1
var array srLines = array.new()
if showSwingSR and not na(ph)
srLineH = line.new(bar_index - swingLen, ph, bar_index, ph, color=color.new(color.red, 40), style=line.style_dashed, extend=extend.right)
array.push(srLines, srLineH)
if array.size(srLines) > maxSRLines
line.delete(array.shift(srLines))
if showSwingSR and not na(pl)
srLineL = line.new(bar_index - swingLen, pl, bar_index, pl, color=color.new(color.teal, 40), style=line.style_dashed, extend=extend.right)
array.push(srLines, srLineL)
if array.size(srLines) > maxSRLines
line.delete(array.shift(srLines))
// ============================================================================
// ORDER BLOCKS
// ============================================================================
var array bullOBBoxes = array.new()
var array bearOBBoxes = array.new()
if showOB and bullBreak
float obTop = na
float obBottom = na
int obBar = na
for i = 1 to obSearchBars
if close < open
obTop := high
obBottom := low
obBar := bar_index - i
break
if not na(obBar)
obBoxBull = box.new(left=obBar, top=obTop, right=bar_index, bottom=obBottom, border_color=color.teal, bgcolor=bullOBColor, text="OB", text_size=size.tiny, text_color=color.teal)
array.push(bullOBBoxes, obBoxBull)
if array.size(bullOBBoxes) > maxOBBoxes
box.delete(array.shift(bullOBBoxes))
if showOB and bearBreak
float obTop2 = na
float obBottom2 = na
int obBar2 = na
for i = 1 to obSearchBars
if close > open
obTop2 := high
obBottom2 := low
obBar2 := bar_index - i
break
if not na(obBar2)
obBoxBear = box.new(left=obBar2, top=obTop2, right=bar_index, bottom=obBottom2, border_color=color.red, bgcolor=bearOBColor, text="OB", text_size=size.tiny, text_color=color.red)
array.push(bearOBBoxes, obBoxBear)
if array.size(bearOBBoxes) > maxOBBoxes
box.delete(array.shift(bearOBBoxes))
if array.size(bullOBBoxes) > 0
for i = array.size(bullOBBoxes) - 1 to 0
obB = array.get(bullOBBoxes, i)
if close < box.get_bottom(obB)
box.delete(obB)
array.remove(bullOBBoxes, i)
else
box.set_right(obB, bar_index)
if array.size(bearOBBoxes) > 0
for i = array.size(bearOBBoxes) - 1 to 0
obB2 = array.get(bearOBBoxes, i)
if close > box.get_top(obB2)
box.delete(obB2)
array.remove(bearOBBoxes, i)
else
box.set_right(obB2, bar_index)
// ============================================================================
// FAIR VALUE GAPS (FVG)
// ============================================================================
atrVal = ta.atr(14)
var array bullFVGBoxes = array.new()
var array bearFVGBoxes = array.new()
bullFVG = low > high and (minFVGSizeATR == 0 or (low - high ) > atrVal * minFVGSizeATR)
bearFVG = high < low and (minFVGSizeATR == 0 or (low - high) > atrVal * minFVGSizeATR)
if showFVG and bullFVG
fvgBoxBull = box.new(left=bar_index - 2, top=low, right=bar_index, bottom=high , border_color=color.blue, bgcolor=bullFVGColor, text="FVG", text_size=size.tiny, text_color=color.blue)
array.push(bullFVGBoxes, fvgBoxBull)
if array.size(bullFVGBoxes) > maxFVGBoxes
box.delete(array.shift(bullFVGBoxes))
if showFVG and bearFVG
fvgBoxBear = box.new(left=bar_index - 2, top=low , right=bar_index, bottom=high, border_color=color.orange, bgcolor=bearFVGColor, text="FVG", text_size=size.tiny, text_color=color.orange)
array.push(bearFVGBoxes, fvgBoxBear)
if array.size(bearFVGBoxes) > maxFVGBoxes
box.delete(array.shift(bearFVGBoxes))
if array.size(bullFVGBoxes) > 0
for i = array.size(bullFVGBoxes) - 1 to 0
fvgB = array.get(bullFVGBoxes, i)
if close < box.get_bottom(fvgB)
box.delete(fvgB)
array.remove(bullFVGBoxes, i)
else
box.set_right(fvgB, bar_index)
if array.size(bearFVGBoxes) > 0
for i = array.size(bearFVGBoxes) - 1 to 0
fvgB2 = array.get(bearFVGBoxes, i)
if close > box.get_top(fvgB2)
box.delete(fvgB2)
array.remove(bearFVGBoxes, i)
else
box.set_right(fvgB2, bar_index)
// ============================================================================
// LIQUIDITY: EQUAL HIGHS / LOWS + SWEEPS
// ============================================================================
var array eqLines = array.new()
var array eqLabels = array.new()
if showLiquidity and not na(ph) and not na(prevSwingHighVal)
if math.abs(ph - prevSwingHighVal) <= prevSwingHighVal * eqTolerancePct / 100
eqLineH = line.new(prevSwingHighBar, prevSwingHighVal, bar_index - swingLen, ph, color=color.new(color.fuchsia, 20), width=2)
eqLabelH = label.new(bar_index - swingLen, ph, "EQH", style=label.style_label_down, color=color.new(color.fuchsia, 20), textcolor=color.fuchsia, size=size.tiny)
array.push(eqLines, eqLineH)
array.push(eqLabels, eqLabelH)
if array.size(eqLines) > maxEQLines
line.delete(array.shift(eqLines))
label.delete(array.shift(eqLabels))
if showLiquidity and not na(pl) and not na(prevSwingLowVal)
if math.abs(pl - prevSwingLowVal) <= prevSwingLowVal * eqTolerancePct / 100
eqLineL = line.new(prevSwingLowBar, prevSwingLowVal, bar_index - swingLen, pl, color=color.new(color.fuchsia, 20), width=2)
eqLabelL = label.new(bar_index - swingLen, pl, "EQL", style=label.style_label_up, color=color.new(color.fuchsia, 20), textcolor=color.fuchsia, size=size.tiny)
array.push(eqLines, eqLineL)
array.push(eqLabels, eqLabelL)
if array.size(eqLines) > maxEQLines
line.delete(array.shift(eqLines))
label.delete(array.shift(eqLabels))
var bool sweptLowFlag = false
var bool sweptHighFlag = false
if not na(pl)
sweptLowFlag := false
if not na(ph)
sweptHighFlag := false
bullishSweep = showSweeps and not na(lastSwingLowVal) and low < lastSwingLowVal and close > lastSwingLowVal and not sweptLowFlag
bearishSweep = showSweeps and not na(lastSwingHighVal) and high > lastSwingHighVal and close < lastSwingHighVal and not sweptHighFlag
if bullishSweep
sweptLowFlag := true
label.new(bar_index, low, "Sweep", style=label.style_label_up, color=color.new(color.lime, 0), textcolor=color.black, size=size.tiny)
if bearishSweep
sweptHighFlag := true
label.new(bar_index, high, "Sweep", style=label.style_label_down, color=color.new(color.maroon, 0), textcolor=color.white, size=size.tiny)
// ============================================================================
// AUTO FIBONACCI (from most recent swing leg) + OTE ZONE
// ============================================================================
var line fibLine0 = na
var line fibLine236 = na
var line fibLine382 = na
var line fibLine5 = na
var line fibLine618 = na
var line fibLine79 = na
var line fibLine100 = na
var box oteBox = na
updateFib = showFib and (not na(ph) or not na(pl)) and not na(lastSwingHighVal) and not na(lastSwingLowVal)
if updateFib
line.delete(fibLine0)
line.delete(fibLine236)
line.delete(fibLine382)
line.delete(fibLine5)
line.delete(fibLine618)
line.delete(fibLine79)
line.delete(fibLine100)
box.delete(oteBox)
bool upLeg = lastSwingHighBar > lastSwingLowBar
float hi = lastSwingHighVal
float lo = lastSwingLowVal
float diff = hi - lo
int leftBar = upLeg ? lastSwingLowBar : lastSwingHighBar
int rightBar = bar_index + fibExtendBars
float lv0 = upLeg ? hi : lo
float lv236 = upLeg ? hi - diff * 0.236 : lo + diff * 0.236
float lv382 = upLeg ? hi - diff * 0.382 : lo + diff * 0.382
float lv5 = upLeg ? hi - diff * 0.5 : lo + diff * 0.5
float lv618 = upLeg ? hi - diff * 0.618 : lo + diff * 0.618
float lv79 = upLeg ? hi - diff * 0.79 : lo + diff * 0.79
float lv100 = upLeg ? lo : hi
fibLine0 := line.new(leftBar, lv0, rightBar, lv0, color=color.new(color.gray, 30))
fibLine236 := line.new(leftBar, lv236, rightBar, lv236, color=color.new(color.gray, 30))
fibLine382 := line.new(leftBar, lv382, rightBar, lv382, color=color.new(color.gray, 30))
fibLine5 := line.new(leftBar, lv5, rightBar, lv5, color=color.new(color.gray, 30))
fibLine618 := line.new(leftBar, lv618, rightBar, lv618, color=color.new(color.yellow, 20))
fibLine79 := line.new(leftBar, lv79, rightBar, lv79, color=color.new(color.yellow, 20))
fibLine100 := line.new(leftBar, lv100, rightBar, lv100, color=color.new(color.gray, 30))
if showOTEZone
oteBox := box.new(left=leftBar, top=math.max(lv618, lv79), right=rightBar, bottom=math.min(lv618, lv79), bgcolor=color.new(color.yellow, 85), border_color=color.new(color.yellow, 50), text="OTE", text_size=size.tiny)
// ============================================================================
// BIAS INFO PANEL
// ============================================================================
var table infoTable = table.new(position.top_right, 1, 1, bgcolor=color.new(color.black, 70), border_width=1, border_color=color.gray)
if barstate.islast
string biasText = trendState == 1 ? "BIAS: BULLISH" : trendState == -1 ? "BIAS: BEARISH" : "BIAS: NEUTRAL"
color biasColor = trendState == 1 ? color.lime : trendState == -1 ? color.red : color.gray
table.cell(infoTable, 0, 0, biasText, text_color=biasColor, text_size=size.small)
// ============================================================================
// ALERTS
// ============================================================================
alertcondition(bullBreak, title="Bullish BOS/CHoCH", message="XAUUSD: Bullish structure break")
alertcondition(bearBreak, title="Bearish BOS/CHoCH", message="XAUUSD: Bearish structure break")
alertcondition(bullishSweep, title="Bullish Liquidity Sweep", message="XAUUSD: Bullish liquidity sweep detected")
alertcondition(bearishSweep, title="Bearish Liquidity Sweep", message="XAUUSD: Bearish liquidity sweep detected")
Indicator

Strategy

Prontuario CSP + Zonas | R1M# Prontuario CSP + Zonas | R1M
**Línea corta (tagline):**
Checklist visual para vender Cash-Secured Puts con disciplina: 10 criterios, zonas de soporte/resistencia y avisos de volatilidad, todo en un panel.
---
## Resumen
Herramienta todo-en-uno para organizar la decisión de vender **Cash-Secured Puts (CSP)** sobre acciones de calidad, siguiendo un checklist de criterios fijo y disciplinado. Reúne en un solo panel el estado de cada criterio de entrada, dibuja las zonas de soporte y resistencia del rango, mide qué tan extendido está el precio respecto a sus medias, y avisa de caídas intradía que suelen elevar la volatilidad implícita.
La idea es simple: **quitar la emoción de la decisión**. En vez de vender un put "porque se ve barato", el panel te obliga a revisar los mismos criterios cada vez y te da un veredicto claro de si el nombre es candidato o si toca esperar.
## Qué muestra
- **Panel de 10 criterios:** calidad del subyacente, contexto técnico vs media de 200, cash requerido, IV Rank, delta objetivo, DTE, yield estimado, y recordatorios de los criterios que requieren tu confirmación manual (catalizador, earnings y exposición de sector).
- **Zonas de soporte/resistencia:** caja verde en la mitad inferior del rango (soporte/demanda) y caja roja en la superior (resistencia), calculadas con el máximo y mínimo del lookback. Incluye líneas de máximo, mínimo y punto medio, y marca el soporte como referencia de strike.
- **Descuento vs EMA50 y EMA200:** mide en porcentaje qué tan lejos está el precio de sus medias. Negativo = pullback/descuento; positivo = extendido/premium.
- **Aviso de caída del día:** etiqueta ↓IV cuando el precio cae dentro de una banda configurable (2–5% por defecto), como señal de posible salto de volatilidad.
- **Línea de strike estimado:** nivel aproximado según la delta objetivo que elijas.
- **Veredicto:** 🟢 CANDIDATO / 🔴 ESPERAR según los criterios que el script puede evaluar de forma automática.
## Cómo se usa
1. Aplica el indicador sobre una acción de tu universo de calidad.
2. Revisa el panel: el veredicto se pone en 🟢 cuando se cumplen los criterios automáticos.
3. Confirma los criterios manuales (catalizador, earnings, sector) y, sobre todo, la **delta y la prima reales en tu bróker**.
4. Usa las zonas y el descuento vs EMA para afinar el momento de entrada: lo ideal es vender el put con el precio en zona de soporte y con descuento respecto a la EMA50.
5. Activa las alertas (clic derecho en el gráfico → Añadir alerta) para recibir avisos de candidato, caída del día o entrada a la zona de soporte.
## Ajustes principales
- DTE objetivo, modo de delta (want-to-own 0.20–0.30 o premium grab 0.10–0.15) y yield mensual objetivo.
- Ventana de HV y lookback del IV Rank.
- EMAs de referencia y si el criterio técnico usa EMA o SMA.
- Banda de la caída del día.
- Lookback y grosor de las zonas de soporte/resistencia (se pueden apagar por completo).
## Nota importante
Este indicador es una **herramienta educativa y de organización, no una recomendación de inversión**.
Pine Script no tiene acceso a la cadena de opciones. Por eso, el **IV Rank se aproxima con la volatilidad histórica (HV)** y el **yield se estima con el modelo Black-Scholes** usando esa HV como proxy de la volatilidad implícita. Los valores reales de delta, prima e IV deben confirmarse siempre en tu bróker, sobre todo cerca de reportes de resultados, cuando la IV real suele superar a la HV.
Vender opciones conlleva riesgo de asignación y de pérdida. Cada quien opera bajo su propio criterio y gestión de riesgo.
Indicator

CORTEX MULTI-TIMEFRAME POI ENGINE# CORTEX MULTI-TIMEFRAME POI ENGINE
The CORTEX MULTI-TIMEFRAME POI ENGINE is a rules-based PulseWire indicator designed to identify, qualify, and manage supply-and-demand Points of Interest across multiple structural timeframes.
Rather than marking every pivot, opposing candle, or conventional order block, CORTEX applies a structured qualification process built around confirmed market structure, consolidation quality, displacement, retracement depth, imbalance, liquidity proxies, and breaker-block behavior.
## Multi-Timeframe Market Structure
CORTEX organizes market location into three distinct layers:
- **Daily POIs** establish higher-timeframe macro location.
- **H4 POIs** identify intermediate structural areas.
- **M15 and M5 AM-session POIs** support intraday refinement on NQ and ES.
Daily, H4, M15, and M5 layers are independently controlled, allowing traders to reduce chart clutter and focus only on the context relevant to their current workflow.
## POI Qualification
A standard CORTEX POI progresses through an objective detection pipeline:
1. Meaningful retracement
2. Compressed base formation
3. Institutional Footprint Candle refinement
4. Directional displacement
5. Mandatory break of structure
6. Liquidity and imbalance evaluation
7. Width and location validation
8. Transparent quality scoring
9. Confirmed zone creation
Break of structure is mandatory. Additional characteristics contribute to a configurable quality score rather than relying on unexplained probability claims.
Available qualification modes include:
- **Loose** for broader structural identification
- **Balanced** for the recommended combination of quality and frequency
- **Strict** for selective, higher-confluence zones
- **Custom** for complete user control
## Breaker-Block Fusion
The engine includes an independently developed ICT breaker-block module.
A potential order block becomes a breaker only after a later confirmed candle closes through its opposite boundary. Wick-only violations do not qualify.
Breaker blocks may:
- Create standalone breaker POIs
- Add confluence to existing supply or demand zones
- Merge with overlapping, same-direction POIs
- Refine the final area to the valid price intersection
- Increase the zone’s score without exceeding 100
Merged areas are classified as **Breaker-Confluent POIs**, helping distinguish ordinary structural zones from areas supported by a confirmed failed-block transition.
## CORTEX AM Session POI Layer
The intraday module is designed specifically for NQ and ES during the default **08:00–11:00 America/New_York** session.
It provides:
- M15 POIs on M15 and M5 charts
- M5 POIs on M5 charts
- Automatic daylight-saving adjustment
- Automatic NQ and ES futures-root recognition
- Optional manual instrument override
- Confirmed post-session BOS allowance
- Independent demand, supply, timeframe, and display controls
Mandatory default width limits are:
- **NQ: 250 ticks**
- **ES: 40 ticks**
Zone width is calculated using the instrument’s native minimum tick size. Candidates exceeding the applicable limit are rejected before publication.
## Transparent Scoring
Each POI receives an objective score from 0 to 100. Depending on the selected mode and timeframe, the score may incorporate:
- Confirmed BOS
- Base quality
- Retracement depth
- Departure strength
- Liquidity sweep
- Fair-value gap or imbalance
- Resting-liquidity proxy
- Breaker-block confluence
Scores and classifications can be displayed directly on zone labels and in the Data Window.
## Zone Lifecycle Management
Every confirmed POI is actively managed through the following lifecycle:
- **Fresh**
- **Tested**
- **Mitigated**
- **Invalidated**
- **Expired**
Users can configure mitigation and invalidation behavior, retain invalidated zones for historical review, and control how long intraday zones remain available.
## Non-Repainting Design
CORTEX uses confirmed source-timeframe information for zone creation.
Higher-timeframe results are transported using confirmed historical offsets, preventing unfinished Daily, H4, M15, or M5 candles from publishing premature zones. A confirmed POI may be anchored to its original footprint candle, but it does not become logically active before its qualifying structure is complete.
This deliberate confirmation delay is intended to support stable behavior across:
- Historical charts
- Realtime execution
- PulseWire Bar Replay
## Diagnostics and Alerts
The CORTEX diagnostics dashboard reports:
- Latest qualification stage
- Signals detected
- Candidates awaiting BOS
- Width-filter rejections
- Breaker flips
- Zones retained
- Session status
- Detected instrument
- Applicable tick limit
- Chart-timeframe compatibility
Alerts are available for new POIs, breaker zones, confluence, first tests, mitigation, and invalidation. Alerts should be configured for **Once Per Bar Close**.
## Intended Workflow
CORTEX is designed to support a top-down process:
1. Use Daily zones to establish macro location.
2. Use H4 zones to refine structural context.
3. Use M15 zones for intraday directional areas.
4. Use M5 zones for lower-timeframe refinement.
5. Evaluate price behavior at qualified zones rather than treating every zone as an automatic entry.
CORTEX does not claim to identify actual institutional orders. Supply, demand, liquidity, imbalance, and breaker classifications are objective technical proxies derived from price action.
This indicator is an analytical framework—not financial advice or a guarantee of future performance. Traders should combine it with appropriate confirmation, risk management, and independent judgment. Indicator

Indicator

Automated Liquidity & Key Levels Matrix PROAutomated Liquidity & Key Levels Matrix PRO
Automated Liquidity & Key Levels Matrix PRO is an advanced, multi functional technical analysis script designed for quantitative traders and technical analysts. It automatically isolates high probability support and resistance zones, tracks real time market structure breakouts with split line clarity, highlights high volume expansion candles, and provides an attractive glowing trend wave layer.
Key Features Overview
1. Ultra Attractive Glowing Trend Wave
Includes a smooth dynamic trend wave with adjustable halo glow effects, line width, and colors to easily visualize dynamic trend direction.
2. Clean Split Line Market Structure Signals
Features refined Break of Structure and Change of Character signals. The structure line splits cleanly around the centered label, leaving a gap so the text stands out clearly without line overlap.
3. Text Free Clean Major Swing Badges
Isolates major macro swing high and low extremes using text free, solid color directional badges to keep chart visuals clean and minimal.
4. Dynamic Support and Resistance Zones
Automatically maps key supply and demand ranges across price action. To keep your chart clean and easy to read, broken or mitigated zones automatically disappear as soon as price breaks through them.
5. Volume Weighted Smart Candlestick Heatmap
Combines dynamic structural trend direction with volume expansion detection. High volume expansion bars render in distinct neon pink highlights for instant volatility identification.
6. Comprehensive Customization Panel
Includes independent controls for line thickness, text colors, line colors, font sizes, wave parameters, and zone fill opacity.
How to Use
Step 1: Trend Identification
Observe the Glowing Trend Wave and Volume Weighted Smart Candlestick theme to gauge underlying trend direction.
Step 2: Monitor Dynamic Key Zones
Look for price interactions around active, unmitigated support and resistance zones.
Step 3: Analyze Clean Structure Signals
Watch for Break of Structure and Change of Character signals displayed with split lines and centered labels.
Settings Overview
Glowing Wave Settings
- Show Glowing Wave Layer: Toggle display of the dynamic trend wave.
- Wave Period & Line Thickness: Adjust wave sensitivity and visual halo glow.
Market Structure Settings
- Show Breakout Signals: Toggle structural lines and labels.
- Independent Colors & Sizes: Customize BOS/CHoCH line colors, text colors, and font sizes separately.
Support and Resistance Settings
- Show Dynamic Support & Resistance: Toggle zone rectangles.
- Zone Fill Transparency: Customize fill opacity from 0 to 100.
Major Swing Settings
- Show Clean Major Swing Badges: Toggle text free ITH/ITL pivot badges.
Disclaimer
This script is built strictly for educational, analytical, and charting enhancement purposes. It does not provide financial advice, trade recommendations, or guaranteed results. Always practice proper risk management. Indicator

Indicator

2pac futures times 3AM & 11AM Candle Boxes (NY Time)
---
**3AM & 11AM Candle Box — New York Time Session Levels**
This indicator marks two of the most-watched clock-time candles on any 5-minute chart: the candle that opens at **3:00 AM New York time** and the one that opens at **11:00 AM New York time**. Each candle's high and low get boxed in — grey for the 3AM candle, blue for the 11AM candle — and the box can stretch forward in real time so that level stays visible as price continues to trade through the day.
Why these two times matter: 3:00 AM NY sits right around the London session ramp-up, often marking the range price consolidates in before the New York session opens. 11:00 AM NY falls in the middle of the NY AM session, a common checkpoint traders use to judge whether the morning's move has real follow-through or is starting to stall. Boxing both gives you two clean, objective reference zones without having to eyeball chart time stamps.
**How to use it for entries**
The most common way to trade off these boxes is a **break and retest**: wait for price to close outside the box (above for a long idea, below for a short), then watch for price to pull back and test that broken edge as new support or resistance before continuing in the breakout direction. A stop typically sits just on the other side of the box; a target is usually the next visible structure, prior high/low, or a fixed risk-multiple.
**Confluence** is what separates a random break from a higher-quality one — look for the retest to line up with other things you already trust: a prior day's high/low, a round number, a VWAP touch, or a higher-timeframe trendline. The more of those stacking at the same retest zone, the more weight that level tends to carry.
Both boxes are fully adjustable — time, color, and whether they extend live or stop at a fixed width — so this works as a standalone session marker or as one more layer of confluence in a broader system.
*Not financial advice — for educational and charting purposes only.* Indicator

PolarLabs - SMC OB & Sweep SetupPolarLabs - SMC OB & Sweep Setup
SMC OB & Sweep Setup is a price-action indicator built around Smart Money Concepts (SMC). It looks for potential trade setups by combining liquidity sweeps, market structure breaks, Fair Value Gaps (FVGs), and Order Blocks (OBs).
The script follows a confirmation-based process:
1. Liquidity Sweep
It detects when price sweeps a previous swing high or swing low, then rejects back inside the level with a meaningful wick. This may indicate a potential liquidity grab.
2. Market Structure Confirmation
After a sweep, the indicator waits for price to break the opposing swing structure:
• Bearish setup: sweep above a swing high, followed by a bearish break of structure.
• Bullish setup: sweep below a swing low, followed by a bullish break of structure.
3. Fair Value Gap Filter
A valid setup also requires a Fair Value Gap to be present during the confirmation move, helping filter for stronger displacement.
4. Order Block and Risk Levels
Once confirmed, the script draws:
• The Order Block zone
• The Break of Structure (BOS) level
• Suggested Stop Loss level
• Take Profit 1 at 1:1 risk-to-reward
• Take Profit 2 at 1:2 risk-to-reward
Risk buffers can be calculated using either:
• ATR-based buffer — adapts to current market volatility
• Order Block range percentage — uses the size of the detected Order Block
How to read the chart:
• “Sweep” label: price has taken liquidity above/below a previous swing point and rejected.
• “BOS” label: market structure has been broken and the setup is confirmed.
• Red Order Block: potential bearish zone.
• Green Order Block: potential bullish zone.
• Red dotted line: Stop Loss.
• Green dotted line: TP1 (1R).
• Blue dotted line: TP2 (2R).
Important:
This indicator is designed to highlight potential SMC-based setups, not to guarantee profitable trades. Market structure, liquidity concepts, and Fair Value Gaps are interpreted algorithmically and may not match every trader’s discretionary definition. Always confirm setups with your own analysis and apply proper risk management.
Feedback, suggestions, and improvement ideas are welcome! Indicator

Ichimoku + ADX + EMA - Visual Intuitive (Fixed)***Ichimoku + ADX + EMA — Confluencia Visual de Tendencia***
- Herramienta de confirmación de tendencia que combina tres indicadores clásicos en una sola lectura visual, pensada para identificar de un vistazo cuándo el mercado está en tendencia fuerte y en qué dirección.
Cómo funciona:
- Nube de Ichimoku (Tenkan/Kijun/Senkou A-B/Chikou, calculada de forma manual y estable) muestra la estructura de tendencia de mediano plazo. La nube cambia a gris automáticamente cuando el ADX indica que la tendencia es débil — así evitas operar señales de Ichimoku en mercados sin dirección clara.
- ADX mide la fuerza de la tendencia (no la dirección) — coloreado en verde/amarillo/rojo según qué tan fuerte es el movimiento actual, con línea de referencia en el umbral que configures.
- EMA 50 da la dirección de fondo — cambia de azul a naranja según el precio esté por encima o por debajo.
- Señal de confluencia: el fondo del gráfico se pinta de verde o rojo tenue solo cuando las tres condiciones coinciden a la vez (precio sobre/bajo la nube + precio sobre/bajo la EMA + ADX por encima de tu umbral) — y aparece un triángulo justo en el momento en que esa confluencia se activa, no en cada vela que la cumple, para evitar saturar el gráfico.
- Totalmente personalizable: todos los períodos de Ichimoku, la longitud y umbral del ADX, y la longitud de la EMA son ajustables desde el panel de configuración.
***Guía rápida para principiantes — cómo leer este indicador:***
*No necesitas entender la matemática detrás de Ichimoku o el ADX para usarlo. Fíjate solo en estas tres cosas:
- ¿De qué color es el fondo del gráfico?
Verde tenue = las tres herramientas apuntan hacia arriba al mismo tiempo (posible tendencia alcista fuerte).
Rojo tenue = las tres apuntan hacia abajo (posible tendencia bajista fuerte).
Sin color = no hay acuerdo entre las tres — mejor esperar, el mercado no está dando una señal clara.
- ¿Apareció un triángulo?
Un triángulo verde hacia arriba marca el momento exacto en que empezó una posible tendencia alcista.
Un triángulo rojo hacia abajo marca el inicio de una posible tendencia bajista.
Los triángulos solo aparecen una vez al inicio de cada señal, no se repiten mientras dura — así no se llena el gráfico de marcas.
- ¿La nube está gris o de color?
Si la nube está gris, el ADX te está avisando que la tendencia es débil en este momento — ten más cuidado, aunque el resto se vea alineado.
Si la nube está verde o roja, hay más fuerza detrás del movimiento.
Consejo para empezar: no uses este indicador solo — combínalo con tu propio análisis y gestión de riesgo (nunca arriesgues más de lo que estás dispuesto a perder). Este indicador te ayuda a identificar cuándo hay más probabilidad de tendencia, no te dice cuándo comprar o vender con certeza.
Este contenido es informativo y educativo, no constituye asesoría financiera ni recomendación de inversión. Los indicadores técnicos no garantizan resultados futuros. Indicator

Indicator

Indicator

Institutional SMC & Order Flow Matrix PROInstitutional SMC & Order Flow Matrix PRO
Institutional SMC & Order Flow Matrix PRO is a clean, modern, and highly versatile technical charting tool engineered for traders practicing Smart Money Concepts and Order Flow Trading. Built with a focus on visual clarity, it eliminates unnecessary chart clutter by utilizing auto mitigating execution zones, swing anchored market structure lines, and an intelligent trend heatmap.
Key Features Overview
1. Precision Anchored Market Structure
Tracks Break of Structure and Change of Character signals with extreme precision. Lines originate directly from actual swing high or low pivot prices, while structure text labels sit neatly in the center of lines to prevent candle overlap.
2. Smart Auto Mitigating Order Block Zones
Automatically maps active institutional order blocks and imbalance execution zones. Mitigated zones automatically vanish from your chart once price fills the imbalance, keeping your workspace clean and professional.
3. Institutional Candle Heatmap
Features dynamic candlestick coloring driven by macro structural pivots. Bullish trend phases render in clean vibrant green, bearish phases in deep red, and high momentum displacement candles highlight in glowing gold.
4. Major Intermediate Term High and Low Badges
Automatically detects macro structural extremes. Displays solid red Intermediate Term High badges at major resistance tops and green Intermediate Term Low badges at major support bottoms.
5. Complete Manual Customization Suite
Includes comprehensive user settings for every element. Customize line styles, line thickness, border widths, box transparency, text alignment, text colors, and font sizes.
How to Use
Step 1: Identify Macro Trend Bias
Observe the Institutional Candle Heatmap theme to quickly determine current directional order flow.
Step 2: Monitor Centered Structure Signals
Look for precise Break of Structure lines and Change of Character signals anchored directly from swing points.
Step 3: Spot Gold Displacement Candles
Identify gold highlighted expansion candles that create fresh institutional order blocks.
Step 4: Trade Active Execution Zones
Utilize unmitigated bullish and bearish order block zones for high probability entries.
Settings Overview
Market Structure Settings
- Show Market Structure: Toggle structural line displays.
- Line Style and Thickness: Choose between Solid, Dashed, or Dotted lines with adjustable width.
Order Block Zone Settings
- Show Active Order Blocks: Toggle order block rectangles.
- Zone Fill Transparency: Adjust fill opacity from 0 to 100.
- Zone Text Settings: Customize display text, text alignment, font size, and text color.
Major Pivot Settings
- Show Major ITH / ITL Badges: Toggle visibility of macro pivot badges.
- Sensitivity: Adjust pivot lookback sensitivity.
Candle Heatmap Settings
- Enable Trend Candle Heatmap: Toggle dynamic trend candles and gold displacement highlights.
Disclaimer
This indicator is built strictly for educational, analytical, and charting enhancement purposes. It does not provide financial advice, trade recommendations, or guaranteed results. Always apply proper risk management principles. Indicator

MoreThanMoney Aurum Flow ORBMoreThanMoney — Aurum Flow
A trend-following signal engine built for crypto perpetual futures (optimized for the 1H timeframe). Aurum Flow only takes trades in the direction of the dominant trend and frames each setup with a complete, static trade plan — entry, stop, and three take-profits — plus position-sizing and cost analytics for leveraged accounts.
How it works
Trend filter (DEMA stack): longs only when DEMA 15 > 50 > 238, shorts only when reversed. Counter-trend noise is filtered out.
Signal trigger: a Point-of-Control (volume POC) crossover, confirmed by the trend filter and an optional RSI check.
Static trade plan: on the signal bar, Entry / SL / TP1 / TP2 / TP3 are calculated once and frozen — the levels never drift.
ATR risk model: SL = 1.5×ATR by default; targets at 1:1.5, 1:3 and 1:6 R (fully configurable). A percentage mode is also available.
Built for perpetuals
Each level label shows the distance to entry in points and %.
An account panel turns your inputs (account size, risk %, taker fee, max leverage) into suggested notional, useful leverage, margin, and round-trip fee cost — so you know the real cost and sizing of every trade before you take it.
Alerts / automation
Uses alert() with a structured JSON payload (symbol, direction, entry, SL, all TPs, distances, leverage, cost). Create one alert with the "Any alert() function call" condition to route signals to your own webhook/journal.
Recommended use: apply to liquid perpetual markets on the 1H chart. Start with the default risk model and adjust to your own plan.
⚠️ For educational purposes only. Not financial advice. Trading leveraged perpetual futures carries a high risk of loss. Past performance does not guarantee future results.
© RicardoGarciaPT / MoreThanMoney. Indicator

Indicator

Indicator

Indicator

[Kpt-Ahab] Poor Man's Orderflow Simple AlgoPilotImportant Notice and Risk Warning
The published settings were selected solely based on historical data for the asset and timeframe shown.
The displayed result may be random or over-optimized and cannot automatically be transferred to other assets, timeframes, or future market conditions. Even with the presented settings, the strategy may cause significant losses at any time, including the complete loss of the allocated strategy capital.
This script is intended exclusively for analysis and testing purposes. It does not constitute investment advice or a trading recommendation.
Description
This script uses reused and adapted code components from ** Auto RiskManagement & Backtest System 2.1b** and the ** Poor Mans Orderflow Simulator **.
These components have been combined into a standalone strategy that integrates simplified orderflow signals with position management, risk management, and backtesting functions.
How It Works
The strategy uses a simplified approximation of orderflow. It evaluates the relationship between candle body size and candle range, relative volume, candle direction, and recurring absorption and impulse events.
It does not use actual bid/ask, footprint, Level 2, or order book data.
Depending on the selected signal mode, direct breakouts, confirmed absorption clusters, impulse candles, or combinations of these conditions may generate long and short signals.
Position and Risk Management
The script supports, among other features:
* Long and short positions
* Fixed or trailing stop-loss levels
* Multiple partial profit targets
* Breakeven after the first profit target
* Optional additional entries
* Further entries may also be disabled after the specified total number of losing trades has been reached or when the maximum permitted drawdown is exceeded.
* Internal or external trading signals
* Automatic parameters based on asset class and timeframe
Additional entries and simulated leverage may significantly increase the risk of loss.
Backtest Limitations
Strategy Tester results are based exclusively on historical market data. Real-world results may differ significantly due to commissions, spreads, slippage, liquidity, price gaps, and execution delays.
Past performance is not a reliable indication of future results.
Position Closing Settings
The **Open Position Signals** setting determines how new signals are handled while a position is already open:
* **Wait-End-Deal:** All indicator signals are ignored until the current position has ended.
* **Wait-Signal-Close:** Only explicit signals for closing a long or short position are processed.
* **Wait-Reversal:** An opposing entry signal may also close the current position.
Several closing conditions are available for the integrated orderflow logic. For example, a position may be closed by an opposing impulse, a combination of a cluster and an impulse, or a confirmed opposing entry signal.
Further trading may also be restricted after a specified number of losing trades or when the maximum permitted drawdown is reached.
Trailing Stop, Breakeven, and Liquidation Line
The strategy supports both a fixed stop-loss and a trailing stop. The selected percentage represents the direct price distance from the average entry price and is not automatically adjusted by the simulated leverage.
In trailing mode, the stop is only moved in a direction that is favorable to the position. If the average entry price changes due to an additional entry, the existing stop is adjusted accordingly.
The stop may optionally be moved to the average entry price after the first profit target has been reached. A stop mode must be enabled for this function to operate.
The displayed liquidation line is only an internal estimate based on the simulated position and account values. It may differ significantly from the actual liquidation calculation used by a broker or exchange.
Using External Indicators
An external numerical signal source may be used instead of the integrated Poor Man’s Orderflow Simulator.
The external indicator must provide a selectable plot series containing the following values:
* **+1:** Long or buy signal
* **−1:** Short or sell signal
* **+2:** Close short position
* **−2:** Close long position
All other values, including `na`, produce no new signal.
The external indicator must output the required numerical values through a selectable plot. This plot can then be selected under **External Source**.
Whether and how an external signal is processed while a position is open also depends on the selected **Open Position Signals** setting.
-----------------------------------
Wichtiger Hinweis und Risikowarnung
Die veröffentlichten Einstellungen wurden ausschließlich anhand historischer Daten für das dargestellte Asset und den verwendeten Zeitrahmen gewählt.
Das Ergebnis kann zufällig oder überoptimiert sein und lässt sich nicht automatisch auf andere Assets, Zeitrahmen oder zukünftige Marktphasen übertragen. Auch mit den dargestellten Einstellungen kann die Strategie jederzeit erhebliche Verluste verursachen und das eingesetzte Strategiekapital vollständig verlieren.
Dieses Skript dient ausschließlich zu Analyse- und Testzwecken und stellt keine Anlageberatung oder Handelsempfehlung dar.
Beschreibung
Dieses Skript verwendet wiederverwendete und angepasste Codebestandteile aus Auto RiskManagement & Backtest System 2.1b und dem Poor Mans Orderflow Simulator .
Die Komponenten wurden zu einer eigenständigen Strategie verbunden, die vereinfachte Orderflow-Signale mit Positions-, Risiko- und Backtestfunktionen kombiniert.
Funktionsweise
Die Strategie verwendet eine vereinfachte Annäherung an Orderflow. Sie wertet das Verhältnis von Kerzenkörper und Handelsspanne, relatives Volumen, Kerzenrichtung sowie wiederkehrende Absorptions- und Impulsereignisse aus.
Dabei werden keine echten Bid-/Ask-, Footprint-, Level-2- oder Orderbuchdaten verwendet.
Abhängig vom gewählten Signalmodus können direkte Ausbrüche, bestätigte Absorptionscluster, Impulskerzen oder Kombinationen dieser Bedingungen Long- und Short-Signale erzeugen.
Positions- und Risikomanagement
Das Skript unterstützt unter anderem:
Long- und Short-Positionen
feste oder nachlaufende Stop-Loss-Marken
mehrere Teilgewinnziele
Breakeven nach dem ersten Gewinnziel
optionale zusätzliche Einstiege
Drawdown-Begrenzung und Begrenzung nach einer festgelegten Anzahl an Verlusttrades
interne oder externe Handelssignale
automatische Parameter nach Assetklasse und Zeitrahmen
Zusätzliche Einstiege und ein simulierter Hebel können das Verlustrisiko deutlich erhöhen.
Einschränkungen des Backtests
Die Ergebnisse des Strategietesters basieren ausschließlich auf historischen Kursdaten. Reale Ergebnisse können durch Gebühren, Spread, Slippage, Liquidität, Kurslücken und Ausführungsverzögerungen erheblich abweichen.
Vergangene Ergebnisse sind kein verlässlicher Hinweis auf zukünftige Ergebnisse.
Schließungseinstellungen
Über **Open Position Signals** wird festgelegt, wie neue Signale während einer bereits geöffneten Position behandelt werden:
* **Wait-End-Deal:** Alle Indikatorsignale werden bis zum Ende der Position ignoriert.
* **Wait-Signal-Close:** Nur ausdrückliche Signale zum Schließen einer Long- oder Short-Position werden berücksichtigt.
* **Wait-Reversal:** Zusätzlich kann ein entgegengesetztes Einstiegssignal die aktuelle Position schließen.
Für die integrierte Orderflow-Logik stehen verschiedene Schließungsbedingungen zur Verfügung. Eine Position kann beispielsweise durch einen gegensätzlichen Impuls, eine Kombination aus Cluster und Impuls oder ein bestätigtes entgegengesetztes Einstiegssignal geschlossen werden.
Zusätzlich kann der weitere Handel nach einer festgelegten Anzahl an Verlusttrades oder beim Erreichen des maximal erlaubten Drawdowns begrenzt werden.
Trailing-Stop, Breakeven und Liquidationslinie
Die Strategie unterstützt einen festen Stop-Loss sowie einen nachlaufenden Trailing-Stop. Der eingestellte Prozentwert beschreibt dabei den direkten Abstand zum durchschnittlichen Einstiegspreis und wird nicht automatisch durch den simulierten Hebel verändert.
Im Trailing-Modus wird der Stop nur in eine für die Position günstigere Richtung nachgezogen. Verändert sich der durchschnittliche Einstiegspreis durch einen zusätzlichen Einstieg, wird auch der bestehende Stop entsprechend angepasst.
Optional kann der Stop nach dem Erreichen des ersten Gewinnziels auf den durchschnittlichen Einstiegspreis verschoben werden. Hierfür muss ein Stop-Modus aktiviert sein.
Die angezeigte Liquidationslinie ist lediglich eine interne Schätzung auf Basis der simulierten Positions- und Kontowerte. Sie kann deutlich von der tatsächlichen Liquidationsberechnung eines Brokers oder einer Börse abweichen.
Verwendung externer Indikatoren
Anstelle des integrierten Poor-Man’s-Orderflow-Simulators kann eine externe numerische Signalquelle verwendet werden.
Hierfür muss der externe Indikator eine auswählbare Plot-Serie mit den folgenden Werten ausgeben:
* **+1:** Long- beziehungsweise Kaufsignal
* **−1:** Short- beziehungsweise Verkaufssignal
* **+2:** Short-Position schließen
* **−2:** Long-Position schließen
Bei allen anderen Werten oder bei `na` wird kein neues Signal ausgeführt.
Der externe Indikator muss die benötigten Zahlenwerte direkt über einen auswählbaren Plot bereitstellen. Anschließend wird dieser Plot unter **External Source** ausgewählt.
Ob und wie ein externes Signal während einer geöffneten Position verarbeitet wird, hängt zusätzlich von der gewählten Einstellung unter **Open Position Signals** ab. Strategy

Indicator

Indicator

Z-Edge | Confluence Z-score StrategyA multi-factor trading strategy that standardizes three independent market signals — momentum, RSI, and relative volume — into a single composite Z-score, then trades either trend-following or mean-reversion setups off that score. Position size and stop placement are calculated automatically from ATR-based risk, so every trade is sized consistently regardless of the asset's volatility.
Features
Multi-factor composite — blends price momentum (rate of change), RSI, and relative volume into one Z-scored reading, with adjustable weights so you can lean the composite toward whichever factor you trust most for a given market.
Adaptive smoothing — the EMA smoothing length isn't fixed. It automatically shortens in high-volatility regimes (faster response) and lengthens in calm regimes (less noise), driven by an ATR percentile rank.
Two entry modes — Zero Cross (trend-following: enter when the composite crosses through zero) or Threshold Reversion (mean-reversion: enter when the composite reverses from an extreme).
Divergence detection — flags when price makes a new high/low that the composite Z-score doesn't confirm, a classic early-warning signal the underlying factors alone don't show.
ATR-based risk sizing — every trade's position size is calculated from your risk-per-trade %, account equity, and ATR stop distance, with a hard cap on max % of equity per position.
Automatic stop-loss placement — stops are placed directly from the ATR calculation, not just displayed.
How the algorithm works
Factor calculation — momentum is measured as rate-of-change over a configurable lookback, RSI uses a standard length, and relative volume is current volume divided by its moving average.
Standardization — each factor is converted to a Z-score (value − mean) / stdev over a shared lookback period, making them comparable regardless of asset or scale.
Composite blend — the three Z-scores are combined using your weight inputs into one composite reading.
Adaptive smoothing — an ATR percentile rank (0–100) determines where the current volatility regime sits historically, and that percentile scales the EMA smoothing length between your min/max settings.
Signal generation — depending on the selected mode, entries fire either on a zero-line cross (trend) or on a reversal from a threshold extreme (reversion); exits fire on the opposite condition or when the ATR stop is hit.
Sizing — position size = (account equity × risk %) ÷ (ATR × stop multiplier), capped at a max % of equity.
Tips for use
Match the mode to the market. Zero Cross mode is built for trending assets; Threshold Reversion is built for range-bound ones. Running the wrong mode on the wrong market condition is the most common way this underperforms.
Start on the daily timeframe. Default lookbacks (100-period Z-score, 100-period ATR percentile) are sized for daily bars; shrink them proportionally for lower timeframes.
Test on liquid assets. Relative volume is one of the three factors — thin, erratic volume data will make the composite noisier.
Backtest across a full cycle. Use at least 2+ years of data spanning both trending and ranging periods so you're not fitting to one regime.
Watch the % of equity cap. On very low-volatility assets, ATR-based sizing can push toward very large positions; the equity cap prevents unrealistic leverage but will also silently reduce your intended risk-per-trade when it kicks in — check the info table to see when that's happening.
Divergence is a filter, not a standalone signal. It's most useful for skipping or flagging entries near likely reversals, not as an independent trigger.
Strategy

Volatility Cone & Analog Path ProjectionVolatility Cone & Analog Path Projection — Forward Price Envelope with Fractal Replay and Terminal Probability Distribution
Overview
Nearly every overlay on PulseWire describes the past: where price has been, where volume traded, where structure broke. This tool points in the other direction. It builds a forward projection zone from the current bar using three independent layers — a realized-volatility cone, a replay of the historically most similar price fractals, and a terminal probability profile that combines both into a distribution of possible outcomes at the projection horizon.
The result is not a forecast. It is a bounded expectation: a visual answer to "given how this instrument has actually been moving, what range is normal over the next N bars, and where has price historically ended up after conditions that looked like this?"
Conceptual Framework
Price uncertainty grows with the square root of time, not linearly. A 24-bar projection is not 24 times as wide as a 1-bar projection — it is roughly 4.9 times as wide. Traders who size targets and stops on a straight-line mental model consistently misjudge what is achievable in a given number of bars.
The cone makes that curvature visible. Its width at each future bar is sigma * sqrt(t), where sigma is the standard deviation of log returns over the volatility window. Three nested bands are drawn, so you can immediately see which targets sit inside the ordinary range, which sit at the statistical edge, and which would require an exceptional move.
The Gaussian model alone, however, is a poor description of real markets: returns have fat tails, and volatility clusters. The analog layer addresses this by ignoring models entirely and asking an empirical question instead — what actually happened, historically, after the market printed this exact shape?
How It Works
Volatility estimation. Log returns are computed bar to bar. Their standard deviation over the volatility window gives the per-bar sigma; their mean gives the drift. Drift can be included or excluded from the cone's centerline.
Cone construction. For each future bar t from 1 to the horizon, the upper and lower bounds are close * exp(drift*t ± k*sigma*sqrt(t)) for each of the three band multipliers. Each band is rendered as a closed polygon with layered transparency, producing depth from the centerline outward.
Fingerprint extraction. The most recent N bars of log returns are z-scored — mean removed, divided by their own standard deviation. This makes the pattern scale-invariant: the same shape is recognised whether it happened during a quiet range or a volatile expansion, and at any price level.
Historical scan. Every candidate window inside the scan depth is z-scored the same way and compared to the current fingerprint by summed squared difference. Lower distance means a closer shape match. Candidates that overlap an already-selected match without improving on it are rejected, so the top results are not five copies of the same event shifted by one bar.
Forward replay. For each of the top matches, the bars that followed it are converted into a relative path and re-anchored to the current close. The path each analog is drawing forward is exactly the move that occurred after that historical fingerprint — nothing is fitted or optimised. Paths ending above the current price are drawn bullish, below bearish, and a thick median line traces the bar-by-bar median across all analogs.
Terminal probability profile. At the projection horizon a horizontal distribution is built across the cone's full range. Each row's density blends the Gaussian probability implied by the volatility model with an empirical kernel centred on each analog's endpoint. The Model Weight input controls that mix: 1.0 is purely theoretical, 0.0 is purely historical, and the default sits between them. The widest row — the mode of the blended distribution — is marked as the most probable zone.
Interpretation
Cone bands define what is statistically ordinary. A target beyond the outer band within the horizon is not impossible, it is simply rare — treat it accordingly when planning holding time.
Cone width itself is information. A narrow cone means compressed volatility, which historically resolves into expansion. A wide cone means the market is already moving; chasing inside it carries a worse risk profile.
Analog dispersion matters more than analog direction. Five paths that fan out in all directions means the current shape carried no historical edge. Five paths clustering in one direction is the meaningful configuration.
Best Match Quality in the panel scores how closely the nearest historical fingerprint resembles the present one. Below roughly 60%, treat the analog layer as noise and rely on the cone alone.
The most probable zone is where the blended distribution peaks. It is a magnet-style reference, not a target — the distribution is wide by construction.
Volatility Regime compares short-window volatility to the full window. Expanding means the cone is likely to understate near-term movement; contracting means the opposite.
Settings
Setting Effect
Projection Horizon Bars projected forward. Also the endpoint of the profile
Volatility Window Sample size for sigma and drift. Longer = smoother, slower to adapt
Include Drift Tilts the cone with the window's mean return
Inner / Mid / Outer Band Sigma multipliers for the three layers
Fingerprint Length Bars compared for similarity. Shorter = more matches, less specific
Scan Depth How far back to search for analogs
Number of Analogs How many historical paths to replay
Profile Rows / Width Resolution and horizontal size of the terminal distribution
Model Weight Gaussian versus empirical blend in the distribution
Redraw on Bar Close Only Recommended on. The scan is heavy; this runs it once per bar
Limitations — read this
This is not a prediction and must not be traded as one. The cone describes a statistical range under an assumption of stable volatility. Real volatility is not stable, and returns have fatter tails than the Gaussian model implies, so moves outside the outer band occur more often than the model suggests.
Analog matching is weak evidence. A few dozen bars of shape similarity is a small sample; markets are non-stationary and a pattern that resolved one way in the past carries no obligation to repeat. The paths are historical context, not a probability statement about the future.
Nothing repaints, but the whole projection is recomputed each bar. Yesterday's cone is not preserved — the drawing always reflects current data only. It is anchored to the last bar by design.
On low-volume, illiquid, or heavily gapped instruments the return distribution is distorted and both layers degrade.
No entries, no stops, no targets, no signals. This is a context tool for sizing expectations and holding time. Indicator
