Active Ranges Detector
1. Purpose
The script identifies and manages bar ranges, which are defined as bars where the high and low prices are fully contained within the high and low of the previous bar. These ranges are used by traders to identify potential breakouts and price consolidations.
2. Key Features
Active Range Validation
A potential range becomes an active range when the price breaks out of the bar’s high or low. The breakout direction is tracked:
• Upward breakout: When the price closes above the high of the range.
• Downward breakout: When the price closes below the low of the range.
The script creates:
• Lines to represent the high and low of the range.
• A colored background box to indicate the range, with color coded for breakout direction:
• Green: Upward breakout.
• Orange: Downward breakout.
Range Updates
• Exit Detection: The script detects if the price exits the range (moves outside the high or low levels).
• Reintegration and Mitigation:
• If the price re-enters an exited range, it marks the range as “mitigated.”
• The lines for mitigated ranges are updated (color and width are changed).
• The background box is removed for mitigated ranges.
3. User Inputs
The script provides customization options:
• Breakout Colors:
• upBreakoutColor: Background color for upward breakout ranges (default: semi-transparent green).
• downBreakoutColor: Background color for downward breakout ranges (default: semi-transparent orange).
• Mitigated Range Styling:
• mitigatedLineColor: Line color for mitigated ranges (default: red).
• mitigatedLineWidth: Width of the line for mitigated ranges.
• Line and Background Settings:
• activeLineWidth: Width of lines for active ranges.
• lineExtension: Length of line extensions beyond the range’s initial boundaries.
• Range Display Limits:
• maxActiveRanges: Maximum number of active ranges to display on the chart (default: up to 200).
4. Visualization
The script provides clear visual feedback for identified ranges:
• Lines: High and low levels of the range are drawn as lines on the chart.
• Background Boxes: Colored boxes are drawn to represent active ranges, with breakout direction indicated by the box’s color.
• Mitigation Styling: Mitigated ranges have updated line styles and no background.
5. Range Management
The script actively manages ranges:
• Tracks the status of each range (active, exited, reintegrated, mitigated).
• Limits the number of displayed ranges to improve chart readability and comply with TradingView’s object limits.
6. Use Case
This script is ideal for traders who:
• Use inside bars to identify areas of consolidation and breakout opportunities.
• Want to track active and mitigated ranges automatically.
• Need a clear, visual representation of ranges and breakout directions.
7. Limitations
• Inside bars are identified based only on the current and previous bar, so the script might not detect more complex consolidation patterns.
• The maximum number of ranges displayed is limited to the user-defined value (maxActiveRanges), with a hard limit of 200 due to TradingView’s object restrictions.
Search in scripts for "track"
M2 Global Liquidity Index - Time-Shift - KHM2 Global Liquidity Index - Enhanced Time-Shift Indicator
Based on original work by @Mik3Christ3ns3n
Enhanced with advanced time-shift functionality and overlay capabilities.
Description:
This indicator tracks and visualizes the global M2 money supply from five major economies, allowing precise time-shift analysis for correlation studies. All values are converted to USD in real-time and aggregated to provide a comprehensive view of global liquidity conditions.
Key Features:
- Advanced time-shift capability (-1000 to +1000 days) with shape preservation
- Real-time currency conversion to USD
- Overlay functionality with main chart
- Right-scale display for better comparison
- Full historical data preservation during time shifts
Components Tracked:
- US M2 Money Supply (USM2)
- China M2 Money Supply (CNM2)
- Eurozone M2 Money Supply (EUM2)
- Japan M2 Money Supply (JPM2)
- UK M2 Money Supply (GBM2)
Primary Use Cases:
1. Correlation Analysis:
- Compare global liquidity trends with asset prices
- Identify leading/lagging relationships through time-shift
- Study monetary policy impacts across different time periods
2. Market Analysis:
- Track global liquidity conditions
- Monitor central bank policy effects
- Identify potential macro trend changes
Settings:
- Time Offset: Shift the M2 data backwards or forwards (-1000 to +1000 days)
- Positive values: Move M2 data into the future
- Negative values: Move M2 data into the past
- Zero: Current alignment
Technical Notes:
- Data updates follow central banks' M2 publication schedules
- All currency conversions performed in real-time
- Historical shape preservation during time-shifts
- Enhanced data consistency through lookahead mechanism
Credits:
Original concept and base code by @Mik3Christ3ns3n
Enhanced version includes advanced time-shift capabilities and shape preservation
License:
Pine Script™ code is subject to the terms of the Mozilla Public License 2.0
#M2 #GlobalLiquidity #MoneySupply #Macro #CentralBanks #MonetaryPolicy #TimeShift #Correlation #TradingIndicator #MacroAnalysis #LiquidityAnalysis #MarketIndicator
Ticker Tape with Multiple Inputs# Ticker Tape
A customizable multi-symbol price tracker that displays real-time price information in a scrolling ticker format, similar to financial news tickers.
This indicator is inspired from Tradingciew's default tickertape indicator with changes in the way inputs are given.
### Overview
This indicator allows you to monitor up to 15 different symbols simultaneously across any supported exchanges on TradingView. It displays essential price information including current price, price change, and percentage change in an easy-to-read format at the bottom of your chart.
### Features
• Monitor up to 15 different symbols simultaneously
• Support for any exchange available on TradingView
• Real-time price updates
• Color-coded price changes (green for increase, red for decrease)
• Smooth scrolling animation (can be disabled)
• Customizable scroll speed and position offset
### Input Parameters
#### Ticker Tape Controls
• Running: Enable/disable the scrolling animation
• Offset: Adjust the starting position of the ticker tape
#### Symbol Settings
• Exchange (1-15): Enter the exchange name (e.g., NSE, BINANCE, NYSE)
• Symbol (1-15): Enter the symbol name (e.g., BANKNIFTY, RELIANCE, BTCUSDT)
### Display Format
For each symbol, the ticker shows:
1. Symbol Name
2. Current Price
3. Price Change (Absolute and Percentage)
### Example Usage
Input Settings:
Exchange 1: NSE
Symbol 1: BANKNIFTY
Exchange 2: NSE
Symbol 2: RELIANCE
The ticker tape will display:
`NIFTY BANK 46750.00 +350.45 (0.75%) | RELIANCE 2456.85 -12.40 (-0.50%) |`
### Use Cases
1. Multi-Market Monitoring: Track different markets simultaneously without switching between charts
2. Portfolio Tracking: Monitor all your positions in real-time
### Tips for Best Use
1. Group related symbols together for easier monitoring
2. Use the offset parameter to position important symbols in your preferred viewing area
3. Disable scrolling if you prefer a static display
4. Leave exchange field empty for default exchange symbols
### Notes
• Price updates occur in real-time during market hours
• Color coding helps quickly identify price direction
• The indicator adapts to any chart timeframe
• Empty input pairs are automatically skipped
### Performance Considerations
The indicator is optimized for efficiency, but monitoring too many high-frequency symbols might impact chart performance. It's recommended to use only the symbols you actively need to monitor.
Version: 2.0 Stock_Cloud
Last Updated: December 2024
Engulfing BoxThe Engulfing Box indicator is a custom script designed to visually highlight and track bullish and bearish engulfing candlestick patterns on a price chart. These patterns are often used to identify potential reversal points, making them valuable for technical analysis. The script dynamically draws colored boxes around these patterns, helping users easily spot them in the price action.
Key Features:
Bullish Engulfing Pattern: When a candlestick fully engulfs the previous bearish candle (i.e., the close of the current candle is higher than the open of the previous candle, and the open is lower than the close of the previous candle), the script draws a green box around the bullish engulfing candle. This box is drawn from the open of the previous candle to the low of the previous candle.
Bearish Engulfing Pattern: When a candlestick fully engulfs the previous bullish candle (i.e., the close of the current candle is lower than the open of the previous candle, and the open is higher than the close of the previous candle), a red box is drawn around the bearish engulfing candle. This box is drawn from the open of the previous candle to the high of the previous candle.
Dynamic Box Management: Once an engulfing pattern is detected, a box is drawn with the following attributes:
Bullish Engulfing Box: Green, with a transparent background.
Bearish Engulfing Box: Red, with a transparent background.
The box will adjust its color to gray if the price moves past certain thresholds, indicating that the engulfing pattern may no longer be as relevant.
Max Pattern Tracking: The script limits the number of engulfing boxes tracked on the chart to prevent clutter. The maximum number of bullish and bearish engulfing patterns shown is customizable (set to 500 by default), and once this limit is exceeded, older boxes are deleted to maintain a clean chart.
Pattern Expiry: Boxes are deleted if price action moves beyond the pattern’s range, ensuring that outdated signals are removed. If the low price falls below the bottom of the bullish engulfing box, or the high price rises above the top of the bearish engulfing box, the respective box is removed. Additionally, if the low price moves below the top of the bullish box or the high price exceeds the bottom of the bearish box, the box's color is changed to a more neutral tone.
How it Works:
Pattern Detection: The script compares the current price data with the previous candlestick to detect the bullish or bearish engulfing patterns.
Box Creation: If a pattern is detected, a colored box is drawn around the candle to visually highlight the pattern.
Pattern Expiry and Cleanup: The script continuously monitors past boxes. If the price moves too far from the box’s range, the box is either deleted or altered to reflect the reduced significance of the pattern.
B ox Count Limit: To avoid clutter, the script ensures that no more than 500 bullish or bearish engulfing boxes are shown at any time.
Customization:
The number of previous bars to scan for engulfing patterns can be adjusted (maxBarsback).
The maximum number of patterns displayed at any time can be modified.
Edufx's Power of ThreeIndicator Overview
Name: Edufx's Power of Three
Purpose:
To highlight the high and low price ranges of specific hourly candles on a chart.
To visualize these ranges using rectangles.
Features
Visibility Toggle:
Users can enable or disable the visibility of the rectangles highlighting the high and low price ranges of the specified candles.
Customizable Rectangle Length:
Users can adjust the length of the rectangles that extend from the specified candle's high and low prices.
Price Range Tracking:
The high and low prices of the specified candles are tracked and stored.
Rectangle Drawing:
Rectangles are drawn from 5 bars before the end of the specified hour, highlighting the high and low price ranges.
How It Works
Price Range Tracking:
During each specified hour, the high and low prices are updated with the highest and lowest prices observed.
Rectangle Drawing:
At the end of each specified hour, the high and low prices are used to draw rectangles extending 5 bars backward from the end of the hour.
Rectangles are color-coded (red, green, and blue) for easy identification.
Usage
This indicator is useful for traders who want to monitor and react to key price levels at specific times of the day.
The visual rectangles help in identifying potential trading opportunities based on price action relative to these key levels.
Example
If the price moves above the high of the specified candle but fails to close above it, a visual rectangle will highlight this price range.
Similarly, if the price moves below the low of the specified candle but fails to close below it, the rectangle will indicate this range.
This indicator provides visual aids to assist traders in making informed decisions based on the behavior of price at specific key levels.
Market Internals & InfoThis script provides various information on Market Internals and other related info. It was a part of the Daily Levels script but that script was getting very large so I decided to separate this piece of it into its own indicator. I plan on adding some additional features in the near future so stay tuned for those!
The script provides customizability to show certain market internals, tickers, and even Market Profile TPO periods.
Here is a summary of each setting:
NASDAQ and NYSE Breadth Ratio
- Ratio between Up Volume and Down Volume for NASDAQ and NYSE markets. This can help inform about the type of volume flowing in and out of these exchanges.
Advance/Decline Line (ADL)
The ADL focuses specifically on the number of advancing and declining stocks within an index, without considering their trading volume.
Here's how the ADL works:
It tracks the daily difference between the number of stocks that are up in price (advancing) and the number of stocks that are down in price (declining) within a particular index.
The ADL is a cumulative measure, meaning each day's difference is added to the previous day's total.
If there are more advancing stocks, the ADL goes up.
If there are more declining stocks, the ADL goes down.
By analyzing the ADL, investors can get a sense of how many stocks are participating in a market move.
Here's what the ADL can tell you:
Confirmation of Trends: When the ADL moves in the same direction as the underlying index (e.g., ADL rising with a rising index), it suggests broad participation in the trend and potentially stronger momentum.
Divergence: If the ADL diverges from the index (e.g., ADL falling while the index is rising), it can be a warning sign. This suggests that fewer stocks are participating in the rally, which could indicate a weakening trend.
Keep in mind:
The ADL is a backward-looking indicator, reflecting past market activity.
It's often used in conjunction with other technical indicators for a more complete picture.
TRIN Arms Index
The TRIN index, also called the Arms Index or Short-Term Trading Index, is a technical analysis tool used in the stock market to gauge market breadth and sentiment. It essentially compares the number of advancing stocks (gaining in price) to declining stocks (losing price) along with their trading volume.
Here's how to interpret the TRIN:
High TRIN (above 1.0): This indicates a weak market where declining stocks and their volume are dominating the market. It can be a sign of a potential downward trend.
Low TRIN (below 1.0): This suggests a strong market where advancing stocks and their volume are in control. It can be a sign of a potential upward trend.
TRIN around 1.0: This represents a more balanced market, where it's difficult to say which direction the market might be headed.
Important points to remember about TRIN:
It's a short-term indicator, primarily used for intraday trading decisions.
It should be used in conjunction with other technical indicators for a more comprehensive market analysis. High or low TRIN readings don't guarantee future price movements.
VIX/VXN
VIX and VXN are both indexes created by the Chicago Board Options Exchange (CBOE) to measure market volatility. They differ based on the underlying index they track:
VIX (Cboe Volatility Index): This is the more well-known index and is considered the "fear gauge" of the stock market. It reflects the market's expectation of volatility in the S&P 500 index over the next 30 days.
VXN (Cboe Nasdaq Volatility Index): This is a counterpart to the VIX, but instead gauges volatility expectations for the Nasdaq 100 index over the coming 30 days. The tech-heavy Nasdaq can sometimes diverge from the broader market represented by the S&P 500, hence the need for a separate volatility measure.
Both VIX and VXN are calculated based on the implied volatilities of options contracts listed on their respective indexes. Here's a general interpretation:
High VIX/VXN: Indicates a high level of fear or uncertainty in the market, suggesting investors expect significant price fluctuations in the near future.
Low VIX/VXN: Suggests a more complacent market with lower expectations of volatility.
Important points to remember about VIX and VXN:
They are forward-looking indicators, reflecting market sentiment about future volatility, not necessarily current market conditions.
High VIX/VXN readings don't guarantee a market crash, and low readings don't guarantee smooth sailing.
These indexes are often used by investors to make decisions about portfolio allocation and hedging strategies.
Inside/Outside Day
This provides a quick indication of it we are still trading inside or outside of yesterdays range and will show "Inside Day" or "Outside Day" based upon todays range vs. yesterday's range.
Custom Ticker Choices
Ability to add up to 5 other tickers that can be tracked within the table
Show Market Profile TPO
This only shows on timeframes less than 30m. It will show both the current TPO period and the remaining time within that period.
Table Customization
Provided drop downs to change the text size and also the location of the table.
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)
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.






















