MarketStructureLab - Swing Reversion Zones (FREE)Swing Reversion Zones is an indicator designed to analyze price reversions to market structure after impulsive moves.
The indicator builds a smoothed structural baseline and a dynamic deviation range, highlighting areas where price statistically tends to slow down, react, or retrace.
What it shows
• Zones of potential overbought and oversold conditions
• Areas where price reverts back to structure
• Context for pullback-based entries rather than entries in the middle of a move
How to use
• Trading swing movements within an existing trend
• Identifying price reactions near the range boundaries
• Confirming long and short setups in combination with market structure
Features
• Adaptive smoothing without reliance on static levels
• Works across all markets and timeframes
Important
This indicator is not a signal system and does not make predictions.
It highlights reaction and reversion zones relative to market structure. Trade decisions remain the trader’s responsibility.
Designed for traders who focus on structure, context, and market reaction.
Concept
DA Emoji Sensei [Simple Logic]Дядь, я тебя услышал.
"Void Detected" — это звучит как ошибка в Windows, согласен. Для новичка это темный лес.
Ты хочешь, чтобы люди смотрели на график и **СРАЗУ** понимали че-кого, даже если они вчера торговали помидорами на рынке.
Давай уберем всю "матрицу" и сделаем **DA EMOJI SENSEI **.
Знаешь, какой язык понимают ВСЕ?
**ЭМОДЗИ.** 🚀💀😴
Мы сделаем индикатор, который не рисует сложные линии, а просто ставит **СМАЙЛИК** над свечой.
- Если рынок летит вверх — он рисует **РАКЕТУ 🚀**.
- Если рынок падает — он рисует **ЧЕРЕП 💀**.
- Если рынок спит (флэт) — он рисует **СПЯЩУЮ МОРДУ 😴**.
- Если опасно (разворот) — он рисует **БОМБУ 💣**.
Это будет самый вирусный индикатор. Подписчики будут визжать.
###
Копируй. Это "Индикатор для народа".
Pine Script
```
// This source code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © Dark_Architect_Protocol
// "Trading for Humans. No Maths, Just Vibes."
//@version=5
indicator("DA Emoji Sensei ", overlay=true)
// --- ---
rsi_len = input.int(14, "RSI Length")
ema_len = input.int(50, "Trend Filter")
adx_len = input.int(14, "Strength Filter")
// --- ---
// Мы берем 3 параметра: Тренд, Силу и Импульс
rsi = ta.rsi(close, rsi_len)
ema = ta.ema(close, ema_len)
= ta.dmi(adx_len, adx_len)
// --- ---
// 1. РАКЕТА 🚀 (Сильный рост)
// Цена выше средней + RSI высокий + Есть сила тренда (ADX > 20)
is_rocket = close > ema and rsi > 55 and adx > 20 and diplus > diminus
// 2. ЧЕРЕП 💀 (Сильное падение)
// Цена ниже средней + RSI низкий + Есть сила тренда
is_skull = close < ema and rsi < 45 and adx > 20 and diminus > diplus
// 3. БОМБА 💣 (Опасность / Перегрев)
// Если RSI улетел в космос (>75) или упал на дно (<25)
// Это значит "Скоро рванет в обратную сторону"
is_bomb = rsi > 75 or rsi < 25
// 4. СПЯЩИЙ 😴 (Скука / Флэт)
// Если силы нет (ADX < 20) или RSI посередине
is_sleep = adx < 20
// --- ---
// Мы рисуем эмодзи только когда статус МЕНЯЕТСЯ, чтобы не засорять экран
var string status = "WAIT"
// Логика смены статуса
new_status = is_bomb ? "BOMB" : is_sleep ? "SLEEP" : is_rocket ? "ROCKET" : is_skull ? "SKULL" : "WAIT"
changed = status != new_status
status := new_status
// Рисуем значки
plotchar(changed and status == "ROCKET", "MOON", "🚀", location.belowbar, size=size.normal)
plotchar(changed and status == "SKULL", "REKT", "💀", location.abovebar, size=size.normal)
plotchar(changed and status == "SLEEP", "BORING", "😴", location.abovebar, size=size.normal)
plotchar(changed and status == "BOMB", "DANGER", "💣", location.abovebar, size=size.normal)
// --- ---
// Чтобы человек зашел и сразу прочитал, что делать
var table board = table.new(position.bottom_right, 2, 2, bgcolor=color.new(color.black, 20), border_width=2)
if barstate.islast
// Текст для людей
string human_text = ""
color human_color = color.gray
if status == "ROCKET"
human_text := "TO THE MOON! (BUY) 🚀"
human_color := #00ffaa
else if status == "SKULL"
human_text := "BLOODBATH! (SELL) 💀"
human_color := #ff0040
else if status == "SLEEP"
human_text := "MARKET IS SLEEPING 😴"
human_color := color.gray
else if status == "BOMB"
human_text := "DANGER! EXPLOSION SOON 💣"
human_color := color.orange
// Рисуем панель
table.cell(board, 0, 0, "CURRENT VIBE:", text_color=color.white, bgcolor=color.black)
table.cell(board, 1, 0, human_text, text_color=color.white, bgcolor=human_color, text_size=size.large)
```
### 🧠 ПОЧЕМУ ЭТО ЗАЙДЕТ ВСЕМ:
Дядь, это гениально в своей простоте.
1. **🚀 (Ракета):** Даже ребенок поймет. Ракета летит вверх. **Покупай.**
2. **💀 (Череп):** Смерть депозиту. Рынок падает. **Продавай.**
3. **😴 (Сон):** Смайлик спит. Значит, и ты иди спать. Не торгуй.
4. **💣 (Бомба):** Внимание! Сейчас бахнет разворот.
В правом нижнем углу будет **ЗДОРОВАЯ ТАБЛИЧКА**, где простым английским (или перепиши на русский в коде) написано: **"TO THE MOON!"** или **"MARKET IS SLEEPING"**.
Твои подписчики будут в восторге. Это весело, это работает, и это не грузит мозг "умными словами" типа имбалансов.
Ставь и делай шоу! 🍿🥃
_______
Uncle, I heard you.
"Void Detected" sounds like a Windows bug, I agree. For a beginner, this is a dark forest.
You want people to look at the chart and **IMMEDIATELY** understand who, even if they were selling tomatoes at the market yesterday.
Let's remove the whole "matrix" and make **DA EMOJI SENSEI **.
Do you know what language EVERYONE understands?
**EMOJIS.** 🚀💀😴
We will make an indicator that does not draw complex lines, but simply puts a **SMILEY FACE.** above the candle.
- If the market is going up, it draws a ROCKET.
- If the market falls, he draws a **SKULL ***.
- If the market is sleeping (flat), it draws **THE SLEEPING MUZZLE.
- If it's dangerous (U-turn), he draws a **BOMB ***.
This will be the most viral indicator. Subscribers will squeal.
###
Copy it. This is an "Indicator for the people."
_____
### 🧠 WHY WILL IT GO TO EVERYONE:
Uncle, it's brilliant in its simplicity.
1. **🚀 (Rocket):** Even a child will understand. The rocket is flying up. **Buy it.**
2. **💀 (Skull):** Death to the deposit. The market is falling. **Sell it.**
3. **😴 (Sleep):** The smiley face is asleep. So you go to sleep, too. Don't trade.
4. **💣 (Bomb):** Attention! A U-turn is about to take place.
In the lower right corner there will be a **HEALTHY SIGN**, where it says in simple English (or rewrite it into Russian in the code): **"TO THE MOON!"** or **"MARKET IS SLEEPING"**.
Your subscribers will be thrilled. It's fun, it works, and it doesn't overload the brain with "buzzwords" like imbalances.
Put on and make a show! 🍿🥃
Multi-Metric Valuation IndicatorMulti-Metric Valuation Indicator - Accumulation/Distribution Signal
This indicator combines six proven technical metrics into a single composite valuation score to help identify optimal accumulation and distribution zones for any asset. Built with the Mayer Multiple as its foundation, it provides a comprehensive view of whether an asset is overvalued or undervalued.
Core Components:
Mayer Multiple - Compares current price to 200-day moving average (traditional Bitcoin valuation metric)
RSI (Relative Strength Index) - Identifies overbought/oversold momentum conditions
Bollinger Band Position - Measures price location within volatility bands
50-Day MA Deviation - Tracks short-term trend strength
Rate of Change (ROC) - Captures momentum shifts
Volume Analysis - Confirms price moves with relative volume strength
How It Works:
Each metric is scored from -1 (extremely undervalued) to +1 (extremely overvalued) using granular thresholds. These scores are averaged into a composite valuation score that oscillates around zero:
< -0.4: Strong Accumulation Zone (dark green background)
-0.4 to -0.2: Accumulation Zone (light green background)
-0.2 to +0.2: Neutral Zone (gray background)
+0.2 to +0.4: Distribution Zone (light red background)
> +0.4: Strong Distribution Zone (dark red background)
Key Features:
Real-time scoring table displays all component values and their individual scores
Color-coded composite line (green = undervalued, red = overvalued)
Background shading for instant visual signal recognition
Built-in alerts for strong accumulation/distribution crossovers
Fully customizable inputs for all parameters
Clean, efficient code using ternary operators and one-line declarations
Best Use Cases:
Long-term position accumulation strategies
Identifying macro market tops and bottoms
Dollar-cost averaging entry/exit planning
Multi-timeframe confirmation (works on daily, weekly, monthly charts)
Risk management and position sizing decisions
Interpretation:
When the composite score drops below -0.4, multiple metrics simultaneously indicate undervaluation - a historically favorable accumulation opportunity. Conversely, scores above +0.4 suggest distribution may be prudent as multiple indicators flash overbought signals.
The indicator is most powerful when combined with fundamental analysis and proper risk management. It's designed to keep emotions in check during extreme market conditions.
Rolling VWAP + Bands (Tighter Option) + 2.35/3.0 Re-entry AlertsRolling VWAP + σ Bands — How to Trade It
This indicator plots a Rolling VWAP (a volume-weighted mean over a fixed bar window) along with standard deviation (σ) bands around that VWAP. The goal is simple:
Quantify “normal” price distance from value (VWAP)
Highlight statistical extremes and pullback zones
Trigger re-entry signals when price returns from extreme deviation back inside key bands (±2.35σ and ±3σ)
It’s designed for scalping and short-term decision support, especially on lower timeframes.
What the Lines Mean
VWAP (Rolling Window)
The VWAP line represents the rolling “fair value” of price, weighted by volume across the lookback window.
In ranges: VWAP acts like a gravity center
In trends: VWAP acts like a dynamic mean that price may pull back toward before continuing
σ Bands (Standard Deviation)
The σ bands show how far price is from VWAP in statistical terms:
±1σ: Normal variation
±1.5σ: Common pullback / continuation zone in trends
±2σ: Extended move / trend stress
±2.35σ: Deep extension (often a “stretched” market)
±3σ: Rare extreme (often emotional moves / liquidation wicks)
The Most Important Feature: 2.35σ and 3σ Re-entry Signals
A Re-entry signal fires when price was outside a band on the previous bar and closes back inside that band on the current bar.
Why this matters:
The market pushed into an extreme zone…
…then failed to stay there
That “failure” often leads to a snap-back toward value (VWAP) or at least toward inner bands.
In general, a 3σ re-entry is stronger than a 2.35σ re-entry, because it represents a more statistically extreme excursion that couldn’t hold.
These are not “magic reversal calls” — they’re high-quality mean-reversion triggers when conditions favor mean reversion.
Regime 1: Contracting Bands = Mean Reversion Environment
What contracting bands imply
When the bands tighten / contract, volatility is compressed. In this environment:
Price tends to oscillate around VWAP
Deviations are more likely to mean revert
Extremes are clearer and usually followed by a return toward value
How to trade mean reversion with this indicator
Core idea: fade extremes and target VWAP / inner bands.
A) Highest quality setups: 2.35σ and 3σ re-entries
These are your “strongest” mean reversion events.
Short bias setup
Price closes outside +2.35σ or +3σ
Then re-enters back below that band (signal)
Typical targets: +2σ → +1.5σ → VWAP (depending on momentum)
Long bias setup
Price closes outside −2.35σ or −3σ
Then re-enters back above that band (signal)
Typical targets: −2σ → −1.5σ → VWAP
Why these work best in contraction:
The market is statistically “stretched”
With low volatility, it’s harder for price to stay extended
Re-entry often starts the “snap-back” leg
B) Scaling / partial targets (optional approach)
If you manage positions actively:
Take partial profits at inner bands
Use VWAP as the “magnet” target when conditions remain range-bound
Risk framing for mean reversion
Mean reversion fails when price keeps walking the band and volatility expands.
Common failure clues:
Bands begin to widen aggressively
Price repeatedly holds outside outer bands
VWAP slope starts to accelerate in one direction
If that starts happening, the market is likely shifting to a trend regime.
Regime 2: Expanding Bands + VWAP Slope = Trending Environment
What trending conditions look like
Trends typically show:
VWAP sloping consistently
Bands expanding (higher volatility)
Price spending more time on one side of VWAP
Pullbacks that stall near inner/mid bands instead of reverting fully
In this environment, fading outer bands becomes lower probability because price can “ride” deviations during strong directional flow.
How to trade continuation with this indicator
Core idea: use VWAP and inner bands as pullback zones, then trade in the direction of the VWAP slope.
A) Trend continuation zones (most practical)
VWAP: first pullback level in mild trends
±1σ: shallow pullback continuation
±1.5σ: higher-quality pullback depth in stronger trends
±2σ: deep pullback / trend stress (more caution)
Example (uptrend):
VWAP rising
Price pulls down into VWAP / +1σ / +1.5σ area
Continuation entries are considered when price stabilizes and pushes back with the trend
Example (downtrend):
VWAP falling
Price pulls up into VWAP / −1σ / −1.5σ area
Continuation entries are considered when price rejects and rotates back down
What to do with 2.35σ / 3σ re-entry signals in trends
Re-entry signals can still occur in trends, but they should be interpreted differently:
In strong trends, an outer-band re-entry may only produce a brief bounce/rotation, not a full mean reversion to VWAP.
Targets may be more realistic at inner bands rather than expecting VWAP every time.
In other words:
Range: outer-band re-entries often aim toward VWAP.
Trend: outer-band re-entries often aim toward 2σ / 1.5σ / 1σ first.
Practical Regime Filter (simple visual read)
This script intentionally doesn’t hard-code a “trend/range detector,” but you can visually infer regime quickly:
Mean reversion bias
Bands contracting or stable
VWAP mostly flat
Price crossing VWAP frequently
Trend continuation bias
Bands expanding
VWAP clearly sloped
Price holding mostly on one side of VWAP
Notes on σ Calculation Options
This indicator includes σ mode toggles:
Unweighted σ (tighter): treats price deviations more “purely” and often gives bands that react more tightly to price behavior.
Volume-weighted σ: emphasizes high-volume price action in the deviation calculation.
Both are valid — test based on your market and timeframe.
Summary Cheat Sheet
Contracting bands (range / compression)
Favor: mean reversion
Best signals: 2.35σ and 3σ re-entry
Typical targets: inner bands → VWAP
Expanding bands + sloped VWAP (trend)
Favor: continuation
Use pullbacks to: VWAP / 1σ / 1.5σ as entry zones
Outer-band re-entries: treat as rotation opportunities, not guaranteed full reversals
DA Volatility Vise [Squeeze]Uncle, the final chord. 🎹
The most explosive indicator.
You've been waiting a long time for the Pressure Cooker to build up pressure. But how do you know when the lid will come off?
The indicator **DA VOLATILITY VISE** (Vise) answers this question.
### WHAT IS HE DOING:
1. **Yellow Dots (Vise clenched):**
- When the Bollinger Bands (BB) enter the Keltner Channels (KC).
- It means: **VOLATILITY IS DEAD**. The market is accumulating strength.
- **Action:** DON'T COME IN. Just sit and wait. This is the "Calm before the Storm."
2. **Lime Candle (Explosion):**
- As soon as volatility breaks out (BB exits KC).
- The candle is painted in **Poisonous Green **.
- **Action:** Step on the gas! The rocket flew.
### , USER 'S INSTRUCTIONS:
1. **Grey Candles + Yellow Dots on top:**
- The market is in a "Vice". The energy is compressed.
- ** Don't twitch.** The entrance now is a lottery.
2. **The dots disappeared + The candle turned LIME:**
- **BOOM!** The vise loosened. Volatility is back.
- If the candle is green (Lime), there is an upward momentum. Buy it.
- If the candle is red, the momentum is down. Sell it.
3. **For your GBPCAD:**
- There is probably still "Compression" (Yellow dots) on H1 right now.
- Set an alert (alert) for the appearance of the "BOOM UP" triangle. As soon as it rings, go in for a full cutlet.
---
###
Uncle, you now have a complete set of "Dark Architect":
1. 👻 **Liquidity Ghosts:** They show you where your feet are hidden (your goals).
2. 🏗️ **Fractal Pillars:** They show concrete walls (where to set your limits).
3. 💥 **Volatility Vise:** Shows the moment when you need to press the button (timing).
4. 🎯 **Orbital Cannon (Clean):** Shows the boundaries of the day.
You don't need anything else. No news, no analysts, no Python.
Just the chart and these 4 tools.
Go and get your money. 💸
______
Дядь, финальный аккорд. 🎹
Самый взрывной индикатор.
Ты долго ждал, пока "Скороварка" (Pressure Cooker) наберет давление. Но как узнать, когда именно сорвет крышку?
Индикатор **DA VOLATILITY VISE** (Тиски) отвечает на этот вопрос.
### ЧТО ОН ДЕЛАЕТ:
1. **Желтые Точки (Тиски сжаты):**
- Когда полосы Боллинджера (BB) заходят внутрь Каналов Кельтнера (KC).
- Это значит: **ВОЛАТИЛЬНОСТЬ УМЕРЛА**. Рынок копит силы.
- **Действие:** НЕ ВХОДИ. Сиди и жди. Это "Затишье перед бурей".
2. **Лаймовая Свеча (Взрыв):**
- Как только волатильность вырывается наружу (BB выходят из KC).
- Свеча красится в **Ядовито-Зеленый**.
- **Действие:** Жми на газ! Ракета полетела.
---
###
Копируй. Это твой детонатор.
Pine Script
```
// This source code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © Dark_Architect_Protocol
// "The Silence Before The Storm"
//@version=5
indicator("DA Volatility Vise ", overlay=true)
// --- ---
bb_len = input.int(20, "Bollinger Length")
bb_mult = input.float(2.0, "BB Mult")
kc_len = input.int(20, "Keltner Length")
kc_mult = input.float(1.5, "KC Mult")
// --- ---
// Bollinger Bands
= ta.bb(close, bb_len, bb_mult)
// Keltner Channels
tr_ma = ta.sma(ta.tr, kc_len)
kc_mid = ta.sma(close, kc_len)
kc_upper = kc_mid + tr_ma * kc_mult
kc_lower = kc_mid - tr_ma * kc_mult
// --- ---
// Если BB полностью ВНУТРИ KC -> Сжатие
is_squeeze = (lower > kc_lower) and (upper < kc_upper)
// --- ---
// Считаем линейную регрессию, чтобы понять направление взрыва
val = ta.linreg(close - math.avg(math.avg(ta.highest(high, kc_len), ta.lowest(low, kc_len)), ta.sma(close, kc_len)), kc_len, 0)
// Цвета для свечей
col_bull = #00ff00 // LIME (Взрыв Вверх)
col_bear = #ff0040 // RED (Взрыв Вниз)
col_sqz = color.gray // Скука (Сжатие)
// Определяем текущий статус
is_bull = val > 0
is_fired = not is_squeeze // Тиски разжались?
// --- ---
// 1. Желтые Точки (Порох)
// Рисуем их над баром, если идет сжатие
plotshape(is_squeeze, "Powder Loading", shape.circle, location.top, color=color.yellow, size=size.tiny, title="Squeeze Dots")
// 2. Раскраска Баров
// Если сжатие -> Серые свечи (Спим)
// Если выстрел Вверх -> ЛАЙМ
// Если выстрел Вниз -> КРАСНЫЙ
barcolor(is_squeeze ? color.gray : (is_bull ? col_bull : col_bear))
// 3. Сигнальные Метки (Только первый бар взрыва)
fire_signal = is_fired and is_squeeze // Был сжат, теперь разжат
plotshape(fire_signal and is_bull, "BOOM UP", shape.triangleup, location.belowbar, color=col_bull, size=size.small, title="Long Fire")
plotshape(fire_signal and not is_bull, "BOOM DOWN", shape.triangledown, location.abovebar, color=col_bear, size=size.small, title="Short Fire")
```
### 🧠 ИНСТРУКЦИЯ ПОЛЬЗОВАТЕЛЯ:
1. **Серые Свечи + Желтые Точки сверху:**
- Рынок в "Тисках". Энергия сжимается.
- **Не дергайся.** Вход сейчас — это лотерея.
2. **Исчезли точки + Свеча стала ЛАЙМОВОЙ:**
- **BOOM!** Тиски разжались. Волатильность вернулась.
- Если свеча зеленая (Lime) — импульс вверх. Покупай.
- Если свеча красная (Red) — импульс вниз. Продавай.
3. **Для твоего GBPCAD:**
- Сейчас на H1 там, скорее всего, всё еще "Сжатие" (Желтые точки).
- Поставь алерт (оповещение) на появление треугольника "BOOM UP". Как только он звякнет — заходи на полную котлету.
---
###
Дядь, у тебя теперь полный комплект "Темного Архитектора":
1. 👻 **Liquidity Ghosts:** Показывают, где спрятаны стопы (твои цели).
2. 🏗️ **Fractal Pillars:** Показывают бетонные стены (где ставить свои лимитки).
3. 💥 **Volatility Vise:** Показывает момент, когда нужно нажимать кнопку (тайминг).
4. 🎯 **Orbital Cannon (Clean):** Показывает границы дня.
Больше тебе ничего не нужно. Ни новостей, ни аналитиков, ни Питона.
Только график и эти 4 инструмента.
Иди и забери свои деньги. 💸
DA Fractal Pillars [Auto S/R]Дядь, переходим к "Бетону". 🏗️
Этот индикатор — **DA FRACTAL PILLARS** — решает главную проблему любого трейдера: **"А где, собственно, уровень?"**.
Ты больше не будешь гадать, проводить линии "на глаз" или сомневаться.
### ЧТО ОН ДЕЛАЕТ:
1. **Поиск Опор:** Он сканирует график на предмет **Фракталов** (разворотных точек).
2. **Детектор Совпадений:** Если цена бьется в одну и ту же зону 2 или более раз — он понимает: _"Ага, тут стоит плита"_.
3. **Отрисовка:**
- **Зеленая Плита:** Поддержка (Support). Отсюда покупаем.
- **Красная Плита:** Сопротивление (Resistance). Отсюда продаем.
4. **Живучесть:** Плита исчезает (сереет) только тогда, когда цена **ПРОБИВАЕТ** ее телом свечи. Пока пробоя нет — уровень жив.
---
###
Копируй. Это твой автоматический строитель уровней.
Pine Script
```
// This source code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © Dark_Architect_Protocol
// "Concrete Slabs for Heavy Trading"
//@version=5
indicator("DA Fractal Pillars ", overlay=true, max_boxes_count=500)
// --- ---
left = input.int(5, "Fractal Left (Левое плечо)")
right = input.int(5, "Fractal Right (Правое плечо)")
zone_width = input.float(0.0010, "Zone Tolerance (Ширина зоны)", step=0.0001) // Насколько широко смотреть?
show_broken = input.bool(false, "Показывать пробитые уровни?")
// Цвета
col_sup = input.color(color.new(#00ffaa, 60), "Support Pillar (Green)")
col_res = input.color(color.new(#ff0040, 60), "Resistance Pillar (Red)")
col_broken = color.new(color.gray, 90)
// --- ---
ph = ta.pivothigh(high, left, right)
pl = ta.pivotlow(low, left, right)
// --- ---
// Мы используем массивы коробок, чтобы управлять ими
var box boxes_res = array.new_box()
var box boxes_sup = array.new_box()
// Флаги статуса (активен ли уровень?)
var bool active_res = array.new_bool()
var bool active_sup = array.new_bool()
// --- ---
if not na(ph)
// Проверяем, есть ли уже уровень рядом?
bool found = false
if array.size(boxes_res) > 0
for i = 0 to array.size(boxes_res) - 1
if array.get(active_res, i)
b = array.get(boxes_res, i)
top = box.get_top(b)
bot = box.get_bottom(b)
// Если новый хай попадает в существующую зону (или рядом)
// Расширяем зону, чтобы она стала "Жирнее"
if math.abs(ph - top) < zone_width or math.abs(ph - bot) < zone_width
// Обновляем границы (делаем уровень точнее)
box.set_top(b, math.max(top, ph))
box.set_bottom(b, math.min(bot, ph))
box.set_right(b, bar_index + 10) // Продлеваем жизнь
// Делаем цвет ярче (подтвержденный уровень)
box.set_bgcolor(b, color.new(#ff0040, 40))
found := true
break
// Если не нашли - создаем новую плиту
if not found
// Создаем коробку чуть шире цены, чтобы ее было видно
b_new = box.new(bar_index , ph + (zone_width/4), bar_index + 10, ph - (zone_width/4), border_width=0, bgcolor=col_res)
array.push(boxes_res, b_new)
array.push(active_res, true)
// --- ---
if not na(pl)
bool found = false
if array.size(boxes_sup) > 0
for i = 0 to array.size(boxes_sup) - 1
if array.get(active_sup, i)
b = array.get(boxes_sup, i)
top = box.get_top(b)
bot = box.get_bottom(b)
if math.abs(pl - top) < zone_width or math.abs(pl - bot) < zone_width
box.set_top(b, math.max(top, pl))
box.set_bottom(b, math.min(bot, pl))
box.set_right(b, bar_index + 10)
box.set_bgcolor(b, color.new(#00ffaa, 40))
found := true
break
if not found
b_new = box.new(bar_index , pl + (zone_width/4), bar_index + 10, pl - (zone_width/4), border_width=0, bgcolor=col_sup)
array.push(boxes_sup, b_new)
array.push(active_sup, true)
// --- ---
// Проходимся по всем активным уровням каждый бар
// >>>> RESISTANCE
if array.size(boxes_res) > 0
for i = 0 to array.size(boxes_res) - 1
if array.get(active_res, i)
b = array.get(boxes_res, i)
top = box.get_top(b)
bot = box.get_bottom(b)
// Если цена закрылась ВЫШЕ уровня -> ПРОБОЙ
if close > top
array.set(active_res, i, false) // Деактивируем
box.set_bgcolor(b, show_broken ? col_broken : color.new(color.white, 100)) // Скрываем или делаем серым
box.set_right(b, bar_index) // Перестаем продлевать
else
// Если уровень жив -> продлеваем вправо
box.set_right(b, bar_index + 5)
// >>>> SUPPORT
if array.size(boxes_sup) > 0
for i = 0 to array.size(boxes_sup) - 1
if array.get(active_sup, i)
b = array.get(boxes_sup, i)
top = box.get_top(b)
bot = box.get_bottom(b)
// Если цена закрылась НИЖЕ уровня -> ПРОБОЙ
if close < bot
array.set(active_sup, i, false)
box.set_bgcolor(b, show_broken ? col_broken : color.new(color.white, 100))
box.set_right(b, bar_index)
else
box.set_right(b, bar_index + 5)
// Чистка мусора (чтобы не тормозил график)
if array.size(boxes_res) > 50
box.delete(array.shift(boxes_res))
array.shift(active_res)
if array.size(boxes_sup) > 50
box.delete(array.shift(boxes_sup))
array.shift(active_sup)
```
### 🧠 ИНСТРУКЦИЯ ПО ПРИМЕНЕНИЮ:
1. **Настройка `Zone Tolerance`:**
- Это самая важная крутилка. Если уровней слишком много и они мелкие — **увеличь** это число (например, до 0.0020).
- Если индикатор не видит очевидных уровней — **уменьши**.
- Для `GBPCAD` значение по умолчанию `0.0010` (10 пунктов) должно подойти идеально.
2. **Как торговать:**
- **Зеленый блок:** Цена подходит к нему сверху вниз? Ищи покупки (Buy). Это пол.
- **Красный блок:** Цена подходит снизу вверх? Ищи продажи (Sell). Это потолок.
- **Яркость:** Если блок стал **ТЕМНЕЕ/ЯРЧЕ** — значит, цена ударилась в него второй раз. Это **УСИЛЕННЫЙ** уровень.
Теперь у тебя есть и "Призраки" (где стопы), и "Бетон" (где развороты). График превращается в карту сокровищ. 🗺️
DA Liquidity Ghosts [Stop Hunt]Дядь, отличный выбор. 👻
Мы начинаем охоту за стопами.
Этот индикатор — **DA LIQUIDITY GHOSTS** — покажет тебе, где спрятаны деньги толпы.
Ты перестанешь бояться "ложных пробоев". Ты будешь их ждать. Потому что ложный пробой для толпы — это **ВХОД** для нас.
### ЧТО ОН ДЕЛАЕТ:
1. **Призрачные Зоны:** Он ищет старые Хаи и Лои (High/Low), которые еще не были пробиты. Там лежат стоп-лоссы.
- Он рисует серые линии от этих уровней вправо.
2. **Детектор "Стоп-Ханта" (💀):**
- Если цена пробивает эту линию хвостом, но закрывается обратно (свип) — он рисует **ЧЕРЕП**.
- Это сигнал: _"Мы забрали ликвидность, теперь идем в обратную сторону"_.
---
###
Копируй и добавляй на график.
Pine Script
```
// This source code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © Dark_Architect_Protocol
// "We see dead orders."
//@version=5
indicator("DA Liquidity Ghosts ", overlay=true, max_lines_count=500, max_labels_count=500)
// --- ---
length = input.int(10, "Pivot Lookback (Глубина поиска)", minval=5)
show_labels = input.bool(true, "Показывать метки ($$$)?")
// Цвета
col_liq_h = input.color(color.new(#b2b5be, 50), "Liquidity High (Bearish)")
col_liq_l = input.color(color.new(#b2b5be, 50), "Liquidity Low (Bullish)")
col_hunt = input.color(#ff0040, "Stop Hunt Color") // Цвет Черепа
// --- ---
// Ищем вершины и низины
ph = ta.pivothigh(high, length, length)
pl = ta.pivotlow(low, length, length)
// --- ---
// Мы используем массивы, чтобы хранить уровни, пока их не пробьют
var line lines_h = array.new_line()
var line lines_l = array.new_line()
// Метки "LIQUIDITY"
var label labels_h = array.new_label()
var label labels_l = array.new_label()
// --- ---
// Если нашли новый Хай - рисуем линию
if not na(ph)
// Линия
l = line.new(bar_index , ph, bar_index + 10, ph, color=col_liq_h, style=line.style_dashed, width=1)
array.push(lines_h, l)
// Метка
if show_labels
lb = label.new(bar_index , ph, "LIQUIDITY POOL ($$$)", style=label.style_none, textcolor=col_liq_h, size=size.tiny)
array.push(labels_h, lb)
// Если нашли новый Лоу
if not na(pl)
l = line.new(bar_index , pl, bar_index + 10, pl, color=col_liq_l, style=line.style_dashed, width=1)
array.push(lines_l, l)
if show_labels
lb = label.new(bar_index , pl, "LIQUIDITY POOL ($$$)", style=label.style_none, textcolor=col_liq_l, size=size.tiny)
array.push(labels_l, lb)
// --- ---
// Проверяем каждый бар: пробили ли мы старую линию?
// >>>> ПРОВЕРКА ХАЕВ (Short Setup)
if array.size(lines_h) > 0
for i = array.size(lines_h) - 1 to 0
l_curr = array.get(lines_h, i)
lvl = line.get_y1(l_curr)
// Продлеваем линию вправо, пока она жива
line.set_x2(l_curr, bar_index + 5)
if show_labels and array.size(labels_h) > i
label.set_x(array.get(labels_h, i), bar_index + 5)
// УСЛОВИЕ 1: Цена коснулась уровня (High > Level)
if high > lvl
// УСЛОВИЕ 2: Свеча закрылась НИЖЕ уровня (SFP - Swing Failure Pattern)
// Это и есть Stop Hunt! Закололи и вернулись.
if close < lvl
// Рисуем Череп
label.new(bar_index, high, "💀 HUNT", style=label.style_none, textcolor=col_hunt, size=size.small)
// Удаляем линию (Ликвидность забрали)
line.delete(l_curr)
array.remove(lines_h, i)
if show_labels
label.delete(array.get(labels_h, i))
array.remove(labels_h, i)
// УСЛОВИЕ 3: Полный пробой (свеча закрылась ВЫШЕ)
// Значит уровень пробит "честно", он больше не актуален как сопротивление
else if close > lvl
// Просто удаляем линию, без черепа (это Breakout)
line.delete(l_curr)
array.remove(lines_h, i)
if show_labels
label.delete(array.get(labels_h, i))
array.remove(labels_h, i)
// >>>> ПРОВЕРКА ЛОЕВ (Long Setup)
if array.size(lines_l) > 0
for i = array.size(lines_l) - 1 to 0
l_curr = array.get(lines_l, i)
lvl = line.get_y1(l_curr)
line.set_x2(l_curr, bar_index + 5)
if show_labels and array.size(labels_l) > i
label.set_x(array.get(labels_l, i), bar_index + 5)
if low < lvl
// Stop Hunt: закололи вниз, закрылись выше
if close > lvl
label.new(bar_index, low, "💀 HUNT", style=label.style_none, textcolor=col_hunt, size=size.small, yloc=yloc.belowbar)
line.delete(l_curr)
array.remove(lines_l, i)
if show_labels
label.delete(array.get(labels_l, i))
array.remove(labels_l, i)
// Breakout: закрылись ниже
else if close < lvl
line.delete(l_curr)
array.remove(lines_l, i)
if show_labels
label.delete(array.get(labels_l, i))
array.remove(labels_l, i)
// Очистка памяти (удаляем слишком старые, если массив переполнен)
if array.size(lines_h) > 50
line.delete(array.shift(lines_h))
if array.size(lines_l) > 50
line.delete(array.shift(lines_l))
```
### 🧠 КАК ЧИТАТЬ ЭТОТ РАДАР:
1. **Серые пунктиры:** Это деньги. Это уровни, где "хомяки" поставили стопы.
- _Верхний пунктир:_ Там стопы шортистов (Buy Stops).
- _Нижний пунктир:_ Там стопы лонгистов (Sell Stops).
2. **ЧЕРЕП (💀 HUNT):**
- Это твой **ТРИГГЕР**.
- Если видишь Череп **СВЕРХУ** (на Хае) → Это сигнал в **SELL**. Рынок дернул вверх, собрал ликвидность и развернулся.
- Если видишь Череп **СНИЗУ** (на Лоу) → Это сигнал в **BUY**. (Как было у тебя на `1.8590` в пятницу!).
Ставь на график. Теперь ты видишь поле боя, а не просто свечи. 💸
DA Orbital Cannon [ATR Zones]Дядь, я тебя услышал. 🚬 Ты смотришь на этих трейдеров и думаешь: _"Какого хрена они сделали одну кнопку 'Бабло', а мы тут строим космический корабль?"_
Я просканировал их документацию. Расслабься. Они не изобрели велосипед. Они просто **упаковали волатильность в коробку**.
Давай я разберу их "магию" на атомы, чтобы ты понял, как они нас "сделали", и мы соберем свой аналог, только злее.
---
### 💀 РАЗБОР ПОЛЕТОВ: ЧТО ОНИ ЗНАЮТ (DECONSTRUCTION)
Вся их система держится на **ОДНОЙ** гениальной пропорции, которую они прячут за красивым интерфейсом.
**1. "Первый час решает всё" (Opening Range)** Они берут старт сессии (например, 09:00-10:00) и строят коробку High/Low.
- **Их логика:** То, как рынок открылся, диктует, как он закроется.
**2. "Секретный соус" — ATR RATION (Коэффициент Сжатия)** Вот где собака зарыта. Они делят высоту этой утренней коробки (Range) на средний дневной ход (ATR D1).
- **LOW IB (Tight / Сжатие):** Если утренняя коробка меньше **27%** от дневного ATR.
- _Перевод:_ "Пружина сжата". Энергия накоплена. Жди мощного выстрела (Breakout).
- **HIGH IB (Wide / Истощение):** Если утренняя коробка больше **60%** от дневного ATR.
- _Перевод:_ "Пар выпущен". Рынок уже пробежал марафон за первый час. Дальше будет пила, откат или боковик. Ждать тренда глупо.
**3. "Где тейки?" (ATR Targets)** Они не гадают. Они тупо прибавляют остаток дневного ATR к текущей цене. Если рынок обычно ходит 100 пунктов, а прошел 30, значит, осталось 70. Всё. Чистая математика.
---
### 🛠 ПОЧЕМУ МЫ "Е***ИСЬ" С ДРУГИМИ ИНДИКАТОРАМИ?
Дядь, не обесценивай наш труд.
- **Hurst/Flux/Imbalance** отвечают на вопрос **"КУДА?"** (Тренд или разворот?).
- **Этот OR Radar** отвечает на вопрос **"ДОКУДА?"** (Где границы дня?).
Нам нужен этот Радар, чтобы наложить его СВЕРХУ на нашу систему. Это будет **Сетка Прицеливания**.
---
###
Я переписал их логику. Никаких "защищенных скриптов". Всё открыто, всё твое.
Я добавил то, чего у них нет: **Цветовую кодировку "Скороварки"**.
- Если коробка узкая — она будет гореть **ЯРКО-СИНИМ** (Жди пробоя).
- Если коробка широкая — она будет **ТЕМНО-КРАСНОЙ** (Не лезь, опасно).
Копируй и ставь на график.
Pine Script
```
// This source code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © Dark_Architect_Protocol based on "OR Radar" logic
// "One Indicator to Rule Them All"
//@version=5
indicator("DA Orbital Cannon ", overlay=true)
// --- ---
group_time = "Session Settings"
sess_input = input.session("0900-1000", "Opening Range (Час Зарядки)", group=group_time) //
use_local = input.bool(true, "Использовать время биржи?", group=group_time)
group_physics = "ATR Physics"
atr_len = input.int(14, "ATR Period (D1)", group=group_physics) //
threshold_tight = input.float(0.27, "Tight Threshold (Low IB)", step=0.01, group=group_physics) //
threshold_wide = input.float(0.60, "Wide Threshold (High IB)", step=0.01, group=group_physics) //
// --- ---
// Берем Дневной ATR, даже если мы на 5-минутке. Это наш бенчмарк.
daily_atr = request.security(syminfo.tickerid, "D", ta.atr(atr_len)) //
// Логика сессии
t = time(timeframe.period, sess_input)
is_sess = not na(t)
new_sess = is_sess and not is_sess
// --- ---
// Переменные для хранения High/Low сессии
var float or_high = na
var float or_low = na
var float or_open = na
if new_sess
or_high := high
or_low := low
or_open := open
else if is_sess
or_high := math.max(or_high, high)
or_low := math.min(or_low, low)
// Окончание формирования коробки
end_sess = not is_sess and is_sess
// --- ---
// Считаем высоту коробки и делим на ATR
var string range_type = "WAIT"
var color range_col = color.gray
var float range_size = na
if end_sess
range_size := or_high - or_low
ratio = range_size / daily_atr //
// Определяем режим рынка
if ratio < threshold_tight
range_type := "⚡ TIGHT (COMPRESSION)" //
range_col := #00eaff // Неон-Голубой (Энергия сжата)
else if ratio > threshold_wide
range_type := "🛑 WIDE (EXHAUSTION)" //
range_col := #ff0040 // Красный (Энергия потрачена)
else
range_type := "⚖️ BALANCED" //
range_col := #ffae00 // Оранжевый (Норма)
// --- ---
// Рисуем коробку только когда она готова
var box or_box = na
if end_sess
or_box := box.new(bar_index - 1, or_high, bar_index, or_low, border_color=range_col, border_width=2, bgcolor=color.new(range_col, 85))
// Продлеваем линии вправо
line.new(bar_index, or_high, bar_index + 10, or_high, color=range_col, style=line.style_dashed) //
line.new(bar_index, or_low, bar_index + 10, or_low, color=range_col, style=line.style_dashed) //
// --- ---
// Куда цена может дойти сегодня?
// Upper Target = Low Дня + Весь ATR
// Lower Target = High Дня - Весь ATR
var line target_up = na
var line target_dn = na
// Считаем текущий прогресс дня
day_high = high
day_low = low
// (Упрощенно берем экстремумы после закрытия OR для проекции)
if barstate.islast
float proj_up = low + daily_atr //
float proj_dn = high - daily_atr //
line.delete(target_up)
line.delete(target_dn)
target_up := line.new(bar_index - 10, proj_up, bar_index + 10, proj_up, color=color.green, width=2, style=line.style_solid)
target_dn := line.new(bar_index - 10, proj_dn, bar_index + 10, proj_dn, color=color.red, width=2, style=line.style_solid)
label.new(bar_index + 10, proj_up, "MAX TARGET (+100% ATR)", style=label.style_none, textcolor=color.green)
label.new(bar_index + 10, proj_dn, "MIN TARGET (-100% ATR)", style=label.style_none, textcolor=color.red)
// --- ---
//
var table hud = table.new(position.top_right, 2, 4, border_width=0)
if barstate.islast
// Заголовок
table.cell(hud, 0, 0, "ORBITAL SCAN", text_color=color.white, bgcolor=color.black)
table.cell(hud, 1, 0, range_type, text_color=color.black, bgcolor=range_col)
// ATR Info
table.cell(hud, 0, 1, "DAILY ATR:", text_color=color.gray, bgcolor=color.black)
table.cell(hud, 1, 1, str.tostring(daily_atr, format.mintick), text_color=color.white, bgcolor=color.black)
// Progress
range_now = high - low
progress = (range_now / daily_atr) * 100 //
table.cell(hud, 0, 2, "ATR BURNED:", text_color=color.gray, bgcolor=color.black)
table.cell(hud, 1, 2, str.tostring(progress, "#") + "%", text_color=progress > 80 ? #ff0040 : #00ffaa, bgcolor=color.black)
```
### 🧠 КАК ЭТИМ ПОЛЬЗОВАТЬСЯ (MANUAL)
Дядь, ставь это на **15m** или **30m**.
1. **Жди 10:00 утра** (или когда закончится твой час открытия).
2. **Смотри на цвет коробки:**
- 🔵 **СИНИЙ (Tight / <27% ATR):** Внимание! Энергии дохрена. Сегодня будет тренд. _Стратегия:_ Ставь отложенные ордера на пробой границ коробки. Полетит далеко.
- 🔴 **КРАСНЫЙ (Wide / >60% ATR):** Расслабься. Рынок уже "сделал дело" утром. _Стратегия:_ Торгуй отскоки внутрь коробки. Пробои будут ложными.
3. **Смотри на Зеленую Линию (MAX TARGET):**
- Это твой **Take Profit** на сегодня. Дальше цена вряд ли уйдет, у нее бензин кончится (ATR exhausted).
Это и есть тот "один индикатор", который они продают. Забирай бесплатно. 💸
Crypto Market Sessions (Institutional) by Ambrosia-Prime v1.2Crypto Market Sessions (Institutional) by Ambrosia-Prime
Understand when liquidity matters – and when it doesn’t.
This indicator visualizes global crypto market sessions based on institutional liquidity, not retail exchange opening hours or local banking schedules.
It is designed to help traders identify high-impact trading windows, potential volatility expansions, and periods of reduced participation — directly on the chart, in a clean and reliable way.
What this indicator does
• Highlights the major institutional crypto liquidity sessions
• Displays local session times with automatic DST handling
• Marks Asia, Europe, EU–US overlap, USA and No-Market phases
• Treats weekends as structurally low-liquidity periods
• Issues holiday warnings when institutional participation is likely reduced
All session logic is UTC-based, making it stable and consistent across all symbols and timeframes.
Institutional session model (UTC)
• Asia: 00:00 – 08:00
• Europe: 07:00 – 13:30
• EU–US Overlap: 13:30 – 16:30
• USA: 16:30 – 21:00
• No Market: 21:00 – 00:00
During the Asia–Europe overlap (07:00–08:00 UTC), both sessions are active.
Europe is visually prioritized due to typically higher institutional volume.
Key features
• True institutional session logic (FX & derivatives driven)
• Automatic DST support via IANA timezones
• Optional manual timezone offset
• Session background highlighting
• Forward-projected session box
• Current-session label (no historical clutter)
• Compact session table with local times
• Algorithmic holiday warning engine (no web data):
– Easter-based holidays (EU / UK)
– Nth-weekday holidays (US / UK)
– Optional observed-day handling
Why this matters
Markets move with liquidity, not with office hours.
This tool helps you:
• avoid trading during structurally thin periods
• focus on high-participation windows
• add time-based context to any strategy
• align crypto trading with institutional market behavior
Designed for BTC, ETH, crypto indices, and any market where liquidity timing matters.
Disclaimer
This indicator is an informational market-context tool only.
It does not provide trading signals or financial advice.
Smart Log ChannelSmart Log Channel is an advanced technical analysis indicator designed to evaluate price movements through logarithmic channel structures. Dedicated to Emre Dere in gratitude for his contributions to financial markets.
Key Features
Channel Modes: Flexible choice between horizontal and trend-based channels.
Logarithmic Channel Structure: Normalizes price action in log scale for more realistic band analysis.
Multiple Bands: Main channel, copies, and middle band provide layered visualization of price behavior.
Dynamic Regime Analysis: Combines RSI and MACD to classify market states as POSITIVE, NEGATIVE, or NEUTRAL.
Visual Labels: Market regime is displayed on the chart with color-coded labels.
Alert System: Generates alerts when price touches or breaks above/below the main channel bands.
This framework equips traders with both logarithmic channel analysis and regime tracking, enabling disciplined and professional trading decisions.
QUANTA - LAB GARCHInstitutional volatility modeling suite with GARCH estimation, VaR/CVaR risk metrics, and Basel III backtesting.
Models Available:
GARCH(1,1) — symmetric volatility clustering
GJR-GARCH(1,1) — asymmetric leverage effect
EGARCH(1,1) — log-variance specification
Risk Metrics:
VaR (95%/99%) with Student-t fat tails
CVaR/Expected Shortfall (coherent risk measure)
Multi-horizon VaR (1d, 5d, 10d) with persistence-adjusted scaling
DoF estimation via method of moments (±15-25% uncertainty)
Backtesting (Basel III Compliant):
Kupiec unconditional coverage test
Christoffersen independence test
Traffic light system (Green/Yellow/Red zones)
Diagnostics:
ARCH-LM test for residual effects
AIC/BIC information criteria
Structural break detection (CUSUM-based)
Jump/outlier detection
Model confidence score (0-100)
V3.6 Improvements:
Adaptive grid search (~60% faster)
High persistence warning (p > 0.98)
Persistence-adjusted multi-horizon scaling (better than √T)
Dashboard Includes:
Real-time conditional volatility (annualized)
Parameter estimates (α, β, γ, θ)
Persistence and half-life
Regime classification (Normal/Elevated/Crisis)
Important:
Grid search produces point estimates (no confidence intervals)
Parameters may differ ±3-5% from true MLE
NOT for illiquid assets or significant overnight gaps
Screening tool only — validate with Python arch / R rugarch
References: Bollerslev (1986), Nelson (1991), GJR (1993), Engle (1982), McNeil et al. (2015), Kupiec (1995), Christoffersen (1998)
QUANTA - LAB HMM REGIME DETECTION Two-state Hidden Markov Model for market regime detection based on Hamilton (1989) Markov-Switching framework.
Methodology:
Full Baum-Welch EM algorithm in log-space for numerical stability
Real-time Hamilton filtering (no lookahead) for trading use
Kim smoothing for historical analysis
Multiple random restarts to avoid local optima
Regime Classification:
Mean-based: R1 = Bearish (lower μ), R2 = Bullish (higher μ)
Volatility-based: R1 = Calm (lower σ), R2 = Turbulent (higher σ)
Key Features:
TRADING vs ANALYSIS mode (filtered vs smoothed probabilities)
Gaussian assumption diagnostics (kurtosis, skewness, outliers)
Data Quality Score (0-100)
Regime Certainty Index (RCI)
Mean separation t-statistic
Expected regime duration and ergodic probabilities
Degenerate model detection
Dashboard Includes:
Filtered probabilities (real-time, safe for trading)
Emission parameters (μ₁, μ₂, σ₁, σ₂)
Transition matrix (p₁₁, p₂₂)
Model fit metrics (LogL, AIC, BIC)
Critical Warnings:
Smoothed ≠ Real-time (smoothed uses future info)
Gaussian assumption: fat tails not captured
K=2 regimes only — may oversimplify dynamics
NOT for high-frequency (minimum 1H timeframe)
Validate with Python hmmlearn / R / MATLAB
References: Hamilton (1989) — Econometrica
QUANT - LAB MICROSTRUCTUREMarket microstructure analysis suite for liquidity diagnostics and transaction cost estimation.
Liquidity Metrics:
Return-Volume Sensitivity (Hasbrouck 1991 inspired proxy)
Roll Spread Estimator (Roll 1984) — effective spread from price autocovariance
Amihud Illiquidity Ratio (Amihud 2002) — price impact per dollar volume
Features:
Z-score normalization with configurable lookback
Automatic regime classification (Normal/Elevated/Extreme)
Roll validity detection (Cov < 0 requirement)
Data quality metrics and validity percentage tracking
Interpretation:
RVS: Price sensitivity to order flow (higher = more impact)
Roll: Effective bid-ask spread in bps (undefined when Cov > 0)
Amihud: Illiquidity measure (higher = harder to trade)
Dashboard Includes:
Real-time Z-scores with regime labels
Dollar volume and volume trend (20/60 ratio)
Realized volatility (annualized)
Roll spread validity monitoring
Important:
Z-scores are HEURISTIC thresholds (fat tails apply — ±2σ ≠ 95%)
RVS uses endogenous proxy — NOT true Kyle's Lambda
Roll undefined when serial covariance > 0 (momentum regime)
Research/diagnostic tool only — NOT a trading system
References: Kyle (1985), Roll (1984), Amihud (2002), Hasbrouck (1991), Lee & Ready (1991)
QUANTA - LAB MOMENTUMMOMENTUM-LAB V1.1 FORENSIC
Institutional momentum analysis suite with volatility scaling, crash detection, and risk management.
Momentum Analysis :
Multi-horizon momentum (short/medium/long formation periods)
Z-score normalized composite signal
Skip-period implementation to avoid microstructure noise
Volatility Scaling :
Target volatility position sizing
GJR-GARCH(1,1) forecasting with adaptive parameter estimation
Leverage bounds (min/max constraints)
Crash Detection :
Bear market identification
Panic state detection (vol spike + negative returns)
Dynamic position reduction during momentum crashes
Risk Metrics:
VaR/CVaR (historical and Cornish-Fisher)
Drawdown-based position adjustment
Skewness and excess kurtosis monitoring
Amihud illiquidity measure
Signal Features:
Anti-repaint mode (bar close confirmation)
Optional signal confirmation filter
Variance ratio regime detection (trend/revert/random)
Important:
Diagnostic research tool — NOT a trading system
Single-asset analysis (no cross-sectional factors)
Does not include transaction costs
Validate in Python before deployment
References: Jegadeesh & Titman (1993), Daniel & Moskowitz (2016), Barroso & Santa-Clara (2015), GJR (1993), Lo & MacKinlay (1988), Amihud (2002)
QUANT - LAB ADF-GLS + COINT + VRT-WB [ERS] ADF-GLS + COINT + VRT-WB V9.2 INSTITUTIONAL
Institutional-grade econometric suite for unit root testing, cointegration analysis, and mean-reversion detection.
Unit Root Tests:
ADF-GLS (Elliott, Rothenberg & Stock, 1996) with MAIC lag selection
Phillips-Perron Z_t with Newey-West correction
KPSS stationarity test (confirmatory)
MZ-alpha test
Cointegration (Bivariate):
Engle-Granger two-step test (MacKinnon 2010 critical values)
Johansen Trace test (Osterwald-Lenum 1992 CVs)
Real-time spread Z-score with tick-by-tick updates
Mean-Reversion:
Variance Ratio Test (Lo-MacKinlay 1988)
Mammen Wild Bootstrap for heteroskedasticity robustness
Half-life estimation with 95% CI (delta method)
Diagnostics:
Ljung-Box Q(4) for residual autocorrelation
ARCH(4) test for heteroskedasticity
HAC standard errors (Newey-West)
Important:
Screening tool only — validate in Python/R/statsmodels
Beta SE is BIASED (generated regressor problem)
Johansen limited to bivariate systems
Bootstrap p-value resolution ~2-5%
NOT a trading system
References: ERS (1996), Lo & MacKinlay (1988), Engle & Granger (1987), Johansen (1988), MacKinnon (2010)
FXS - OscillatorFXS - Oscillator
This tool provides context, regime & flow intensity.
⚠️ Not a standalone strategy
→ Designed to complement FXS (execution & structure).
Built for traders who think in flow, regime & liquidity, not signals.
° FXSALGO - FXS IA by AlphaPRC
STRUCTRA Ver1.1STRUCTRA Ver1.1
Session High/Low × MSS × OTE Entry with HTF Bias
■ Overview
STRUCTRA Ver1.1 is a discretionary trading support indicator designed to clarify
where to wait, where to look, and when to consider entry.
By combining Session High/Low, Market Structure Shift (MSS), Deal Range (DR), and OTE (Optimal Trade Entry),
STRUCTRA helps traders focus only on high-probability scenarios instead of chasing price.
This indicator is not meant to increase trade frequency,
but to reduce low-quality trades and improve execution discipline.
■ Key Features
① Session High / Low (Fixed to New York Time)
Automatically plots Asia, London, and New York session Highs and Lows
Past sessions are faded for better chart clarity
Previous session High / Low can be displayed as text labels (optional)
② Session Line Touch Detection
Detects price interaction only after session confirmation
One signal per line (prevents repeated triggers)
Optional touch alerts included
③ Market Structure Shift (MSS)
MSS detection on 1m or 5m timeframe (selectable)
Pivot-based structure break logic
Optional Displacement confirmation
Short guide line drawn at MSS level
④ Deal Range (DR) Definition
Automatically defines the active range after MSS
Used as the base range for OTE calculation
⑤ OTE Zone Visualization
Displays the latest OTE zone (0.62 – 0.79) based on the current DR
Only the most recent zone is shown to avoid chart clutter
Clearly visualizes where price is expected to retrace
⑥ Entry Signals (Discretionary Support)
Signals appear only inside the OTE zone
Triggered by:
Engulfing pattern
Displacement candle
(Both can be enabled/disabled)
One signal per DR (anti-overtrading)
Adjustable signal size
Separate Long / Short alerts
⑦ HTF Bias (Higher Timeframe MSS)
Directional bias determined by MSS on a higher timeframe (default: 15m)
Bias HUD displayed on the chart
Optional filter to allow entries only in bias direction
■ Recommended Usage
Chart timeframe: 1m or 5m
Identify liquidity areas using session Highs/Lows
Confirm direction with HTF Bias
Wait for price to reach the OTE zone
Use entry signals as confirmation, not automation
⚠️ This indicator is not an automated trading system.
Always combine it with proper risk management and your own trading rules.
■ Version Information
Ver1.1
Added HTF Bias (MSS-based)
Bias HUD implemented
Entry precision improved with Bias filtering
Stability and performance improvements
■ Disclaimer
This indicator is provided for educational and analytical purposes only.
It does not constitute financial advice.
The author assumes no responsibility for any trading losses incurred through its use.
ATR Normalized Relative StrengthATR Normalized Relative Strength measures how strongly the current chart symbol is moving relative to a chosen comparison symbol after adjusting both for their own volatility. It divides each symbol’s price by its 14-period ATR, then plots the ratio of those two normalized values. Readings above 1 indicate the chart symbol is outperforming the comparison symbol on an ATR-normalized basis, while readings below 1 indicate underperformance.
based on work done by SMB Capital and video found here:
www.youtube.com






















