TradeTrackerv2Library "TradeTrackerv2"
This library can be used to track (hypothetical) trades on the chart. Enter the Open, SL, and TP prices (or TP in R to have it calculated) and then call Trade.TrackTrade(barIndex). Keep track of your trades in an array and then simply call TradeTracker.UpdateAllTrades(close) to update all trades based on the current close price.
How to use:
1. Import the library, as always. I'm assuming the alias of "Tracker" below.
2. The Type Trade is exported, so generate a Trade object like newTrade = Tracker.Trade.new() .
3. Set the values for Open, SL, and TP. TP can be set either by price or by R, which will calculate the R based on the Open->SL range:
newTrade.priceOpen = 1.0
newTrade.priceSl = 0.5
newTrade.priceTp = 2.0
-- or in place of the third line above --
newTrade.rTp = 2
4. On each interval you want to update (whether that's per tick/close or on each bar), call trades.UpdateAllTrades(close) . This snippet assumes you have an array named trades (var trades = array.new()) .
In future updates, more customization options will be created. This is the initial prototype.
method MakeTradeLines(t, barIdx)
Namespace types: Trade
Parameters:
t (Trade)
barIdx (int)
method UpdateLabel(t)
Namespace types: Trade
Parameters:
t (Trade)
method MakeLabel(t, barIdx)
Namespace types: Trade
Parameters:
t (Trade)
barIdx (int)
method CloseTrade(t)
Namespace types: Trade
Parameters:
t (Trade)
method OpenTrade(t)
Namespace types: Trade
Parameters:
t (Trade)
method OpenCloseTrade(t, _close)
Namespace types: Trade
Parameters:
t (Trade)
_close (float)
method CalculateProfits(t, _close)
Calculates profits/losses for the Trade, given _close price
Namespace types: Trade
Parameters:
t (Trade)
_close (float)
method UpdateTrade(t, _close)
Namespace types: Trade
Parameters:
t (Trade)
_close (float)
method SetInitialValues(t, barIdx)
Namespace types: Trade
Parameters:
t (Trade)
barIdx (int)
method UpdateAllTrades(trades, _close)
Namespace types: Trade
Parameters:
trades (Trade )
_close (float)
method TrackTrade(t, barIdx)
Namespace types: Trade
Parameters:
t (Trade)
barIdx (int)
Trade
Fields:
id (series__integer)
isOpen (series__bool)
isClosed (series__bool)
isBuy (series__bool)
priceOpen (series__float)
priceTp (series__float)
priceSl (series__float)
rTP (series__float)
profit (series__float)
r (series__float)
resultR (series__float)
lineOpen (series__line)
lineTp (series__line)
lineSl (series__line)
labelStats (series__label)
Pesquisar nos scripts por "track"
World Markets Table
🌍 World Markets Session Table - Track Global Exchanges in Real-Time
Monitor 10 major stock exchanges worldwide with live market status, countdown timers, and customizable themes. Perfect for multi-market traders, global portfolio managers, and anyone trading across time zones.
✨ Key Features
10 Global Exchanges Tracked:
🇺🇸 NYSE & NASDAQ (New York)
🇨🇳 Shanghai Stock Exchange
🇯🇵 Tokyo Stock Exchange
🇭🇰 Hong Kong Stock Exchange
🇬🇧 London Stock Exchange
🇪🇺 Euronext
🇩🇪 Frankfurt (Xetra)
🇨🇦 Toronto Stock Exchange
🇦🇺 Australian Securities Exchange
Real-Time Market Intelligence:
✅ Live OPEN/CLOSED status with colored indicators
⏱️ Countdown timers to market open/close
🗓️ Automatic weekday/weekend detection
🕒 Optional seconds display for precision timing
🎯 Visual status badges (green for open, red for closed)
Full Customization:
📍 6 table positions (top/bottom × left/center/right)
📏 4 size options (tiny, small, normal, large)
🎨 4 professional themes: Dark, Light, Neon, Ocean
🚩 Toggle country flags on/off
💼 Clean, professional table layout
🎨 Professional Themes
Dark Theme: Sleek charcoal design for night trading
Light Theme: Bright, clean interface for daylight charts
Neon Theme: Vibrant cyberpunk aesthetic with electric colors
Ocean Theme: Calming blue palette for focused analysis
💡 Perfect For
Multi-market traders monitoring global sessions simultaneously
Identifying optimal trading windows across time zones
Planning entries/exits around market opens and closes
Portfolio managers tracking international markets
Forex, indices, and commodities traders
Pre-market and after-hours trading planning
⚙️ How It Works
All market times are calculated in UTC and automatically adjust to your local timezone. The indicator overlays your chart without interfering with price action or technical analysis. Simply add it to any chart, customize the appearance, and stay informed about global market hours.
📊 Usage Tips
Place the table in a non-intrusive position to maintain chart clarity
Use countdown timers to prepare for volatility at market open/close
Match the theme to your chart colors for a cohesive workspace
Enable seconds display when precision timing matters most
Note: This is a display-only indicator showing market hours. It does not generate trading signals or plot price data.
Premarket LevelsThis indicator tracks premarket high and low levels for day trading, providing statistical analysis on how often these levels get touched during regular trading hours (9:30 AM-4:00 PM EST). It combines real-time level tracking with historical probability analysis and precise timing statistics to help traders make data-driven decisions. I use 4:00 - 9:30 AM on SPY/QQQ etc and 18:00 - 9:30 on Futures ES/NQ etc
Core Features
1. Premarket Level Tracking
Automatically identifies and plots premarket high and low levels
Displays levels with customizable colors and line styles
Shows optional midpoint and percentage/fibonacci retracement levels
Tracks when levels are set during premarket session
2. Historical Touch Analysis
Calculates probability of PM high/low being touched during regular hours
Tracks "Both Levels" touched rate (how often both get hit same day)
Tracks "Either Level" touched rate (how often at least one gets hit)
Adjustable lookback period (1-250 days) for statistical analysis
3. Timing Intelligence
Average time when levels get touched
Earliest and latest touch times in historical data
Four customizable time buckets showing touch distribution throughout the day
First touch time displayed for current session
4. Range Analysis
Current PM range vs historical average (adjustable period)
Range percentile ranking (where today ranks in historical distribution)
Min/Max historical ranges for context
Large/small range detection with customizable thresholds
Background highlighting for unusual range days
5. Smart Signals & Alerts
Buy/Sell signals on level breakouts (adjustable sensitivity)
Level rejection detection (failed breakout patterns)
Proximity alerts when approaching levels
Touch markers (diamond shapes) when levels are tested
Multiple alert conditions for various scenarios
6. Risk Management Tools
Automatic stop loss suggestions (ATR-based, percentage-based, or fixed points)
Target projections based on range extension
Position tracking relative to PM range
Distance calculations to both levels
How To Use
For Day Traders:
Check the "Either Level" percentage - if 90%+, at least one level will likely be touched
Review time bucket statistics - most touches happen 9:30-10:00 AM
Monitor "Both Levels" rate - typically only 20-30%, meaning round trips are rare
Use range percentile to gauge if expansion or mean reversion is likely
For Scalpers:
Enable touch markers to see exact level tests
Use proximity alerts to prepare for potential bounces
Monitor first touch times - early touches often lead to continuations
Check rejection signals for quick reversal trades
For Swing Position Sizing:
Use historical touch rates to assess probability of level tests
Review range size vs average for stop placement guidance
Check timing analysis to avoid holding through low-probability windows
Use target projections for realistic profit targets
Settings Overview
Basic Settings:
Premarket session time (default 4:00-7:30 AM EST)
Signal sensitivity for breakout detection
Timezone selection for accurate time labels
Historical Analysis:
Lookback period for statistics (default 20 days, max 250)
Toggle touch tracking and markers
Enable/disable daily statistics display
Range Analysis:
Adjustable average period (default 20 days)
Large/small range threshold customization
Range percentile display toggle
Timing Analysis:
Three customizable time buckets (default: 10:00, 11:00, 12:00)
Fourth bucket automatically covers afternoon (12:00-4:00 PM)
Toggle time bucket statistics display
Visual Features:
Midpoint line display
Percentage (25%, 75%) or Fibonacci (23.6%, 38.2%, 61.8%, 78.6%) levels
Table position and size customization
Comprehensive color scheme customization (background, text, headers)
Smart Alerts:
Proximity alerts with adjustable threshold
Level rejection detection
Failed breakout detector
Time-of-day filter to avoid lunch chop
Risk Management:
Stop loss method selection (ATR, PM Range %, Fixed Points)
Adjustable ATR multiplier
Target projection display
Statistics Explained
Touch Rates:
Percentage of days where level was touched during RTH
Based only on FIRST touch per day (not multiple re-tests)
Binary metric: Yes/No for each day
Timing Stats:
All based on timestamp of FIRST touch each day
Average, Earliest, Latest provide distribution context
Time buckets show concentration of first touches
Range Metrics:
Current range compared to historical average
Percentile shows where today ranks (0-100%)
Min/Max provide extreme boundaries from history
Important Notes
First Touch Only: All statistics track only the first time a level is touched each day, not subsequent re-tests
RTH Focus: Touch tracking occurs only during regular trading hours (9:30 AM-4:00 PM EST)
Data Accumulation: Historical statistics build over time as indicator runs; requires specified lookback period to populate
Chart Timeframe: Works on any timeframe but recommended 3-5 minute charts for best premarket level precision
Memory Reset: Each new premarket session resets tracking for fresh daily analysis
Best Practices
Use 60-100 day lookback for statistical significance
Combine high touch rates (80%+) with time bucket data for highest probability setups
Small ranges (< 50% of average) often lead to expansion moves
Large ranges (> 150% of average) often consolidate or mean-revert
First 30 minutes typically contains 50%+ of all level touches
After 12:00 PM, probability of untouched levels being hit drops significantly
Performance Considerations
Optimized for real-time calculation with minimal lag
Uses efficient array management for historical data
Table updates only on bar close for performance
Maximum lookback of 250 days to prevent memory issues
This indicator is for educational and informational purposes only. It is NOT financial advice.
The buy/sell signals are algorithmic suggestions based on historical patterns and should NOT be followed blindly
Past performance and historical statistics do NOT guarantee future results
All trading involves substantial risk of loss
You are solely responsible for your own trading decisions
Always perform your own analysis and risk assessment before entering any trade
The creator of this indicator is not responsible for any trading losses incurred from its use
No representation is being made that any account will or is likely to achieve profits or losses similar to those discussed in the indicator statistics
By using this indicator, you acknowledge that you understand these risks and accept full responsibility for your trading decisions.
PIPSTA - ORB# PIPSTA - ORB - Complete Explanation
This is a sophisticated **Opening Range Breakout (ORB)** indicator for TradingView that tracks price movements during the first minutes of a trading session and identifies breakout opportunities.
---
## 🎯 Core Concept: What is ORB?
**Opening Range Breakout** is a trading strategy based on the idea that the first minutes of trading establish key support/resistance levels. When price breaks above (bullish) or below (bearish) these levels with conviction, it often signals a strong directional move for the rest of the session.
---
## 📊 Key Features
### 1. **Multi-Stage ORB Tracking**
The indicator tracks **4 different opening ranges simultaneously**:
- **ORB 5**: First 5 minutes (fastest, most volatile)
- **ORB 15**: First 15 minutes (balanced signals)
- **ORB 30**: First 30 minutes (more reliable)
- **ORB 60**: First 60 minutes (slowest, most confirmed)
Each stage establishes a **High** and **Low** level. The active ORB (usually the largest completed one) is used for breakout detection.
---
### 2. **Breakout Detection System**
**How it works:**
- Monitors when price closes **above ORB High** (bullish breakout) or **below ORB Low** (bearish breakout)
- Requires a **buffer** (default 0.2%) to filter false breakouts
- Tracks **cycles**: Breakout → Retest → Re-breakout sequences
- Shows labels on chart marking breakouts with cycle numbers
**Signal Modes:**
- **First Only**: Shows only the first breakout in each direction per day
- **Track Cycles**: Shows multiple breakouts as price oscillates (up to configurable max cycles)
---
### 3. **Advanced Filtering**
The indicator includes **optional filters** to improve signal quality:
#### **Volume Filter**
- Compares current volume to moving average
- Requires volume ≥ X multiplier (default 1.5×) for breakout confirmation
- **Strong Volume Override**: If volume exceeds threshold (default 2×), bypasses other filters
#### **Trend Filter**
- Multiple methods: VWAP, EMA, SuperTrend, or combinations
- Only shows breakouts **aligned with the trend**
- Prevents counter-trend trades with lower success rates
#### **FVG (Fair Value Gap) Filter**
- Detects price gaps from strong momentum moves
- Requires breakout to occur near a FVG for confirmation
- Shows FVG boxes on chart (optional)
#### **Higher Timeframe (HTF) Bias**
- Checks daily/4H/weekly trend before taking breakouts
- Displays HTF bias in dashboard (✅ Aligned / ⚠️ Counter-Trend)
- Doesn't block signals—just warns you
---
### 4. **Retest & Failed Break Detection**
**Retest Logic:**
- After breakout, if price returns to ORB level → shows "🔁 RETEST" label
- Tracks minimum distance traveled (default 0.5%) to avoid labeling tiny bounces
- Useful for re-entry opportunities
**Failed Breaks:**
- If price breaks out but returns inside range within X bars (default 5) → marks as "⚠️ FAILED BREAK"
- Helps identify weak breakouts quickly
- Adjusts cycle count accordingly
---
### 5. **Risk Management & Position Sizing**
#### **Automatic Target/Stop Calculation**
**Stop Loss Methods:**
1. **Smart Adaptive** (Recommended): Adjusts to volatility automatically
2. **ATR-Based**: Uses Average True Range with multiplier
3. **ORB %**: Fixed percentage beyond ORB level
4. **Swing**: Places at recent swing high/low
5. **% Based**: Simple percentage from entry
**Take Profit Targets:**
- **TP1** (1R): Conservative target, 1:1 risk/reward
- **TP1.5** (1.5R): Intermediate target
- **TP2** (2R): Standard target for most traders ⭐
- **TP3** (3R): Extended target for strong trends
*R = Risk units (1R = distance from entry to stop loss)*
#### **Position Sizing Calculator**
Automatically calculates:
- **Max shares** to buy based on your risk tolerance
- **Position value** in dollars
- **Risk amount** (max loss if SL hit)
- **Risk/Reward ratio** for the trade
**Risk Modes:**
- **$ Amount**: Risk fixed dollar amount per trade (e.g., $150)
- **% of Account**: Risk percentage of total account (e.g., 1% of $25,000 = $250)
**Safety Limits:**
- Max position size % of account (prevents over-leverage)
- Multi-currency support with live exchange rates
---
### 6. **Real-Time Dashboard**
Displays comprehensive trade information:
**Session Status:**
- Market open/closed status
- Session type (Regular/Extended Hours/Pre-Market)
- Current ORB stage and completion status
**ORB Metrics:**
- Range size ($0.50, 2.5% width)
- Volatility meter (🔥🔥🔥 Extreme / 🔥 Medium / ⚪ Low)
- Volume status (if filter enabled)
- Trend direction (if filter enabled)
- HTF bias
**Trade Setup (when breakout occurs):**
- Entry price
- Stop Loss ($ and %)
- Target prices (TP1, TP1.5, TP2, TP3) with percentages
- Risk/Reward ratio
- Position size (shares and $ value)
- Risk amount
**Session Statistics:**
- Wins/Losses count
- Win rate %
- Total R earned
- Best/Worst trade
---
### 7. **Visual Elements**
**On Chart:**
- **Colored bands** showing active ORB levels (High/Low/Mid)
- **Breakout labels** (🔼 BREAKOUT UP, 🔽 BREAKOUT DOWN)
- **Retest labels** (🔁 RETEST UP/DOWN)
- **Failed break labels** (⚠️ FAILED BREAK)
- **TP/SL lines** extending from entry point
- **Edge labels** showing which ORB stage is active
- **FVG boxes** (if enabled)
**Customizable:**
- Colors for each ORB stage
- Label sizes (Tiny/Small/Normal/Large/Huge)
- Label format (Simple vs Detailed)
- Background transparency
- Line styles
---
## ⚙️ Session Management
**Session Modes:**
- **Auto-Detect**: Uses symbol's native exchange hours (recommended)
- **New York**: NYSE/NASDAQ (09:30-16:00 EST)
- **London**: LSE (08:00-16:30 GMT)
- **Tokyo**: TSE (09:00-15:00 JST)
- **Sydney**: ASX (10:00-16:00 AEST)
- **Frankfurt**: XETRA (09:00-17:30 CET)
- **Custom**: Define your own hours
**Extended Hours Support:**
- Include pre-market (04:00-09:30) and after-hours (16:00-20:00)
- ORB tracking works during extended hours
- Dashboard shows appropriate status
---
## 🎵 Workflow Example
1. **Market opens at 09:30**
2. **First 5 minutes**: ORB5 builds (tracks High/Low)
3. **At 09:35**: ORB5 completes → becomes active
4. **At 09:45**: ORB15 completes → becomes active (takes priority)
5. **Price action**: Close above ORB15 High + buffer → **BREAKOUT UP**
6. **Indicator displays**:
- 🔼 BREAKOUT UP label on chart
- Entry line at ORB High
- TP1/TP2/TP3 lines calculated
- SL line below entry
- Dashboard shows trade parameters
- Position size calculated
7. **Price returns to ORB**: Shows 🔁 RETEST label
8. **If TP2 hit**: Lines freeze, dashboard updates, session stats increment
---
## ⚠️ Important Notes
### **Limitations:**
- May produce false signals in choppy/ranging markets
- Best on **5-minute charts** during **regular trading hours**
- Requires **liquid stocks** (>1M daily volume)
- Not suitable for all market conditions
### **Best Practices:**
- **Paper trade first** to understand signals
- Use proper risk management (1-2% risk per trade)
- Combine with overall market analysis
- Recommended: Track Cycles mode with Volume + Trend filters
### **Timezone Fix:**
If ORB appears 1 hour off:
- Right-click chart → Settings → Symbol → Timezone
- Set to exchange timezone (e.g., America/New_York for NYSE)
---
## 🔔 Alert System
Configurable alerts for:
- Breakout UP/DOWN
- Retest UP/DOWN
- Failed breaks
- Stage completion
All alerts include ticker, price, and ORB stage information.
---
## 💡 Credits & Purpose
**Based on:** Mark Fisher's Opening Range Breakout concept
**Enhanced with:** Modern technical analysis techniques
**Purpose:** Educational and informational—not financial advice
**Author:** OrenLuxy
**Disclaimer:** Trading involves substantial risk. Past performance doesn't guarantee future results. Always do your own research.
---
This indicator is a **complete ORB trading system** with institutional-grade risk management, multi-filter confirmation, and comprehensive position sizing—all automated and visualized in real-time. Perfect for day traders who want a systematic approach to opening range breakouts.
Algorithm Predator - ML-liteAlgorithm Predator - ML-lite
This indicator combines four specialized trading agents with an adaptive multi-armed bandit selection system to identify high-probability trade setups. It is designed for swing and intraday traders who want systematic signal generation based on institutional order flow patterns , momentum exhaustion , liquidity dynamics , and statistical mean reversion .
Core Architecture
Why These Components Are Combined:
The script addresses a fundamental challenge in algorithmic trading: no single detection method works consistently across all market conditions. By deploying four independent agents and using reinforcement learning algorithms to select or blend their outputs, the system adapts to changing market regimes without manual intervention.
The Four Trading Agents
1. Spoofing Detector Agent 🎭
Detects iceberg orders through persistent volume at similar price levels over 5 bars
Identifies spoofing patterns via asymmetric wick analysis (wicks exceeding 60% of bar range with volume >1.8× average)
Monitors order clustering using simplified Hawkes process intensity tracking (exponential decay model)
Signal Logic: Contrarian—fades false breakouts caused by institutional manipulation
Best Markets: Consolidations, institutional trading windows, low-liquidity hours
2. Exhaustion Detector Agent ⚡
Calculates RSI divergence between price movement and momentum indicator over 5-bar window
Detects VWAP exhaustion (price at 2σ bands with declining volume)
Uses VPIN reversals (volume-based toxic flow dissipation) to identify momentum failure
Signal Logic: Counter-trend—enters when momentum extreme shows weakness
Best Markets: Trending markets reaching climax points, over-extended moves
3. Liquidity Void Detector Agent 💧
Measures Bollinger Band squeeze (width <60% of 50-period average)
Identifies stop hunts via 20-bar high/low penetration with immediate reversal and volume spike
Detects hidden liquidity absorption (volume >2× average with range <0.3× ATR)
Signal Logic: Breakout anticipation—enters after liquidity grab but before main move
Best Markets: Range-bound pre-breakout, volatility compression zones
4. Mean Reversion Agent 📊
Calculates price z-scores relative to 50-period SMA and standard deviation (triggers at ±2σ)
Implements Ornstein-Uhlenbeck process scoring (mean-reverting stochastic model)
Uses entropy analysis to detect algorithmic trading patterns (low entropy <0.25 = high predictability)
Signal Logic: Statistical reversion—enters when price deviates significantly from statistical equilibrium
Best Markets: Range-bound, low-volatility, algorithmically-dominated instruments
Adaptive Selection: Multi-Armed Bandit System
The script implements four reinforcement learning algorithms to dynamically select or blend agents based on performance:
Thompson Sampling (Default - Recommended):
Uses Bayesian inference with beta distributions (tracks alpha/beta parameters per agent)
Balances exploration (trying underused agents) vs. exploitation (using proven winners)
Each agent's win/loss history informs its selection probability
Lite Approximation: Uses pseudo-random sampling from price/volume noise instead of true random number generation
UCB1 (Upper Confidence Bound):
Calculates confidence intervals using: average_reward + sqrt(2 × ln(total_pulls) / agent_pulls)
Deterministic algorithm favoring agents with high uncertainty (potential upside)
More conservative than Thompson Sampling
Epsilon-Greedy:
Exploits best-performing agent (1-ε)% of the time
Explores randomly ε% of the time (default 10%, configurable 1-50%)
Simple, transparent, easily tuned via epsilon parameter
Gradient Bandit:
Uses softmax probability distribution over agent preference weights
Updates weights via gradient ascent based on rewards
Best for Blend mode where all agents contribute
Selection Modes:
Switch Mode: Uses only the selected agent's signal (clean, decisive)
Blend Mode: Combines all agents using exponentially weighted confidence scores controlled by temperature parameter (smooth, diversified)
Lock Agent Feature:
Optional manual override to force one specific agent
Useful after identifying which agent dominates your specific instrument
Only applies in Switch mode
Four choices: Spoofing Detector, Exhaustion Detector, Liquidity Void, Mean Reversion
Memory System
Dual-Layer Architecture:
Short-Term Memory: Stores last 20 trade outcomes per agent (configurable 10-50)
Long-Term Memory: Stores episode averages when short-term reaches transfer threshold (configurable 5-20 bars)
Memory Boost Mechanism: Recent performance modulates agent scores by up to ±20%
Episode Transfer: When an agent accumulates sufficient results, averages are condensed into long-term storage
Persistence: Manual restoration of learned parameters via input fields (alpha, beta, weights, microstructure thresholds)
How Memory Works:
Agent generates signal → outcome tracked after 8 bars (performance horizon)
Result stored in short-term memory (win = 1.0, loss = 0.0)
Short-term average influences agent's future scores (positive feedback loop)
After threshold met (default 10 results), episode averaged into long-term storage
Long-term patterns (weighted 30%) + short-term patterns (weighted 70%) = total memory boost
Market Microstructure Analysis
These advanced metrics quantify institutional order flow dynamics:
Order Flow Toxicity (Simplified VPIN):
Measures buy/sell volume imbalance over 20 bars: |buy_vol - sell_vol| / (buy_vol + sell_vol)
Detects informed trading activity (institutional players with non-public information)
Values >0.4 indicate "toxic flow" (informed traders active)
Lite Approximation: Uses simple open/close heuristic instead of tick-by-tick trade classification
Price Impact Analysis (Simplified Kyle's Lambda):
Measures market impact efficiency: |price_change_10| / sqrt(volume_sum_10)
Low values = large orders with minimal price impact ( stealth accumulation )
High values = retail-dominated moves with high slippage
Lite Approximation: Uses simplified denominator instead of regression-based signed order flow
Market Randomness (Entropy Analysis):
Counts unique price changes over 20 bars / 20
Measures market predictability
High entropy (>0.6) = human-driven, chaotic price action
Low entropy (<0.25) = algorithmic trading dominance (predictable patterns)
Lite Approximation: Simple ratio instead of true Shannon entropy H(X) = -Σ p(x)·log₂(p(x))
Order Clustering (Simplified Hawkes Process):
Tracks self-exciting event intensity (coordinated order activity)
Decays at 0.9× per bar, spikes +1.0 when volume >1.5× average
High intensity (>0.7) indicates clustering (potential spoofing/accumulation)
Lite Approximation: Simple exponential decay instead of full λ(t) = μ + Σ α·exp(-β(t-tᵢ)) with MLE
Signal Generation Process
Multi-Stage Validation:
Stage 1: Agent Scoring
Each agent calculates internal score based on its detection criteria
Scores must exceed agent-specific threshold (adjusted by sensitivity multiplier)
Agent outputs: Signal direction (+1/-1/0) and Confidence level (0.0-1.0)
Stage 2: Memory Boost
Agent scores multiplied by memory boost factor (0.8-1.2 based on recent performance)
Successful agents get amplified, failing agents get dampened
Stage 3: Bandit Selection/Blending
If Adaptive Mode ON:
Switch: Bandit selects single best agent, uses only its signal
Blend: All agents combined using softmax-weighted confidence scores
If Adaptive Mode OFF:
Traditional consensus voting with confidence-squared weighting
Signal fires when consensus exceeds threshold (default 70%)
Stage 4: Confirmation Filter
Raw signal must repeat for consecutive bars (default 3, configurable 2-4)
Minimum confidence threshold: 0.25 (25%) enforced regardless of mode
Trend alignment check: Long signals require trend_score ≥ -2, Short signals require trend_score ≤ 2
Stage 5: Cooldown Enforcement
Minimum bars between signals (default 10, configurable 5-15)
Prevents over-trading during choppy conditions
Stage 6: Performance Tracking
After 8 bars (performance horizon), signal outcome evaluated
Win = price moved in signal direction, Loss = price moved against
Results fed back into memory and bandit statistics
Trading Modes (Presets)
Pre-configured parameter sets:
Conservative: 85% consensus, 4 confirmations, 15-bar cooldown
Expected: 60-70% win rate, 3-8 signals/week
Best for: Swing trading, capital preservation, beginners
Balanced: 70% consensus, 3 confirmations, 10-bar cooldown
Expected: 55-65% win rate, 8-15 signals/week
Best for: Day trading, most traders, general use
Aggressive: 60% consensus, 2 confirmations, 5-bar cooldown
Expected: 50-58% win rate, 15-30 signals/week
Best for: Scalping, high-frequency trading, active management
Elite: 75% consensus, 3 confirmations, 12-bar cooldown
Expected: 58-68% win rate, 5-12 signals/week
Best for: Selective trading, high-conviction setups
Adaptive: 65% consensus, 2 confirmations, 8-bar cooldown
Expected: Varies based on learning
Best for: Experienced users leveraging bandit system
How to Use
1. Initial Setup (5 Minutes):
Select Trading Mode matching your style (start with Balanced)
Enable Adaptive Learning (recommended for automatic agent selection)
Choose Thompson Sampling algorithm (best all-around performance)
Keep Microstructure Metrics enabled for liquid instruments (>100k daily volume)
2. Agent Tuning (Optional):
Adjust Agent Sensitivity multipliers (0.5-2.0):
<0.8 = Highly selective (fewer signals, higher quality)
0.9-1.2 = Balanced (recommended starting point)
1.3 = Aggressive (more signals, lower individual quality)
Monitor dashboard for 20-30 signals to identify dominant agent
If one agent consistently outperforms, consider using Lock Agent feature
3. Bandit Configuration (Advanced):
Blend Temperature (0.1-2.0):
0.3 = Sharp decisions (best agent dominates)
0.5 = Balanced (default)
1.0+ = Smooth (equal weighting, democratic)
Memory Decay (0.8-0.99):
0.90 = Fast adaptation (volatile markets)
0.95 = Balanced (most instruments)
0.97+ = Long memory (stable trends)
4. Signal Interpretation:
Green triangle (▲): Long signal confirmed
Red triangle (▼): Short signal confirmed
Dashboard shows:
Active agent (highlighted row with ► marker)
Win rate per agent (green >60%, yellow 40-60%, red <40%)
Confidence bars (█████ = maximum confidence)
Memory size (short-term buffer count)
Colored zones display:
Entry level (current close)
Stop-loss (1.5× ATR)
Take-profit 1 (2.0× ATR)
Take-profit 2 (3.5× ATR)
5. Risk Management:
Never risk >1-2% per signal (use ATR-based stops)
Signals are entry triggers, not complete strategies
Combine with your own market context analysis
Consider fundamental catalysts and news events
Use "Confirming" status to prepare entries (not to enter early)
6. Memory Persistence (Optional):
After 50-100 trades, check Memory Export Panel
Record displayed alpha/beta/weight values for each agent
Record VPIN and Kyle threshold values
Enable "Restore From Memory" and input saved values to continue learning
Useful when switching timeframes or restarting indicator
Visual Components
On-Chart Elements:
Spectral Layers: EMA8 ± 0.5 ATR bands (dynamic support/resistance, colored by trend)
Energy Radiance: Multi-layer glow boxes at signal points (intensity scales with confidence, configurable 1-5 layers)
Probability Cones: Projected price paths with uncertainty wedges (15-bar projection, width = confidence × ATR)
Connection Lines: Links sequential signals (solid = same direction continuation, dotted = reversal)
Kill Zones: Risk/reward boxes showing entry, stop-loss, and dual take-profit targets
Signal Markers: Triangle up/down at validated entry points
Dashboard (Configurable Position & Size):
Regime Indicator: 4-level trend classification (Strong Bull/Bear, Weak Bull/Bear)
Mode Status: Shows active system (Adaptive Blend, Locked Agent, or Consensus)
Agent Performance Table: Real-time win%, confidence, and memory stats
Order Flow Metrics: Toxicity and impact indicators (when microstructure enabled)
Signal Status: Current state (Long/Short/Confirming/Waiting) with confirmation progress
Memory Panel (Configurable Position & Size):
Live Parameter Export: Alpha, beta, and weight values per agent
Adaptive Thresholds: Current VPIN sensitivity and Kyle threshold
Save Reminder: Visual indicator if parameters should be recorded
What Makes This Original
This script's originality lies in three key innovations:
1. Genuine Meta-Learning Framework:
Unlike traditional indicator mashups that simply display multiple signals, this implements authentic reinforcement learning (multi-armed bandits) to learn which detection method works best in current conditions. The Thompson Sampling implementation with beta distribution tracking (alpha for successes, beta for failures) is statistically rigorous and adapts continuously. This is not post-hoc optimization—it's real-time learning.
2. Episodic Memory Architecture with Transfer Learning:
The dual-layer memory system mimics human learning patterns:
Short-term memory captures recent performance (recency bias)
Long-term memory preserves historical patterns (experience)
Automatic transfer mechanism consolidates knowledge
Memory boost creates positive feedback loops (successful strategies become stronger)
This architecture allows the system to adapt without retraining , unlike static ML models that require batch updates.
3. Institutional Microstructure Integration:
Combines retail-focused technical analysis (RSI, Bollinger Bands, VWAP) with institutional-grade microstructure metrics (VPIN, Kyle's Lambda, Hawkes processes) typically found in academic finance literature and professional trading systems, not standard retail platforms. While simplified for Pine Script constraints, these metrics provide insight into informed vs. uninformed trading , a dimension entirely absent from traditional technical analysis.
Mashup Justification:
The four agents are combined specifically for risk diversification across failure modes:
Spoofing Detector: Prevents false breakout losses from manipulation
Exhaustion Detector: Prevents chasing extended trends into reversals
Liquidity Void: Exploits volatility compression (different regime than trending)
Mean Reversion: Provides mathematical anchoring when patterns fail
The bandit system ensures the optimal tool is automatically selected for each market situation, rather than requiring manual interpretation of conflicting signals.
Why "ML-lite"? Simplifications and Approximations
This is the "lite" version due to necessary simplifications for Pine Script execution:
1. Simplified VPIN Calculation:
Academic Implementation: True VPIN uses volume bucketing (fixed-volume bars) and tick-by-tick buy/sell classification via Lee-Ready algorithm or exchange-provided trade direction flags
This Implementation: 20-bar rolling window with simple open/close heuristic (close > open = buy volume)
Impact: May misclassify volume during ranging/choppy markets; works best in directional moves
2. Pseudo-Random Sampling:
Academic Implementation: Thompson Sampling requires true random number generation from beta distributions using inverse transform sampling or acceptance-rejection methods
This Implementation: Deterministic pseudo-randomness derived from price and volume decimal digits: (close × 100 - floor(close × 100)) + (volume % 100) / 100
Impact: Not cryptographically random; may have subtle biases in specific price ranges; provides sufficient variation for agent selection
3. Hawkes Process Approximation:
Academic Implementation: Full Hawkes process uses maximum likelihood estimation with exponential kernels: λ(t) = μ + Σ α·exp(-β(t-tᵢ)) fitted via iterative optimization
This Implementation: Simple exponential decay (0.9 multiplier) with binary event triggers (volume spike = event)
Impact: Captures self-exciting property but lacks parameter optimization; fixed decay rate may not suit all instruments
4. Kyle's Lambda Simplification:
Academic Implementation: Estimated via regression of price impact on signed order flow over multiple time intervals: Δp = λ × Δv + ε
This Implementation: Simplified ratio: price_change / sqrt(volume_sum) without proper signed order flow or regression
Impact: Provides directional indicator of impact but not true market depth measurement; no statistical confidence intervals
5. Entropy Calculation:
Academic Implementation: True Shannon entropy requires probability distribution: H(X) = -Σ p(x)·log₂(p(x)) where p(x) is probability of each price change magnitude
This Implementation: Simple ratio of unique price changes to total observations (variety measure)
Impact: Measures diversity but not true information entropy with probability weighting; less sensitive to distribution shape
6. Memory System Constraints:
Full ML Implementation: Neural networks with backpropagation, experience replay buffers (storing state-action-reward tuples), gradient descent optimization, and eligibility traces
This Implementation: Fixed-size array queues with simple averaging; no gradient-based learning, no state representation beyond raw scores
Impact: Cannot learn complex non-linear patterns; limited to linear performance tracking
7. Limited Feature Engineering:
Advanced Implementation: Dozens of engineered features, polynomial interactions (x², x³), dimensionality reduction (PCA, autoencoders), feature selection algorithms
This Implementation: Raw agent scores and basic market metrics (RSI, ATR, volume ratio); minimal transformation
Impact: May miss subtle cross-feature interactions; relies on agent-level intelligence rather than feature combinations
8. Single-Instrument Data:
Full Implementation: Multi-asset correlation analysis (sector ETFs, currency pairs, volatility indices like VIX), lead-lag relationships, risk-on/risk-off regimes
This Implementation: Only OHLCV data from displayed instrument
Impact: Cannot incorporate broader market context; vulnerable to correlated moves across assets
9. Fixed Performance Horizon:
Full Implementation: Adaptive horizon based on trade duration, volatility regime, or profit target achievement
This Implementation: Fixed 8-bar evaluation window
Impact: May evaluate too early in slow markets or too late in fast markets; one-size-fits-all approach
Performance Impact Summary:
These simplifications make the script:
✅ Faster: Executes in milliseconds vs. seconds (or minutes) for full academic implementations
✅ More Accessible: Runs on any TradingView plan without external data feeds, APIs, or compute servers
✅ More Transparent: All calculations visible in Pine Script (no black-box compiled models)
✅ Lower Resource Usage: <500 bars lookback, minimal memory footprint
⚠️ Less Precise: Approximations may reduce statistical edge by 5-15% vs. academic implementations
⚠️ Limited Scope: Cannot capture tick-level dynamics, multi-order-book interactions, or cross-asset flows
⚠️ Fixed Parameters: Some thresholds hardcoded rather than dynamically optimized
When to Upgrade to Full Implementation:
Consider professional Python/C++ versions with institutional data feeds if:
Trading with >$100K capital where precision differences materially impact returns
Operating in microsecond-competitive environments (HFT, market making)
Requiring regulatory-grade audit trails and reproducibility
Backtesting with tick-level precision for strategy validation
Need true real-time adaptation with neural network-based learning
For retail swing/day trading and position management, these approximations provide sufficient signal quality while maintaining usability, transparency, and accessibility. The core logic—multi-agent detection with adaptive selection—remains intact.
Technical Notes
All calculations use standard Pine Script built-in functions ( ta.ema, ta.atr, ta.rsi, ta.bb, ta.sma, ta.stdev, ta.vwap )
VPIN and Kyle's Lambda use simplified formulas optimized for OHLCV data (see "Lite" section above)
Thompson Sampling uses pseudo-random noise from price/volume decimal digits for beta distribution sampling
No repainting: All calculations use confirmed bar data (no forward-looking)
Maximum lookback: 500 bars (set via max_bars_back parameter)
Performance evaluation: 8-bar forward-looking window for reward calculation (clearly disclosed)
Confidence threshold: Minimum 0.25 (25%) enforced on all signals
Memory arrays: Dynamic sizing with FIFO queue management
Limitations and Disclaimers
Not Predictive: This indicator identifies patterns in historical data. It cannot predict future price movements with certainty.
Requires Human Judgment: Signals are entry triggers, not complete trading strategies. Must be confirmed with your own analysis, risk management rules, and market context.
Learning Period Required: The adaptive system requires 50-100 bars minimum to build statistically meaningful performance data for bandit algorithms.
Overfitting Risk: Restoring memory parameters from one market regime to a drastically different regime (e.g., low volatility to high volatility) may cause poor initial performance until system re-adapts.
Approximation Limitations: Simplified calculations (see "Lite" section) may underperform academic implementations by 5-15% in highly efficient markets.
No Guarantee of Profit: Past performance, whether backtested or live-traded, does not guarantee future performance. All trading involves risk of loss.
Forward-Looking Bias: Performance evaluation uses 8-bar forward window—this creates slight look-ahead for learning (though not for signals). Real-time performance may differ from indicator's internal statistics.
Single-Instrument Limitation: Does not account for correlations with related assets or broader market regime changes.
Recommended Settings
Timeframe: 15-minute to 4-hour charts (sufficient volatility for ATR-based stops; adequate bar volume for learning)
Assets: Liquid instruments with >100k daily volume (forex majors, large-cap stocks, BTC/ETH, major indices)
Not Recommended: Illiquid small-caps, penny stocks, low-volume altcoins (microstructure metrics unreliable)
Complementary Tools: Volume profile, order book depth, market breadth indicators, fundamental catalysts
Position Sizing: Risk no more than 1-2% of capital per signal using ATR-based stop-loss
Signal Filtering: Consider external confluence (support/resistance, trendlines, round numbers, session opens)
Start With: Balanced mode, Thompson Sampling, Blend mode, default agent sensitivities (1.0)
After 30+ Signals: Review agent win rates, consider increasing sensitivity of top performers or locking to dominant agent
Alert Configuration
The script includes built-in alert conditions:
Long Signal: Fires when validated long entry confirmed
Short Signal: Fires when validated short entry confirmed
Alerts fire once per bar (after confirmation requirements met)
Set alert to "Once Per Bar Close" for reliability
Taking you to school. — Dskyz, Trade with insight. Trade with anticipation.
Fractal Market Model [BLAZ]Version 1.0 – Published August 2025: Initial release
1. Overview & Purpose
1.1. What This Indicator Does
The Fractal Market Model is an original multi-timeframe technical analysis tool that bridges the critical gap between macro-level market structure and micro-level price execution. Designed to work across all financial markets including Forex, Stocks, Crypto, Futures, and Commodities. While traditional Smart Money Concepts indicators exist, this implementation analyses multi-timeframe liquidity zones and price action shifts, marking potential reversal points where Higher Timeframe (HTF) liquidity sweeps coincide with Low Timeframe (LTF) price action dynamics changes.
Snapshot details: NASDAQ:GOOG , 1W Timeframe, Year 2025
1.2. What Sets This Indicator Apart
The Fractal Market Model analyses multi-timeframe correlations between HTF structural events and LTF price action. This creates a dynamic framework that reveals patterns observed historically in price behaviour that are believed to reflect institutional activity across multiple time dimensions.
The indicator recognizes that markets move in fractal cycles following the AMDX pattern (Accumulation, Manipulation, Distribution, Continuation/Reversal). By tracking this pattern across timeframes, it flags zones where price action dynamics characteristics have historically shown shifts. In the LTF, the indicator monitors for price closing through the open of an opposing candle near HTF swing highs or lows, marking this as a Change in State of Delivery (CISD), a threshold event where price action historically transitions direction.
Practical Value:
Multi-Timeframe Integration: Connects HTF structural events with LTF execution patterns.
Fractal Pattern Recognition: Identifies AMDX cycles across different time dimensions.
Price Behavior Analysis: Tracks CISD patterns that may reflect historical shifts in order flow commonly associated with institutional activity.
Range-Based Context: Analyses price action within established HTF liquidity zones.
1.3. How It Works
The indicator employs a systematic 5-candle HTF tracking methodology:
Candles 0-1: Accumulation phase identification.
Candle 2: Manipulation detection (raids previous highs/lows).
Candle 3: Distribution phase recognition.
Candle 4: Continuation/reversal toward opposite liquidity.
The system monitors for CISD patterns on the LTF when HTF manipulation candles close with confirmed sweeps, highlighting zones where order flow dynamics historically shifted within the established HTF range.
Snapshot details: FOREXCOM:AUDUSD , 1H Timeframe, 17 to 28 July 2025
Note: The Candle 0-5 and AMDX labels shown in the accompanying image are for demonstration purposes only and are not part of the indicator’s actual functionality.
2. Visual Elements & Components
2.1. Complete FMM Setup Overview
A fully developed Fractal Market Model setup displays multiple analytical components that work together to provide comprehensive market structure analysis. Each visual element serves a specific purpose in identifying and tracking the AMDX cycle across timeframes.
2.2. Core Visual Components
Snapshot details: FOREXCOM:EURUSD , 5 Minutes Timeframe, 27 May 2025.
Note: The numbering labels 1 to 14 shown in the accompanying image are for demonstration purposes only and are not part of the indicator’s actual functionality.
2.2.1. HTF Structure Elements
(1) HTF Candle Visualization: Displays the 5-candle sequence being tracked (configurable quantity up to 10).
(2) HTF Candle Labels (C2-C4): Numbered identification for each candle in the AMDX cycle.
(3) HTF Resolution Label: Shows the higher timeframe being analysed.
(4) Time Remaining Indicator: Countdown to HTF candle closure.
(5) Vertical Separation Lines: Clearly delineates each HTF candle period.
2.2.2. Key Price Levels
(6) Liquidity Levels: High/low levels from HTF candles 0 and 1 representing potential target zones.
(7) Sweep Detection Lines: Marks where previous HTF candle extremes have been breached on both HTF and LTF.
(8) HTF Candle Mid-Levels: 50% retracement levels of previous HTF candles displayed on current timeframe.
(9) Open Level Marker: Shows the opening price of the most recent HTF candle.
2.2.3. Institutional Analysis Tools
(10) CISD Line: Marks the Change in State of Delivery pattern identification point.
(11) Consequent Encroachment (CE): Mid-level of identified institutional order blocks.
(12) Potential Reversal Area (PRA): Zone extending from previous candle close to the mid-level.
(13) Fair Value Gap (FVG): Identifies imbalance areas requiring potential price revisits.
(14) HTF Time Labels: Individual time period labels for each HTF candle.
2.3. Interactive Features
All visual elements update dynamically as new price data confirms or invalidates the tracked patterns, providing real-time market structure analysis across the selected timeframe combination.
3. Input Parameters and Settings
3.1. Alert Configuration
Setup Notifications: Users can configure alerts to receive notifications when new FMM setups form based on their selected bias, timeframes, and filters. Enable this feature by:
Configure the bias, timeframes and filters and other settings as desired.
Toggle the "Alerts?" checkbox to ON in indicator settings.
On the chart, click the three dots menu beside the indicator's name or press Alt + A.
Select "Add Alert" and click “Create” to activate the alert.
3.2. Display Control Settings
3.2.1. Historical Setup Quantity
Setup Display Control: Customize how many historical setups appear on the chart, with support for up to 50 combined entries. The indicator displays both bullish and bearish FMM setups within the selected limit, including invalidated scenarios. For example, selecting "3 setups" will display the most recent combination of bullish and bearish patterns based on the model's detection logic.
Snapshot details: BINANCE:BTCUSD , 1H Timeframe, 27-Feb to 11-Mar 2025
Note: The labels “Setup 1, 2 & 3: Bullish or Bearish” shown in the accompanying image are for demonstration purposes only and are not part of the indicator’s actual functionality.
3.2.2. Directional Bias Filter
Bias Filter: Control which setups are displayed based on directional preference:
Bullish Only: Shows exclusively upward bias setups.
Bearish Only: Shows exclusively downward bias setups.
Balanced Mode: Displays both directional setups.
This flexibility helps align the indicator's output with broader market analysis or trading framework preferences. The chart below illustrates the same chart in 3.2.1. but when filtered to show only bullish setups.
Snapshot details: BINANCE:BTCUSD , 1H Timeframe, 27-Feb to 11-Mar 2025
Note: The labels “Setup 1, 2 & 3: Bullish” shown in the accompanying image are for demonstration purposes only and are not part of the indicator’s actual functionality.
3.2.3. Invalidated Setup Display
Invalidation Visibility: A setup becomes invalidated when price moves beyond the extreme high or low of the Manipulation candle (C2), indicating that the expected fractal pattern has been disrupted. Choose whether to display or hide setups that have been invalidated by subsequent price action. This feature helps maintain chart clarity while preserving analytical context:
Amber Labels: Setups invalidated at Candle 3 (C3).
Red Labels: Setups invalidated at Candle 4 (C4).
Count Preservation: Invalidated setups remain part of the total setup count regardless of visibility setting.
Below image illustrates balanced setups:
Left side: 1 bearish valid setup, with 2 invalidated setups visible.
Right side: 1 bearish valid setup, with 2 invalidated setups hidden for chart clarity.
Snapshot details: FOREXCOM:GBPJPY , 5M Timeframe, 30 July 2025
3.3. Timeframe Configuration
3.3.1. Multi-Timeframe Alignment
Custom Timeframe Selection: Configure preferred combinations of Higher Timeframe (HTF) and Lower Timeframe (LTF) for setup generation. While the indicator includes optimized default alignments (1Y –1Q, 1Q –1M, 1M –1W, 1M –1D, 1W–4H, 1D–1H, 4H-30m, 4H –15m, 1H –5m, 30m –3m, 15m –1m), users can define custom HTF-LTF configurations to suit their analysis preferences and market focus.
The image below illustrates two different HTF – LTF configuration, both on the 5 minutes chart:
Right side: Automatic multi-timeframe alignment, where the indicator autonomously sets the HTF pairing to 1H when the current chart timeframe is the 5 minutes.
Left side: Custom Timeframe enabled, where HTF is manually set to 4H, and LTF is manually set to 15 minutes, while being on the 5 minutes chart.
Snapshot details: FOREXCOM:GBPJPY , 5 minutes timeframe, 30 July 2025
3.3.2. Session-Based Filtering
Visibility Filters: Control when FMM setups appear using multiple filtering options:
Time-Based Controls:
Show Below: Limit setup visibility to timeframes below the selected threshold.
Use Session Filter: Enable session-based time window restrictions.
Session 1, 2, 3: Configure up to three custom time sessions with start and end times.
These filtering capabilities help concentrate analysis on specific market periods or timeframe contexts.
The image below illustrates the application of session filters:
Left side: The session filter is disabled, resulting in four setups being displayed throughout the day—two during the London session and two during the New York session.
Right side: The session filter is enabled to display setups exclusively within the New York session (8:00 AM – 12:00 PM). Setups outside this time window are hidden. Since the total number of setups is limited to four, the indicator backfills by identifying and displaying two qualifying setups from earlier price action that occurred within the specified New York session window.
Snapshot details: COMEX:GC1! , 5 minutes Timeframe, 29 July 2025
3.4. Annotation Systems
3.4.1. Higher Timeframe (HTF) Annotations
HTF Display Control: Enable HTF visualization using the "HTF candles" checkbox with quantity selector (default: 5 candles, expandable to 10). This displays all HTF elements detailed in the Visual Components section 2.2. above.
Customisation Categories:
Dimensions: Adjust candle offset, gap spacing, and width for optimal chart fit.
Colours: Customize body, border, and wick colours for bullish/bearish candle differentiation.
Style Options: Control line styles for HTF opens, sweep lines, and equilibrium levels.
Feature Toggles: Enable/disable Fair Value Gaps, countdown labels, and individual candle labelling.
All HTF annotation elements support individual styling controls to maintain visual clarity while preserving analytical depth. The image below shows two examples: the left side has customized styling applied, while the right side shows the default appearance.
Snapshot details: CME_MINI:NQ1! , 5 minutes Timeframe, 29 July 2025
3.4.2. Lower Timeframe (LTF) Annotations
LTF Display Control: Comprehensive annotation system for detailed execution analysis, displaying all LTF elements outlined in the Visual Components section 2.2. above.
Customization Categories:
Core Elements: Control HTF separation lines, sweep markers, CISD levels, and candle phase toggles (C2, C3, C4) to selectively show or hide the LTF annotations for each of these specific HTF candle phases.
Reference Levels: Adjust previous equilibrium lines, CISD consequent encroachment, and HTF liquidity levels.
Analysis Tools: Enable potential holding area (PHA) markers.
Styling Options: Individual visibility toggles, colour schemes, line styles, and thickness controls for each element.
All LTF components support full customization to maintain chart clarity while providing precise execution context. The image below shows two examples: the left side has customized styling applied, while the right side shows the default appearance.
Snapshot details: TVC:DXY , 5 minutes Timeframe, 28 July 2025
3.5. Performance Considerations
Higher setup counts and extended HTF displays may impact chart loading times. Adjust settings based on device performance and analysis requirements.
4. Closed-Source Protection Justification
4.1. Why This Indicator Requires Protected Source Code
The Fractal Market Model is the result of original research, development, and practical application of advanced price action frameworks. The indicator leverages proprietary algorithmic systems designed to interpret complex market behavior across multiple timeframes. To preserve the integrity of these innovations and prevent unauthorized replication, the source code is protected.
4.1.1. Key Proprietary Innovations
Real-Time Multi-Timeframe Correlation Engine: A dynamic logic system that synchronizes higher timeframe structural behaviour with lower timeframe execution shifts using custom correlation algorithms, adaptive thresholds, and time-sensitive conditions, supporting seamless fractal analysis across nested timeframes.
CISD Detection Framework: A dedicated mechanism for identifying Change in State of Delivery (CISD), where price closes through the open of an opposing candle at or near HTF swing highs or lows after liquidity has been swept. This is used to highlight potential zones of directional change based on historical order flow dynamics.
Fractal AMDX Cycle Recognition: An engineered structure that detects and classifies phases of Accumulation, Manipulation, Distribution, and Continuation/Reversal (AMDX) across configurable candle sequences, allowing traders to visualize market intent within a repeatable cycle model.
Dynamic Invalidation Logic: An automated monitoring system that continually evaluates the validity of active setups. Setups are invalidated in real time when price breaches the extreme of the manipulation phase (C2), ensuring analytical consistency and contextual alignment.
4.1.2. Community Value
The closed-source nature of this tool protects the author’s original intellectual property while still delivering value to the TradingView community. The indicator offers a complete, real-time visual framework, educational annotations, and intuitive controls for analysing price action structure and historically observed patterns commonly attributed to institutional behaviour across timeframes.
5. Disclaimer & Terms of Use
This indicator, titled Fractal Market Model , has been independently developed by the author based on their own study, interpretation, and practical application of the smart money concepts. The code and structure of this indicator are original and were written entirely from scratch to reflect the author's unique understanding and experience. This indicator is an invite-only script. It is closed-source to protect proprietary algorithms and research methodologies.
This tool is provided solely for educational and informational purposes. It is not intended—and must not be interpreted—as financial advice, investment guidance, or a recommendation to buy or sell any financial instrument. The indicator is designed to assist with technical analysis based on market structure theory but does not guarantee accuracy, profitability, or specific results.
Trading financial markets involves significant risk, including the possibility of loss of capital. By using this indicator, you acknowledge and accept that you are solely responsible for any decisions you make while using the tool, including all trading or investment outcomes. No part of this script or its features should be considered a signal or assurance of success in the market.
By subscribing to or using the indicator, you agree to the following:
You fully assume all responsibility and liability for the use of this product.
You release the author from any and all liability, including losses or damages arising from its use.
You acknowledge that past performance—real or hypothetical—does not guarantee future outcomes.
You understand that this indicator does not offer personalised advice, and no content associated with it constitutes a solicitation of financial action.
You agree that all purchases are final. Once access is granted, no refunds, reimbursements, or chargebacks will be issued under any circumstance.
You agree to not redistribute, resell, or reverse engineer the script or any part of its logic.
Users are expected to abide by all platform guidelines while using or interacting with this tool. For access instructions, please refer to the Author's Instructions section or access the tool through the verified vendor platform.
Triangle Asc/Descending Patterns [Drobode]█ DESCRIPTION
The script automatically tracks the descending or ascending triangle pattern. The script provides advanced settings, allowing you to adjust the pattern accuracy from high to low depending on your needs and technical analysis style. The main goal of the script is to facilitate the routine work of a trader in identifying certain trading situations (patterns). However, you should understand that the script is not a full-fledged self-sufficient strategy, in case of receiving a signal, it is recommended that you additionally conduct a comprehensive thorough analysis before taking trading actions. The script can be useful for traders of all levels, both beginners and experienced analysts. This variation of the script, in case of identifying a pattern, draws a contour triangle with the background color of the figure. The ascending triangle has a blue color, the descending triangle has a red color. The logic of the script provides that one of the legs (one side) of the triangle is always a horizontal line, simultaneously being a line of resistance or support, other variations of triangle patterns are not tracked. According to generally defined beliefs and observations of pattern formation, a descending and ascending triangle may indicate a possible breakdown of the conditional horizontal level to which the price of the instrument has approached, however, at the same time it is necessary to deeply analyze many other factors at this point, in particular, such as volumes, consolidation, volatility, and so on.
█ SCRIPT SETTINGS
By default, the script was pre-developed and tested on the M15 timeframe with the USDT.P crypto futures instruments.
Alert
The Alert function in the script is enabled by default, you just need to activate the Alert in the TradingView window and select the signal source - Triangle Asc/Descending Patterns .
The notification provides the following information (example):
Triangle_Ascending
Ticker- EGLDUSDT.P
Price-19.754
Timeframe- 15
Period length-160
Periods length
The script allows you to set the period length (number) of bars on which the calculation will be performed. Different periods make it possible to cover more timeframes (in particular, larger timeframes). The calculation is performed simultaneously on all periods, but you can turn off "Period length 3" and "Period length 4" by clicking on the check mark, this can speed up the script. The following period values are set by default: "Period length 1" – 80,
"Period length 2" – 160, "Period length 3" – 300, "Period length 4" – 681.
Percentage deviation of extremes
The next settings are the percentage deviation from the hypotenuse and horizontal leg, which creates the zone in which the extremes of the bars that will form the triangle shape should be. The smaller the deviation, the greater the accuracy and the closer to the hypotenuse and leg the bar extrema should be, however, in this case the number of pattern identifications will be smaller. By default, the deviation zone from the hypotenuse "Deflection zone of tangents to the hypotenuse" is - 0.4%, the deviation zone from the horizontal leg "Tangent deviation zone horizontal leg" is - 0.08%.
The presence of extrema at certain points on the sides of a triangle
The last block of settings are the conditions that increase the accuracy of the proportions of the pattern figure. These settings are aimed at confirming the presence of extrema in certain areas along the hypotenuse and horizontal leg. Thus, enabling "Extrema on the horizontal leg almost along the entire length" means that only those triangles will be tracked in which the horizontal leg zone has extrema almost along the entire length of this leg, this increases the accuracy but reduces the number of detected patterns. "Extremes present on second half of horizontal leg (more than 50%)" assumes that only those triangles will be tracked in which the extrema are present on the second half of the length of the given leg (more than 50%) in the zone of the horizontal leg. "Presence of an extrema in the middle region of the hypotenuse" assumes that only those triangles will be tracked in which the extrema are present on a certain segment of length in the central region of the hypotenuse.
Strategy Stats [presentTrading]Hello! it's another weekend. This tool is a strategy performance analysis tool. Looking at the TradingView community, it seems few creators focus on this aspect. I've intentionally created a shared version. Welcome to share your idea or question on this.
█ Introduction and How it is Different
Strategy Stats is a comprehensive performance analytics framework designed specifically for trading strategies. Unlike standard strategy backtesting tools that simply show cumulative profits, this analytics suite provides real-time, multi-timeframe statistical analysis of your trading performance.
Multi-timeframe analysis: Automatically tracks performance metrics across the most recent time periods (last 7 days, 30 days, 90 days, 1 year, and 4 years)
Advanced statistical measures: Goes beyond basic metrics to include Information Coefficient (IC) and Sortino Ratio
Real-time feedback: Updates performance statistics with each new trade
Visual analytics: Color-coded performance table provides instant visual feedback on strategy health
Integrated risk management: Implements sophisticated take profit mechanisms with 3-step ATR and percentage-based exits
BTCUSD Performance
The table in the upper right corner is a comprehensive performance dashboard showing trading strategy statistics.
Note: While this presentation uses Vegas SuperTrend as the underlying strategy, this is merely an example. The Stats framework can be applied to any trading strategy. The Vegas SuperTrend implementation is included solely to demonstrate how the analytics module integrates with a trading strategy.
⚠️ Timeframe Limitations
Important: TradingView's backtesting engine has a maximum storage limit of 10,000 bars. When using this strategy stats framework on smaller timeframes such as 1-hour or 2-hour charts, you may encounter errors if your backtesting period is too long.
Recommended Timeframe Usage:
Ideal for: 4H, 6H, 8H, Daily charts and above
May cause errors on: 1H, 2H charts spanning multiple years
Not recommended for: Timeframes below 1H with long history
█ Strategy, How it Works: Detailed Explanation
The Strategy Stats framework consists of three primary components: statistical data collection, performance analysis, and visualization.
🔶 Statistical Data Collection
The system maintains several critical data arrays:
equityHistory: Tracks equity curve over time
tradeHistory: Records profit/loss of each trade
predictionSignals: Stores trade direction signals (1 for long, -1 for short)
actualReturns: Records corresponding actual returns from each trade
For each closed trade, the system captures:
float tradePnL = strategy.closedtrades.profit(tradeIndex)
float tradeReturn = strategy.closedtrades.profit_percent(tradeIndex)
int tradeType = entryPrice < exitPrice ? 1 : -1 // Direction
🔶 Performance Metrics Calculation
The framework calculates several key performance metrics:
Information Coefficient (IC):
The correlation between prediction signals and actual returns, measuring forecast skill.
IC = Correlation(predictionSignals, actualReturns)
Where Correlation is the Pearson correlation coefficient:
Correlation(X,Y) = (nΣXY - ΣXY) / √
Sortino Ratio:
Measures risk-adjusted return focusing only on downside risk:
Sortino = (Avg_Return - Risk_Free_Rate) / Downside_Deviation
Where Downside Deviation is:
Downside_Deviation = √
R_i represents individual returns, T is the target return (typically the risk-free rate), and n is the number of observations.
Maximum Drawdown:
Tracks the largest percentage drop from peak to trough:
DD = (Peak_Equity - Trough_Equity) / Peak_Equity * 100
🔶 Time Period Calculation
The system automatically determines the appropriate number of bars to analyze for each timeframe based on the current chart timeframe:
bars_7d = math.max(1, math.round(7 * barsPerDay))
bars_30d = math.max(1, math.round(30 * barsPerDay))
bars_90d = math.max(1, math.round(90 * barsPerDay))
bars_365d = math.max(1, math.round(365 * barsPerDay))
bars_4y = math.max(1, math.round(365 * 4 * barsPerDay))
Where barsPerDay is calculated based on the chart timeframe:
barsPerDay = timeframe.isintraday ?
24 * 60 / math.max(1, (timeframe.in_seconds() / 60)) :
timeframe.isdaily ? 1 :
timeframe.isweekly ? 1/7 :
timeframe.ismonthly ? 1/30 : 0.01
🔶 Visual Representation
The system presents performance data in a color-coded table with intuitive visual indicators:
Green: Excellent performance
Lime: Good performance
Gray: Neutral performance
Orange: Mediocre performance
Red: Poor performance
█ Trade Direction
The Strategy Stats framework supports three trading directions:
Long Only: Only takes long positions when entry conditions are met
Short Only: Only takes short positions when entry conditions are met
Both: Takes both long and short positions depending on market conditions
█ Usage
To effectively use the Strategy Stats framework:
Apply to existing strategies: Add the performance tracking code to any strategy to gain advanced analytics
Monitor multiple timeframes: Use the multi-timeframe analysis to identify performance trends
Evaluate strategy health: Review IC and Sortino ratios to assess predictive power and risk-adjusted returns
Optimize parameters: Use performance data to refine strategy parameters
Compare strategies: Apply the framework to multiple strategies to identify the most effective approach
For best results, allow the strategy to generate sufficient trade history for meaningful statistical analysis (at least 20-30 trades).
█ Default Settings
The default settings have been carefully calibrated for cryptocurrency markets:
Performance Tracking:
Time periods: 7D, 30D, 90D, 1Y, 4Y
Statistical measures: Return, Win%, MaxDD, IC, Sortino Ratio
IC color thresholds: >0.3 (green), >0.1 (lime), <-0.1 (orange), <-0.3 (red)
Sortino color thresholds: >1.0 (green), >0.5 (lime), <0 (red)
Multi-Step Take Profit:
ATR multipliers: 2.618, 5.0, 10.0
Percentage levels: 3%, 8%, 17%
Short multiplier: 1.5x (makes short take profits more aggressive)
Stop loss: 20%
4-Year Cycles [jpkxyz]Overview of the Script
I wanted to write a script that encompasses the wide-spread macro fund manager investment thesis: "Crypto is simply and expression of macro." A thesis pioneered by the likes of Raoul Pal (EXPAAM) , Andreesen Horowitz (A16Z) , Joe McCann (ASYMETRIC) , Bob Loukas and many more.
Cycle Theory Background:
The 2007-2008 financial crisis transformed central bank monetary policy by introducing:
- Quantitative Easing (QE): Creating money to buy assets and inject liquidity
- Coordinated global monetary interventions
Proactive 4-year economic cycles characterised by:
- Expansionary periods (low rates, money creation)
- Followed by contraction/normalisation
Central banks now deliberately manipulate liquidity, interest rates, and asset prices to control economic cycles, using monetary policy as a precision tool rather than a blunt instrument.
Cycle Characteristics (based on historical cycles):
- A cycle has 4 seasons (Spring, Summer, Fall, Winter)
- Each season with a cycle lasts 365 days
- The Cycle Low happens towards the beginning of the Spring Season of each new cycle
- This is followed by a run up throughout the Spring and Summer Season
- The Cycle High happens towards the end of the Fall Season
- The Winter season is characterised by price corrections until establishing a new floor in the Spring of the next cycle
Key Functionalities
1. Cycle Tracking
- Divides market history into 4-year cycles (Spring, Summer, Fall, Winter)
- Starts tracking cycles from 2011 (first cycle after the 2007 crisis cycle)
- Identifies and marks cycle boundaries
2. Visualization
- Colors background based on current cycle season
- Draws lines connecting:
- Cycle highs and lows
- Inter-cycle price movements
- Adds labels showing:
- Percentage gains/losses between cycles
- Number of days between significant points
3. Customization Options
- Allows users to customize:
- Colors for each season
- Line and label colors
- Label size
- Background opacity
Detailed Mechanism
Cycle Identification
- Uses a modulo calculation to determine the current season in the 4-year cycle
- Preset boundary years include 2015, 2019, 2023, 2027
- Automatically tracks and marks cycle transitions
Price Analysis
- Tracks highest and lowest prices within each cycle
- Calculates percentage changes:
- Intra-cycle (low to high)
- Inter-cycle (previous high to current high/low)
Visualization Techniques
- Background color changes based on current cycle season
- Dashed and solid lines connect significant price points
- Labels provide quantitative insights about price movements
Unique Aspects
1. Predictive Cycle Framework: Provides a structured way to view market movements beyond traditional technical analysis
2. Seasonal Color Coding: Intuitive visual representation of market cycle stages
3. Comprehensive Price Tracking: Captures both intra-cycle and inter-cycle price dynamics
4. Highly Customizable: Users can adjust visual parameters to suit their preferences
Potential Use Cases
- Technical analysis for long-term investors
- Identifying market cycle patterns
- Understanding historical price movement rhythms
- Educational tool for market cycle theory
Limitations/Considerations
- Based on a predefined 4-year cycle model (Liquidity Cycles)
- Historic Cycle Structures are not an indication for future performance
- May not perfectly represent all market behavior
- Requires visual interpretation
This script is particularly interesting for investors who believe in cyclical market theories and want a visual, data-driven representation of market stages.
Historical High/Lows Statistical Analysis(More Timeframe interval options coming in the future)
Indicator Description
The Hourly and Weekly High/Low (H/L) Analysis indicator provides a powerful tool for tracking the most frequent high and low points during different periods, specifically on an hourly basis and a weekly basis, broken down by the days of the week (DOTW). This indicator is particularly useful for traders seeking to understand historical behavior and patterns of high/low occurrences across both hourly intervals and weekly days, helping them make more informed decisions based on historical data.
With its customizable options, this indicator is versatile and applicable to a variety of trading strategies, ranging from intraday to swing trading. It is designed to meet the needs of both novice and experienced traders.
Key Features
Hourly High/Low Analysis:
Tracks and displays the frequency of hourly high and low occurrences across a user-defined date range.
Enables traders to identify which hours of the day are historically more likely to set highs or lows, offering valuable insights into intraday price action.
Customizable options for:
Hourly session start and end times.
22-hour session support for futures traders.
Hourly label formatting (e.g., 12-hour or 24-hour format).
Table position, size, and design flexibility.
Weekly High/Low Analysis by Day of the Week (DOTW):
Captures weekly high and low occurrences for each day of the week.
Allows traders to evaluate which days are most likely to produce highs or lows during the week, providing insights into weekly price movement tendencies.
Displays the aggregated counts of highs and lows for each day in a clean, customizable table format.
Options for hiding specific days (e.g., weekends) and customizing table appearance.
User-Friendly Table Display:
Both hourly and weekly data are displayed in separate tables, ensuring clarity and non-interference.
Tables can be positioned on the chart according to user preferences and are designed to be visually appealing yet highly informative.
Customizable Date Range:
Users can specify a start and end date for the analysis, allowing them to focus on specific periods of interest.
Possible Uses
Intraday Traders (Hourly Analysis):
Analyze hourly price action to determine which hours are more likely to produce highs or lows.
Identify intraday trading opportunities during statistically significant time intervals.
Use hourly insights to time entries and exits more effectively.
Swing Traders (Weekly DOTW Analysis):
Evaluate weekly price patterns by identifying which days of the week are more likely to set highs or lows.
Plan trades around days that historically exhibit strong movements or price reversals.
Futures and Forex Traders:
Use the 22-hour session feature to exclude the CME break or other session-specific gaps from analysis.
Combine hourly and DOTW insights to optimize strategies for continuous markets.
Data-Driven Trading Strategies:
Use historical high/low data to test and refine trading strategies.
Quantify market tendencies and evaluate whether observed patterns align with your strategy's assumptions.
How the Indicator Works
Hourly H/L Analysis:
The indicator calculates the highest and lowest prices for each hour in the specified date range.
Each hourly high and low occurrence is recorded and aggregated into a table, with counts displayed for all 24 hours.
Users can toggle the visibility of empty cells (hours with no high/low occurrences) and adjust the table's design to suit their preferences.
Supports both 12-hour (AM/PM) and 24-hour formats.
Weekly H/L DOTW Analysis:
The indicator tracks the highest and lowest prices for each day of the week during the user-specified date range.
Highs and lows are identified for the entire week, and the specific days when they occur are recorded.
Counts for each day are aggregated and displayed in a table, with a "Totals" column summarizing the overall occurrences.
The analysis resets weekly, ensuring accurate tracking of high/low days.
Code Breakdown:
Data Aggregation:
The script uses arrays to store counts of high/low occurrences for both hourly and weekly intervals.
Daily data is fetched using the request.security() function, ensuring consistent results regardless of the chart's timeframe.
Weekly Reset Mechanism:
Weekly high/low values are reset at the start of a new week (Monday) to ensure accurate weekly tracking.
A processing flag ensures that weekly data is counted only once at the end of the week (Sunday).
Table Visualization:
Tables are created using the table.new() function, with customizable styles and positions.
Header rows, data rows, and totals are dynamically populated based on the aggregated data.
User Inputs:
Customization options include text colors, background colors, table positioning, label formatting, and date ranges.
Code Explanation
The script is structured into two main sections:
Hourly H/L Analysis:
This section captures and aggregates high/low occurrences for each hour of the day.
The logic is session-aware, allowing users to define custom session times (e.g., 22-hour futures sessions).
Data is displayed in a clean table format with hourly labels.
Weekly H/L DOTW Analysis:
This section tracks weekly highs and lows by day of the week.
Highs and lows are identified for each week, and counts are updated only once per week to prevent duplication.
A user-friendly table displays the counts for each day of the week, along with totals.
Both sections are completely independent of each other to avoid interference. This ensures that enabling or disabling one section does not impact the functionality of the other.
Customization Options
For Hourly Analysis:
Toggle hourly table visibility.
Choose session start and end times.
Select hourly label format (12-hour or 24-hour).
Customize table appearance (colors, position, text size).
For Weekly DOTW Analysis:
Toggle DOTW table visibility.
Choose which days to include (e.g., hide weekends).
Customize table appearance (colors, position, text size).
Select values format (percentages or occurrences).
Conclusion
The Hourly and Weekly H/L Analysis indicator is a versatile tool designed to empower traders with data-driven insights into intraday and weekly market tendencies. Its highly customizable design ensures compatibility with various trading styles and instruments, making it an essential addition to any trader's toolkit.
With its focus on accuracy, clarity, and customization, this indicator adheres to TradingView's guidelines, ensuring a robust and valuable user experience.
Weekly H/L DOTWThe Weekly High/Low Day Breakdown indicator provides a detailed statistical analysis of the days of the week (Monday to Sunday) on which weekly highs and lows occur for a given timeframe. It helps traders identify recurring patterns, correlations, and tendencies in price behavior across different days of the week. This can assist in planning trading strategies by leveraging day-specific patterns.
The indicator visually displays the statistical distribution of weekly highs and lows in an easy-to-read tabular format on your chart. Users can customize how the data is displayed, including whether the table is horizontal or vertical, the size of the text, and the position of the table on the chart.
Key Features:
Weekly Highs and Lows Identification:
Tracks the highest and lowest price of each trading week.
Records the day of the week on which these events occur.
Customizable Table Layout:
Option to display the table horizontally or vertically.
Text size can be adjusted (Small, Normal, or Large).
Table position is customizable (top-right, top-left, bottom-right, or bottom-left of the chart).
Flexible Value Representation:
Allows the display of values as percentages or as occurrences.
Default setting is occurrences, but users can toggle to percentages as needed.
Day-Specific Display:
Option to hide Saturday or Sunday if these days are not relevant to your trading strategy.
Visible Date Range:
Users can define a start and end date for the analysis, focusing the results on a specific period of interest.
User-Friendly Interface:
The table dynamically updates based on the selected timeframe and visibility of the chart, ensuring the displayed data is always relevant to the current context.
Adaptable to Custom Needs:
Includes all-day names from Monday to Sunday, but allows for specific days to be excluded based on the user’s preferences.
Indicator Logic:
Data Collection:
The indicator collects daily high, low, day of the week, and time data from the selected ticker using the request.security() function with a daily timeframe ('D').
Weekly Tracking:
Tracks the start and end times of each week.
During each week, it monitors the highest and lowest prices and the days they occurred.
Weekly Closure:
When a week ends (detected by Sunday’s daily candle), the indicator:
Updates the statistics for the respective days of the week where the weekly high and low occurred.
Resets tracking variables for the next week.
Visible Range Filter:
Only processes data for weeks that fall within the visible range of the chart, ensuring the table reflects only the visible portion of the chart.
Statistical Calculations:
Counts the number of weekly highs and lows for each day.
Calculates percentages relative to the total number of weeks in the visible range.
Dynamic Table Display:
Depending on user preferences, displays the data either horizontally or vertically.
Formats the table with proper alignment, colors, and text sizes for easy readability.
Custom Value Representation:
If set to "percentages," displays the percentage of weeks a high/low occurred on each day.
If set to "occurrences," displays the raw count of weekly highs/lows for each day.
Input Parameters:
High Text Color:
Color for the text in the "Weekly High" row or column.
Low Text Color:
Color for the text in the "Weekly Low" row or column.
High Background Color:
Background color for the "Weekly High" row or column.
Low Background Color:
Background color for the "Weekly Low" row or column.
Table Background Color:
General background color for the table.
Hide Saturday:
Option to exclude Saturday from the analysis and table.
Hide Sunday:
Option to exclude Sunday from the analysis and table.
Values Format:
Dropdown menu to select "percentages" or "occurrences."
Default value: "occurrences."
Table Position:
Dropdown menu to select the table position on the chart: "top_right," "top_left," "bottom_right," "bottom_left."
Default value: "top_right."
Text Size:
Dropdown menu to select text size: "Small," "Normal," "Large."
Default value: "Normal."
Vertical Table Format:
Checkbox to toggle the table layout:
Checked: Table displays days vertically, with Monday at the top.
Unchecked: Table displays days horizontally.
Start Date:
Allows users to specify the starting date for the analysis.
End Date:
Allows users to specify the ending date for the analysis.
Use Cases:
Day-Specific Pattern Recognition:
Identify if specific days, such as Monday or Friday, are more likely to form weekly highs or lows.
Seasonal Analysis:
Use the start and end date filters to analyze patterns during specific trading seasons.
Strategy Development:
Plan day-based entry and exit strategies by identifying recurring patterns in weekly highs/lows.
Historical Review:
Study historical data to understand how market behavior has changed over time.
TradingView TOS Compliance Notes:
Originality:
This script is uniquely designed to provide day-based statistics for weekly highs and lows, which is not a common feature in other publicly available indicators.
Usefulness:
Offers practical insights for traders interested in understanding day-specific price behavior.
Detailed Description:
Fully explains the purpose, features, logic, input settings, and use cases of the indicator.
Includes clear and concise details on how each input works.
Clear Input Descriptions:
All input parameters are clearly named and explained in the script and this description.
No Redundant Functionality:
Focused specifically on tracking weekly highs and lows, ensuring the indicator serves a distinct purpose without unnecessary features.
Timing KenhTradding The Timing KenhTradding indicator is a versatile and customizable tool designed to provide detailed insights into market sessions, daily price dynamics, and key levels. This indicator is especially helpful for traders aiming to track volatility, session-specific movements, and broader trends with additional tools like EMA and VWAP.
Key Features
Session Tracking:
Visualizes up to 8 customizable sessions using shaded boxes on the chart.
Sessions are defined by specific time intervals and are labeled with user-defined names and colors for easy identification.
EMA Integration:
Displays two critical exponential moving averages (EMA):
EMA200 (1-minute): Ideal for short-term trend analysis.
EMA200 (4-hour): Provides a broader perspective on market trends.
EMA smoothing options ensure clarity and reduce noise.
Daily High, Low, Open, and Close Levels:
Automatically draws horizontal lines to highlight the daily high, low, and open prices.
Displays these levels with annotations and customizable colors.
Price Movement Representation:
Visualizes daily price movements using boxes for the body, upper wick, and lower wick:
The body shows the range between the open and close.
The upper and lower wicks represent the highs and lows relative to the body.
Annotations display the exact pip/movement size of the wicks.
VWAP Overlay:
Plots the Volume Weighted Average Price (VWAP) to provide a weighted average of price levels based on volume, aiding in intraday decision-making.
Session-Based Background Highlighting:
Highlights specific hours (e.g., 2 AM) with a customizable background color for better visual segmentation.
Dynamic Data Updates:
Updates key levels and boxes dynamically as new price data becomes available.
Benefits for Traders
Session Analysis:
Easily identify and analyze the behavior of price action within specific trading sessions, such as high volatility around news events.
Trend and Momentum Tracking:
Use EMA and VWAP overlays to gauge the direction and strength of the market.
Daily Levels for Precision:
Incorporates high, low, and open levels to assist with setting entry, exit, and stop-loss points.
Visual Clarity:
Simplifies complex market data with clean and intuitive visualizations, enabling traders to make informed decisions quickly.
Customization Options
Sessions:
Define up to 8 custom sessions with personalized labels, time zones, and colors.
Visuals:
Adjust colors, transparency, and line styles for session boxes, EMAs, and daily levels.
Text Details:
Customize text size, alignment, and colors for annotations and labels.
EMA Display:
Toggle between short-term and long-term EMA views.
How to Use It
Track Daily Levels:
Watch for price reactions around daily high, low, and open levels for potential breakout or reversal opportunities.
Session-Based Strategies:
Focus on specific trading sessions for high-probability trades. Use session boxes to identify price ranges and key levels during those times.
Trend Confirmation:
Combine EMA200 and VWAP for a reliable trend-following strategy.
Volatility Assessment:
Observe the size of daily wicks and session ranges to understand market volatility and adjust your strategy accordingly.
This indicator is an essential tool for both intraday and swing traders, offering unparalleled insights into price action, session-specific volatility, and trend dynamics.
Moving Average Crossover MonitorMoving Average Crossover Monitor: Gain Insight into Market Trends
The Moving Average Crossover Monitor is a specialized tool crafted for traders seeking to understand and predict market trends more effectively. This indicator's primary focus lies in analyzing consecutive candle movements above or below specified moving averages and providing predictive estimates based on historical data.
Key Features:
1. Consecutive Candle Tracking: The indicator meticulously counts and tracks the number of consecutive candles that close above or below a selected moving average (MA1). This tracking offers a tangible measure of trend persistence over time.
2. Historical Analysis for Future Prediction: By analyzing past trends, the indicator provides insights into potential future movements. It estimates the likelihood of upcoming candles continuing above or below the moving average based on historical patterns.
3. Dynamic Visualization: Moving averages (SMA, WMA, EMA) are dynamically plotted on the chart, clearly displaying crossover points and trend transitions.
How It Works:
1. Moving Average Calculation: Select your preferred moving average type (SMA, WMA, EMA) and define short and long periods. The indicator computes two moving averages (MA1 and MA2) based on these parameters.
2. Consecutive Candle Analysis:
- Above MA1: Tracks and counts consecutive candles closing above MA1, indicating potential bullish momentum.
- Below MA1: Tracks and counts consecutive candles closing below MA1, suggesting potential bearish sentiment.
3. Future Trend Prediction: Based on historical data of consecutive candle movements, the indicator estimates the likelihood of the next candle continuing in the same direction (above or below MA1).
Advantages for Traders:
1. Quantitative Insights: Use numerical data on consecutive candles to gauge trend strength and durability.
2. Predictive Analytics: Leverage historical patterns to anticipate future market movements and adjust trading strategies accordingly.
3. Decision Support Tool: Gain clarity on trend transitions, empowering timely and informed trading decisions.
Disclaimer:
This indicator is provided for educational purposes only and should not be considered as financial advice. Trading involves risks, and past performance is not indicative of future results. Traders should conduct their own analysis and exercise caution when making trading decisions based on any indicator or tool. Always consider risk management strategies and consult with a qualified financial advisor if needed.
NWOG/NDOG [NINE]Overview
A professional-grade indicator for detecting and visualizing New Week Opening Gaps (NWOGs) and New Day Opening Gaps (NDOGs), essential concepts in ICT (Inner Circle Trader) methodology and analysis.
What Are Opening Gaps?
Opening gaps represent price inefficiencies created between trading sessions. When one session closes and the next session opens at a different price, the resulting "gap" creates a zone of unfilled orders and potential liquidity. These gaps often act as magnets for price, providing high-probability trading opportunities as the market seeks to rebalance these inefficiencies.
NWOG (New Week Opening Gap)
The gap between Friday's close and Sunday's open. These weekly imbalances are significant because they represent the collective repositioning of institutional traders over the weekend. NWOGs frequently serve as major support/resistance zones that can influence price action for days or even weeks. Due to their larger timeframe context, NWOGs typically carry more weight than daily gaps.
NDOG (New Day Opening Gap)
The gap between one session's close and the next session's open. Daily gaps occur more frequently than weekly gaps, offering more regular trading setups. While individually less significant than NWOGs, NDOGs provide valuable intraday reference points and often fill within the same trading session.
Features In Depth
Gap Detection & Visualization
The indicator automatically identifies and plots opening gaps as they form in real-time.
Automatic Detection: The indicator monitors session transitions and instantly identifies when a gap forms between the previous close and current open. NWOGs are detected on Sunday opens, while NDOGs are detected at each new daily session open (excluding Sundays, which are reserved for NWOG detection).
Bullish vs Bearish Classification: Each gap is automatically classified based on its direction:
Bullish Gap (Gap Up): Current open is higher than previous close, indicates overnight buying pressure
Bearish Gap (Gap Down): Current open is lower than previous close, indicates overnight selling pressure
The indicator uses distinct color schemes for bullish and bearish gaps, making it easy to identify gap direction at a glance. Current/most recent gaps use the "new" color settings, while historical gaps use the standard color settings.
Historical Tracking: Track up to 20 gaps of each type simultaneously. The "Historical Count" setting controls how many gaps remain visible on your chart. Older gaps are automatically removed as new ones form, keeping your chart clean while maintaining relevant historical context.
Visual Customization:
Toggle gap boundary lines (HIGH/LOW) on or off independently from the background fill
Choose line styles: solid (⎯⎯⎯), dashed (----), or dotted (····)
Adjust line thickness from 1-4 pixels
Enable/disable background fill with customizable transparency
Set colors independently for current vs historical gaps
Consequent Encroachment (C.E.)
The Consequent Encroachment represents the 50% midpoint of a gap — a critical level in ICT methodology.
Why C.E. Matters: In smart money concepts, the C.E. level represents the point of maximum efficiency within an imbalance. Price often gravitates toward this level as it seeks to rebalance the gap. Many traders use C.E. as their primary target when trading gap fills, or as a key level for entries and stop placement.
C.E. Display Options:
Independent color settings for current vs historical gaps
Separate line style and thickness controls
Can be shown/hidden independently from gap boundaries
Quarter Levels (25% and 75%): For traders who want additional precision, the indicator offers optional quarter levels at 25% and 75% of the gap range. These levels can serve as:
Partial profit targets
Scaling entry points
Additional support/resistance zones within the gap
Fill Tracking & Percentage
The indicator provides sophisticated fill tracking to monitor how much of each gap has been "filled" by subsequent price action.
How Fill Percentage Works:
For bullish gaps (gap up): Measures how far price has retraced DOWN from the gap's high toward its low
For bearish gaps (gap down): Measures how far price has retraced UP from the gap's low toward its high
The fill percentage updates in real-time as price moves through the gap zone, giving you instant feedback on gap fill progress.
Fill Detection Methods:
Wicks: Uses the full candle range (high/low) — more sensitive, detects fills earlier
Bodies: Uses only open/close prices — more conservative, requires stronger commitment
Visual Fill Indicators: The fill percentage is displayed with intuitive symbols:
〇 0-24% filled — Gap is largely untouched
◔ 25-49% filled — Minor fill in progress
◑ 50-74% filled — C.E. level has been reached
◕ 75-99% filled — Gap nearly complete
⬤ 100% filled — Gap fully filled
Hide Filled Gaps: Enable this option to automatically remove gaps from your chart once they reach 100% fill. This keeps your chart focused on active, unfilled gaps that still represent potential trading opportunities.
Projection Levels
When price breaks out of a gap zone, projection levels provide potential targets based on the gap's size.
How Projections Work: Once price closes above a gap's high (for upward projections) or below a gap's low (for downward projections), the indicator calculates extension levels using the gap's range as a measuring unit. These projections function similarly to Fibonacci extensions but are anchored to the gap's dimensions.
Projection Direction:
Upward Projections: Triggered when price closes above the gap's high — levels project above the gap
Downward Projections: Triggered when price closes below the gap's low — levels project below the gap
Customizable Multipliers: Define your own projection levels using the "Projection Levels" input. Enter comma-separated values representing multiples of the gap size:
Default: 0.5,1,2,2.5
Example custom: 0.618,1,1.618,2,2.618 (Fibonacci-based)
Each value creates a projection line at that multiple of the gap range
Projection Display Options:
Side: Display projections on the Left (extending back from gap formation) or Right (extending forward)
Color, Style, Thickness: Full visual customization
Labels: Show multiplier values at each projection level
"Extend Until Tapped" Feature: When enabled (Left side only), projection lines stop extending once price touches them. This creates a visual record of which levels have been reached and when, helping you track projection performance over time. Untapped projections continue extending until they're reached.
Labels & Formatting
Comprehensive labeling options help you quickly identify and reference gaps on your chart.
Label Format Options:
Gap Type: Simple label showing "NWOG" or "NDOG"
Gap Type + Date: Includes the full date with day of week (e.g., "NWOG Monday, November 3, 2025")
Gap Type + Date + Filled Percent: Adds the fill percentage and symbol (e.g., "NWOG Monday, November 3, 2025 ")
Label Positioning:
When Show Levels is ON: Separate labels appear at the HIGH and LOW boundaries
When Show Levels is OFF: A single label appears at the C.E. (midpoint) level
Label Customization:
Text size: Tiny, Small, Normal, or Large
Text color and background color (set background transparency to 100 for no background)
Tooltips provide detailed information including all price levels and fill percentage
Hide Historical Labels: Enable this option to hide labels and projection text on all gaps except the most recent. Lines remain visible, but text clutter is reduced — useful when tracking many historical gaps.
Status Table
An optional summary table provides at-a-glance information about all active gaps.
Table Contents: For each active gap, the table displays:
Gap Type: NWOG or NDOG with date
HIGH: Upper boundary of the gap
LOW: Lower boundary of the gap
C.E.: Consequent Encroachment (50% level)
% Filled: Current fill percentage with visual symbol
Display Settings:
Position: 9 positions available (Top/Middle/Bottom × Left/Center/Right)
Size: Tiny, Small, or Normal text
Gap Count: Control how many NWOGs and NDOGs appear in the table (1-3 each)
Adaptive Theming: The table automatically detects your chart's background color and adjusts text colors for optimal readability on both light and dark themes.
Smart Filtering: The table only shows unfilled gaps (or gaps not hidden by the "Hide Filled" setting), keeping the display focused on actionable information.
Alert System
Stay informed of key gap events without constantly monitoring your charts.
Gap Formation Alerts: Receive an alert the moment a new gap is detected. The alert includes:
Gap direction (Bullish/Bearish)
Gap type (NWOG/NDOG)
Symbol name
Example: "Bullish NWOG formed on AMEX:SPY "
Gap Filled Alerts: Get notified when a gap reaches 100% fill. This is valuable for:
Confirming trade targets have been reached
Identifying when gaps are no longer active reference points
Example: "NWOG filled on AMEX:SPY "
Projection Level Alerts: Receive alerts when price reaches your defined projection levels. Each level only alerts once, preventing spam. Useful for:
Taking profits at projection targets
Identifying extended moves beyond the gap
Example: "NWOG 2x projection reached on AMEX:SPY "
General Settings
Gap Offset: Controls how many bars the gap lines extend to the right of the current candle (0-15 bars). A higher offset keeps labels and lines visible further into the future, while a lower offset keeps the display tighter to current price action.
Tips
NWOG Priority: NWOGs typically hold more significance than NDOGs due to their weekly timeframe. When NWOG and NDOG levels conflict, consider giving more weight to the NWOG.
Unfilled Historical Gaps: Gaps from days or weeks ago can still influence current price action. Don't ignore older unfilled gaps — they often become relevant when price returns to those zones.
Session Context: Pay attention to which session created the gap. Gaps formed during high-volume sessions (like NYSE open) may carry more significance than gaps from lower-volume periods.
Gap Size Matters: Larger gaps represent more significant imbalances and often provide stronger support/resistance. Smaller gaps may fill quickly and offer less reliable levels.
Clean Chart Option: Use "Hide Historical Labels" combined with the status table to maintain a clean chart while still having access to all gap information.
Requirements
Intraday Timeframes Only: This indicator works exclusively on intraday timeframes (minutes, hours). Gap detection requires session open/close data that is only available on intraday charts.
Sufficient Historical Data: Ensure your chart has enough historical bars loaded for accurate gap tracking, especially if using higher historical count settings.
Session-Based Markets: The indicator is optimized for markets with distinct trading sessions (stocks, futures, forex). 24/7 markets like crypto may show fewer or different gap patterns.
Disclaimer
For Educational and Informational Purposes Only
This indicator is provided as a technical analysis tool for educational and informational purposes only. It is not intended as, and should not be construed as, financial advice, investment advice, trading advice, or any other type of advice.
No Guarantees: Past performance of any trading strategy, indicator, or methodology is not indicative of future results. The identification of gaps, projections, and fill levels does not guarantee that price will behave in any predicted manner. Markets are inherently unpredictable, and no technical indicator can accurately predict future price movements.
Risk Warning: Trading financial instruments involves substantial risk of loss and is not suitable for all investors. You should carefully consider your investment objectives, level of experience, and risk appetite before trading. Never trade with money you cannot afford to lose.
Not Financial Advice: The creator of this indicator (NINE) is not a licensed financial advisor, broker, or dealer. Nothing in this indicator or its documentation should be interpreted as a recommendation to buy, sell, or hold any financial instrument.
Your Responsibility: You are solely responsible for your own trading decisions. Always conduct your own research and due diligence before making any trading or investment decisions. Consider consulting with a qualified financial professional before trading.
No Liability: The creator assumes no responsibility or liability for any errors, inaccuracies, or omissions in this indicator or its documentation. The creator shall not be held liable for any losses, damages, or costs arising from the use or inability to use this indicator.
Trendslinger CVDCVD - Cumulative Volume Delta
Cumulative Volume Delta (CVD) tracks the running total of buying versus selling pressure by analyzing volume distribution within each price bar. This indicator visualizes order flow dynamics to help identify accumulation, distribution, and potential trend reversals.
How It Works
CVD calculates the "delta" (difference between buying and selling volume) for each bar and accumulates it over time. Two calculation methods are available:
Close Position: Estimates buy/sell volume based on where price closes within the bar's range. A close near the high suggests more buying pressure; a close near the low suggests more selling pressure.
Polarity: Simple method where green candles count as buy volume and red candles count as sell volume.
Key Features
Multiple Display Types: View CVD as candlesticks, line, histogram, area, or columns
Flexible Reset Options: Reset CVD hourly, daily, or weekly for cleaner intraday analysis
Divergence Detection: Automatically identifies bullish and bearish divergences between price and CVD
Session Tracking: Optional high/low reference lines for the current session
Smoothing Options: Apply SMA, EMA, WMA, or RMA smoothing to reduce noise
Info Table: Real-time display of current CVD value, bar delta, and session extremes
Built-in Alerts: Zero line crosses, divergences, and new session highs/lows
How To Use
Trend Confirmation: Rising CVD confirms bullish price action; falling CVD confirms bearish moves
Divergences: Price making new highs while CVD makes lower highs signals weakening buying pressure (bearish). Price making new lows while CVD makes higher lows signals weakening selling pressure (bullish)
Zero Line: CVD crossing above zero suggests buyers taking control; crossing below suggests sellers dominating
Hourly Resets: Useful for scalping and intraday trading to track momentum within each hour
Nexural ORB Nexural ORB - Multi-Timeframe Opening Range Breakout Indicator
Introduction
This indicator was built out of frustration. After testing dozens of ORB tools, both free and paid, I found that most of them either did too little or cluttered the chart with unnecessary information. The Opening Range Breakout is one of the oldest and most reliable intraday strategies, yet most indicators treat it as an afterthought - just a box on the chart with no context.
This is not that kind of indicator.
The Nexural Ultimate ORB tracks the Opening Range across three timeframes simultaneously, provides quality scoring to help you identify high-probability setups, detects when multiple levels align for confluence, and now includes historical ORB data so you can scroll back and review previous sessions. It does not tell you when to buy or sell. It does not promise profits. What it does is give you clean, accurate levels with the context you need to make informed decisions.
I am going to be completely transparent about what this indicator does, how it works, what it does well, and where it falls short. If you are looking for a magic solution that prints money, this is not it. If you are looking for a professional-grade tool that will become a permanent part of your charting setup, keep reading.
What Is The Opening Range Breakout
Before diving into the indicator itself, let me explain the strategy it is built around.
The Opening Range is simply the high and low price established during the first portion of the trading session. For US equities and futures, this typically begins at 9:30 AM Eastern Time. The theory behind trading the Opening Range is straightforward: the first 15, 30, or 60 minutes of trade often sets the tone for the rest of the day. Institutional traders, algorithms, and market makers are all actively positioning during this window, and the levels they establish become reference points for the remainder of the session.
When price breaks above the Opening Range High, it suggests bullish momentum and the potential for continuation higher. When price breaks below the Opening Range Low, it suggests bearish momentum and the potential for continuation lower. The strategy has been used by floor traders for decades and remains relevant today because the underlying market dynamics have not changed - the open is when the most information gets priced in, and the levels established during that period matter.
This indicator does not trade the ORB for you. It identifies the levels, tracks multiple timeframes, and provides context. The actual trading decisions are yours.
How The Opening Range Is Calculated
The indicator calculates the Opening Range for three timeframes:
The 15-Minute ORB captures the high and low from 9:30 AM to 9:45 AM. This is the shortest timeframe and typically produces the tightest range. Breakouts from the 15-minute ORB tend to occur earliest in the session and can provide early directional signals, though they are also more prone to false breakouts due to the narrow range.
The 30-Minute ORB captures the high and low from 9:30 AM to 10:00 AM. This is considered by many institutional traders to be the most significant timeframe. The 30-minute window allows enough time for the initial volatility to settle while still capturing the core opening activity. Many professional trading desks reference the 30-minute ORB as their primary intraday framework.
The 60-Minute ORB captures the high and low from 9:30 AM to 10:30 AM. This is the widest range and produces fewer signals, but those signals tend to be more reliable. The 60-minute ORB is particularly useful on high-volatility days when the 15 and 30-minute ranges get quickly violated.
The calculation itself is simple. As each bar completes during the opening period, the indicator compares the current high and low to the stored values and updates them if new extremes are reached. Once the timeframe completes, the levels lock in and do not change for the rest of the session.
I want to be absolutely clear about one thing: there is no repainting. The ORB levels are calculated in real-time as the opening period develops. Once a timeframe completes, those levels are final. You will not look back at your chart and see different levels than what appeared in real-time. This is critically important for any indicator you use for actual trading decisions.
Visual Hierarchy and Line Styles
One of the main problems with multi-timeframe indicators is visual clutter. When you have six lines on the chart representing three different ORBs, it becomes difficult to quickly identify which level belongs to which timeframe.
This indicator solves that problem through a clear visual hierarchy. Each timeframe has its own color, line width, and line style, all of which are fully customizable.
By default, the 15-Minute ORB uses solid lines with the heaviest weight. This makes it the most prominent on the chart because it is typically the first level to be tested and often the most actively traded.
The 30-Minute ORB uses dashed lines with a medium weight. This keeps it visible but clearly secondary to the 15-minute levels.
The 60-Minute ORB uses dotted lines with a medium weight. This places it in the background as a reference level rather than an active trading zone.
You can change any of these settings. If you prefer to trade the 30-minute ORB exclusively, you can make it solid and bold while keeping the others subtle. If you only want to see the 60-minute ORB, you can disable the other two entirely. The flexibility is there because every trader has different preferences.
The dashboard in the top right corner of the chart displays the corresponding line style next to each timeframe, so you always know which line on the chart matches which row in the dashboard.
The Quality Scoring System
Not every Opening Range is worth trading. Some days produce tight, clean ranges with strong follow-through. Other days produce wide, choppy ranges that lead to multiple false breakouts. One of the most valuable features of this indicator is the Quality Score, which grades each session from A-plus down to C.
The Quality Score is calculated based on several factors:
Range Size is the most important factor. The indicator compares the current ORB range to the average daily range over the past 20 sessions. A tight range, defined as less than 40 percent of the average daily range, receives the highest score. The logic here is simple: tight ranges indicate consolidation, and consolidation often precedes expansion. When the ORB is tight, a breakout has more room to run.
A normal range, between 40 and 80 percent of the average daily range, receives a moderate score. These are typical trading days without any particular edge from a range perspective.
A wide range, greater than 80 percent of the average daily range, receives the lowest score. When the ORB is already wide, much of the day's move may have already occurred during the opening period, leaving less opportunity for breakout continuation.
Volume is the second factor. Above-average volume during the opening period indicates genuine institutional participation. The indicator compares the current volume to the 20-bar average. Significantly elevated volume adds to the quality score, while below-average volume does not penalize the score but does not help it either.
Day of Week matters more than most traders realize. Statistical studies of market behavior consistently show that Tuesday, Wednesday, and Thursday produce cleaner trending days than Monday or Friday. Monday mornings often see erratic price action as the market digests weekend news and repositions. Friday afternoons often see reduced participation as traders close out positions before the weekend. The quality score reflects these tendencies by adding points for mid-week sessions and subtracting points for Monday mornings and Friday afternoons.
Overnight Activity is relevant primarily for futures traders. If the overnight session produced a significant range, defined as greater than half of the average true range, it suggests that institutions were active during the overnight hours. This often leads to more directional behavior during the regular session.
The quality score is displayed in the dashboard as a letter grade. A-plus indicates excellent conditions across multiple factors. A indicates good conditions. B indicates average conditions. C indicates below-average conditions that warrant caution.
I want to be honest about the limitations of this system. The quality score is a guideline, not a guarantee. A C-rated day can still produce a profitable breakout. An A-plus day can still result in a failed breakout that reverses. The score helps you calibrate your expectations and position sizing, but it does not predict the future.
Confluence Detection
Confluence occurs when multiple significant price levels cluster together within a tight range. When the 15-minute ORB high aligns with the overnight high, or when the ORB low sits right at the session opening price, you have confluence. These zones tend to produce stronger reactions because multiple types of traders are watching the same level.
The indicator automatically detects confluence using a tolerance-based system. By default, the tolerance is set to 0.15 percent of price. This means that if two levels are within 0.15 percent of each other, they are considered confluent.
The levels that are checked for confluence include the Session Opening Price, which is the exact price at 9:30 AM. This level matters because it represents the point where the market transitioned from overnight to regular session trading. Many traders reference the opening print throughout the day.
The Overnight High and Low are also checked. For futures markets, this includes all trading from 6:00 PM the previous evening through 9:29 AM. For stocks, this includes extended hours trading. These levels represent the extremes established before the regular session began.
Finally, the indicator checks whether the ORB levels from different timeframes align with each other. When the 15-minute high matches the 30-minute high, that level gains additional significance.
When confluence is detected, two things happen on the chart. First, the affected ORB line changes color to gold, making it visually obvious that this level has additional significance. Second, the dashboard displays a Confluence row at the bottom, alerting you to the condition.
The Confluence label also appears directly on the chart, positioned within the ORB zone so you can immediately see where the confluence exists.
Smart Label System
A common problem with indicators that display multiple price levels is label overlap. When you have six ORB levels plus auxiliary levels like the session open and overnight high and low, the right side of the chart can become a cluttered mess of overlapping text.
This indicator solves that problem with a smart labeling system that combines matching levels. If the 15-minute low, 30-minute low, and 60-minute low are all at the same price, instead of displaying three separate labels, the indicator displays a single label that reads 15L/30L/60L followed by the price.
The system uses a tolerance of 2 percent of the ORB range to determine whether levels are close enough to combine. This keeps the labels clean while still displaying separate labels when levels are meaningfully different.
The labels are positioned to the right of the current price action, extending beyond the last bar so they remain visible as new bars form. Each label includes the level identifier and the exact price value.
Historical ORB Display
This feature addresses one of the most common limitations of ORB indicators: the inability to see previous sessions when scrolling back through your chart.
With the history feature enabled, the indicator stores ORB data for up to 20 previous sessions. When you scroll back in time, you will see the ORB levels for each historical session, drawn from the session start to the session end.
Historical ORBs are displayed with slightly faded colors, using 50 percent transparency compared to the current session. This creates a clear visual distinction between current and historical levels while still allowing you to analyze past price action relative to those levels.
The history depth is configurable. You can set it anywhere from 1 to 20 days depending on your needs. If you primarily care about the current session and the previous day for context, set it to 1 or 2. If you want to analyze an entire week or more of ORB behavior, increase the setting.
You can also disable the history feature entirely by enabling Current Session Only mode. This returns the indicator to showing only the active session, which some traders prefer for a cleaner chart during live trading.
Breakout Detection and Filters
The indicator marks breakouts with triangle signals. A green triangle below the bar indicates a bullish breakout above the ORB high. A red triangle above the bar indicates a bearish breakout below the ORB low.
However, not every crossing of an ORB level represents a valid breakout worth acting on. The indicator includes several filters to reduce false signals.
The Volume Filter requires that volume on the breakout bar be at least 1.2 times the 20-bar average volume. You can adjust this multiplier in the settings. The logic is straightforward: breakouts on weak volume are more likely to fail. A genuine breakout that is going to follow through should be accompanied by above-average participation.
The Time Filter prevents breakout signals after a specified hour. The default is 2:00 PM Eastern. The rationale is that late-session breakouts often lack follow-through because there is not enough trading time remaining for the move to develop. You can adjust or disable this filter based on your trading style.
The Single Trigger mechanism ensures that each breakout fires exactly once per session. If price crosses above the ORB high, you will see one bullish signal on the bar where the crossing occurred. If price subsequently pulls back and crosses above again, you will not see a second signal. This prevents signal spam and keeps your chart clean.
The indicator also includes Reclaim Detection. If price breaks out and then returns back inside the ORB zone, you will see a warning signal marked with an X. This condition often indicates a failed breakout and potential reversal. It is not a trade signal, but rather information that the breakout you just witnessed may not be valid.
Range Extensions
Once the ORB is established, many traders look for profit targets based on the range itself. The indicator includes extension levels that project multiples of the ORB range above and below the extremes.
By default, two extension levels are shown: 1.0 times the range and 1.5 times the range. If the 15-minute ORB is 50 points, the 1.0 extension above the high would be 50 points above the high, and the 1.5 extension would be 75 points above the high.
These extensions serve as potential profit targets for breakout trades. The 1.0 extension represents a measured move equal to the ORB itself. The 1.5 extension represents a slightly more ambitious target.
You can adjust the extension multipliers in the settings. Some traders prefer 0.5 and 1.0. Others prefer 1.0 and 2.0. The flexibility is there to match your trading approach.
The extension lines are displayed as faint dotted lines so they do not compete visually with the ORB levels themselves. The labels show the multiplier value along with the exact price.
## The Midline
The 50 percent level of the ORB, known as the midline, is displayed as a dashed line within the ORB zone. This level matters because it often acts as short-term support or resistance during consolidation periods within the range.
When price is trading inside the ORB and approaches the midline, you may see a reaction. The midline can also serve as a reference for whether price is showing strength or weakness within the range. If price is spending most of its time above the midline, that suggests a bullish bias even before a breakout occurs. If price is spending most of its time below the midline, that suggests a bearish bias.
The midline can be disabled in the settings if you prefer a cleaner chart.
The Dashboard
The dashboard is positioned in the top right corner of the chart and provides all relevant ORB information at a glance.
The header row displays the indicator name, the current Quality Score grade, the Range Classification, and the Session Status.
The Range Classification shows whether the current 15-minute ORB is Tight, Normal, or Wide compared to the 20-day average. This gives you immediate context about whether the range is unusual in either direction.
The Session Status shows whether the market is currently in session or closed. A green Live indicator means the session is active. A red Closed indicator means the session has ended.
Below the header, each timeframe row displays the following information:
The Timeframe column shows 15m, 30m, or 60m along with a visual indicator of the line style you have selected for that timeframe.
The High column displays the ORB high price for that timeframe.
The Low column displays the ORB low price for that timeframe.
The Range column displays the distance between high and low.
The Status column shows the current state. Before the ORB completes, this shows a countdown of minutes remaining. After completion, it shows whether the price has broken out bullish, broken out bearish, or remains in range.
Below the timeframe rows, the Distance row shows how far the current price is from the nearest ORB level. This helps you gauge whether price is approaching a potential breakout zone.
If confluence is detected, a highlighted row appears at the bottom of the dashboard indicating that significant level alignment exists.
Supported Markets and Sessions
The indicator supports multiple market types with appropriate session times:
US Stocks use a session from 9:30 AM to 4:00 PM Eastern.
US Futures use a session from 9:30 AM to 4:00 PM Eastern, with overnight tracking from 6:00 PM the previous evening.
Forex uses a 24-hour session since the market trades continuously.
Crypto uses a 24-hour session since the market trades continuously.
Custom allows you to define your own session times for markets not covered by the presets.
The timezone is configurable. The default is America/New_York, but you can change it to Chicago, Los Angeles, London, Tokyo, or UTC depending on your location and preference.
Settings Overview
The settings are organized into logical groups:
General settings include the market type, current session only toggle, and history days.
Session settings include custom session times and timezone selection.
ORB Timeframes settings include individual toggles for showing or hiding each timeframe, color selection, line width, and line style. This is where you customize the visual appearance of each ORB level.
Quality Scoring settings include the ATR period and range comparison lookback. These affect how the quality score is calculated.
Confluence Detection settings include the tolerance percentage and toggles for the session open and overnight high and low levels.
Breakout Settings include the volume filter toggle and multiplier, time filter toggle and cutoff hour, and reclaim detection toggle.
Visuals settings include toggles for the fill zone, labels, dashboard, distance display, and midline.
Extensions settings include toggles for showing extensions and the multiplier values for each extension level.
How I Use This Indicator
I will share my personal approach, though you should adapt it to your own style.
First, I wait for the ORB to complete. I do not trade during the first 15 to 30 minutes of the session. The levels are still forming, and the price action during this window is often erratic. I let the dust settle and the range establish itself.
Second, I check the Quality Score. If it is an A or A-plus day with a tight range and good volume, I am more aggressive. If it is a C day with a wide range on a Friday afternoon, I am either sitting on my hands or trading with reduced size.
Third, I look for confluence. If the 15-minute high is sitting right at the overnight high, that level has additional significance. Breakouts through confluence zones tend to be more decisive.
Fourth, I confirm with volume. Even though the indicator filters for volume, I still glance at the volume bars. I want to see that breakout candle have conviction.
Fifth, I manage expectations based on range type. If the ORB is tight, I expect an explosive move and give the trade room to develop. If the ORB is wide, I expect choppier action and tighten my parameters.
Sixth, I use the distance reading. If price is already 50 points beyond the ORB high and the range was only 40 points, I have missed the move. Chasing extended price is not smart trading.
Honest Pros and Cons
What this indicator does well:
It provides clean, accurate ORB levels that do not repaint. This is the foundation, and it is done correctly.
It offers multi-timeframe tracking with clear visual differentiation. You can see all three ORBs at once without confusion.
The quality scoring system helps you avoid low-probability setups. It is not perfect, but it adds valuable context.
The confluence detection highlights significant level alignment automatically. This saves you from manually checking multiple levels.
The smart label system prevents visual clutter. Labels combine when appropriate and remain readable.
The historical ORB display allows you to scroll back and review previous sessions. This is valuable for analysis and pattern recognition.
The customization is extensive. Every visual element can be adjusted to match your preferences.
It works across stocks, futures, forex, and crypto with appropriate session handling.
What this indicator does not do:
It does not give you buy and sell signals with entries and exits. This is a levels and analysis tool, not a trading system.
It does not include backtesting or performance tracking. You need a separate strategy tester for that.
It does not guarantee that breakouts will follow through. The filters help, but failed breakouts still occur.
The quality score is a guideline, not a prediction. Low-quality days can still produce good trades. High-quality days can still produce losing trades.
The confluence detection is proximity-based. It identifies when levels are near each other but does not know if those levels are actually significant to other traders.
Technical limitations to be aware of:
On chart timeframes larger than 15 minutes, the ORB calculation becomes less precise because you have fewer bars in the opening period. This indicator works best on 1 to 15 minute charts.
The overnight high and low tracking works best on futures. Stocks do not have true overnight sessions in the same way.
If your chart does not have volume data, the volume filter will not function properly.
Risk Management
This section is not about the indicator. It is about trading.
No indicator, no matter how well designed, can protect you from poor risk management. Before you trade any ORB breakout, you need to define your risk.
Where is your stop? A common approach is to place the stop on the opposite side of the ORB zone. If you are taking a bullish breakout above the high, your stop goes below the low. This means your risk is the full ORB range plus any slippage.
Is that risk acceptable? If the ORB range is 100 points and you are trading a 50 dollar per point contract, your risk is 5000 dollars plus commissions. Can you afford that loss? If not, either reduce your size or skip the trade.
Where is your target? The extensions provide potential targets, but you need to decide in advance where you will take profits. Hoping for an unlimited run while watching your profits evaporate is not a strategy.
What is your win rate? ORB breakouts do not work every time. Depending on the market and conditions, you might win 50 to 60 percent of the time. That means you will have losing trades. Are you prepared for a string of three or four losers in a row? It will happen.
None of this is specific to this indicator. It applies to all trading. But I include it here because I see too many traders focus on the indicator while ignoring the fundamentals of risk management. The indicator can help you identify setups. It cannot manage your risk for you.
Final Thoughts
I built this indicator for my own trading, then refined it to the point where I felt comfortable sharing it. It is not a holy grail. It will not make you profitable if you do not already have a trading process. What it will do is give you clean, accurate ORB levels with context that most indicators do not provide.
The Opening Range Breakout works because institutions and algorithms reference these same levels. When the first 30 or 60 minutes of trading establishes a range, that becomes a reference point for the rest of the session. This indicator makes those levels visible and adds intelligence around when they are worth paying attention to.
Use it as a tool, not a crutch. Combine it with your own analysis. Manage your risk properly. And please, do not trade with money you cannot afford to lose.
If you have questions or feedback, I am actively maintaining this indicator and will consider feature requests for future updates.
Trade well.
Tags
ORB, Opening Range Breakout, Intraday, Day Trading, Futures, Stocks, Multi-Timeframe, Breakout, Support Resistance, Session, NQ, ES, SPY, QQQ, Opening Range, Institutional Levels
Recommended Timeframes
This indicator works best on 1-minute, 2-minute, 3-minute, 5-minute, 10-minute, and 15-minute charts. It can be used on higher timeframes, but the ORB calculation becomes less precise.
Recommended Markets
US Stock Indices and Futures including ES, NQ, YM, RTY, SPY, QQQ, DIA, IWM. Individual stocks with sufficient liquidity. Forex major pairs. Cryptocurrency with defined trading sessions.
Kernel Market Dynamics [WFO - MAB]Kernel Market Dynamics
⚛️ CORE INNOVATION: KERNEL-BASED DISTRIBUTION ANALYSIS
The Kernel Market Dynamics system represents a fundamental departure from traditional technical indicators. Rather than measuring price levels, momentum, or oscillator extremes, KMD analyzes the statistical distribution of market returns using advanced kernel methods from machine learning theory. This allows the system to detect when market behavior has fundamentally changed—not just when price has moved, but when the underlying probability structure has shifted.
The Distribution Hypothesis:
Traditional indicators assume markets move in predictable patterns. KMD assumes something more profound: markets exist in distinct distributional regimes , and profitable trading opportunities emerge during regime transitions . When the distribution of recent returns diverges significantly from the historical baseline, the market is restructuring—and that's when edge exists.
Maximum Mean Discrepancy (MMD):
At the heart of KMD lies a sophisticated statistical metric called Maximum Mean Discrepancy. MMD measures the distance between two probability distributions by comparing their representations in a high-dimensional feature space created by a kernel function.
The Mathematics:
Given two sets of normalized returns:
• Reference period (X) : Historical baseline (default 100 bars)
• Test period (Y) : Recent behavior (default 20 bars)
MMD is calculated as:
MMD² = E + E - 2·E
Where:
• E = Expected kernel similarity within reference period
• E = Expected kernel similarity within test period
• E = Expected cross-similarity between periods
When MMD is low : Test period behaves like reference (stable regime)
When MMD is high : Test period diverges from reference (regime shift)
The final MMD value is smoothed with EMA(5) to reduce single-bar noise while maintaining responsiveness to genuine distribution changes.
The Kernel Functions:
The kernel function defines how similarity is measured. KMD offers four mathematically distinct kernels, each with different properties:
1. RBF (Radial Basis Function / Gaussian):
• Formula: k(x,y) = exp(-d² / (2·σ²·scale))
• Properties: Most sensitive to distribution changes, smooth decision boundaries
• Best for: Clean data, clear regime shifts, low-noise markets
• Sensitivity: Highest - detects subtle changes
• Use case: Stock indices, major forex pairs, trending environments
2. Laplacian:
• Formula: k(x,y) = exp(-|d| / σ)
• Properties: Medium sensitivity, robust to moderate outliers
• Best for: Standard market conditions, balanced noise/signal
• Sensitivity: Medium - filters minor fluctuations
• Use case: Commodities, standard timeframes, general trading
3. Cauchy (Default - Most Robust):
• Formula: k(x,y) = 1 / (1 + d²/σ²)
• Properties: Heavy-tailed, highly robust to outliers and spikes
• Best for: Noisy markets, choppy conditions, crypto volatility
• Sensitivity: Lower - only major distribution shifts trigger
• Use case: Cryptocurrencies, illiquid markets, volatile instruments
4. Rational Quadratic:
• Formula: k(x,y) = (1 + d²/(2·α·σ²))^(-α)
• Properties: Tunable via alpha parameter, mixture of RBF kernels
• Alpha < 1.0: Heavy tails (like Cauchy)
• Alpha > 3.0: Light tails (like RBF)
• Best for: Adaptive use, mixed market conditions
• Use case: Experimental optimization, regime-specific tuning
Bandwidth (σ) Parameter:
The bandwidth controls the "width" of the kernel, determining sensitivity to return differences:
• Low bandwidth (0.5-1.5) : Narrow kernel, very sensitive
- Treats small differences as significant
- More MMD spikes, more signals
- Use for: Scalping, fast markets
• Medium bandwidth (1.5-3.0) : Balanced sensitivity (recommended)
- Filters noise while catching real shifts
- Professional-grade signal quality
- Use for: Day/swing trading
• High bandwidth (3.0-10.0) : Wide kernel, less sensitive
- Only major distribution changes register
- Fewer, stronger signals
- Use for: Position trading, trend following
Adaptive Bandwidth:
When enabled (default ON), bandwidth automatically scales with market volatility:
Effective_BW = Base_BW × max(0.5, min(2.0, 1 / volatility_ratio))
• Low volatility → Tighter bandwidth (0.5× base) → More sensitive
• High volatility → Wider bandwidth (2.0× base) → Less sensitive
This prevents signal flooding during wild markets and avoids signal drought during calm periods.
Why Kernels Work:
Kernel methods implicitly map data to infinite-dimensional space where complex, nonlinear patterns become linearly separable. This allows MMD to detect distribution changes that simpler statistics (mean, variance) would miss. For example:
• Same mean, different shape : Traditional metrics see nothing, MMD detects shift
• Same volatility, different skew : Oscillators miss it, MMD catches it
• Regime rotation : Price unchanged, but return distribution restructured
The kernel captures the entire distributional signature —not just first and second moments.
🎰 MULTI-ARMED BANDIT FRAMEWORK: ADAPTIVE STRATEGY SELECTION
Rather than forcing one strategy on all market conditions, KMD implements a Multi-Armed Bandit (MAB) system that learns which of seven distinct strategies performs best and dynamically selects the optimal approach in real-time.
The Seven Arms (Strategies):
Each arm represents a fundamentally different trading logic:
ARM 0 - MMD Regime Shift:
• Logic: Distribution divergence with directional bias
• Triggers: MMD > threshold AND direction_bias confirmed AND velocity > 5%
• Philosophy: Trade the regime transition itself
• Best in: Volatile shifts, breakout moments, crisis periods
• Weakness: False alarms in choppy consolidation
ARM 1 - Trend Following:
• Logic: Aligned EMAs with strong ADX
• Triggers: EMA(9) > EMA(21) > EMA(50) AND ADX > 25
• Philosophy: Ride established momentum
• Best in: Strong trending regimes, directional markets
• Weakness: Late entries, whipsaws at reversals
ARM 2 - Breakout:
• Logic: Bollinger Band breakouts with volume
• Triggers: Price crosses BB outer band AND volume > 1.2× average
• Philosophy: Capture volatility expansion events
• Best in: Range breakouts, earnings, news events
• Weakness: False breakouts in ranging markets
ARM 3 - RSI Mean Reversion:
• Logic: RSI extremes with reversal confirmation
• Triggers: RSI < 30 with uptick OR RSI > 70 with downtick
• Philosophy: Fade overbought/oversold extremes
• Best in: Ranging markets, mean-reverting instruments
• Weakness: Fails in strong trends, catches falling knives
ARM 4 - Z-Score Statistical Reversion:
• Logic: Price deviation from 50-period mean
• Triggers: Z-score < -2 (oversold) OR > +2 (overbought) with reversal
• Philosophy: Statistical bounds reversion
• Best in: Stable volatility regimes, pairs trading
• Weakness: Trend continuation through extremes
ARM 5 - ADX Momentum:
• Logic: Strong directional movement with acceleration
• Triggers: ADX > 30 with DI+ or DI- strengthening
• Philosophy: Momentum begets momentum
• Best in: Trending with increasing velocity
• Weakness: Late exits, momentum exhaustion
ARM 6 - Volume Confirmation:
• Logic: OBV trend + volume spike + candle direction
• Triggers: OBV > EMA(20) AND volume > average AND bullish candle
• Philosophy: Follow institutional money flow
• Best in: Liquid markets with reliable volume
• Weakness: Manipulated volume, thin markets
Q-Learning with Rewards:
Each arm maintains a Q-value representing its expected reward. After every bar, the system calculates a reward based on the arm's signal and actual price movement:
Reward Calculation:
If arm signaled LONG:
reward = (close - close ) / close
If arm signaled SHORT:
reward = -(close - close ) / close
If arm signaled NEUTRAL:
reward = 0
Penalty multiplier: If loss > 0.5%, reward × 1.3 (punish big losses harder)
Q-Value Update (Exponential Moving Average):
Q_new = Q_old + α × (reward - Q_old)
Where α (learning rate, default 0.08) controls adaptation speed:
• Low α (0.01-0.05): Slow, stable learning
• Medium α (0.06-0.12): Balanced (recommended)
• High α (0.15-0.30): Fast, reactive learning
This gradually shifts Q-values toward arms that generate positive returns and away from losing arms.
Arm Selection Algorithms:
KMD offers four mathematically distinct selection strategies:
1. UCB1 (Upper Confidence Bound) - Recommended:
Formula: Select arm with max(Q_i + c·√(ln(t)/n_i))
Where:
• Q_i = Q-value of arm i
• c = exploration constant (default 1.5)
• t = total pulls across all arms
• n_i = pulls of arm i
Philosophy: Balance exploitation (use best arm) with exploration (try uncertain arms). The √(ln(t)/n_i) term creates an "exploration bonus" that decreases as an arm gets more pulls, ensuring all arms get sufficient testing.
Theoretical guarantee: Logarithmic regret bound - UCB1 provably converges to optimal arm selection over time.
2. UCB1-Tuned (Variance-Aware UCB):
Formula: Select arm with max(Q_i + √(ln(t)/n_i × min(0.25, V_i + √(2·ln(t)/n_i))))
Where V_i = variance of rewards for arm i
Philosophy: Incorporates reward variance into exploration. Arms with high variance (unpredictable) get less exploration bonus, focusing effort on stable performers.
Better bounds than UCB1 in practice, slightly more conservative exploration.
3. Epsilon-Greedy (Simple Random):
Algorithm:
With probability ε: Select random arm (explore)
With probability 1-ε: Select highest Q-value arm (exploit)
Default ε = 0.10 (10% exploration, 90% exploitation)
Philosophy: Simplest algorithm, easy to understand. Random exploration ensures all arms stay updated but may waste time on clearly bad arms.
4. Thompson Sampling (Bayesian):
The most sophisticated selection algorithm, using true Bayesian probability.
Each arm maintains Beta distribution parameters:
• α (alpha) = successes + 1
• β (beta) = failures + 1
Selection Process:
1. Sample θ_i ~ Beta(α_i, β_i) for each arm using Marsaglia-Tsang Gamma sampler
2. Select arm with highest sample: argmax_i(θ_i)
3. After reward, update:
- If reward > 0: α += |reward| × 100 (increment successes)
- If reward < 0: β += |reward| × 100 (increment failures)
Why Thompson Sampling Works:
The Beta distribution naturally represents uncertainty about an arm's true win rate. Early on with few trials, the distribution is wide (high uncertainty), leading to more exploration. As evidence accumulates, it narrows around the true performance, naturally shifting toward exploitation.
Unlike UCB which uses deterministic confidence bounds, Thompson Sampling is probabilistic—it samples from the posterior distribution of each arm's success rate, providing automatic exploration/exploitation balance without tuning.
Comparison:
• UCB1: Deterministic, guaranteed regret bounds, requires tuning exploration constant
• Thompson: Probabilistic, natural exploration, no tuning required, best empirical performance
• Epsilon-Greedy: Simplest, consistent exploration %, less efficient
• UCB1-Tuned: UCB1 + variance awareness, best for risk-averse
Exploration Constant (c):
For UCB algorithms, this multiplies the exploration bonus:
• Low c (0.5-1.0): Strongly prefer proven arms, rare exploration
• Medium c (1.2-1.8): Balanced (default 1.5)
• High c (2.0-3.0): Frequent exploration, diverse arm usage
Higher exploration constant in volatile/unstable markets, lower in stable trending environments.
🔬 WALK-FORWARD OPTIMIZATION: PREVENTING OVERFITTING
The single biggest problem in algorithmic trading is overfitting—strategies that look amazing in backtest but fail in live trading because they learned noise instead of signal. KMD's Walk-Forward Optimization system addresses this head-on.
How WFO Works:
The system divides time into repeating cycles:
1. Training Window (default 500 bars): Learn arm Q-values on historical data
2. Testing Window (default 100 bars): Validate on unseen "future" data
Training Phase:
• All arms accumulate rewards and update Q-values normally
• Q_train tracks in-sample performance
• System learns which arms work on historical data
Testing Phase:
• System continues using arms but tracks separate Q_test metrics
• Counts trades per arm (N_test)
• Testing performance is "out-of-sample" relative to training
Validation Requirements:
An arm is only "validated" (approved for live use) if:
1. N_test ≥ Minimum Trades (default 10): Sufficient statistical sample
2. Q_test > 0 : Positive out-of-sample performance
Arms that fail validation are blocked from generating signals, preventing the system from trading strategies that only worked on historical data.
Performance Decay:
At the end of each WFO cycle, all Q-values decay exponentially:
Q_new = Q_old × decay_rate (default 0.95)
This ensures old performance doesn't dominate forever. An arm that worked 10 cycles ago but fails recently will eventually lose influence.
Decay Math:
• 0.95 decay after 10 periods → 0.95^10 = 0.60 (40% forgotten)
• 0.90 decay after 10 periods → 0.90^10 = 0.35 (65% forgotten)
Fast decay (0.80-0.90): Quick adaptation, forgets old patterns rapidly
Slow decay (0.96-0.99): Stable, retains historical knowledge longer
WFO Efficiency Metric:
The key metric revealing overfitting:
Efficiency = (Q_test / Q_train) for each validated arm, averaged
• Efficiency > 0.8 : Excellent - strategies generalize well (LOW overfit risk)
• Efficiency 0.5-0.8 : Acceptable - moderate generalization (MODERATE risk)
• Efficiency < 0.5 : Poor - strategies curve-fitted to history (HIGH risk)
If efficiency is low, the system has learned noise. Training performance was good but testing (forward) performance is weak—classic overfitting.
The dashboard displays real-time WFO efficiency, allowing users to gauge system robustness. Low efficiency should trigger parameter review or reduced position sizing.
Why WFO Matters:
Consider two scenarios:
Scenario A - No WFO:
• Arm 3 (RSI Reversion) shows Q-value of 0.15 on all historical data
• System trades it aggressively
• Reality: It only worked during one specific ranging period
• Live trading: Fails because market has trended since backtest
Scenario B - With WFO:
• Arm 3 shows Q_train = 0.15 (good in training)
• But Q_test = -0.05 (loses in testing) with 12 test trades
• N_test ≥ 10 but Q_test < 0 → Arm BLOCKED
• System refuses to trade it despite good backtest
• Live trading: Protected from false strategy
WFO ensures only strategies that work going forward get used, not just strategies that fit the past.
Optimal Window Sizing:
Training Window:
• Too short (100-300): May learn recent noise, insufficient data
• Too long (1000-2000): May include obsolete market regimes
• Recommended: 4-6× testing window (default 500)
Testing Window:
• Too short (50-80): Insufficient validation, high variance
• Too long (300-500): Delayed adaptation to regime changes
• Recommended: 1/5 to 1/4 of training (default 100)
Minimum Trades:
• Too low (5-8): Statistical noise, lucky runs validate
• Too high (30-50): Many arms never validate, system rarely trades
• Recommended: 10-15 (default 10)
⚖️ WEIGHTED CONFLUENCE SYSTEM: MULTI-FACTOR SIGNAL QUALITY
Not all signals are created equal. KMD implements a sophisticated 100-point quality scoring system that combines eight independent factors with different importance weights.
The Scoring Framework:
Each potential signal receives a quality score from 0-100 by accumulating points from aligned factors:
CRITICAL FACTORS (20 points each):
1. Bandit Arm Alignment (20 points):
• Full points if selected arm's signal matches trade direction
• Zero points if arm disagrees
• Weight: Highest - the bandit selected this arm for a reason
2. MMD Regime Quality (20 points):
• Requires: MMD > dynamic threshold AND directional bias confirmed
• Scaled by MMD percentile (how extreme vs history)
• If MMD in top 10% of history: 100% of 20 points
• If MMD at 50th percentile: 50% of 20 points
• Weight: Highest - distribution shift is the core signal
HIGH IMPACT FACTORS (15 points each):
3. Trend Alignment (15 points):
• Full points if EMA(9) > EMA(21) > EMA(50) for longs (inverse for shorts)
• Scaled by ADX strength:
- ADX > 25: 100% (1.0× multiplier) - strong trend
- ADX 20-25: 70% (0.7× multiplier) - moderate trend
- ADX < 20: 40% (0.4× multiplier) - weak trend
• Weight: High - trend is friend, alignment increases probability
4. Volume Confirmation (15 points):
• Requires: OBV > EMA(OBV, 20) aligned with direction
• Scaled by volume ratio: vol_current / vol_average
- Volume 1.5×+ average: 100% of points (institutional participation)
- Volume 1.0-1.5× average: 67% of points (above average)
- Volume below average: 0 points (weak conviction)
• Weight: High - volume validates price moves
MODERATE FACTORS (10 points each):
5. Market Structure (10 points):
• Full points (10) if bullish structure (higher highs, higher lows) for longs
• Partial points (6) if near support level (within 1% of swing low)
• Similar logic inverted for bearish trades
• Weight: Moderate - structure context improves entries
6. RSI Positioning (10 points):
• For long signals:
- RSI < 50: 100% of points (1.0× multiplier) - room to run
- RSI 50-60: 60% of points (0.6× multiplier) - neutral
- RSI 60-70: 30% of points (0.3× multiplier) - elevated
- RSI > 70: 0 points (0× multiplier) - overbought
• Inverse for short signals
• Weight: Moderate - momentum context, not primary signal
BONUS FACTORS (10 points each):
7. Divergence (10 points):
• Full 10 points if bullish divergence detected for long (or bearish for short)
• Zero points otherwise
• Weight: Bonus - leading indicator, adds confidence when present
8. Multi-Timeframe Confirmation (10 points):
• Full 10 points if higher timeframe aligned (HTF EMA trending same direction, RSI supportive)
• Zero points if MTF disabled or HTF opposes
• Weight: Bonus - macro context filter, prevents counter-trend disasters
Total Maximum: 110 points (20+20+15+15+10+10+10+10)
Signal Quality Calculation:
Quality Score = (Accumulated_Points / Maximum_Possible) × 100
Where Maximum_Possible = 110 points if all factors active, adjusts if MTF disabled.
Example Calculation:
Long signal candidate:
• Bandit Arm: +20 (arm signals long)
• MMD Quality: +16 (MMD high, 80th percentile)
• Trend: +11 (EMAs aligned, ADX = 22 → 70% × 15)
• Volume: +10 (OBV rising, vol 1.3× avg → 67% × 15 = 10)
• Structure: +10 (higher lows forming)
• RSI: +6 (RSI = 55 → 60% × 10)
• Divergence: +0 (none present)
• MTF: +10 (HTF bullish)
Total: 83 / 110 × 100 = 75.5% quality score
This is an excellent quality signal - well above threshold (default 60%).
Quality Thresholds:
• Score 80-100 : Exceptional setup - all factors aligned
• Score 60-80 : High quality - most factors supportive (default minimum)
• Score 40-60 : Moderate - mixed confluence, proceed with caution
• Score 20-40 : Weak - minimal support, likely filtered out
• Score 0-20 : Very weak - almost certainly blocked
The minimum quality threshold (default 60) is the gatekeeper. Only signals scoring above this value can trigger trades.
Dynamic Threshold Adjustment:
The system optionally adjusts the threshold based on historical signal distribution:
If Dynamic Threshold enabled:
Recent_MMD_Mean = SMA(MMD, 50)
Recent_MMD_StdDev = StdDev(MMD, 50)
Dynamic_Threshold = max(Base_Threshold × 0.5,
min(Base_Threshold × 2.0,
MMD_Mean + MMD_StdDev × 0.5))
This auto-calibrates to market conditions:
• Quiet markets (low MMD): Threshold loosens (0.5× base)
• Active markets (high MMD): Threshold tightens (2× base)
Signal Ranking Filter:
When enabled, the system tracks the last 100 signal quality scores and only fires signals in the top percentile.
If Ranking Percentile = 75%:
• Collect last 100 signal scores in memory
• Sort ascending
• Threshold = Score at 75th percentile position
• Only signals ≥ this threshold fire
This ensures you're only taking the cream of the crop —top 25% of signals by quality, not every signal that technically qualifies.
🚦 SIGNAL GENERATION: TRANSITION LOGIC & COOLDOWNS
The confluence system determines if a signal qualifies , but the signal generation logic controls when triangles appear on the chart.
Core Qualification:
For a LONG signal to qualify:
1. Bull quality score ≥ signal threshold (default 60)
2. Selected arm signals +1 (long)
3. Cooldown satisfied (bars since last signal ≥ cooldown period)
4. Drawdown protection OK (current drawdown < pause threshold)
5. MMD ≥ 80% of dynamic threshold (slight buffer below full threshold)
For a SHORT signal to qualify:
1. Bear quality score ≥ signal threshold
2. Selected arm signals -1 (short)
3-5. Same as long
But qualification alone doesn't trigger a chart signal.
Three Signal Modes:
1. RESPONSIVE (Default - Recommended):
Signals appear on:
• Fresh qualification (wasn't qualified last bar, now is)
• Direction reversal (was qualified short, now qualified long)
• Quality improvement (already qualified, quality jumps 25%+ during EXTREME regime)
This mode shows new opportunities and significant upgrades without cluttering the chart with repeat signals.
2. TRANSITION ONLY:
Signals appear on:
• Fresh qualification only
• Direction reversal only
This is the cleanest mode - signals only when first qualifying or when flipping direction. Misses re-entries if quality improves mid-regime.
3. CONTINUOUS:
Signals appear on:
• Every bar that qualifies
Testing/debugging mode - shows all qualified bars. Very noisy but useful for understanding when system wants to trade.
Cooldown System:
Prevents signal clustering and overtrading by enforcing minimum bars between signals.
Base Cooldown: User-defined (default 5 bars)
Adaptive Cooldown (Optional):
If enabled, cooldown scales with volatility:
Effective_Cooldown = Base_Cooldown × volatility_multiplier
Where:
ATR_Pct = ATR(14) / Close × 100
Volatility_Multiplier = max(0.5, min(3.0, ATR_Pct / 2.0))
• Low volatility (ATR 1%): Multiplier ~0.5× → Cooldown = 2-3 bars (tight)
• Medium volatility (ATR 2%): Multiplier 1.0× → Cooldown = 5 bars (normal)
• High volatility (ATR 4%+): Multiplier 2.0-3.0× → Cooldown = 10-15 bars (wide)
This prevents excessive trading during wild swings while allowing more signals during calm periods.
Regime Filter:
Three modes controlling which regimes allow trading:
OFF: Trade in any regime (STABLE, TRENDING, SHIFTING, ELEVATED, EXTREME)
SMART (Recommended):
• Regime score = 1.0 for SHIFTING, ELEVATED (optimal)
• Regime score = 0.8 for TRENDING (acceptable)
• Regime score = 0.5 for EXTREME (too chaotic)
• Regime score = 0.2 for STABLE (too quiet)
Quality scores are multiplied by regime score. A 70% quality signal in STABLE regime becomes 70% × 0.2 = 14% → blocked.
STRICT:
• Regime score = 1.0 for SHIFTING, ELEVATED only
• Regime score = 0.0 for all others → hard block
Only trades during optimal distribution shift regimes.
Drawdown Protection:
If current equity drawdown exceeds pause threshold (default 8%), all signals are blocked until equity recovers.
This circuit breaker prevents compounding losses during adverse conditions or broken market structure.
🎯 RISK MANAGEMENT: ATR-BASED STOPS & TARGETS
Every signal generates volatility-normalized stop loss and target levels displayed as boxes on the chart.
Stop Loss Calculation:
Stop_Distance = ATR(14) × ATR_Multiplier (default 1.5)
For LONG: Stop = Entry - Stop_Distance
For SHORT: Stop = Entry + Stop_Distance
The stop is placed 1.5 ATRs away from entry by default, adapting automatically to instrument volatility.
Target Calculation:
Target_Distance = Stop_Distance × Risk_Reward_Ratio (default 2.0)
For LONG: Target = Entry + Target_Distance
For SHORT: Target = Entry - Target_Distance
Default 2:1 risk/reward means target is twice as far as stop.
Example:
• Price: $100
• ATR: $2
• ATR Multiplier: 1.5
• Risk/Reward: 2.0
LONG Signal:
• Entry: $100
• Stop: $100 - ($2 × 1.5) = $97.00 (-$3 risk)
• Target: $100 + ($3 × 2.0) = $106.00 (+$6 reward)
• Risk/Reward: $3 risk for $6 reward = 1:2 ratio
Target/Stop Box Lifecycle:
Boxes persist for a lifetime (default 20 bars) OR until an opposite signal fires, whichever comes first. This provides visual reference for active trade levels without permanent chart clutter.
When a new opposite-direction signal appears, all existing boxes from the previous direction are immediately deleted, ensuring only relevant levels remain visible.
Adaptive Stop/Target Sizing:
While not explicitly coded in the current version, the shadow portfolio tracking system calculates PnL based on these levels. Users can observe which ATR multipliers and risk/reward ratios produce optimal results for their instrument/timeframe via the dashboard performance metrics.
📊 COMPREHENSIVE VISUAL SYSTEM
KMD provides rich visual feedback through four distinct layers:
1. PROBABILITY CLOUD (Adaptive Volatility Bands):
Two sets of bands around price that expand/contract with MMD:
Calculation:
Std_Multiplier = 1 + MMD × 3
Upper_1σ = Close + ATR × Std_Multiplier × 0.5
Lower_1σ = Close - ATR × Std_Multiplier × 0.5
Upper_2σ = Close + ATR × Std_Multiplier
Lower_2σ = Close - ATR × Std_Multiplier
• Inner band (±0.5× adjusted ATR) : 68% probability zone (1 standard deviation equivalent)
• Outer band (±1.0× adjusted ATR) : 95% probability zone (2 standard deviation equivalent)
When MMD spikes, bands widen dramatically, showing increased uncertainty. When MMD calms, bands tighten, showing normal price action.
2. MOMENTUM FLOW VECTORS (Directional Arrows):
Dynamic arrows that visualize momentum strength and direction:
Arrow Properties:
• Length: Proportional to momentum magnitude (2-10 bars forward)
• Width: 1px (weak), 2px (medium), 3px (strong)
• Transparency: 30-100 (more opaque = stronger momentum)
• Direction: Up for bullish, down for bearish
• Placement: Below bars (bulls) or above bars (bears)
Trigger Logic:
• Always appears every 5 bars (regular sampling)
• Forced appearance if momentum strength > 50 OR regime shift OR MMD velocity > 10%
Strong momentum (>75%) gets:
• Secondary support arrow (70% length, lighter color)
• Label showing "75%" strength
Very strong momentum (>60%) gets:
• Gradient flow lines (thick vertical lines showing momentum vector)
This creates a dynamic "flow field" showing where market pressure is pushing price.
3. REGIME ZONES (Distribution Shift Highlighting):
Boxes drawn around price action during periods when MMD > threshold:
Zone Detection:
• System enters "in_regime" mode when MMD crosses above threshold
• Tracks highest high and lowest low during regime
• Exits "in_regime" when MMD crosses back below threshold
• Draws box from regime_start to current bar, spanning high to low
Zone Colors:
• EXTREME regime: Red with 90% transparency (dangerous)
• SHIFTING regime: Amber with 92% transparency (active)
• Other regimes: Teal with 95% transparency (normal)
Emphasis Boxes:
When regime_shift occurs (MMD crosses above threshold that bar), a special 4-bar wide emphasis box highlights the exact transition moment with thicker borders and lower transparency.
This visual immediately shows "the market just changed" moments.
4. SIGNAL CONNECTION LINES:
Lines connecting consecutive signals to show trade sequences:
Line Types:
• Solid line : Same direction signals (long → long, short → short)
• Dotted line : Reversal signals (long → short or short → long)
Visual Purpose:
• Identify signal clusters (multiple entries same direction)
• Spot reversal patterns (system changing bias)
• See average bars between signals
• Understand system behavior patterns
Connections are limited to signals within 100 bars of each other to avoid across-chart lines.
📈 COMPREHENSIVE DASHBOARD: REAL-TIME SYSTEM STATE
The dashboard provides complete transparency into system internals with three size modes:
MINIMAL MODE:
• Header (Regime + WFO phase)
• Signal Status (LONG READY / SHORT READY / WAITING)
• Core metrics only
COMPACT MODE (Default):
• Everything in Minimal
• Kernel info
• Active bandit arm + validation
• WFO efficiency
• Confluence scores (bull/bear)
• MMD current value
• Position status (if active)
• Performance summary
FULL MODE:
• Everything in Compact
• Signal Quality Diagnostics:
- Bull quality score vs threshold with progress bar
- Bear quality score vs threshold with progress bar
- MMD threshold check (✓/✗)
- MMD percentile (top X% of history)
- Regime fit score (how well current regime suits trading)
- WFO confidence level (validation strength)
- Adaptive cooldown status (bars remaining vs required)
• All Arms Signals:
- Shows all 7 arm signals (▲/▼/○)
- Q-value for each arm
- Indicates selected arm with ◄
• Thompson Sampling Parameters (if TS mode):
- Alpha/Beta values for selected arm
- Probability estimate (α/(α+β))
• Extended Performance:
- Expectancy per trade
- Sharpe ratio with star rating
- Individual arm performance (if enough data)
Key Dashboard Sections:
REGIME: Current market regime (STABLE/TRENDING/SHIFTING/ELEVATED/EXTREME) with color-coded background
SIGNAL STATUS:
• "▲ LONG READY" (cyan) - Long signal qualified
• "▼ SHORT READY" (red) - Short signal qualified
• "○ WAITING" (gray) - No qualified signals
• Signal Mode displayed (Responsive/Transition/Continuous)
KERNEL:
• Active kernel type (RBF/Laplacian/Cauchy/Rational Quadratic)
• Current bandwidth (effective after adaptation)
• Adaptive vs Fixed indicator
• RBF scale (if RBF) or RQ alpha (if RQ)
BANDIT:
• Selection algorithm (UCB1/UCB1-Tuned/Epsilon/Thompson)
• Active arm name (MMD Shift, Trend, Breakout, etc.)
• Validation status (✓ if validated, ? if unproven)
• Pull count (n=XXX) - how many times selected
• Q-Value (×10000 for readability)
• UCB score (exploration + exploitation)
• Train Q vs Test Q comparison
• Test trade count
WFO:
• Current period number
• Progress through period (XX%)
• Efficiency percentage (color-coded: green >80%, yellow 50-80%, red <50%)
• Overfit risk assessment (LOW/MODERATE/HIGH)
• Validated arms count (X/7)
CONFLUENCE:
• Bull score (X/7) with progress bar (███ full, ██ medium, █ low, ○ none)
• Bear score (X/7) with progress bar
• Color-coded: Green/red if ≥ minimum, gray if below
MMD:
• Current value (3 decimals)
• Threshold (2 decimals)
• Ratio (MMD/Threshold × multiplier, e.g. "1.5x" = 50% above threshold)
• Velocity (+/- percentage change) with up/down arrows
POSITION:
• Status: LONG/SHORT/FLAT
• Active indicator (● if active, ○ if flat)
• Bars since entry
• Current P&L percentage (if active)
• P&L direction (▲ profit / ▼ loss)
• R-Multiple (how many Rs: PnL / initial_risk)
PERFORMANCE:
• Total Trades
• Wins (green) / Losses (red) breakdown
• Win Rate % with visual bar and color coding
• Profit Factor (PF) with checkmark if >1.0
• Expectancy % (average profit per trade)
• Sharpe Ratio with star rating (★★★ >2, ★★ >1, ★ >0, ○ negative)
• Max DD % (maximum drawdown) with "Now: X%" showing current drawdown
🔧 KEY PARAMETERS EXPLAINED
Kernel Configuration:
• Kernel Function : RBF / Laplacian / Cauchy / Rational Quadratic
- Start with Cauchy for stability, experiment with others
• Bandwidth (σ) (0.5-10.0, default 2.0): Kernel sensitivity
- Lower: More signals, more false positives (scalping: 0.8-1.5)
- Medium: Balanced (swing: 1.5-3.0)
- Higher: Fewer signals, stronger quality (position: 3.0-8.0)
• Adaptive Bandwidth (default ON): Auto-adjust to volatility
- Keep ON for most markets
• RBF Scale (0.1-2.0, default 0.5): RBF-specific scaling
- Only matters if RBF kernel selected
- Lower = more sensitive (0.3 for scalping)
- Higher = less sensitive (1.0+ for position)
• RQ Alpha (0.5-5.0, default 2.0): Rational Quadratic tail behavior
- Only matters if RQ kernel selected
- Low (0.5-1.0): Heavy tails, robust to outliers (like Cauchy)
- High (3.0-5.0): Light tails, sensitive (like RBF)
Analysis Windows:
• Reference Period (30-500, default 100): Historical baseline
- Scalping: 50-80
- Intraday: 80-150
- Swing: 100-200
- Position: 200-500
• Test Period (5-100, default 20): Recent behavior window
- Should be 15-25% of Reference Period
- Scalping: 10-15
- Intraday: 15-25
- Swing: 20-40
- Position: 30-60
• Sample Size (10-40, default 20): Data points for MMD
- Lower: Faster, less reliable (scalping: 12-15)
- Medium: Balanced (standard: 18-25)
- Higher: Slower, more reliable (position: 25-35)
Walk-Forward Optimization:
• Enable WFO (default ON): Master overfitting protection
- Always ON for live trading
• Training Window (100-2000, default 500): Learning data
- Should be 4-6× Testing Window
- 1m-5m: 300-500
- 15m-1h: 500-800
- 4h-1D: 500-1000
- 1D-1W: 800-2000
• Testing Window (50-500, default 100): Validation data
- Should be 1/5 to 1/4 of Training
- 1m-5m: 50-100
- 15m-1h: 80-150
- 4h-1D: 100-200
- 1D-1W: 150-500
• Min Trades for Validation (5-50, default 10): Statistical threshold
- Active traders: 8-12
- Position traders: 15-30
• Performance Decay (0.8-0.99, default 0.95): Old data forgetting
- Aggressive: 0.85-0.90 (volatile markets)
- Moderate: 0.92-0.96 (most use cases)
- Conservative: 0.97-0.99 (stable markets)
Multi-Armed Bandit:
• Learning Rate (α) (0.01-0.3, default 0.08): Adaptation speed
- Low: 0.01-0.05 (position trading, stable)
- Medium: 0.06-0.12 (day/swing trading)
- High: 0.15-0.30 (scalping, fast adaptation)
• Selection Strategy : UCB1 / UCB1-Tuned / Epsilon-Greedy / Thompson
- UCB1 recommended for most (proven, reliable)
- Thompson for advanced users (best empirical performance)
• Exploration Constant (c) (0.5-3.0, default 1.5): Explore vs exploit
- Low: 0.5-1.0 (conservative, proven strategies)
- Medium: 1.2-1.8 (balanced)
- High: 2.0-3.0 (experimental, volatile markets)
• Epsilon (0.0-0.3, default 0.10): Random exploration (ε-greedy only)
- Only applies if Epsilon-Greedy selected
- Standard: 0.10 (10% random)
Signal Configuration:
• MMD Threshold (0.05-1.0, default 0.15): Distribution divergence trigger
- Low: 0.08-0.12 (scalping, sensitive)
- Medium: 0.12-0.20 (day/swing)
- High: 0.25-0.50 (position, strong signals)
- Stocks/indices: 0.12-0.18
- Forex: 0.15-0.25
- Crypto: 0.20-0.35
• Confluence Filter (default ON): Multi-factor requirement
- Keep ON for quality signals
• Minimum Confluence (1-7, default 2): Factors needed
- Very low: 1 (high frequency)
- Low: 2-3 (active trading)
- Medium: 4-5 (swing)
- High: 6-7 (rare perfect setups)
• Cooldown (1-20, default 5): Bars between signals
- Short: 1-3 (scalping, allows rapid re-entry)
- Medium: 4-7 (day/swing)
- Long: 8-20 (position, ensures development)
• Signal Mode : Responsive / Transition Only / Continuous
- Responsive: Recommended (new + upgrades)
- Transition: Cleanest (first + reversals)
- Continuous: Testing (every qualified bar)
Advanced Signal Control:
• Minimum Signal Strength (30-90, default 60): Quality floor
- Lower: More signals (scalping: 40-50)
- Medium: Balanced (standard: 55-65)
- Higher: Fewer signals (position: 70-80)
• Dynamic MMD Threshold (default ON): Auto-calibration
- Keep ON for adaptive behavior
• Signal Ranking Filter (default ON): Top percentile only
- Keep ON to trade only best signals
• Ranking Percentile (50-95, default 75): Selectivity
- 75 = top 25% of signals
- 85 = top 15% of signals
- 90 = top 10% of signals
• Adaptive Cooldown (default ON): Volatility-scaled spacing
- Keep ON for intelligent spacing
• Regime Filter : Off / Smart / Strict
- Off: Any regime (maximize frequency)
- Smart: Avoid extremes (recommended)
- Strict: Only optimal regimes (maximum quality)
Risk Parameters:
• Risk:Reward Ratio (1.0-5.0, default 2.0): Target distance multiplier
- Conservative: 1.0-1.5 (higher WR needed)
- Balanced: 2.0-2.5 (standard professional)
- Aggressive: 3.0-5.0 (lower WR acceptable)
• Stop Loss (ATR mult) (0.5-4.0, default 1.5): Stop distance
- Tight: 0.5-1.0 (scalping, low vol)
- Medium: 1.2-2.0 (day/swing)
- Wide: 2.5-4.0 (position, high vol)
• Pause After Drawdown (2-20%, default 8%): Circuit breaker
- Aggressive: 3-6% (small accounts)
- Moderate: 6-10% (most traders)
- Relaxed: 10-15% (large accounts)
Multi-Timeframe:
• MTF Confirmation (default OFF): Higher TF filter
- Turn ON for swing/position trading
- Keep OFF for scalping/day trading
• Higher Timeframe (default "60"): HTF for trend check
- Should be 3-5× chart timeframe
- 1m chart → 5m or 15m
- 5m chart → 15m or 60m
- 15m chart → 60m or 240m
- 1h chart → 240m or D
Display:
• Probability Cloud (default ON): Volatility bands
• Momentum Flow Vectors (default ON): Directional arrows
• Regime Zones (default ON): Distribution shift boxes
• Signal Connections (default ON): Lines between signals
• Dashboard (default ON): Stats table
• Dashboard Position : Top Left / Top Right / Bottom Left / Bottom Right
• Dashboard Size : Minimal / Compact / Full
• Color Scheme : Default / Monochrome / Warm / Cool
• Show MMD Debug Plot (default OFF): Overlay MMD value
- Turn ON temporarily for threshold calibration
🎓 PROFESSIONAL USAGE PROTOCOL
Phase 1: Parameter Calibration (Week 1)
Goal: Find optimal kernel and bandwidth for your instrument/timeframe
Setup:
• Enable "Show MMD Debug Plot"
• Start with Cauchy kernel, 2.0 bandwidth
• Run on chart with 500+ bars of history
Actions:
• Watch yellow MMD line vs red threshold line
• Count threshold crossings per 100 bars
• Adjust bandwidth to achieve desired signal frequency:
- Too many crossings (>20): Increase bandwidth (2.5-3.5)
- Too few crossings (<5): Decrease bandwidth (1.2-1.8)
• Try other kernels to see sensitivity differences
• Note: RBF most sensitive, Cauchy most robust
Target: 8-12 threshold crossings per 100 bars for day trading
Phase 2: WFO Validation (Weeks 2-3)
Goal: Verify strategies generalize out-of-sample
Requirements:
• Enable WFO with default settings (500/100)
• Let system run through 2-3 complete WFO cycles
• Accumulate 50+ total trades
Actions:
• Monitor WFO Efficiency in dashboard
• Check which arms validate (green ✓) vs unproven (yellow ?)
• Review Train Q vs Test Q for selected arm
• If efficiency < 0.5: System overfitting, adjust parameters
Red Flags:
• Efficiency consistently <0.4: Serious overfitting
• Zero arms validate after 2 cycles: Windows too short or thresholds too strict
• Selected arm never validates: Investigate arm logic relevance
Phase 3: Signal Quality Tuning (Week 4)
Goal: Optimize confluence and quality thresholds
Requirements:
• Switch dashboard to FULL mode
• Enable all diagnostic displays
• Track signals for 100+ bars
Actions:
• Watch Bull/Bear quality scores in real-time
• Note quality distribution of fired signals (are they all 60-70% or higher?)
• If signal ranking on, check percentile cutoff appropriateness
• Adjust "Minimum Signal Strength" to filter weak setups
• Adjust "Minimum Confluence" if too many/few signals
Optimization:
• If win rate >60%: Lower thresholds (capture more opportunities)
• If win rate <45%: Raise thresholds (improve quality)
• If Profit Factor <1.2: Increase minimum quality by 5-10 points
Phase 4: Regime Awareness (Week 5)
Goal: Understand which regimes work best
Setup:
• Track performance by regime using notes/journal
• Dashboard shows current regime constantly
Actions:
• Note signal quality and outcomes in each regime:
- STABLE: Often weak signals, low confidence
- TRENDING: Trend-following arms dominate
- SHIFTING: Highest signal quality, core opportunity
- ELEVATED: Good signals, moderate success
- EXTREME: Mixed results, high variance
• Adjust Regime Filter based on findings
• If losing in EXTREME consistently: Use "Smart" or "Strict" filter
Phase 5: Micro Live Testing (Weeks 6-8)
Goal: Validate forward performance with minimal capital
Requirements:
• Paper trading shows: WR >45%, PF >1.2, Efficiency >0.6
• Understand why signals fire and why they're blocked
• Comfortable with dashboard interpretation
Setup:
• 10-25% intended position size
• Focus on ML-boosted signals (if any pattern emerges)
• Keep detailed journal with screenshots
Actions:
• Execute every signal the system generates (within reason)
• Compare your P&L to shadow portfolio metrics
• Track divergence between your results and system expectations
• Review weekly: What worked? What failed? Any execution issues?
Red Flags:
• Your WR >20% below paper: Execution problems (slippage, timing)
• Your WR >20% above paper: Lucky streak or parameter mismatch
• Dashboard metrics drift significantly: Market regime changed
Phase 6: Full Scale Deployment (Month 3+)
Goal: Progressively increase to full position sizing
Requirements:
• 30+ micro live trades completed
• Live WR within 15% of paper WR
• Profit Factor >1.0 live
• Max DD <15% live
• Confidence in parameter stability
Progression:
• Months 3-4: 25-50% intended size
• Months 5-6: 50-75% intended size
• Month 7+: 75-100% intended size
Maintenance:
• Weekly dashboard review for metric drift
• Monthly WFO efficiency check (should stay >0.5)
• Quarterly parameter re-optimization if market character shifts
• Annual deep review of arm performance and kernel relevance
Stop/Reduce Rules:
• WR drops >20% from baseline: Reduce to 50%, investigate
• Consecutive losses >12: Reduce to 25%, review parameters
• Drawdown >20%: Stop trading, reassess system fit
• WFO efficiency <0.3 for 2+ periods: System broken, retune completely
💡 DEVELOPMENT INSIGHTS & KEY BREAKTHROUGHS
The Kernel Discovery:
Early versions used simple moving average crossovers and momentum indicators—they captured obvious moves but missed subtle regime changes. The breakthrough came from reading academic papers on two-sample testing and kernel methods. Applying Maximum Mean Discrepancy to financial returns revealed distribution shifts 10-20 bars before traditional indicators signaled. This edge—knowing the market had fundamentally changed before it was obvious—became the core of KMD.
Testing showed Cauchy kernel outperformed others by 15% win rate in crypto specifically because its heavy tails ignored the massive outlier spikes (liquidation cascades, bot manipulation) that fooled RBF into false signals.
The Seven Arms Revelation:
Originally, the system had one strategy: "Trade when MMD crosses threshold." Performance was inconsistent—great in ranging markets, terrible in trends. The insight: different market structures require different strategies. Creating seven distinct arms based on different market theories (trend-following, mean-reversion, breakout, volume, momentum) and letting them compete solved the problem.
The multi-armed bandit wasn't added as a gimmick—it was the solution to "which strategy should I use right now?" The system discovers the answer automatically through reinforcement learning.
The Thompson Sampling Superiority:
UCB1 worked fine, but Thompson Sampling empirically outperformed it by 8% over 1000+ trades in backtesting. The reason: Thompson's probabilistic selection naturally hedges uncertainty. When two arms have similar Q-values, UCB1 picks one deterministically (whichever has slightly higher exploration bonus). Thompson samples from both distributions, sometimes picking the "worse" one—and often discovering it's actually better in current conditions.
Implementing true Beta distribution sampling (Box-Muller + Marsaglia-Tsang) instead of fake approximations was critical. Fake Thompson (using random with bias) underperformed UCB1. Real Thompson with proper Bayesian updating dominated.
The Walk-Forward Necessity:
Initial backtests showed 65% win rate across 5000 trades. Live trading: 38% win rate over first 100 trades. Crushing disappointment. The problem: overfitting. The training data included the test data (look-ahead bias). Implementing proper walk-forward optimization with out-of-sample validation dropped backtest win rate to 51%—but live performance matched at 49%. That's a system you can trust.
WFO efficiency metric became the North Star. If efficiency >0.7, live results track paper. If efficiency <0.5, prepare for disappointment.
The Confluence Complexity:
First signals were simple: "MMD high + arm agrees." This generated 200+ signals on 1000 bars with 42% win rate—not tradeable. Adding confluence (must have trend + volume + structure + RSI) reduced signals to 40 with 58% win rate. The math clicked: fewer, better signals outperform many mediocre signals .
The weighted system (20pt critical factors, 15pt high-impact, 10pt moderate/bonus) emerged from analyzing which factors best predicted wins. Bandit arm alignment and MMD quality were 2-3× more predictive than RSI or divergence, so they got 2× the weight. This isn't arbitrary—it's data-driven.
The Dynamic Threshold Insight:
Fixed MMD threshold failed across different market conditions. 0.15 worked perfectly on ES but fired constantly on Bitcoin. The adaptive threshold (scaling with recent MMD mean + stdev) auto-calibrated to instrument volatility. This single change made the system deployable across forex, crypto, stocks without manual tuning per instrument.
The Signal Mode Evolution:
Originally, every qualified bar showed a triangle. Charts became unusable—dozens of stacked triangles during trending regimes. "Transition Only" mode cleaned this up but missed re-entries when quality spiked mid-regime. "Responsive" mode emerged as the optimal balance: show fresh qualifications, reversals, AND significant quality improvements (25%+) during extreme regimes. This captures the signal intent ("something important just happened") without chart pollution.
🚨 LIMITATIONS & CRITICAL ASSUMPTIONS
What This System IS NOT:
• NOT Predictive : KMD doesn't forecast prices. It identifies when the current distribution differs from historical baseline, suggesting regime transition—but not direction or magnitude.
• NOT Holy Grail : Typical performance is 48-56% win rate with 1.3-1.8 avg R-multiple. This is a probabilistic edge, not certainty. Expect losing streaks of 8-12 trades.
• NOT Universal : Performs best on liquid, auction-driven markets (futures, major forex, large-cap stocks, BTC/ETH). Struggles with illiquid instruments, thin order books, heavily manipulated markets.
• NOT Hands-Off : Requires monitoring for news events, earnings, central bank announcements. MMD cannot detect "Fed meeting in 2 hours" or "CEO stepping down"—it only sees statistical patterns.
• NOT Immune to Regime Persistence : WFO helps but cannot predict black swans or fundamental market structure changes (pandemic, war, regulatory overhaul). During these events, all historical patterns may break.
Core Assumptions:
1. Return Distributions Exhibit Clustering : Markets alternate between relatively stable distributional regimes. Violation: Permanent random walk, no regime structure.
2. Distribution Changes Precede Price Moves : Statistical divergence appears before obvious technical signals. Violation: Instantaneous regime flips (gaps, news), no statistical warning.
3. Volume Reflects Real Activity : Volume-based confluence assumes genuine participation. Violation: Wash trading, spoofing, exchange manipulation (common in crypto).
4. Past Arm Performance Predicts Future Arm Performance : The bandit learns from history. Violation: Fundamental strategy regime change (e.g., market transitions from mean-reverting to trending permanently).
5. ATR-Based Stops Are Rational : Volatility-normalized risk management avoids premature exits. Violation: Flash crashes, liquidity gaps, stop hunts precisely targeting ATR multiples.
6. Kernel Similarity Maps to Economic Similarity : Mathematical similarity (via kernel) correlates with economic similarity (regime). Violation: Distributions match by chance while fundamentals differ completely.
Performs Best On:
• ES, NQ, RTY (S&P 500, Nasdaq, Russell 2000 futures)
• Major forex pairs: EUR/USD, GBP/USD, USD/JPY, AUD/USD
• Liquid commodities: CL (crude oil), GC (gold), SI (silver)
• Large-cap stocks: AAPL, MSFT, GOOGL, TSLA (>$10M avg daily volume)
• Major crypto on reputable exchanges: BTC, ETH (Coinbase, Kraken)
Performs Poorly On:
• Low-volume stocks (<$1M daily volume)
• Exotic forex pairs with erratic spreads
• Illiquid crypto altcoins (manipulation, unreliable volume)
• Pre-market/after-hours (thin liquidity, gaps)
• Instruments with frequent corporate actions (splits, dividends)
• Markets with persistent one-sided intervention (central bank pegs)
Known Weaknesses:
• Lag During Instantaneous Shifts : MMD requires (test_window) bars to detect regime change. Fast-moving events (5-10 bar crashes) may bypass detection entirely.
• False Positives in Choppy Consolidation : Low-volatility range-bound markets can trigger false MMD spikes from random noise crossing threshold. Regime filter helps but doesn't eliminate.
• Parameter Sensitivity : Small bandwidth changes (2.0→2.5) can alter signal frequency by 30-50%. Requires careful calibration per instrument.
• Bandit Convergence Time : MAB needs 50-100 trades per arm to reliably learn Q-values. Early trades (first 200 bars) are essentially random exploration.
• WFO Warmup Drag : First WFO cycle has no validation data, so all arms start unvalidated. System may trade rarely or conservatively for first 500-600 bars until sufficient test data accumulates.
• Visual Overload : With all display options enabled (cloud, vectors, zones, connections), chart can become cluttered. Disable selectively for cleaner view.
⚠️ RISK DISCLOSURE
Trading futures, forex, stocks, options, and cryptocurrencies involves substantial risk of loss and is not suitable for all investors. Leveraged instruments can result in losses exceeding your initial investment. Past performance, whether backtested or live, is not indicative of future results.
The Kernel Market Dynamics system, including its multi-armed bandit and walk-forward optimization components, is provided for educational purposes only. It is not financial advice, investment advice, or a recommendation to buy or sell any security or instrument.
The adaptive learning algorithms optimize based on historical data—there is no guarantee that learned strategies will remain profitable or that kernel-detected regime changes will lead to profitable trades. Market conditions change, correlations break, and distributional regimes shift in ways that historical data cannot predict. Black swan events occur.
Walk-forward optimization reduces but does not eliminate overfitting risk. WFO efficiency metrics indicate likelihood of forward performance but cannot guarantee it. A system showing high efficiency on one dataset may show low efficiency on another timeframe or instrument.
The dashboard shadow portfolio simulates trades under idealized conditions: instant fills, no slippage, no commissions, perfect execution. Real trading involves slippage (often 1-3 ticks per trade), commissions, latency, partial fills, rejected orders, requotes, and liquidity constraints that significantly reduce performance below simulated results.
Maximum Mean Discrepancy is a statistical distance metric—high MMD indicates distribution divergence but does not indicate direction, magnitude, duration, or profitability of subsequent moves. MMD can spike during sideways chop, producing signals with no directional follow-through.
Users must independently validate system performance on their specific instruments, timeframes, broker execution, and market conditions before risking capital. Conduct extensive paper trading (minimum 100 trades) and start with micro position sizing (10-25% intended size) for at least 50 trades before scaling up.
Never risk more capital than you can afford to lose completely. Use proper position sizing (1-2% risk per trade maximum). Implement stop losses on every trade. Maintain adequate margin/capital reserves. Understand that most retail traders lose money. Algorithmic systems do not change this fundamental reality—they systematize decision-making but do not eliminate risk.
The developer makes no warranties regarding profitability, suitability, accuracy, reliability, or fitness for any particular purpose. Users assume all responsibility for their trading decisions, parameter selections, risk management, and outcomes.
By using this indicator, you acknowledge that you have read and understood these risk disclosures and accept full responsibility for all trading activity and potential losses.
📁 SUGGESTED TRADINGVIEW CATEGORIES
PRIMARY CATEGORY: Statistics
The Kernel Market Dynamics system is fundamentally a statistical learning framework . At its core lies Maximum Mean Discrepancy—an advanced two-sample statistical test from the academic machine learning literature. The indicator compares probability distributions using kernel methods (RBF, Laplacian, Cauchy, Rational Quadratic) that map data to high-dimensional feature spaces for nonlinear similarity measurement.
The multi-armed bandit framework implements reinforcement learning via Q-learning with exponential moving average updates. Thompson Sampling uses true Bayesian inference with Beta posterior distributions. Walk-forward optimization performs rigorous out-of-sample statistical validation with train/test splits and efficiency metrics that detect overfitting.
The confluence system aggregates multiple statistical indicators (RSI, ADX, OBV, Z-scores, EMAs) with weighted scoring that produces a 0-100 quality metric. Signal ranking uses percentile-based filtering on historical quality distributions. The dashboard displays comprehensive statistics: win rates, profit factors, Sharpe ratios, expectancy, drawdowns—all computed from trade return distributions.
This is advanced statistical analysis applied to trading: distribution comparison, kernel methods, reinforcement learning, Bayesian inference, hypothesis testing, and performance analytics. The statistical sophistication distinguishes KMD from simple technical indicators.
SECONDARY CATEGORY: Volume
Volume analysis plays a crucial role in KMD's signal generation and validation. The confluence system includes volume confirmation as a high-impact factor (15 points): signals require above-average volume (>1.2× mean) for full points, with scaling based on volume ratio. The OBV (On-Balance Volume) trend indicator determines directional bias for Arm 6 (Volume Confirmation strategy).
Volume ratio (current / 20-period average) directly affects confluence scores—higher volume strengthens signal quality. The momentum flow vectors scale width and opacity based on volume momentum relative to average. Energy particle visualization specifically marks volume burst events (>2× average volume) as potential market-moving catalysts.
Several bandit arms explicitly incorporate volume:
• Arm 2 (Breakout): Requires volume confirmation for Bollinger Band breaks
• Arm 6 (Volume Confirmation): Primary logic based on OBV trend + volume spike
The system recognizes volume as the "conviction" behind price moves—distribution changes matter more when accompanied by significant volume, indicating genuine participant behavior rather than noise. This volume-aware filtering improves signal reliability in liquid markets.
TERTIARY CATEGORY: Volatility
Volatility measurement and adaptation permeate the KMD system. ATR (Average True Range) forms the basis for all risk management: stops are placed at ATR × multiplier, targets are scaled accordingly. The adaptive bandwidth feature scales kernel bandwidth (0.5-2.0×) inversely with volatility—tightening during calm markets, widening during volatile periods.
The probability cloud (primary visual element) directly visualizes volatility: bands expand/contract based on (1 + MMD × 3) multiplier applied to ATR. Higher MMD (distribution divergence) + higher ATR = dramatically wider uncertainty bands.
Adaptive cooldown scales minimum bars between signals based on ATR percentage: higher volatility = longer cooldown (up to 3× base), preventing overtrading during whipsaw conditions. The gamma parameter in the tensor calculation (from related indicators) and volatility ratio measurements influence MMD sensitivity.
Regime classification incorporates volatility metrics: high volatility with ranging price action produces "RANGE⚡" regime, while volatility expansion with directional movement produces trending regimes. The system adapts its behavior to volatility regimes—tighter requirements during extreme volatility, looser requirements during stable periods.
ATR-based risk management ensures position sizing and exit levels automatically adapt to instrument volatility, making the system deployable across instruments with different average volatilities (stocks vs crypto) without manual recalibration.
══════════════════════════════════════════
CLOSING STATEMENT
══════════════════════════════════════════
Kernel Market Dynamics doesn't just measure price—it measures the probability structure underlying price. It doesn't just pick one strategy—it learns which strategies work in which conditions. It doesn't just optimize on history—it validates on the future.
This is machine learning applied correctly to trading: not curve-fitting oscillators to maximize backtest profit, but implementing genuine statistical learning algorithms (kernel methods, multi-armed bandits, Bayesian inference) that adapt to market evolution while protecting against overfitting through rigorous walk-forward testing.
The seven arms compete. The Thompson sampler selects. The kernel measures. The confluence scores. The walk-forward validates. The signals fire.
Most indicators tell you what happened. KMD tells you when the game changed.
"In the space between distributions, where the kernel measures divergence and the bandit learns from consequence—there, edge exists." — KMD-WFO-MAB v2
Taking you to school. — Dskyz, Trade with insight. Trade with anticipation.
MTF FVG, OB & Sessions1. Advanced Multi-Timeframe Fair Value Gaps (FVG)
This is the most complex part of the script. Unlike standard FVG indicators that just draw boxes, this module uses Arrays to manage the gaps dynamically.
Dynamic Mitigation: The script tracks every FVG stored in memory. If price trades through an FVG (mitigates it), the script automatically deletes the box.
Option (Wick vs. Close): You can choose to delete the FVG as soon as a wick touches the other side, or only if a candle closes through it.
Displacement Filter: It uses an ATR (Average True Range) multiplier to ensure that only significant, impulsive moves (displacement) generate an FVG, filtering out low-volatility noise.
Confluence (Overlap) Logic: The script checks for overlaps between the three different timeframes (e.g., a 4H FVG inside a Daily FVG).
Alignment Setting: You can set the script to highlight specific boxes only when timeframes align, indicating a stronger level of interest.
3 Monitorable Timeframes: Defaults to 4-Hour, 1-Hour, and 15-Minute, but fully customizable.
2. Multi-Timeframe Order Blocks (OB)
This module identifies potential Order Blocks based on Swing Highs and Swing Lows (Pivot points).
Pivot Detection: It looks for a specific pattern of highs/lows (defined by the "Swing Lookback" input) to identify key reversal points on higher timeframes.
MTF Overlay: It fetches these structures from the 3 defined timeframes and projects them onto your current chart.
Visuals: Draws extended boxes representing the open/close range of the order block candle.
3. Session Liquidity (Highs & Lows)
This module tracks the specific trading sessions to highlight intraday liquidity pools.
Sessions Tracked: Asia, London, and New York.
Behavior:
While the session is active, it tracks the highest and lowest price.
Once the session closes, it draws dashed lines extending forward from that session's High and Low.
Purpose: These levels act as key targets for liquidity sweeps (e.g., price sweeping the London Low before reversing).
Technical Summary
Data Handling: Uses request.security with barmerge.lookahead_on to fetch data from higher timeframes without repainting historical closed bars.
Efficiency: Uses specific types (type OB_Data) and Arrays to handle data efficiently, keeping the script fast despite processing multiple timeframes simultaneously.
Limits: Includes a built-in "Max FVG Storage" and "Delete After X Bars" feature to prevent the chart from becoming too cluttered with old data.
VisionAlgoPurpose: A multi-functional trading indicator that combines trend analysis, market structure, support/resistance zones, supply/demand levels, signal generation, risk management (TP/SL), and a visual dashboard for informed trading decisions.
1. Signal Generation
VisionAlgo provides buy and sell signals based on several technical filters:
SuperTrend Signals:
Calculated using a customizable ATR-based supertrend formula.
Generates bullish signals when price crosses above the supertrend and bearish signals when price crosses below.
Signals can be filtered into Normal and Strong signals depending on trend alignment with EMA/SMA filters.
Moving Average Filter:
Users can apply a moving average filter (SMA, EMA, WMA, VWMA, HMA) to validate signals.
Ensures trades align with the broader trend.
Signal Sensitivity & Mode:
Adjustable sensitivity (1–15) to control frequency of signals.
Signal Mode options: All, Normal, or Strong.
Candle Coloring:
Bars can be automatically colored bullish or bearish based on active signals for quick visual reference.
2. Trend and Market Structure Indicators
EMA Trend Confirmation:
200-period EMA serves as a long-term trend filter.
Signals above EMA reinforce bullish bias, signals below reinforce bearish bias.
Linear Regression & Trend Slopes:
Calculates slope, intercept, and deviations of price to detect potential reversal zones and trend direction.
Power MA / Trend Ribbon / Cirrus Cloud:
Optional advanced trend indicators that provide layered confirmation of market direction.
Auto Trend Lines:
Draws trend lines automatically based on swing highs/lows for visual trend guidance.
3. Support/Resistance & Supply-Demand Zones
EzAlgo SR Levels:
Dynamically detects support/resistance levels using pivot highs/lows.
Zones can be extended and colored differently based on bullish/bearish conditions.
Supply/Demand Zones (POI):
Tracks high/low swings to mark supply and demand areas.
Uses ATR-based buffers for box sizing.
Prevents overlapping zones and highlights breakout-of-structure (BOS) events.
Reversal Bands / Retest Zones:
Multi-layered bands around price to detect potential reversal and retest zones using ATR or True Range multipliers.
4. Risk Management – TP / SL System
Entry, Stop Loss, and Take Profit Levels:
Automatically calculates and plots TP1, TP2, TP3 based on ATR multiples.
Stop Loss dynamically adjusts depending on trade direction and risk multiplier.
TP/SL Breakout Labels:
Labels appear on the chart when price hits a TP or SL level for instant trade feedback.
Customizable Colors for Visualization:
Different colors for entry, SL, TP levels for clarity.
5. Dashboard Functionality
Multi-Timeframe Trend Overview:
Displays trend direction across multiple timeframes (1h, 2h, 4h, 8h, Daily).
Uses EMA to define bullish/bearish trend for each timeframe.
Current Position and Trend Summary:
Shows active position (Buy/Sell) and current trend in a compact table on the chart.
Background color dynamically changes to green/red based on bullish/bearish bias.
6. Advanced Features
Trailing Stop Loss (Optional):
Can enable dynamic trailing stops to lock profits.
Reversals & Reversal Bands:
Highlight potential market turning points using multi-period ATR bands.
Trend Line Customization:
Line color, width, style, and extendable endpoints for visual trend analysis.
Volume / Range Filters:
Incorporates filters based on price consolidation and breakout strength.
7. Code Structure Highlights
Input Section:
All major user inputs are grouped logically (Buy/Sell, Indicators, TP/SL, Dashboard, Trend Lines, etc.).
Signal Logic:
Computes bullish and bearish signals based on supertrend and moving averages.
Differentiates normal and strong signals for precision.
Position Tracking:
Keeps track of long/short positions and whether TP levels have been hit.
TP/SL Logic:
Uses ATR-based multipliers for dynamic risk management.
Plots horizontal lines and labels for each TP and SL.
Support & Resistance Logic:
Detects pivot highs/lows for SR levels.
Uses arrays to manage dynamic lines and zone fills.
Supply/Demand Zone Logic:
Avoids overlapping zones with ATR buffer.
Marks breakout-of-structure (BOS) zones when price breaks key levels.
Dashboard Logic:
Creates a visual table with current position, trend, and timeframe analysis.
MACD Trading System - Professional V2# MACD Trading System - Professional V2
## Executive Summary
**MACD Pro V2** is an institutional-grade trading indicator combining classical MACD analysis with advanced risk management, multi-timeframe confirmation, and comprehensive performance metrics. Designed for both manual traders and algorithmic systems, this indicator provides actionable signals with built-in stop loss calculation, take profit targets, position sizing, and trailing stop logic.
This indicator is NOT just a signal generator—it's a complete trading system with risk/reward management, performance tracking, and market regime detection.
---
## Core Features
### 1. Advanced MACD Calculation
- **Customizable EMAs**: Fast (default 8), Slow (default 21), Signal (default 5)
- **Confirmed Signals**: Uses barstate.isconfirmed to prevent repainting
- **Zero-Line Position**: Shows MACD above/below zero for momentum context
### 2. Multi-Timeframe Analysis
- **4 Simultaneous Timeframes**: 4H, 1H, 15M, 5M analyzed in parallel
- **MTF Alignment Score**: 0-100% showing consensus across timeframes
- **Smart Requests**: Uses lookahead=barmerge.lookahead_off for accuracy
### 3. Market Regime Detection
Automatically identifies current market conditions:
- **TRENDING** - ADX > 25, strong directional movement
- **RANGING** - ADX < 20, choppy sideways movement
- **VOLATILE** - ATR > 1.5x average, high uncertainty
- **NORMAL** - Default market state
### 4. Integrated Risk Management
Complete position management system:
- **Stop Loss Calculation**: Automatic SL placement based on ATR × multiplier
- **Take Profit Targets**: Calculated using Risk:Reward ratio (default 2:1)
- **Position Sizing**: Scales position size based on account risk percentage
- **Trailing Stop**: Dynamically adjusts SL as price moves in your favor
- **Drawdown Monitoring**: Tracks maximum drawdown vs account
### 5. Advanced Signal Scoring
0-100 point system weighing:
- **MTF Alignment (35%)**: Multi-timeframe confirmation strength
- **Momentum (25%)**: RSI conditions + Divergence detection
- **Volume (20%)**: Volume profile and confirmation
- **Volatility (20%)**: Market regime adjustment
**Signal Classifications:**
- **STRONG (70+)**: High confidence, tight stops, optimal entry
- **MEDIUM (50-69)**: Valid signals, confirm with price action
- **WEAK (<50)**: Low conviction, skip or use tight risk management
### 6. Professional Performance Metrics
Real-time trading statistics:
- **Win Rate**: Percentage of winning trades
- **Max Drawdown**: Largest peak-to-trough decline
- **Sharpe Ratio**: Risk-adjusted returns (anualized)
- **Profit Factor**: Gross profit / Gross loss ratio
- **Consecutive Losses**: Psychological stress indicator
### 7. Advanced Filtering System
- **Divergence Detection**: Automatic bullish/bearish divergence identification
- **Support/Resistance**: Pivot-based dynamic S/R levels
- **Volume Confirmation**: Only takes signals with volume > 1.0x average
- **Session Filter**: Optional trading hours restriction
- **Volatility Adjustment**: Reduces entries in extremely high volatility
---
## How It Works
### Signal Generation Process
**Step 1: MACD Crossover**
- Crossover of MACD above/below signal line triggers base signal
- Uses confirmed values to prevent false signals
**Step 2: Multi-Timeframe Confirmation**
- Checks trend alignment on 4H, 1H, 15M, 5M
- Calculates MTF alignment percentage
- Higher alignment = higher confidence
**Step 3: Advanced Scoring**
Signal is scored on 100-point scale:
- MTF alignment contribution (35 pts max)
- RSI + Divergence (25 pts max)
- Volume profile (20 pts max)
- Volatility regime adjustment (20 pts max)
**Step 4: Filter Application**
- Session filter (if enabled)
- Support/Resistance proximity bonus
- Volume confirmation requirement
- Drawdown check (if risk mgmt enabled)
**Step 5: Risk Calculation**
- Stop Loss placed 2 ATR below entry (customizable)
- Take Profit calculated using 2:1 risk/reward ratio
- Position size scaled to risk 1% per trade
- Trailing stop activated after 1R profit
**Step 6: Signal Output**
- Buy Signal: Green triangle (Strong) or circle (Medium)
- Sell Signal: Red triangle (Strong) or circle (Medium)
- Dashboard shows complete trade details
---
## Trading Scenarios
### Scenario 1: Strong Buy Setup
```
Requirements met:
✓ MACD crosses above signal line
✓ 3/4 timeframes bullish (4H, 1H, 15M)
✓ RSI oversold (< 30)
✓ Volume spike confirmed
✓ Score: 78/100 → STRONG BUY
System provides:
- Entry: Current price
- Stop Loss: 2 ATR below entry
- Take Profit: 2× risk distance above
- Position Size: Adjusted to 1% account risk
- Trailing Stop: Activates at 1R profit
```
### Scenario 2: Medium Buy with Divergence
```
Requirements met:
✓ MACD crosses above signal line
✓ 2/4 timeframes bullish (4H, 1H)
✓ Bullish divergence detected
✓ Price near support level
✓ Score: 62/100 → MEDIUM BUY
Considerations:
- Lower confidence → tighter risk management
- Use smaller position size
- Require additional confirmation
- Better as counter-trend entry
```
### Scenario 3: Ranging Market Filter
```
Market condition detected: RANGING
ADX < 20, sideways movement
System response:
- Reduces signal score by volatility adjustment
- May skip signals entirely
- Prioritizes higher confluence
- Warns of low trend probability
Best action: Wait for trending market
```
---
## Risk Management Deep Dive
### Stop Loss Calculation
```
Stop Loss Distance = ATR × ATR Multiplier (default 2.0)
Example:
- Current price: 1.0850
- ATR(14): 0.0045
- SL Distance: 0.0045 × 2.0 = 0.009
- BUY SL: 1.0850 - 0.009 = 1.0760
```
### Position Sizing
```
Position Size = (Account Risk % / Price Risk %)
Example:
- Risk per trade: 1% of account
- Stop distance: 0.009 on price of 1.0850
- Price risk: 0.009 / 1.0850 = 0.83%
- Position size: 1.0% / 0.83% = 1.2x (capped at 1.0x max)
```
### Trailing Stop Logic
```
Normal SL: 2 ATR below entry
Trigger Level: Entry + (Entry - SL) × Trail Activation (1.0R)
Trailing Mechanism:
- If price hits trigger, trailing SL activates
- SL moves up to: Close - 2 ATR
- SL never moves down, only up (for longs)
- Protects profits while allowing upside
```
### Drawdown Protection
```
Tracks:
- Peak equity reached
- Current drawdown from peak
- Maximum drawdown recorded
- Stops trading if max DD exceeded
Example:
- Peak: $10,000
- Current: $9,200
- Drawdown: 8%
- Max allowed: 10%
- Status: CONTINUE TRADING
```
---
## Dashboard Metrics Explained
### Market Section
- **Market Regime**: Current state (Trending/Ranging/Volatile/Normal)
- **ADX Value**: Trend strength indicator (0-100)
### Position Section
- **Current Position**: LONG, SHORT, or NONE
- **P&L**: Unrealized profit/loss percentage if in position
### Timeframe Section
- Individual 4H/1H/15M trend status
- **Alignment**: Percentage of bullish timeframes
### Risk Management Section
- **Stop Loss %**: Distance from current price
- **Take Profit %**: Target profit distance
- **Position Size**: Capital allocation multiplier
- **Risk %**: Per-trade risk percentage
### Performance Section
- **Win Rate**: % of winning trades (>60% is excellent)
- **Max DD**: Maximum drawdown experienced
- **Sharpe Ratio**: Risk-adjusted return metric
- **Profit Factor**: Ratio of profits to losses
### Indicators Section
- **RSI**: Momentum and overbought/oversold levels
- **Volume**: Current vs. average volume ratio
- **Divergence**: Active divergence detection
---
## Advanced Features
### Divergence Detection
```
Bullish Divergence:
- Price makes lower low
- MACD makes higher high
- Signals potential reversal UP
Bearish Divergence:
- Price makes higher high
- MACD makes lower low
- Signals potential reversal DOWN
Lookback: 20 bars (customizable)
```
### Support & Resistance
```
Method: Pivot High/Low detection
- Pivot Left/Right: 10 bars
- Dynamic S/R levels update as new pivots form
- Bonus score if entry near identified levels
```
### Performance Tracking
Real-time statistics calculated from:
- Win/loss signals
- Profit/loss per trade
- Consecutive losing trades
- Cumulative returns
- Standard deviation (Sharpe calculation)
Stores last 100 trades in memory for statistics.
---
## Input Parameters Explained
### MACD Settings
- **Fast EMA** (5-13): Lower = more responsive, more false signals
- **Slow EMA** (20-26): Higher = smoother, misses faster moves
- **Signal EMA** (5-9): Crossover sensitivity
### Risk Management
- **ATR Period** (default 14): Volatility measurement period
- **SL ATR Multiplier** (1.5-3.0): Stop loss tightness
- **Risk:Reward Ratio** (1-5): Profit target calculation
- **Trail Activation** (0.5-2.0): When to start trailing stop
- **Risk Per Trade** (0.1-5.0): Account risk percentage
- **Max Drawdown** (5-30%): Trading pause threshold
### Scoring Weights
Customize signal emphasis:
- **MTF Alignment** (35%): How important is multi-timeframe
- **Momentum** (25%): RSI and divergence weight
- **Volume** (20%): Volume confirmation priority
- **Volatility** (20%): Regime adjustment strength
### Advanced Filters
- **Check Divergence**: Enable/disable divergence scoring
- **Session Filter**: Restrict to specific hours
- **Min Volume Ratio**: Minimum volume for signal
### Display
- **Show Dashboard**: Main metrics table
- **Show Performance**: Trading statistics
- **Show S/R Levels**: Support/resistance visualization
---
## Best Practices
1. **Backtest Before Trading**: Test parameters on your preferred pairs
2. **Start with Strong Signals**: Use only 70+ scored signals initially
3. **Position Size**: Never risk more than 1-2% per trade
4. **Market Regime Awareness**: Skip ranging market entries
5. **Volume Confirmation**: Always check volume spikes
6. **Profit Taking**: Lock in profits at TP, don't let winners die
7. **Loss Management**: Honor stop losses, don't move them
8. **Performance Review**: Check metrics weekly, adjust if needed
---
## Trading Strategy Examples
### Conservative Strategy (Win-Rate Focus)
```
Settings:
- Signal Score Minimum: 70+ (Strong only)
- Risk Per Trade: 0.5%
- Risk:Reward: 3:1
- Position Size: 0.5x (smaller)
Targets:
- Win Rate > 65%
- Max DD < 5%
- Profit Factor > 2.0
```
### Aggressive Strategy (Profit Focus)
```
Settings:
- Signal Score Minimum: 50+ (Medium+)
- Risk Per Trade: 2%
- Risk:Reward: 1.5:1
- Position Size: 1.0x (maximum)
Targets:
- Win Rate > 55%
- Max DD < 10%
- Profit Factor > 1.5
```
### Trend Trading Strategy
```
Settings:
- Only trade when ADX > 25 (Trending)
- MTF Alignment: 3+ timeframes
- Use Trailing Stop: Yes
- Risk:Reward: 2.5:1
Focus on: Riding large moves
Best on: 4H timeframe
Pairs: Trending majors (EURUSD, GBPUSD)
```
### Divergence Trading Strategy
```
Settings:
- Signal Score Minimum: 60+
- Enable Divergence: Yes
- Volume Confirmation: Required
- Position Size: 0.75x
Focus on: Reversal entries
Best setup: Divergence at resistance/support
Risk management: Tight stops (1.5 ATR)
```
---
## Advantages
✓ Complete trading system, not just signals
✓ Built-in risk management and position sizing
✓ Real-time performance tracking
✓ Multi-timeframe confirmation reduces false signals
✓ Advanced filtering and divergence detection
✓ Market regime awareness
✓ Customizable scoring weights
✓ Professional dashboard display
✓ Support/resistance integration
✓ Trailing stop logic for profit protection
---
## Limitations
- Lagging indicator (uses confirmed bars)
- Works best on trending markets
- Not optimized for news/event trading
- Requires parameter optimization per pair
- Performance varies by timeframe
- Past performance doesn't guarantee future results
- Can produce whipsaw signals in ranging markets
---
## System Requirements
- TradingView Premium or higher (for advanced charting)
- Recommended: 4H or 1H timeframe
- Historical data: Minimum 100 bars
- Currency pairs: Works on all FX pairs, stocks, commodities
---
## Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice and does not guarantee profits. Past performance does not predict future results.
**Important Notices:**
- Always use proper risk management
- Trade only with capital you can afford to lose
- Backtest thoroughly before live trading
- Combine with your own analysis
- Consider external market factors and news
- Monitor positions actively
- Keep emotional discipline
---
## Support & Optimization
For best results:
1. Test on your preferred instrument (6-12 months history)
2. Adjust MACD parameters to your timeframe
3. Optimize scoring weights to your style
4. Set risk management per your account size
5. Document your trade results and review weekly
6. Adapt parameters if performance degrades
This is a powerful system when used correctly. Respect the rules and let statistics work in your favor.
Extreme Candle Pattern Visualizer🟠 OVERVIEW
This indicator compares the current candle's percentage change against historical data, then highlights past candles with equal or bigger magnitude of movement. Also, for all the highlighted past candles, it tracks how far price extends before recovering to its starting point. It also provides statistical context through percentile rankings.
IN SHORT: Quickly spot similar price movements in the past and understand how unusual the current candle is using percentile rankings.
🟠 CORE CONCEPT
The indicator operates on two fundamental principles:
1. Statistical Rarity Detection
The script calculates the percentage change (open to close) of every candle within a user-defined lookback period and determines where the current candle ranks in this distribution. A candle closing at -9% might fall in the bottom 5th percentile, indicating it's more extreme than 95% of recent candles. This percentile ranking helps traders identify statistically unusual moves that often precede reversals or extended trends.
2. Recovery Path Mapping
Once extreme candles are identified (those matching or exceeding the current candle's magnitude), the indicator tracks their subsequent price action. For bearish candles, it measures how far price dropped before recovering back to the candle's opening price. For bullish candles, it tracks how high price climbed before returning to the open. This reveals whether extreme moves typically extend further or reverse quickly.
🟠 PRACTICAL APPLICATIONS
Mean Reversion Trading:
Candles in extreme percentiles (below 10% or above 90%) often signal oversold/overbought conditions. The recovery lines show typical extension distances, helping traders set profit targets for counter-trend entries.
Momentum Continuation:
When extreme candles show small recovery percentages before price reverses back, it suggests strong directional momentum that may continue.
Stop Loss Placement:
Historical recovery data reveals typical extension ranges after extreme moves, informing more precise stop loss positioning beyond noise but before major reversals.
Pattern Recognition:
By visualizing how similar historical extremes resolved, traders gain context for current price action rather than trading in isolation.
🟠 VISUAL ELEMENTS
Orange Circles: Mark historical candles with similar or greater magnitude to current candle
Red Lines: Track downward extensions after bearish extreme candles
Green Lines: Track upward extensions after bullish extreme candles
Percentage Labels: Show exact extension distance from candle close to extreme point
Percentile Label: Color-coded box displaying current candle's statistical ranking
Hollow Candles: Background rendering for clean chart presentation
🟠 ORIGINALITY
This indicator uniquely combines statistical percentile analysis with forward-looking recovery tracking. While many indicators identify extreme moves, few show what happened next across multiple historical instances simultaneously. The dual approach provides both the "how rare is this?" question (percentile) and "what typically happens after?" answer (recovery paths) in a single visual framework.
NUPL-Z For Loop🧠 Overview
NUPL-Z For Loop is a trend-following indicator built on Bitcoin’s on-chain Net Unrealized Profit/Loss (NUPL) metric. It uses a Z-scored transformation of NUPL and a custom loop-based scoring system to measure the consistency of directional movement. Rather than identifying tops and bottoms, this tool is designed to track sustained trends and filter out short-term noise, making it ideal for momentum-aligned strategies.
🧩 Key Features
Loop-Based Trend Logic: Assesses trend strength by summing the number of upward vs. downward moves in Z-scored NUPL across a custom lookback.
Z-Score Normalization: Applies long-term statistical normalization to NUPL to emphasize deviation from average behavior over time.
Threshold-Based Regime Shifts: Custom input thresholds define when trend strength is significant enough to trigger long or short signals.
Directional Market State Tracking: Internally tracks bullish, bearish, or neutral conditions to guide trend entries.
BTC-Focused On-Chain Analysis: Tailored specifically for Bitcoin using Market Cap and Realized Cap inputs.
🔍 How It Works
NUPL Calculation: Derived as the percentage of net unrealized profit relative to market cap: (MC - RMC) / MC * 100.
Z-Scoring: NUPL is normalized using a rolling mean and standard deviation over a long window (default 1300 days) to create a smoothed trend signal.
Directional Loop: A custom loop iterates from the start_loop to the end_loop, comparing the current Z-score to past values.
Each instance where NUPL_Z > NUPL_Z adds +1 to the score; otherwise, it subtracts -1.
This cumulative score reflects how consistently NUPL-Z has been trending.
Signal Logic:
Long signal when loop score exceeds long_threshold.
Short signal when score falls below short_threshold.
CD State Engine: Maintains the current trend regime (1 for long, -1 for short), which drives plot coloring and overlays.
🔁 Use Cases & Applications
Momentum Trend Filter: Detects and confirms sustained directional strength in BTC’s profit/loss positioning.
Noise Suppression: Avoids reactive signals from one-off spikes or dips in NUPL by requiring a consistent trend before confirming bias.
Best Suited for BTC: Designed specifically for Bitcoin’s price and on-chain structure, using its unique NUPL dynamics.
✅ Conclusion
NUPL-Z For Loop transforms a traditionally mean-reverting indicator into a trend-following signal engine. By scoring the consistency of movement in normalized NUPL, this tool identifies trend strength rather than reversal potential — providing more reliable context for momentum-aligned trades on Bitcoin.
⚠️ Disclaimer
The content provided by this indicator is for educational and informational purposes only. Nothing herein constitutes financial or investment advice. Trading and investing involve risk, including the potential loss of capital. Always backtest and apply risk management suited to your strategy.
Multiple AVWAP [OmegaTools]The Multiple AVWAP indicator is a sophisticated trading tool designed for professional traders who require precision in volume-weighted price tracking. This indicator allows for the deployment of multiple Anchored Volume Weighted Average Price (AVWAP) calculations simultaneously, offering deep insights into price movements, dynamic support and resistance levels, and trend structures across multiple timeframes.
This indicator caters to both institutional and retail traders by integrating flexible anchoring methods, multi-timeframe adaptability, and enhanced visualization features. It also includes deviation bands for statistical analysis, making it a comprehensive volume-based trading solution.
Key Features & Functionalities
1. Multiple AVWAP Configurations
Users can configure up to four distinct AVWAP calculations to track different market conditions.
Supports various anchoring methods:
Fixed: A traditional AVWAP that starts from a defined historical point.
Perpetual: A rolling VWAP that continuously adjusts over time.
Extension: An extension-based AVWAP that projects from past calculations.
High Volume: Anchors AVWAP to the highest volume bar within a specified period.
None: Option to disable AVWAP calculation if not required.
2. Advanced Deviation Bands
Implements standard deviation bands (1st and 2nd deviation) to provide a statistical measure of price dispersion from the AVWAP.
Serves as a dynamic method for identifying overbought and oversold conditions relative to VWAP pricing.
Deviation bands are customizable in terms of visibility, color, and transparency.
3. Multi-Timeframe Support
Users can assign different timeframes to each AVWAP calculation for macro and micro analysis.
Helps in identifying long-term institutional trading levels alongside short-term intraday trends.
4. Z-Score Normalization Mode
Option to standardize oscillator values based on AVWAP deviations.
Converts price movements into a statistical Z-score, allowing traders to measure price strength in a normalized range.
Helps in detecting extreme price dislocations and mean-reversion opportunities.
5. Customizable Visual & Aesthetic Settings
Fully customizable line colors, transparency, and thickness to enhance clarity.
Users can modify AVWAP and deviation band colors to distinguish between different levels.
Configurable display options to match personal trading preferences.
6. Oscillator Mode for Trend & Momentum Analysis
The indicator converts price deviations into an oscillator format, displaying AVWAP strength and weakness dynamically.
This provides traders with a momentum-based perspective on volume-weighted price movements.
User Guide & Implementation
1. Configuring AVWAPs for Optimal Use
Choose the mode for each AVWAP instance:
Fixed (set historical point)
Perpetual (rolling, continuously updated AVWAP)
Extension (projection from past AVWAP levels)
High Volume (anchored to highest volume bar)
None (disables the AVWAP line)
Adjust the length settings to fine-tune calculation sensitivity.
2. Utilizing Deviation Bands for Market Context
Activate deviation bands to see statistical boundaries of price action.
Monitor +1 / -1 and +2 / -2 standard deviation levels for extended price movements.
Consider price action outside of deviation bands as potential mean-reversion signals.
3. Multi-Timeframe Analysis for Institutional-Level Insights
Assign different timeframes to each AVWAP to compare:
Daily VWAP (institutional trading levels)
Weekly VWAP (swing trading trends)
Intraday VWAPs (short-term momentum shifts)
Helps identify where institutional liquidity is positioned relative to price.
4. Activating the Oscillator for Momentum & Bias Confirmation
The oscillator converts AVWAP deviations into a normalized value.
Use overbought/oversold levels to determine strength and potential reversals.
Combine with other indicators (RSI, MACD) for confluence-based trading decisions.
Trading Applications & Strategies
5. Trend Confirmation & Institutional VWAP Tracking
If price consistently holds above the primary AVWAP, it signals a bullish trend.
If price remains below AVWAP, it indicates selling pressure and a bearish trend.
Monitor retests of AVWAP levels for potential trend continuation or reversal.
6. Dynamic Support & Resistance Levels
AVWAP lines act as dynamic floating support and resistance zones.
Price bouncing off AVWAP suggests continuation, whereas breakdowns indicate a shift in momentum.
Look for confluence with high-volume zones for stronger trade signals.
7. Mean Reversion & Statistical Edge Trading
Prices that deviate beyond +2 or -2 standard deviations often revert toward AVWAP.
Mean reversion traders can fade extended moves and target AVWAP re-tests.
Helps in identifying exhaustion points in trending markets.
8. Institutional Liquidity & Volume Footprints
Institutions often execute large trades near VWAP zones, causing price reactions.
Tracking multi-timeframe AVWAP levels allows traders to anticipate key liquidity areas.
Use higher timeframe AVWAPs as macro support/resistance for swing trading setups.
9. Enhancing Momentum Trading with AVWAP Oscillator
The oscillator provides a momentum-based measure of AVWAP deviations.
Helps in confirming entry and exit timing for trend-following trades.
Useful for pairing with stochastic oscillators, MACD, or RSI to validate trade decisions.
Best Practices & Trading Tips
Use in Conjunction with Volume Analysis: Combine with volume profiles, OBV, or CVD for increased accuracy.
Adjust Timeframes Based on Trading Style: Scalpers can focus on short-term AVWAP, while swing traders benefit from weekly/daily AVWAP tracking.
Backtest Different AVWAP Configurations: Experiment with different anchoring methods and lookback periods to optimize trade performance.
Monitor Institutional Order Flow: Identify key VWAP zones where institutional traders may be active.
Use with Other Technical Indicators: Enhance trading confidence by integrating with moving averages, Bollinger Bands, or Fibonacci retracements.
Final Thoughts & Disclaimer
The Multiple AVWAP indicator provides a comprehensive approach to volume-weighted price tracking, making it ideal for professional traders. While this tool enhances market clarity and trade decision-making, it should be used as part of a well-rounded trading strategy with risk management principles in place.
This indicator is provided for informational and educational purposes only. Trading involves risk, and past performance is not indicative of future results. Always conduct your own analysis and due diligence before executing trades.
OmegaTools - Enhancing Market Clarity with Precision Indicators






















