RED-E Institutional Flow Tracker ProRED-E Institutional Flow Tracker Pro
A histogram-based institutional activity detector for swing traders and options traders. Identifies institutional buying/selling pressure through volume analysis, money flow calculations, and manipulation detection algorithms.
═══════════════════════════════════════════════════════════════════════════════
OVERVIEW
═══════════════════════════════════════════════════════════════════════════════
This indicator addresses two critical challenges in swing trading:
1. Exiting profitable positions prematurely due to normal market volatility
2. Holding positions during periods of market manipulation
The histogram display provides clear visual signals (BUY/HOLD/SELL) with educational tooltips explaining why each signal appeared and how to trade it.
═══════════════════════════════════════════════════════════════════════════════
ORIGINALITY & METHODOLOGY
═══════════════════════════════════════════════════════════════════════════════
Built from scratch using Pine Script v6, this indicator combines multiple analytical methods into a unified histogram system:
**Core Detection Methods:**
- **Dollar Volume Analysis** - Multiplies price by volume to identify institutional-sized trades. Default threshold: 3x average dollar volume over 20 periods.
- **Smart Money Flow Detection** - Combines three simultaneous conditions: unusual volume (1.5x+ average), large order size (3x+ average dollar volume), and directional price movement. All three must occur on the same bar for confirmation.
- **Money Flow Index Integration** - 14-period volume-weighted momentum indicator. Calculated as: typical price (HLC3) × volume, separated into positive flow (up bars) and negative flow (down bars), converted to 0-100 scale.
- **Manipulation Detection Algorithm** - Identifies suspicious patterns where volume spikes dramatically (>1.5x threshold) but price moves minimally (<0.5% volatility). This pattern is characteristic of spoofing, layering, and wash trading.
- **Market Regime Classification** - Uses Money Flow Index combined with flow strength to classify market state as Bullish (MFI >50 and positive flow), Bearish (MFI <50 and negative flow), or Neutral.
**Histogram Calculation:**
Formula: (Price Change % × Volume Ratio) × (1.5x multiplier if large order detected)
Smoothed with 3-period EMA for clean visualization
Values automatically scaled for optimal display
**21-Period Moving Average:**
Simple moving average of histogram values provides trend direction confirmation. Crossovers signal momentum shifts.
═══════════════════════════════════════════════════════════════════════════════
HOW IT WORKS - TECHNICAL DETAILS
═══════════════════════════════════════════════════════════════════════════════
**1. Volume Analysis Foundation**
- 50-period SMA of volume establishes baseline
- Current volume compared to baseline creates Volume Ratio
- Unusual volume threshold (default 1.5x) flags institutional interest
**2. Money Flow Index (14-period default)**
- Typical price = (High + Low + Close) / 3
- Raw Money Flow = Typical Price × Volume
- Positive Flow = Raw Money Flow when price up
- Negative Flow = Raw Money Flow when price down
- MFI = 100 -
**3. Large Order Detection**
- Dollar Volume = Close Price × Volume
- 20-period average establishes baseline
- Orders exceeding 3x baseline flagged as institutional
**4. Smart Money Logic**
- Buying Signal: Positive price change AND large order AND volume >1.5x average (all simultaneous)
- Selling Signal: Negative price change AND large order AND volume >1.5x average (all simultaneous)
- Must occur on same bar for confirmation
**5. Flow Magnitude Tracking**
- Dollar volume tracked cumulatively
- Automatically resets daily at market open
- Formatted in readable units: K (thousands), M (millions), B (billions), T (trillions)
- Displayed in dashboard for easy monitoring
**6. Signal Classification**
- Strong Buy: Histogram >0.3 AND bullish regime AND unusual volume
- Buy: Histogram >0.15 AND bullish regime
- Hold: Histogram between ±0.15 OR neutral regime
- Sell: Histogram <-0.15 AND bearish regime
- Strong Sell: Histogram <-0.3 AND bearish regime AND unusual volume
**7. Manipulation Detection**
- Triggers when: Volume Ratio > threshold AND price volatility < 0.5%
- This pattern suggests large volume without corresponding price impact
- Common in spoofing (fake orders), layering (multiple false orders), and wash trading
═══════════════════════════════════════════════════════════════════════════════
HISTOGRAM DISPLAY & INTERPRETATION
═══════════════════════════════════════════════════════════════════════════════
**Color-Coded Bars:**
- **Bright Green** - Strong institutional buying (>0.3 momentum + bullish regime + unusual volume)
- **Light Green** - Institutional buying (>0.15 momentum + bullish regime)
- **Gray** - Neutral/Hold zone (±0.15 momentum or neutral regime)
- **Light Red** - Institutional selling (<-0.15 momentum + bearish regime)
- **Bright Red** - Strong institutional selling (<-0.3 momentum + bearish regime + unusual volume)
**Visual Signals:**
- **BUY labels** - Appear above bright green bars with detailed tooltip
- **SELL labels** - Appear below bright red bars with detailed tooltip
- **HOLD labels** - Appear on most recent bar during consolidation with educational tooltip
- **Yellow warning dots (⚠)** - Mark manipulation periods at zero line with explanation tooltip
- **Blue 21-period MA** - Shows overall trend direction
**Interactive Tooltips:**
Hover over any signal to see:
- Why the signal appeared (exact metrics)
- What the data shows (momentum, MFI, volume values)
- How to trade it (entry, exit, position sizing)
- Risk management recommendations
**Plot Style Options:**
Users can choose from 5 display styles:
- Columns (default) - Traditional histogram bars
- Area - Filled area chart
- Line - Simple line chart
- Step Line - Step-style line
- Histogram - Alternative histogram style
═══════════════════════════════════════════════════════════════════════════════
DASHBOARD METRICS EXPLAINED
═══════════════════════════════════════════════════════════════════════════════
12-row real-time dashboard displays:
**Current Flow** - Institutional money flow for current bar (M/B/T units)
**Daily Flow** - Cumulative activity since market open (resets daily)
**Flow Strength** - Intensity percentage (0-100%)
- >70% = Extreme pressure
- 40-70% = Moderate activity
- <40% = Weak/absent activity
**Money Flow Index** - Volume-weighted momentum (0-100 scale)
- >60 = Strong buying pressure
- 40-60 = Neutral/mixed
- <40 = Strong selling pressure
**Volume Ratio** - Current vs 50-day average
- >2.0x = Highly unusual
- 1.5-2.0x = Unusual
- <1.5x = Normal
**Market Regime** - Current classification
- Bullish: MFI >50 AND histogram >0
- Bearish: MFI <50 AND histogram <0
- Neutral: All other conditions
**Activity Status** - Real-time assessment
- HEAVY BUYING: Unusual volume + buying + MFI >60
- BUYING: Large orders + positive movement
- HEAVY SELLING: Unusual volume + selling + MFI <40
- SELLING: Large orders + negative movement
- NEUTRAL: No significant activity
**Unusual Volume** - Binary alert when exceeds threshold
**Large Orders** - Binary alert when dollar volume >3x average
**Manipulation Warning** - Binary alert for suspicious patterns
**Swing Signal** - Primary recommendation
- HOLD LONG: Bullish regime + Flow Strength >60%
- HOLD SHORT: Bearish regime + Flow Strength >60%
- CAUTION: Manipulation detected
- MONITOR: All other conditions
═══════════════════════════════════════════════════════════════════════════════
HOW TO USE FOR SWING TRADING
═══════════════════════════════════════════════════════════════════════════════
**ENTRY CONFIRMATION (Long Positions):**
Wait for multiple confirmations:
1. Histogram shows bright green bars
2. Histogram crosses above 21-period MA
3. Flow Strength >60%
4. Dashboard shows "BUYING" or "HEAVY BUYING"
5. Volume Ratio >1.5x
6. No yellow manipulation warnings
7. Regime shows "BULLISH"
**HOLDING POSITIONS (Primary Use Case):**
The indicator's strength is helping traders stay in winning trades. Continue holding when:
- Dashboard displays "HOLD LONG" or "HOLD SHORT"
- Histogram bars remain same color as position direction
- Histogram stays on correct side of 21-period MA
- Daily Flow continues trending in your direction
- Market regime supports position
- No "CAUTION" signals appear
This prevents premature exits during normal volatility when institutions are still supporting the move.
**EXIT SIGNALS:**
Consider closing positions when:
- Histogram crosses 21-period MA against position
- Histogram color changes from green to red (or vice versa)
- Dashboard changes to "CAUTION"
- Yellow manipulation warnings appear
- Market regime flips
- Flow Strength drops below 40%
**ENTRY CONFIRMATION (Short Positions):**
Wait for multiple confirmations:
1. Histogram shows bright red bars
2. Histogram crosses below 21-period MA
3. Flow Strength >60%
4. Dashboard shows "SELLING" or "HEAVY SELLING"
5. Volume Ratio >1.5x
6. No manipulation warnings
7. Regime shows "BEARISH"
═══════════════════════════════════════════════════════════════════════════════
CUSTOMIZATION OPTIONS
═══════════════════════════════════════════════════════════════════════════════
**Flow Detection Settings:**
- Unusual Volume Threshold (1.0-5.0x, default 1.5x)
- Large Order Multiplier (2.0-10.0x, default 3.0x)
- Flow Analysis Period (5-50 bars, default 14)
**Histogram Display:**
- Histogram Style (5 options: Columns/Area/Line/Step/Histogram)
- Histogram Width (1-10, default 4)
**Moving Average:**
- Show 21-Period MA (toggle)
- MA Line Color (customizable)
- MA Line Width (1-5, default 2)
**Visual Settings:**
- Show Buy/Hold/Sell Labels (toggle)
- Label Size (Tiny/Small/Normal/Large/Huge)
- Label Distance from Bars (0.1-2.0x, prevents overlap)
- Show Manipulation Warnings (toggle)
- Show Watermark (toggle)
**Dashboard:**
- Position (4 corners)
- Size (Small/Normal/Large)
- Background Color (fully customizable)
- Border Color (fully customizable)
**Alerts:**
- Toggle institutional activity alerts
- Three types: Strong Buy, Strong Sell, Manipulation Detection
═══════════════════════════════════════════════════════════════════════════════
RECOMMENDED SETTINGS BY TRADING STYLE
═══════════════════════════════════════════════════════════════════════════════
**Day Trading (15min-1H):**
- Volume Threshold: 1.3x
- Large Order Multiplier: 2.5x
- Flow Period: 7-10
- Label Distance: 0.3-0.4x
**Swing Trading (4H-Daily) - DEFAULT:**
- Volume Threshold: 1.5x
- Large Order Multiplier: 3.0x
- Flow Period: 14
- Label Distance: 0.5x
**Position Trading (Daily-Weekly):**
- Volume Threshold: 2.0x
- Large Order Multiplier: 5.0x
- Flow Period: 21
- Label Distance: 0.7-1.0x
═══════════════════════════════════════════════════════════════════════════════
BEST MARKETS & TIMEFRAMES
═══════════════════════════════════════════════════════════════════════════════
**Optimal Performance:**
- Timeframes: 1-hour, 4-hour, Daily
- Markets: Liquid stocks and ETFs (avg volume >1M shares/day)
- Market Cap: >$500M (ensures institutional participation)
- Examples: SPY, QQQ, AAPL, MSFT, NVDA, TSLA, major sector ETFs
**Less Effective:**
- Penny stocks (<$500M market cap)
- Low-volume securities
- Cryptocurrency (different volume dynamics)
- Timeframes below 15 minutes (excessive noise)
═══════════════════════════════════════════════════════════════════════════════
EDUCATIONAL FEATURES
═══════════════════════════════════════════════════════════════════════════════
**Interactive Learning:**
Every signal includes a hover tooltip that explains:
- **Why** - The specific conditions that triggered the signal
- **What** - The exact metric values (momentum, MFI, volume)
- **How** - Specific trading actions to take
- **When** - Exit conditions to monitor
- **Risk** - Management recommendations
**Example Tooltips:**
**BUY Signal:** "Institutions actively accumulating. Momentum: X.XX | MFI: XX | Volume: X.Xx avg. Large orders detected. Consider LONG positions or CALL options. Place stops below support."
**HOLD Signal:** "Consolidation phase. No clear direction. HOLD profitable positions. DO NOT enter new trades. Many traders exit too early during consolidation - institutions accumulate before next move."
**Manipulation Warning:** "High volume with minimal price movement. Possible spoofing, layering, or wash trading. STAY OUT. Tighten stops. Expect whipsaw. Wait for warning to clear."
═══════════════════════════════════════════════════════════════════════════════
LIMITATIONS & DISCLOSURES
═══════════════════════════════════════════════════════════════════════════════
**What This Indicator DOES:**
✓ Analyzes publicly available price and volume data
✓ Identifies patterns consistent with institutional activity
✓ Detects suspicious volume/price relationships
✓ Provides statistical money flow analysis
✓ Helps traders hold through normal volatility
**What This Indicator DOES NOT DO:**
✗ Access external APIs or institutional order flow data
✗ Track actual institutional orders (infers from patterns)
✗ Guarantee profitable trades
✗ Replace risk management
✗ Work reliably on illiquid securities
✗ Provide financial advice
**Technical Limitations:**
- Uses confirmed bar data only (no repainting)
- Requires minimum 50 bars for volume baseline
- Daily Flow resets at market open
- Manipulation detection can have false positives during low liquidity
- Label positioning may overlap on extreme values
**Trading Disclaimers:**
- Infers institutional activity through statistical analysis
- Should complement, not replace, fundamental analysis
- Past performance does not guarantee future results
- Always use proper position sizing and stop losses
- Not a registered investment advisor
**Risk Warning:**
Options trading carries substantial risk. This indicator is provided for educational purposes. Users should conduct due diligence and consult licensed professionals before trading.
═══════════════════════════════════════════════════════════════════════════════
ALERT CONDITIONS
═══════════════════════════════════════════════════════════════════════════════
Three built-in alert types:
1. **Strong Buy Signal** - Bright green bars appear (>0.3 momentum + bullish regime + unusual volume)
2. **Strong Sell Signal** - Bright red bars appear (<-0.3 momentum + bearish regime + unusual volume)
3. **Manipulation Detected** - Suspicious volume/price patterns occur
To enable:
- Click three dots next to indicator name
- Select "Create Alert"
- Choose alert condition
- Configure notifications
- Set frequency to "Once Per Bar Close"
═══════════════════════════════════════════════════════════════════════════════
TECHNICAL SPECIFICATIONS
═══════════════════════════════════════════════════════════════════════════════
- **Pine Script Version:** v6
- **Type:** Oscillator (separate pane)
- **Repainting:** None - uses confirmed bar data only
- **Lookahead Bias:** None
- **Max Bars Back:** 500
- **Computational Load:** Low to moderate
- **Bar Replay Compatible:** Yes
═══════════════════════════════════════════════════════════════════════════════
VERSION HISTORY
═══════════════════════════════════════════════════════════════════════════════
**v1.0** (Initial Release)
- Histogram-based institutional momentum display
- 5 customizable plot styles
- 12-metric comprehensive dashboard
- Flow magnitude tracking (M/B/T units)
- 21-period moving average overlay
- Manipulation detection algorithm
- Educational tooltip system on all signals
- BUY/HOLD/SELL label system with positioning
- Market regime classification
- Three alert conditions
- Fully customizable dashboard (size, colors, position)
═══════════════════════════════════════════════════════════════════════════════
CREDITS
═══════════════════════════════════════════════════════════════════════════════
Developed from scratch using Pine Script v6 and standard TradingView built-in functions. No code copied from other scripts. Methodology combines classical volume analysis with modern institutional flow detection.
═══════════════════════════════════════════════════════════════════════════════
This indicator helps swing traders answer: "Should I hold or exit?" By analyzing institutional activity and warning of manipulation, it provides the framework to stay in winning trades while protecting against adverse conditions.
Published open-source to contribute to the TradingView community.
Questions or feedback? Leave a comment below.
═══════════════════════════════════════════════════════════════════════════════
Disclaimer: Provided "as-is" without warranty. Use at your own risk. Past performance does not guarantee future results.
In den Scripts nach "profitable" suchen
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.
Lorentzian Harmonic Flow - Adaptive ML⚡ LORENTZIAN HARMONIC FLOW — ADAPTIVE ML COMPLETE SYSTEM
THEORETICAL FOUNDATION: TEMPORAL RELATIVITY MEETS MACHINE LEARNING
The Lorentzian Harmonic Flow Adaptive ML system represents a paradigm shift in technical analysis by addressing a fundamental limitation that plagues traditional indicators: they assume time flows uniformly across all market conditions. In reality, markets experience time compression during volatile breakouts and time dilation during consolidation. A 50-period moving average calculated during a quiet overnight session captures vastly different market information than the same calculation during a high-volume news event.
This indicator solves this problem through Lorentzian spacetime modeling , borrowed directly from Einstein's special relativity. By calculating a dynamic gamma factor (γ) that measures market velocity relative to a volatility-based "speed of light," every calculation adapts its effective lookback period to the market's intrinsic clock. Combined with a dual-memory architecture, multi-regime detection, and Bayesian strategy selection, this creates a system that genuinely learns which approaches work in which market conditions.
CRITICAL DISTINCTION: TRUE ADAPTIVE LEARNING VS STATIC CLASSIFICATION
Before diving into the system architecture, it's essential to understand how this indicator fundamentally differs from traditional "Lorentzian" implementations, particularly the well-known Lorentzian Classification indicator.
THE ORIGINAL LORENTZIAN CLASSIFICATION APPROACH:
The pioneering Lorentzian Classification indicator (Jdehorty, 2022) introduced the financial community to Lorentzian distance metrics for pattern matching. However, it used offline training methodology :
• External Training: Required Python scripts or external ML tools to train the model on historical data
• Static Model: Once trained, the model parameters remained fixed
• No Real-Time Learning: The indicator classified patterns but didn't learn from outcomes
• Look-Ahead Bias Risk: Offline training could inadvertently use future data
• Manual Retraining: To adapt to new market conditions, users had to retrain externally and reload parameters
This was groundbreaking for bringing ML concepts to Pine Script, but it wasn't truly adaptive. The model was a snapshot—trained once, deployed, static.
THIS SYSTEM: TRUE ONLINE LEARNING
The Lorentzian Harmonic Flow Adaptive ML system represents a complete architectural departure :
✅ FULLY SELF-CONTAINED:
• Zero External Dependencies: No Python scripts, no external training tools, no data exports
• 100% Pine Script: Entire learning pipeline executes within TradingView
• One-Click Deployment: Load indicator, it begins learning immediately
• No Manual Configuration: System builds its own training data in real-time
✅ GENUINE FORWARD-WALK LEARNING:
• Real-Time Adaptation: Every trade outcome updates the model
• Forward-Only Logic: System uses only past confirmed data—zero look-ahead bias
• Continuous Evolution: Parameters adapt bar-by-bar based on rolling performance
• Regime-Specific Memory: Learns which patterns work in which conditions independently
✅ GETS BETTER WITH TIME:
• Week 1: Bootstrap mode—gathering initial data across regimes
• Month 2-3: Statistical significance emerges, parameter adaptation begins
• Month 4+: Mature learning, regime-specific optimization, confident selection
• Year 2+: Deep pattern library, proven parameter sets, robust to regime shifts
✅ NO RETRAINING REQUIRED:
• Automatic Adaptation: When market structure changes, system detects via performance degradation
• Memory Refresh: Old patterns naturally decay, new patterns replace them
• Parameter Evolution: Thresholds and multipliers adjust to current conditions
• Regime Awareness: If new regime emerges, enters bootstrap mode automatically
THE FUNDAMENTAL DIFFERENCE:
Traditional Lorentzian Classification:
"Here are patterns from the past. Current state matches pattern X, which historically preceded move Y. Signal fired."
→ Static knowledge, fixed rules, periodic retraining required
LHF Adaptive ML:
"In Trending Bull regime, Strategy B has 58% win rate and 1.4 Sharpe over last 30 trades. In High Vol Range, Strategy C performs better with 61% win rate and 1.8 Sharpe. Current state is Trending Bull, so I select Strategy B. If Strategy B starts failing, I'll adapt parameters or switch strategies. I'm learning which patterns matter in which contexts, and I improve every trade."
→ Dynamic learning, contextual adaptation, self-improving system
WHY THIS MATTERS:
Markets are non-stationary. A model trained on 2023 data may fail in 2024 when Fed policy shifts, volatility regime changes, or market structure evolves. Static models require constant human intervention—retraining, re-optimization, parameter updates.
This system learns continuously . It doesn't need you to tell it when markets changed. It discovers regime shifts through performance feedback, adapts parameters accordingly, and rebuilds its pattern library organically. The system running in Month 12 is fundamentally smarter than the system in Month 1—not because you retrained it, but because it learned from 1,000+ real outcomes.
This is the difference between pattern recognition (static ML) and reinforcement learning (adaptive ML). One classifies, the other learns and improves.
PART 1: LORENTZIAN TEMPORAL DYNAMICS
Markets don't experience time uniformly. During explosive volatility, price can compress weeks of movement into minutes. During consolidation, time dilates. Traditional indicators ignore this, using fixed periods regardless of market state.
The Lorentzian approach models market time using the Lorentz factor from special relativity:
γ = 1 / √(1 - v²/c²)
Where:
• v (velocity): Trend momentum normalized by ATR, calculated as (close - close ) / (N × ATR)
• c (speed limit): Realized volatility + volatility bursts, multiplied by c_multiplier parameter
• γ (gamma): Time dilation factor that compresses or expands effective lookback periods
When trend velocity approaches the volatility "speed limit," gamma spikes above 1.0, compressing time. Every calculation length becomes: base_period / γ. This creates shorter, more responsive periods during explosive moves and longer, more stable periods during quiet consolidation.
The system raises gamma to an optional power (gamma_power parameter) for fine control over compression strength, then applies this temporal scaling to every calculation in the indicator. This isn't metaphor—it's quantitative adaptation to the market's intrinsic clock.
PART 2: LORENTZIAN KERNEL SMOOTHING
Traditional moving averages use uniform weights (SMA) or exponential decay (EMA). The Lorentzian kernel uses heavy-tailed weighting:
K(distance, γ) = 1 / (1 + (distance/γ)²)
This Cauchy-like distribution gives more influence to recent extremes than Gaussian assumptions suggest, capturing the fat-tailed nature of financial returns. For any calculation requiring smoothing, the system loops through historical bars, computes Lorentzian kernel weights based on temporal distance and current gamma, then produces weighted averages.
This creates adaptive smoothing that responds to local volatility structure rather than imposing rigid assumptions about price distribution.
PART 3: HARMONIC FLOW (Multi-Timeframe Momentum)
The core directional signal comes from Harmonic Flow (HFL) , which blends three gamma-compressed Lorentzian smooths:
• Short Horizon: base_period × short_ratio / γ (default: 34 × 0.5 / γ ≈ 17 bars, faster with high γ)
• Mid Horizon: base_period × mid_ratio / γ (default: 34 × 1.0 / γ ≈ 34 bars, anchor timeframe)
• Long Horizon: base_period × long_ratio / γ (default: 34 × 2.5 / γ ≈ 85 bars, structural trend)
Each produces a Lorentzian-weighted smooth, converted to a z-score (distance from smooth normalized by ATR). These z-scores are then weighted-averaged:
HFL = (w_short × z_short + w_mid × z_mid + w_long × z_long) / (w_short + w_mid + w_long)
Default weights (0.45, 0.35, 0.20) favor recent momentum while respecting longer structure. Scalpers can increase short weight; swing traders can emphasize long weight. The result is a directional momentum indicator that captures multi-timeframe flow in compressed time.
From HFL, the system derives:
• Flow Velocity: HFL - HFL (momentum acceleration)
• Flow Acceleration: Second derivative (turning points)
• Temporal Compression Index (TCI): base_period / compressed_length (shows how much time is compressed)
PART 4: DUAL MEMORY ARCHITECTURE
Markets have memory—current conditions resonate with past regimes. But memory operates on two timescales, inspiring this indicator's dual-memory design:
SHORT-TERM MEMORY (STM):
• Capacity: 100 patterns (configurable 50-200)
• Decay Rate: 0.980 (50% weight after ~35 bars)
• Update Frequency: Every 10 bars
• Purpose: Capture current regime's tactical patterns
• Storage: Recent market states with 10-bar forward outcomes
• Analogy: Hippocampus (rapid encoding, fast fade)
LONG-TERM MEMORY (LTM):
• Capacity: 512 patterns (configurable 256-1024)
• Decay Rate: 0.997 (50% weight after ~230 bars)
• Quality Gate: Only high-quality patterns admitted (adaptive threshold per regime)
• Purpose: Strategic pattern library validated across regimes
• Storage: Validated patterns from weeks/months of history
• Analogy: Neocortex (slow consolidation, persistent storage)
Each memory stores 6-dimensional feature vectors:
1. HFL (harmonic flow strength)
2. Flow Velocity (momentum)
3. Flow Acceleration (turning points)
4. Volatility (realized vol EMA)
5. Entropy (market uncertainty)
6. Gamma (time compression state)
Plus the actual outcome (10-bar forward return).
K-NEAREST NEIGHBORS (KNN) PATTERN MATCHING:
When evaluating current market state, the system queries both memories using Lorentzian distance :
distance = Σ (1 - K(|feature_current - feature_memory|, γ))
This calculates similarity across all 6 dimensions using the same Lorentzian kernel, weighted by current gamma. The system finds K nearest neighbors (default: 8), weights each by:
• Similarity: Lorentzian kernel distance
• Age: Exponential decay based on bars since pattern
• Regime: Only patterns from similar regimes count
The weighted average of these neighbors' outcomes becomes the prediction. High-confidence predictions require both high similarity and agreement between multiple neighbors.
REGIME-AWARE BLENDING:
STM and LTM predictions are blended adaptively:
• High Vol Range regime: Trust STM 70% (recent matters in chaos)
• Trending regimes: Trust LTM 70% (structure matters in trends)
• Normal regimes: 50/50 blend
Agreement metric: When STM and LTM strongly disagree, the system flags low confidence—often indicating regime transition or novel market conditions requiring caution.
PART 5: FIVE-REGIME MARKET CLASSIFICATION
Traditional regime detection stops at "trending vs ranging." This system detects five distinct market states using linear regression slope and volatility analysis:
REGIME 0: TRENDING BULL ↗
• Detection: LR slope > trend_threshold (default: 0.3)
• Characteristics: Sustained positive HFL, elevated gamma, low entropy
• Best Strategy: B (Flow Momentum)
• Trading Behavior: Follow momentum, trail stops, pyramid winners
REGIME 1: TRENDING BEAR ↘
• Detection: LR slope < -trend_threshold
• Characteristics: Sustained negative HFL, elevated gamma, low entropy
• Best Strategy: B (Flow Momentum)
• Trading Behavior: Follow momentum short, aggressive exits on reversal
REGIME 2: HIGH VOL RANGE ↔
• Detection: |slope| < threshold AND vol_ratio > vol_expansion_threshold (default: 1.5)
• Characteristics: Oscillating HFL, high gamma spikes, high entropy
• Best Strategies: A (Squeeze Breakout) or C (Memory Pattern)
• Trading Behavior: Fade extremes, tight stops, quick profits
REGIME 3: LOW VOL RANGE —
• Detection: |slope| < threshold AND vol_ratio < vol_expansion_threshold
• Characteristics: Low HFL magnitude, gamma ≈ 1, squeeze conditions
• Best Strategy: A (Squeeze Breakout)
• Trading Behavior: Wait for breakout, wide stops on breakout entry
REGIME 4: TRANSITION ⚡
• Detection: Trend reversal OR volatility spike > 1.5× threshold
• Characteristics: Erratic gamma, high entropy, conflicting signals
• Best Strategy: None (often unfavorable)
• Trading Behavior: Stand aside, wait for clarity
Each regime gets a confidence score (0-1) measuring how clearly defined it is. Low confidence indicates messy, ambiguous conditions.
PART 6: THREE INDEPENDENT TRADING STRATEGIES
Rather than one signal logic, the system implements three distinct approaches:
STRATEGY A: SQUEEZE BREAKOUT
• Logic: Bollinger Bands squeeze release + HFL direction + flow velocity confirmation
• Calculation: Compares BB width to Keltner Channel width; fires when BB expands beyond KC
• Strength Score: 70 + compression_strength × 0.3 (tighter squeeze = higher score)
• Best Regimes: Low Vol Range (3), Transition exit (4→0 or 4→1)
• Pattern: Volatility contraction → directional expansion
• Philosophy: Calm before the storm; compression precedes explosion
STRATEGY B: LORENTZIAN FLOW MOMENTUM
• Logic: Strong HFL (×flow_mult) + positive velocity + gamma > 1.1 + NOT squeezing
• Calculation: |HFL × flow_mult| > 0.12, velocity confirms direction, gamma shows acceleration
• Strength Score: |HFL × flow_mult| × 80 + gamma × 10
• Best Regimes: Trending Bull (0), Trending Bear (1)
• Pattern: Established momentum → acceleration in compressed time
• Philosophy: Trend is friend when spacetime curves
STRATEGY C: MEMORY PATTERN MATCHING
• Logic: Dual KNN prediction > threshold + high confidence + agreement + HFL confirms
• Calculation: |memory_pred| > 0.005, memory_conf > 1.0, agreement > 0.5, HFL direction matches
• Strength Score: |prediction| × 800 × agreement
• Best Regimes: High Vol Range (2), sometimes others with sufficient pattern library
• Pattern: Historical similarity → outcome resonance
• Philosophy: Markets rhyme; learn from validated patterns
Each strategy generates independent strength scores. In multi-strategy mode (enabled by default), the system selects one strategy per regime based on risk-adjusted performance. In weighted mode (multi-strategy disabled), all three fire simultaneously with configurable weights.
PART 7: ADAPTIVE LEARNING & BAYESIAN SELECTION
This is where machine learning meets trading. The system maintains 15 independent performance matrices :
3 strategies × 5 regimes = 15 tracking systems
For each combination, it tracks:
• Trade Count: Number of completed trades
• Win Count: Profitable outcomes
• Total Return: Sum of percentage returns
• Squared Returns: For variance/Sharpe calculation
• Equity Curve: Virtual P&L assuming 10% risk per trade
• Peak Equity: All-time high for drawdown calculation
• Max Drawdown: Peak-to-trough decline
RISK-ADJUSTED SCORING:
For current regime, the system scores each strategy:
Sharpe Ratio: (mean_return / std_dev) × √252
Calmar Ratio: total_return / max_drawdown
Win Rate: wins / trades
Combined Score = 0.6 × Sharpe + 0.3 × Calmar + 0.1 × Win_Rate
The strategy with highest score is selected. This is similar to Thompson Sampling (multi-armed bandits) but uses deterministic selection rather than probabilistic sampling due to Pine Script limitations.
BOOTSTRAP MODE (Critical for Understanding):
For the first min_regime_samples trades (default: 10) in each regime:
• Status: "🔥 BOOTSTRAP (X/10)" displayed in dashboard
• Behavior: All signals allowed (gathering data)
• Regime Filter: Disabled (can't judge with insufficient data)
• Purpose: Avoid cold-start problem, build statistical foundation
After reaching threshold:
• Status: "✅ FAVORABLE" (score > 0.5) or "⚠️ UNFAVORABLE" (score ≤ 0.5)
• Behavior: Only trade favorable regimes (if enable_regime_filter = true)
• Learning: Parameters adapt based on outcomes
This solves a critical problem: you can't know which strategy works in a regime without data, but you can't get data without trading. Bootstrap mode gathers initial data safely, then switches to selective mode once statistical confidence emerges.
PARAMETER ADAPTATION (Per Regime):
Three parameters adapt independently for each regime based on outcomes:
1. SIGNAL QUALITY THRESHOLD (30-90):
• Starts: base_quality_threshold (default: 60)
• Adaptation:
Win Rate < 45% → RAISE threshold by learning_rate × 10 (be pickier)
Win Rate > 55% → LOWER threshold by learning_rate × 5 (take more)
• Effect: System becomes more selective in losing regimes, more aggressive in winning regimes
2. LTM QUALITY GATE (0.2-0.8):
• Starts: 0.4 (if adaptive gate enabled)
• Adaptation:
Sharpe < 0.5 → RAISE gate by learning_rate (demand better patterns)
Sharpe > 1.5 → LOWER gate by learning_rate × 0.5 (accept more patterns)
• Effect: LTM fills with high-quality patterns from winning regimes
3. FLOW MULTIPLIER (0.5-2.0):
• Starts: 1.0
• Adaptation:
Strong win (+2%+) → MULTIPLY by (1 + learning_rate × 0.1)
Strong loss (-2%+) → MULTIPLY by (1 - learning_rate × 0.1)
• Effect: Amplifies signal strength in profitable regimes, dampens in unprofitable
Each regime evolves independently. Trending Bull might develop threshold=55, gate=0.35, mult=1.3 while High Vol Range develops threshold=70, gate=0.50, mult=0.9.
PART 8: SHADOW PORTFOLIO VALIDATION
To validate learning objectively, the system runs three virtual portfolios :
Shadow Portfolio A: Trades only Strategy A signals
Shadow Portfolio B: Trades only Strategy B signals
Shadow Portfolio C: Trades only Strategy C signals
When any signal fires:
1. Open virtual position for corresponding strategy
2. On exit, calculate P&L (10% risk per trade)
3. Update equity, win count, profit factor
Dashboard displays:
• Equity: Current virtual balance (starts $10,000)
• Win%: Overall win rate across all regimes
• PF: Profit Factor (gross_profit / gross_loss)
This transparency shows which strategies actually perform, validates the selection logic, and prevents overfitting. If Shadow C shows $12,500 equity while A and B show $9,800, it confirms Strategy C's edge.
PART 9: HISTORICAL PRE-TRAINING
The system includes historical pre-training to avoid cold-start:
On Chart Load (if enabled):
1. Scan past pretrain_bars (default: 200)
2. Calculate historical HFL, gamma, velocity, acceleration, volatility, entropy
3. Compute 10-bar forward returns as outcomes
4. Populate STM with recent patterns
5. Populate LTM with high-quality patterns (quality > 0.4)
Effect:
• Without pre-training: Memories empty, no predictions for weeks, pure bootstrap
• With pre-training: System starts with pattern library, predictions from day one
Pre-training uses only past data (no future peeking) and fills memories with validated outcomes. This dramatically accelerates learning without compromising integrity.
PART 10: COMPREHENSIVE INPUT SYSTEM
The indicator provides 50+ inputs organized into logical groups. Here are the key parameters and their market-specific guidance:
🧠 ADAPTIVE LEARNING SYSTEM:
Enable Adaptive Learning (true/false):
• Function: Master switch for regime-specific strategy selection and parameter adaptation
• Enabled: System learns which strategies work in which regimes (recommended)
• Disabled: All strategies fire simultaneously with fixed weights (simpler, less adaptive)
• Recommendation: Keep enabled for all markets; system needs 2-3 months to mature
Learning Rate (0.01-0.20):
• Function: Speed of parameter adaptation based on outcomes
• Stocks/ETFs: 0.03-0.05 (slower, more stable)
• Crypto: 0.05-0.08 (faster, adapts to volatility)
• Forex: 0.04-0.06 (moderate)
• Timeframes:
1-5min scalping: 0.08-0.10 (rapid adaptation)
15min-1H day trading: 0.05-0.07 (balanced)
4H-Daily swing: 0.03-0.05 (conservative)
• Tradeoff: Higher = responsive but may overfit; Lower = stable but slower to adapt
Min Samples Per Regime (5-30):
• Function: Trades required before exiting bootstrap mode
• Active trading (>5 signals/day): 8-10 trades
• Moderate (1-5 signals/day): 10-15 trades
• Swing (few signals/week): 5-8 trades
• Logic: Bootstrap mode until this threshold; then uses Sharpe/Calmar for regime filtering
• Tradeoff: Lower = faster exit (risky, less data); Higher = more validation (safer, slower)
🌍 REGIME DETECTION:
Regime Lookback Period (20-200):
• Function: Bars used for linear regression to classify regime
• By Timeframe:
1-5min: 30-50 bars (~2-4 hour context)
15min: 40-60 bars (daily context)
1H: 50-100 bars (weekly context)
4H: 100-150 bars (monthly context)
Daily: 50-75 bars (quarterly context)
• By Market:
Crypto: 40-60 (faster regime changes)
Forex: 50-75 (moderate stability)
Stocks: 60-100 (slower structural trends)
• Tradeoff: Shorter = more regime switches (reactive); Longer = fewer switches (stable)
Trend Strength Threshold (0.1-0.8):
• Function: Minimum normalized LR slope to classify as trending vs ranging
• Lower (0.1-0.2): More markets classified as trending
• Higher (0.4-0.6): Only strong trends qualify
• Recommendations:
Choppy markets (BTC, small caps): 0.25-0.35
Smooth trends (major FX pairs): 0.30-0.40
Strong trends (indices during bull): 0.20-0.30
• Effect: Controls sensitivity of trending vs ranging classification
Vol Expansion Factor (1.2-3.0):
• Function: Volatility ratio to classify high-vol regimes (current_vol / avg_vol)
• By Asset:
Bitcoin: 1.4-1.6 (frequent vol spikes)
Altcoins: 1.3-1.5 (very volatile)
Major FX (EUR/USD): 1.6-2.0 (stable baseline)
Stocks (SPY): 1.5-1.8 (moderate)
Penny stocks: 1.3-1.4 (always volatile)
• Impact: Higher = fewer "High Vol Range" classifications; Lower = more sensitive to volatility spikes
🎯 SIGNAL GENERATION:
Base Quality Threshold (30-90):
• Function: Starting signal strength requirement (adapts per regime)
• THIS IS YOUR MAIN SIGNAL FREQUENCY CONTROL
• Conservative (70-80): Fewer, higher-quality signals
• Balanced (55-65): Moderate signal flow
• Aggressive (40-50): More signals, more noise
• By Trading Style:
Scalping (1-5min): 50-60
Day trading (15min-1H): 60-70
Swing (4H-Daily): 65-75
• Adaptive Behavior: System raises this in losing regimes (pickier), lowers in winning regimes (take more)
Min Confidence (0.1-0.9):
• Function: Minimum confidence score to fire signal
• Calculation: (Signal_Strength / 100) × Regime_Confidence
• Recommendations:
High-frequency (scalping): 0.2-0.3 (permissive)
Day trading: 0.3-0.4 (balanced)
Swing/position: 0.4-0.6 (selective)
• Interaction: During Transition regime (low regime confidence), even strong signals may fail confidence check; creates natural regime filtering
Only Trade Favorable Regimes (true/false):
• Function: Block signals in unfavorable regimes (where all strategies have negative risk-adjusted scores)
• Enabled (Recommended): Only trades when best strategy has positive Sharpe in current regime; auto-disables during bootstrap; protects capital
• Disabled: Always allows signals regardless of historical performance; use for manual regime assessment
• Bootstrap: Auto-allows trading until min_regime_samples reached, then switches to performance-based filtering
Min Bars Between Signals (1-20):
• Function: Prevents signal spam by enforcing minimum spacing
• By Timeframe:
1min: 3-5 bars (3-5 minutes)
5min: 3-6 bars (15-30 minutes)
15min: 4-8 bars (1-2 hours)
1H: 5-10 bars (5-10 hours)
4H: 3-6 bars (12-24 hours)
Daily: 2-5 bars (2-5 days)
• Logic: After signal fires, no new signals for X bars
• Tradeoff: Lower = more reactive (may overtrade); Higher = more patient (may miss reversals)
🌀 LORENTZIAN CORE:
Base Period (10-100):
• Function: Core time period for flow calculation (gets compressed by gamma)
• THIS IS YOUR PRIMARY TIMEFRAME KNOB
• By Timeframe:
1-5min scalping: 20-30 (fast response)
15min-1H day: 30-40 (balanced)
4H swing: 40-55 (smooth)
Daily position: 50-75 (very smooth)
• By Market Character:
Choppy (crypto, small caps): 25-35 (faster)
Smooth (major FX, indices): 35-50 (moderate)
Slow (bonds, utilities): 45-65 (slower)
• Gamma Effect: Actual length = base_period / gamma; High gamma compresses to ~20 bars, low gamma expands to ~50 bars
• Default 34 (Fibonacci) works well across most assets
Velocity Period (5-50):
• Function: Window for trend velocity calculation: (price_now - price ) / (N × ATR)
• By Timeframe:
1-5min scalping: 8-12 (fast momentum)
15min-1H day: 12-18 (balanced)
4H swing: 14-21 (smooth trend)
Daily: 18-30 (structural trend)
• By Market:
Crypto (fast moves): 10-14
Stocks (moderate): 14-20
Forex (smooth): 18-25
• Impact: Feeds into gamma calculation (v/c ratio); shorter = more sensitive to velocity spikes → higher gamma
• Relationship: Typically vel_period ≈ base_period / 2 to 2/3
Speed-of-Market (c) (0.5-3.0):
• Function: "Speed limit" for gamma calculation: c = realized_vol + vol_burst × c_multiplier
• By Asset Volatility:
High vol (BTC, TSLA): 1.0-1.3 (lower c = more compression)
Medium vol (SPY, EUR/USD): 1.3-1.6 (balanced)
Low vol (bonds, utilities): 1.6-2.5 (higher c = less compression)
• What It Does:
Lower c → velocity hits "speed limit" sooner → higher gamma → more compression
Higher c → velocity rarely hits limit → gamma stays near 1 → less adaptation
• Effect on Signals: More compression (low c) = faster regime detection, more responsive; Less compression (high c) = smoother, less adaptive
• Tuning: Start at 1.4; if gamma always ~1.0, lower to 1.0-1.2; if gamma spikes >5 often, raise to 1.6-2.0
Gamma Power (0.5-2.0):
• Function: Exponent applied to gamma: final_gamma = gamma^power
• Compression Strength:
0.5-0.8: Softens compression (gamma 4 → 2)
1.0: Linear (gamma 4 → 4)
1.2-2.0: Amplifies compression (gamma 4 → 16)
• Use Cases:
Reduce power (<1.0) if adaptive lengths swing too wildly or getting whipsawed
Increase power (>1.0) for more aggressive regime adaptation in fast markets
• Most users should leave at 1.0; only adjust if gamma behavior needs tuning
Max Kernel Lookback (20-200):
• Function: Computational limit for Lorentzian smoothing (performance control)
• Recommendations:
Fast PC / simple chart: 80-100
Slow PC / complex chart: 40-60
Mobile / lots of indicators: 30-50
• Impact: Each kernel smoothing loops through this many bars; higher = more accurate but slower
• Default 60 balances accuracy and speed; lower to 40-50 if indicator is slow
🎼 HARMONIC FLOW:
Short Horizon (0.2-1.0):
• Function: Fast timeframe multiplier: short_length = base_period × short_ratio / gamma
• Default: 0.5 (captures 2× faster flow than base)
• By Style:
Scalping: 0.3-0.4 (very fast)
Day trading: 0.4-0.6 (moderate)
Swing: 0.5-0.7 (balanced)
• Effect: Lower = more weight on micro-moves; Higher = smooths out fast fluctuations
Mid Horizon (0.5-2.0):
• Function: Medium timeframe multiplier: mid_length = base_period × mid_ratio / gamma
• Default: 1.0 (equals base_period, anchor timeframe)
• Usually keep at 1.0 unless specific strategy needs fine-tuning
Long Horizon (1.0-5.0):
• Function: Slow timeframe multiplier: long_length = base_period × long_ratio / gamma
• Default: 2.5 (captures trend/structure)
• By Style:
Scalping: 1.5-2.0 (less long-term influence)
Day trading: 2.0-3.0 (balanced)
Swing: 2.5-4.0 (strong trend component)
• Effect: Higher = more emphasis on larger structure; Lower = more reactive to recent price action
Short Weight (0-1):
Mid Weight (0-1):
Long Weight (0-1):
• Function: Relative importance in HFL calculation (should sum to 1.0)
• Defaults: Short: 0.45, Mid: 0.35, Long: 0.20 (day trading balanced)
• Preset Configurations:
SCALPING (fast response):
Short: 0.60, Mid: 0.30, Long: 0.10
DAY TRADING (balanced):
Short: 0.45, Mid: 0.35, Long: 0.20
SWING (trend-following):
Short: 0.25, Mid: 0.35, Long: 0.40
• Effect: More short weight = responsive but noisier; More long weight = smoother but laggier
🧠 DUAL MEMORY SYSTEM:
Enable Pattern Memory (true/false):
• Function: Master switch for KNN pattern matching via dual memory
• Enabled (Recommended): Strategy C (Memory Pattern) can fire; memory predictions influence all strategies; prediction arcs shown; heatmaps available
• Disabled: Only Strategy A and B available; faster performance (less computation); pure technical analysis (no pattern matching)
• Keep enabled for full system capabilities; disable only if CPU-constrained or testing pure flow signals
STM Size (50-200):
• Function: Short-Term Memory capacity (recent pattern storage)
• Characteristics: Fast decay (0.980), captures current regime, updates every 10 bars, tactical pattern matching
• Sizing:
Active markets (crypto): 80-120
Moderate (stocks): 100-150
Slow (bonds): 50-100
• By Timeframe:
1-15min: 60-100 (captures few hours of patterns)
1H: 80-120 (captures days)
4H-Daily: 100-150 (captures weeks/months)
• Tradeoff: More = better recent pattern coverage; Less = faster computation
• Default 100 is solid for most use cases
LTM Size (256-1024):
• Function: Long-Term Memory capacity (validated pattern storage)
• Characteristics: Slow decay (0.997), only high-quality patterns (gated), regime-specific recall, strategic pattern library
• Sizing:
Fast PC: 512-768
Medium PC: 384-512
Slow PC/Mobile: 256-384
• By Data Needs:
High-frequency (lots of patterns): 512-1024
Moderate activity: 384-512
Low-frequency (swing): 256-384
• Performance Impact: Each KNN search loops through entire LTM; 512 = good balance of coverage and speed; if slow, drop to 256-384
• Fills over weeks/months with validated patterns
STM Decay (0.95-0.995):
• Function: Short-Term Memory age decay rate: age_weight = decay^bars_since_pattern
• Decay Rates:
0.950: Aggressive fade (50% weight after 14 bars)
0.970: Moderate fade (50% after 23 bars)
0.980: Balanced (50% after 35 bars)
0.990: Slow fade (50% after 69 bars)
• By Timeframe:
1-5min: 0.95-0.97 (fast markets, old patterns irrelevant)
15min-1H: 0.97-0.98 (balanced)
4H-Daily: 0.98-0.99 (slower decay)
• Philosophy: STM should emphasize RECENT patterns; lower decay = only very recent matters; 0.980 works well for most cases
LTM Decay (0.99-0.999):
• Function: Long-Term Memory age decay rate
• Decay Rates:
0.990: 50% weight after 69 bars
0.995: 50% weight after 138 bars
0.997: 50% weight after 231 bars
0.999: 50% weight after 693 bars
• Philosophy: LTM should retain value for LONG periods; pattern from 6 months ago might still matter
• Usage:
Fast-changing markets: 0.990-0.995
Stable markets: 0.995-0.998
Structural patterns: 0.998-0.999
• Warning: Be careful with very high decay (>0.998); market structure changes, old patterns may mislead
• 0.997 balances long-term memory with regime evolution
K Neighbors (3-21):
• Function: Number of similar patterns to query in KNN search
• By Sample Size:
Small dataset (<100 patterns): 3-5
Medium dataset (100-300): 5-8
Large dataset (300-1000): 8-13
Very large (>1000): 13-21
• Tradeoff:
Fewer K (3-5): More reactive to closest matches; noisier; outlier-sensitive; better when patterns very distinct
More K (13-21): Smoother, more stable predictions; may dilute strong signals; better when patterns overlap
• Rule of Thumb: K ≈ √(memory_size) / 3; For STM=100, LTM=512: K ≈ 8-10 ideal
Adaptive Quality Gate (true/false):
• Function: Adapts LTM entry threshold per regime based on Sharpe ratio
• Enabled: Quality gate adapts: Low Sharpe → RAISE gate (demand better patterns); High Sharpe → LOWER gate (accept more patterns); each regime has independent gate
• Disabled: Fixed quality gate (0.4 default) for all regimes
• Recommended: Keep ENABLED; helps LTM focus on proven pattern types per regime; prevents weak patterns from polluting memory
🎯 MULTI-STRATEGY SYSTEM:
Enable Strategy Learning (true/false):
• Function: Core learning feature for regime-specific strategy selection
• Enabled: Tracks 3 strategies × 5 regimes = 15 performance matrices; selects best strategy per regime via Sharpe/Calmar/WinRate; adaptive strategy switching
• Disabled: All strategies fire simultaneously (weighted combination); no regime-specific selection; simpler but less adaptive
• Recommended: ENABLED (this is the core of the adaptive system); disable only for testing or simplification
Strategy A Weight (0-1):
• Function: Weight for Strategy A (Squeeze Breakout) when multi-strategy disabled
• Characteristics: Fires on Bollinger squeeze release; best in Low Vol Range, Transition; compression → expansion pattern
• When Multi-Strategy OFF: Default 0.33 (equal weight); increase to 0.4-0.5 for choppy ranges with breakouts; decrease to 0.2-0.3 for trending markets
• When Multi-Strategy ON: This is ignored (system auto-selects based on performance)
Strategy B Weight (0-1):
• Function: Weight for Strategy B (Lorentzian Flow) when multi-strategy disabled
• Characteristics: Fires on strong HFL + velocity + gamma; best in Trending Bull/Bear; momentum → acceleration pattern
• When Multi-Strategy OFF: Default 0.33; increase to 0.4-0.5 for trending markets; decrease to 0.2-0.3 for choppy/ranging markets
• When Multi-Strategy ON: Ignored (auto-selected)
Strategy C Weight (0-1):
• Function: Weight for Strategy C (Memory Pattern) when multi-strategy disabled
• Characteristics: Fires when dual KNN predicts strong move; best in High Vol Range; requires memory system enabled + sufficient data
• When Multi-Strategy OFF: Default 0.34; increase to 0.4-0.6 if strong pattern repetition and LTM has >200 patterns; decrease to 0.2-0.3 if new to system; set to 0.0 if memory disabled
• When Multi-Strategy ON: Ignored (auto-selected)
📚 PRE-TRAINING:
Historical Pre-Training (true/false):
• Function: Bootstrap feature that fills memory on chart load
• Enabled: Scans past bars to populate STM/LTM before live trading; calculates historical outcomes (10-bar forward returns); builds initial pattern library; system starts with context, not blank slate
• Disabled: Memories only populate in real-time; takes weeks to build pattern library
• Recommended: ENABLED (critical for avoiding "cold start" problem); disable only for testing clean learning
Training Bars (50-500):
• Function: How many historical bars to scan on load (limited by available history)
• Recommendations:
1-5min charts: 200-300 (few hours of history)
15min-1H: 200-400 (days/weeks)
4H: 300-500 (months)
Daily: 200-400 (years)
• Performance:
100 bars: ~1 second
300 bars: ~2-3 seconds
500 bars: ~4-5 seconds
• Sweet Spot: 200-300 (enough patterns without slow load)
• If chart loads slowly: Reduce to 100-150
🎨 VISUALIZATION:
Show Regime Background (true/false):
• Function: Color-code background by current regime
• Colors: Trending Bull (green tint), Trending Bear (red tint), High Vol Range (orange tint), Low Vol Range (blue tint), Transition (purple tint)
• Helps visually track regime changes
Show Flow Bands (true/false):
• Function: Plot upper/lower bands based on HFL strength
• Shows dynamic support/resistance zones; green fill = bullish flow; red fill = bearish flow
• Useful for visual trend confirmation
Show Confidence Meter (true/false):
• Function: Plot signal confidence (0-100) in separate pane
• Calculation: (Signal_Strength / 100) × Regime_Confidence
• Gold line = current confidence; dashed line = minimum threshold
• Signals fire when confidence exceeds threshold
Show Prediction Arc (true/false):
• Function: Dashed line projecting expected price move based on memory prediction
• NOT a price target - a probability vector; steep arc = strong expected move; flat arc = weak/uncertain prediction
• Green = bullish prediction; red = bearish prediction
Show Signals (true/false):
• Function: Triangle markers at entry points
• ▲ Green = Long signal; ▼ Red = Short signal
• Markers show on bar close (non-repainting)
🏆 DASHBOARD:
Show Dashboard (true/false):
• Function: Main info panel showing all system metrics
• Sections: Lorentzian Core, Regime, Dual Memory, Adaptive Parameters, Regime Performance, Shadow Portfolios, Current Signal Status
• Essential for understanding system state
Dashboard Position: Top Left, Top Right, Bottom Left, Bottom Right
Individual Section Toggles:
• System Stats: Lorentzian Core section (Gamma, v/c, HFL, TCI)
• Memory Stats: Dual Memory section (STM/LTM predictions, agreement)
• Shadow Portfolios: Shadow Portfolio table (equity, win%, PF)
• Adaptive Params: Adaptive Parameters section (threshold, quality gate, flow mult)
🔥 HEATMAPS:
Show Dual Heatmaps (true/false):
• Function: Visual pattern density maps for STM and LTM
• Layout: X-axis = pattern age (left=recent, right=old); Y-axis = outcome direction (top=bearish, bottom=bullish); Color intensity = pattern count; Color hue = bullish (green) vs bearish (red)
• Warning: Can clutter chart; disable if not using
Heatmap Position: Screen position for heatmaps (STM at selected position, LTM offset)
Resolution (5-15):
• Function: Grid resolution (bins)
• Higher = more detailed but smaller cells; Lower = clearer but less granular
• 10 is good balance; reduce to 6-8 if hard to read
PART 11: DASHBOARD METRICS EXPLAINED
The comprehensive dashboard provides real-time transparency into every aspect of the adaptive system:
⚡ LORENTZIAN CORE SECTION:
Gamma (γ):
• Range: 1.0 to ~10.0 (capped)
• Interpretation:
γ ≈ 1.0-1.2: Normal market time, low velocity
γ = 1.5-2.5: Moderate compression, trending
γ = 3.0-5.0: High compression, explosive moves
γ > 5.0: Extreme compression, parabolic volatility
• Usage: High gamma = system operating in compressed time; expect shorter effective periods and faster adaptation
v/c (Velocity / Speed Limit):
• Range: 0.0 to 0.999 (approaches but never reaches 1.0)
• Interpretation:
v/c < 0.3: Slow market, low momentum
v/c = 0.4-0.7: Moderate trending
v/c > 0.7: Approaching "speed limit," high velocity
v/c > 0.9: Parabolic move, system at limit
• Color Coding: Red (>0.7), Gold (0.4-0.7), Green (<0.4)
• Usage: High v/c warns of extreme conditions where trend may exhaust
HFL (Harmonic Flow):
• Range: Typically -3.0 to +3.0 (can exceed in extremes)
• Interpretation:
HFL > 0: Bullish flow
HFL < 0: Bearish flow
|HFL| > 0.5: Strong directional bias
|HFL| < 0.2: Weak, indecisive
• Color: Green (positive), Red (negative)
• Usage: Primary directional indicator; strategies often require HFL confirmation
TCI (Temporal Compression Index):
• Calculation: base_period / compressed_length
• Interpretation:
TCI ≈ 1.0: No compression, normal time
TCI = 1.5-2.5: Moderate compression
TCI > 3.0: Significant compression
• Usage: Shows how much time is being compressed; mirrors gamma but more intuitive
╔═══ REGIME SECTION ═══╗
Current:
• Display: Regime name with icon (Trending Bull ↗, Trending Bear ↘, High Vol Range ↔, Low Vol Range —, Transition ⚡)
• Color: Gold for visibility
• Usage: Know which regime you're in; check regime performance to see expected strategy behavior
Confidence:
• Range: 0-100%
• Interpretation:
>70%: Very clear regime definition
40-70%: Moderate clarity
<40%: Ambiguous, mixed conditions
• Color: Green (>70%), Gold (40-70%), Red (<40%)
• Usage: High confidence = trust regime classification; low confidence = regime may be transitioning
Mode:
• States:
🔥 BOOTSTRAP (X/10): Still gathering data for this regime
✅ FAVORABLE: Best strategy has positive risk-adjusted score (>0.5)
⚠️ UNFAVORABLE: All strategies have negative scores (≤0.5)
• Color: Orange (bootstrap), Green (favorable), Red (unfavorable)
• Critical Importance: This tells you whether the system will trade or stand aside (if regime filter enabled)
╔═══ DUAL MEMORY KNN SECTION ═══╗
STM (Size):
• Display: Number of patterns currently in STM (0 to stm_size)
• Interpretation: Should fill to capacity within hours/days; if not filling, check that memory is enabled
STM Pred:
• Range: Typically -0.05 to +0.05 (representing -5% to +5% expected 10-bar move)
• Color: Green (positive), Red (negative)
• Usage: STM's prediction based on recent patterns; emphasis on current regime
LTM (Size):
• Display: Number of patterns in LTM (0 to ltm_size)
• Interpretation: Fills slowly (weeks/months); only validated high-quality patterns; check quality gate if not filling
LTM Pred:
• Range: Similar to STM pred
• Color: Green (positive), Red (negative)
• Usage: LTM's prediction based on long-term validated patterns; more strategic than tactical
Agreement:
• Display:
✅ XX%: Strong agreement (>70%) - both memories aligned
⚠️ XX%: Moderate agreement (40-70%) - some disagreement
❌ XX%: Conflict (<40%) - memories strongly disagree
• Color: Green (>70%), Gold (40-70%), Red (<40%)
• Critical Usage: Low agreement often precedes regime change or signals novel conditions; Strategy C won't fire with low agreement
╔═══ ADAPTIVE PARAMS SECTION ═══╗
Threshold:
• Display: Current regime's signal quality threshold (30-90)
• Interpretation: Higher = pickier; lower = more permissive
• Watch For: If steadily rising in a regime, system is struggling (low win rate); if falling, system is confident
• Default: Starts at base_quality_threshold (usually 60)
Quality:
• Display: Current regime's LTM quality gate (0.2-0.8)
• Interpretation: Minimum quality score for pattern to enter LTM
• Watch For: If rising, system demanding higher-quality patterns; if falling, accepting more diverse patterns
• Default: Starts at 0.4
Flow Mult:
• Display: Current regime's flow multiplier (0.5-2.0)
• Interpretation: Amplifies or dampens HFL for Strategy B
• Watch For: If >1.2, system found strong edge in flow signals; if <0.8, flow signals underperforming
• Default: Starts at 1.0
Learning:
• Display: ✅ ON or ❌ OFF
• Shows whether adaptive learning is enabled
• Color: Green (on), Red (off)
╔═══ REGIME PERFORMANCE SECTION ═══╗
This table shows ONLY the current regime's statistics:
S (Strategy):
• Display: A, B, or C
• Color: Gold if selected strategy; gray if not
• Shows which strategies have data in this regime
Trades:
• Display: Number of completed trades for this pair
• Interpretation: Blank or low numbers mean bootstrap mode; >10 means statistical significance building
Win%:
• Display: Win rate percentage
• Color: Green (>55%), White (45-55%), Red (<45%)
• Interpretation: 52%+ is good; 58%+ is excellent; <45% means struggling
• Note: Short-term variance is normal; judge after 20+ trades
Sharpe:
• Display: Annualized Sharpe ratio
• Color: Green (>1.0), White (0-1.0), Red (<0)
• Interpretation:
>2.0: Exceptional (rare)
1.0-2.0: Good
0.5-1.0: Acceptable
0-0.5: Marginal
<0: Losing
• Usage: Primary metric for strategy selection (60% weight in score)
╔═══ SHADOW PORTFOLIOS SECTION ═══╗
Shows virtual equity tracking across ALL regimes (not just current):
S (Strategy):
• Display: A, B, or C
• Color: Gold if currently selected strategy; gray otherwise
Equity:
• Display: Current virtual balance (starts $10,000)
• Color: Green (>$10,000), White ($9,500-$10,000), Red (<$9,500)
• Interpretation: Which strategy is actually making virtual money across all conditions
• Note: 10% risk per trade assumed
Win%:
• Display: Overall win rate across all regimes
• Color: Green (>55%), White (45-55%), Red (<45%)
• Interpretation: Aggregate performance; strategy may do well in some regimes and poorly in others
PF (Profit Factor):
• Display: Gross profit / gross loss
• Color: Green (>1.5), White (1.0-1.5), Red (<1.0)
• Interpretation:
>2.0: Excellent
1.5-2.0: Good
1.2-1.5: Acceptable
1.0-1.2: Marginal
<1.0: Losing
• Usage: Confirms win rate; high PF with moderate win rate means winners >> losers
╔═══ STATUS BAR ═══╗
Display States:
• 🟢 LONG: Currently in long position (green background)
• 🔴 SHORT: Currently in short position (red background)
• ⬆️ LONG SIGNAL: Long signal present but not yet confirmed (waiting for bar close)
• ⬇️ SHORT SIGNAL: Short signal present but not yet confirmed
• ⚪ NEUTRAL: No position, no signal (white background)
Usage: Immediate visual confirmation of system state; check before manually entering/exiting
PART 12: VISUAL ELEMENT INTERPRETATION
REGIME BACKGROUND COLORS:
Green Tint: Trending Bull regime - expect Strategy B (Flow) to dominate; focus on long momentum
Red Tint: Trending Bear regime - expect Strategy B (Flow) shorts; focus on short momentum
Orange Tint: High Vol Range - expect Strategy A (Squeeze) or C (Memory); trade breakouts or patterns
Blue Tint: Low Vol Range - expect Strategy A (Squeeze); wait for compression release
Purple Tint: Transition regime - often unfavorable; system may stand aside; high uncertainty
Usage: Quick visual regime identification without reading dashboard
FLOW BANDS:
Upper Band: close + HFL × ATR × 1.5
Lower Band: close - HFL × ATR × 1.5
Green Fill: HFL positive (bullish flow); bands act as dynamic support/resistance in uptrend
Red Fill: HFL negative (bearish flow); bands act as dynamic resistance/support in downtrend
Usage:
• Bullish flow: Price bouncing off lower band = trend continuation; breaking below = possible reversal
• Bearish flow: Price rejecting upper band = trend continuation; breaking above = possible reversal
CONFIDENCE METER (Separate Pane):
Gold Line: Current signal confidence (0-100)
Dashed Line: Minimum confidence threshold
Interpretation:
• Line above threshold: Signal likely to fire if strength sufficient
• Line below threshold: Even if signal logic met, won't fire (insufficient confidence)
• Gradual rise: Signal building strength
• Sharp spike: Sudden conviction (check if sustainable)
Usage: Real-time signal probability; helps anticipate upcoming entries
PREDICTION ARC:
Dashed Line: Projects from current close to expected price 8 bars forward
Green Arc: Bullish memory prediction
Red Arc: Bearish memory prediction
Steep Arc: High conviction (strong expected move)
Flat Arc: Low conviction (weak/uncertain move)
Important: NOT a price target; this is a probability vector based on KNN outcomes; actual price may differ
Usage: Directional bias from pattern matching; confirms or contradicts flow signals
SIGNAL MARKERS:
▲ Green Triangle (below bar):
• Long signal confirmed on bar close
• Entry on next bar open
• Non-repainting (appears after bar closes)
▼ Red Triangle (above bar):
• Short signal confirmed on bar close
• Entry on next bar open
• Non-repainting
Size: Tiny (unobtrusive)
Text: "L" or "S" in marker
Usage: Historical signal record; alerts should fire on these; verify against dashboard status
DUAL HEATMAPS (If Enabled):
STM HEATMAP:
• X-axis: Pattern age (left = recent, right = older, typically 0-50 bars)
• Y-axis: Outcome direction (top = bearish outcomes, bottom = bullish outcomes)
• Color Intensity: Brightness = pattern count in that cell
• Color Hue: Green tint (bullish), Red tint (bearish), Gray (neutral)
Interpretation:
• Dense bottom-left: Many recent bullish patterns (bullish regime)
• Dense top-left: Many recent bearish patterns (bearish regime)
• Scattered: Mixed outcomes, ranging regime
• Empty areas: Few patterns (low data)
LTM HEATMAP:
• Similar layout but X-axis spans wider age range (0-500+ bars)
• Shows long-term pattern distribution
• Denser = more validated patterns
Comparison Usage:
• If STM and LTM heatmaps look similar: Current regime matches historical patterns (high agreement)
• If STM bottom-heavy but LTM top-heavy: Recent bullish activity contradicts historical bearish patterns (low agreement, transition signal)
PART 13: DEVELOPMENT STORY
The creation of the Lorentzian Harmonic Flow Adaptive ML system represents over six months of intensive research, mathematical exploration, and iterative refinement. What began as a theoretical investigation into applying special relativity to market time evolved into a complete adaptive learning framework.
THE CHALLENGE:
The fundamental problem was this: markets don't experience time uniformly, yet every indicator treats a 50-period calculation the same whether markets are exploding or sleeping. Traditional adaptive indicators adjust parameters based on volatility, but this is reactive—by the time you measure high volatility, the explosive move is over. What was needed was a framework that measured the market's intrinsic velocity relative to its own structural limits, then compressed time itself proportionally.
THE LORENTZIAN INSIGHT:
Einstein's special relativity provides exactly this framework through the Lorentz factor. When an object approaches the speed of light, time dilates—but from the object's reference frame, it experiences time compression. By treating price velocity as analogous to relativistic velocity and volatility structure as the "speed limit," we could calculate a gamma factor that compressed lookback periods during explosive moves.
The mathematics were straightforward in theory but devilishly complex in implementation. Pine Script has no native support for dynamically-sized arrays or recursive functions, forcing creative workarounds. The Lorentzian kernel smoothing required nested loops through historical bars, calculating kernel weights on the fly—a computational nightmare. Early versions crashed or produced bizarre artifacts (negative gamma values, infinite loops during volatility spikes).
Optimization took weeks. Limiting kernel lookback to 60 bars while still maintaining smoothing quality. Pre-calculating gamma once per bar and reusing it across all calculations. Caching intermediate results. The final implementation balances mathematical purity with computational reality.
THE MEMORY ARCHITECTURE:
With temporal compression working, the next challenge was pattern memory. Simple moving average systems have no memory—they forget yesterday's patterns immediately. But markets are non-stationary; what worked last month may not work today. The solution: dual-memory architecture inspired by cognitive neuroscience.
Short-Term Memory (STM) would capture tactical patterns—the hippocampus of the system. Fast encoding, fast decay, always current. Long-Term Memory (LTM) would store validated strategic patterns—the neocortex. Slow consolidation, persistent storage, regime-spanning wisdom.
The KNN implementation nearly broke me. Calculating Lorentzian distance across 6 dimensions for 500+ patterns per query, applying age decay, filtering by regime, finding K nearest neighbors without native sorting functions—all while maintaining sub-second execution. The breakthrough came from realizing we could use destructive sorting (marking found neighbors as "infinite distance") rather than maintaining separate data structures.
Pre-training was another beast. To populate memory with historical patterns, the system needed to scan hundreds of past bars, calculate forward outcomes, and insert patterns—all on chart load without timing out. The solution: cap at 200 bars, optimize loops, pre-calculate features. Now it works seamlessly.
THE REGIME DETECTION:
Five-regime classification emerged from empirical observation. Traditional trending/ranging dichotomy missed too much nuance. Markets have at least four distinct states: trending up, trending down, volatile range, quiet range—plus a chaotic transition state. Linear regression slope quantifies trend; volatility ratio quantifies expansion; combining them creates five natural clusters.
But classification is useless without regime-specific learning. That meant tracking 15 separate performance matrices (3 strategies × 5 regimes), computing Sharpe ratios and Calmar ratios for sparse data, implementing Bayesian-like strategy selection. The bootstrap mode logic alone took dozens of iterations—too strict and you never get data, too permissive and you blow up accounts during learning.
THE ADAPTIVE LAYER:
Parameter adaptation was conceptually elegant but practically treacherous. Each regime needed independent thresholds, quality gates, and multipliers that adapted based on outcomes. But naive gradient descent caused oscillations—win a few trades, lower threshold, take worse signals, lose trades, raise threshold, miss good signals. The solution: exponential smoothing via learning rate (α) and separate scoring for selection vs adaptation.
Shadow portfolios provided objective validation. By running virtual accounts for all strategies simultaneously, we could see which would have won even when not selected. This caught numerous bugs where selection logic was sound but execution was flawed, or vice versa.
THE DASHBOARD & VISUALIZATION:
A learning system is useless if users can't understand what it's doing. The dashboard went through five complete redesigns. Early versions were information dumps—too much data, no hierarchy, impossible to scan. The final version uses visual hierarchy (section headers, color coding, strategic whitespace) and progressive disclosure (show current regime first, then performance, then parameters).
The dual heatmaps were a late addition but proved invaluable for pattern visualization. Seeing STM cluster in one corner while LTM distributed broadly immediately signals regime novelty. Traders grasp this visually faster than reading disagreement percentages.
THE TESTING GAUNTLET:
Testing adaptive systems is uniquely challenging. Static backtest results mean nothing—the system should improve over time. Early "tests" showed abysmal performance because bootstrap periods were included. The breakthrough: measure pre-learning baseline vs post-learning performance. A system going from 48% win rate (first 50 trades) to 56% win rate (trades 100-200) is succeeding even if absolute performance seems modest.
Edge cases broke everything repeatedly. What happens when a regime never appears in historical data? When all strategies fail simultaneously? When memory fills with only bearish patterns during a bull run? Each required careful handling—bootstrap modes, forced diversification, quality gates.
THE DOCUMENTATION:
This isn't an indicator you throw on a chart with default settings and trade immediately. It's a learning system that requires understanding. The input tooltips alone contain over 10,000 words of guidance—market-specific recommendations, timeframe-specific settings, tradeoff explanations. Every parameter needed not just a description but a philosophical justification and practical tuning guide.
The code comments span 500+ lines explaining theory, implementation decisions, edge cases. Future maintainers (including myself in six months) need to understand not just what the code does but why certain approaches were chosen over alternatives.
WHAT ALMOST DIDN'T WORK:
The entire project nearly collapsed twice. First, when initial Lorentzian smoothing produced complete noise—hours of debugging revealed a simple indexing error where I was accessing instead of in the kernel loop. One character, entire system broken.
Second, when memory predictions showed zero correlation with outcomes. Turned out the KNN distance metric was dominated by the gamma dimension (values 1-10) drowning out normalized features (values -1 to 1). Solution: apply kernel transformation to all dimensions, not just final distance. Obvious in retrospect, maddening at the time.
THE PHILOSOPHY:
This system embodies a specific philosophy: markets are learnable but non-stationary. No single strategy works forever, but regime-specific patterns persist. Time isn't uniform, memory isn't perfect, prediction isn't possible—but probabilistic edges exist for those willing to track them rigorously.
It rejects the premise that indicators should give universal advice. Instead, it says: "In this regime, based on similar past states, Strategy B has a 58% win rate and 1.4 Sharpe. Strategy A has 45% and 0.2 Sharpe. I recommend B. But we're still in bootstrap for Strategy C, so I'm gathering data. Check back in 5 trades."
That humility—knowing what it knows and what it doesn't—is what makes it robust.
PART 14: PROFESSIONAL USAGE PROTOCOL
PHASE 1: DEPLOYMENT (Week 1-4)
Initial Setup:
1. Load indicator on primary trading chart with default settings
2. Verify historical pre-training enabled (should see ~200 patterns in STM/LTM on first load)
3. Enable all dashboard sections for maximum transparency
4. Set alerts but DO NOT trade real money
Observation Checklist:
• Dashboard Validation:
✓ Lorentzian Core shows reasonable gamma (1-5 range, not stuck at 1.0 or spiking to 10)
✓ HFL oscillates with price action (not flat or random)
✓ Regime classifications make intuitive sense
✓ Confidence scores vary appropriately
• Memory System:
✓ STM fills within first few hours/days of real-time bars
✓ LTM grows gradually (few patterns per day, quality-gated)
✓ Predictions show directional bias (not always 0.0)
✓ Agreement metric fluctuates with regime changes
• Bootstrap Tracking:
✓ Dashboard shows "🔥 BOOTSTRAP (X/10)" for each regime
✓ Trade counts increment on regime-specific signals
✓ Different regimes reach threshold at different rates
Paper Trading:
• Take EVERY signal (ignore unfavorable warnings during bootstrap)
• Log each trade: entry price, regime, selected strategy, outcome
• Calculate your actual P&L assuming proper risk management (1-2% risk per trade)
• Do NOT judge system performance yet—focus on understanding behavior
Troubleshooting:
• No signals for days:
- Check base_quality_threshold (try lowering to 50-55)
- Verify enable_regime_filter not blocking all regimes
- Confirm signal confidence threshold not too high (try 0.25)
• Signals every bar:
- Raise base_quality_threshold to 65-70
- Increase min_bars_between to 8-10
- Check if gamma spiking excessively (raise c_multiplier)
• Memory not filling:
- Confirm enable_memory = true
- Verify historical pre-training completed (check STM size after load)
- May need to wait 10 bars for first real-time update
PHASE 2: VALIDATION (Week 5-12)
Statistical Emergence:
By week 5-8, most regimes should exit bootstrap. Look for:
✓ Regime Performance Clarity:
- At least 2-3 strategies showing positive Sharpe in their favored regimes
- Clear separation (Strategy B strong in Trending, Strategy A strong in Low Vol Range, etc.)
- Win rates stabilizing around 50-60% for winning strategies
✓ Shadow Portfolio Divergence:
- Virtual portfolios showing clear winners ($10K → $11K+) and losers ($10K → $9K-)
- Profit factors >1.3 for top strategy
- System selection aligning with best shadow portfolio
✓ Parameter Adaptation:
- Thresholds varying per regime (not stuck at initial values)
- Quality gates adapting (some regimes higher, some lower)
- Flow multipliers showing regime-specific optimization
Validation Questions:
1. Do patterns make intuitive sense?
- Strategy B (Flow) dominating Trending Bull/Bear? ✓ Expected
- Strategy A (Squeeze) succeeding in Low Vol Range? ✓ Expected
- Strategy C (Memory) working in High Vol Range? ✓ Expected
- Random strategy winning everywhere? ✗ Problem
2. Is unfavorable filtering working?
- Regimes with negative Sharpe showing "⚠️ UNFAVORABLE"? ✓ System protecting capital
- Transition regime often unfavorable? ✓ Expected
- All regimes perpetually unfavorable? ✗ Settings too strict or asset unsuitable
3. Are memories agreeing appropriately?
- High agreement during stable regimes? ✓ Expected
- Low agreement during transitions? ✓ Expected (novel conditions)
- Perpetual conflict? ✗ Check memory sizes or decay rates
Fine-Tuning (If Needed):
Too Many Signals in Losing Regimes:
→ Increase learning_rate to 0.07-0.08 (faster adaptation)
→ Raise base_quality_threshold by 5-10 points
→ Enable regime filter if disabled
Missing Profitable Setups:
→ Lower base_quality_threshold by 5-10 points
→ Reduce min_confidence to 0.25-0.30
→ Check if bootstrap mode blocking trades (let it complete)
Excessive Parameter Swings:
→ Reduce learning_rate to 0.03-0.04
→ Increase min_regime_samples to 15-20 (more data before adaptation)
Memory Disagreement Too Frequent:
→ Increase LTM size to 768-1024 (broader pattern library)
→ Lower adaptive_quality_gate requirement (allow more patterns)
→ Increase K neighbors to 10-12 (smoother predictions)
PHASE 3: LIVE TRADING (Month 4+)
Pre-Launch Checklist:
1. ✓ At least 3 regimes show positive Sharpe (>0.8)
2. ✓ Top shadow portfolio shows >53% win rate and >1.3 profit factor
3. ✓ Parameters have stabilized (not changing more than 10% per month)
4. ✓ You understand every dashboard metric and can explain regime/strategy behavior
5. ✓ You have proper risk management plan independent of this system
Position Sizing:
Conservative (Recommended for Month 4-6):
• Risk per trade: 0.5-1.0% of account
• Max concurrent positions: 1-2
• Total exposure: 10-25% of intended full size
Moderate (Month 7-12):
• Risk per trade: 1.0-1.5% of account
• Max concurrent positions: 2-3
• Total exposure: 25-50% of intended size
Full Scale (Year 2+):
• Risk per trade: 1.5-2.0% of account
• Max concurrent positions: 3-5
• Total exposure: 100% (still following risk limits)
Entry Execution:
On Signal Confirmation:
1. Verify dashboard shows signal type (▲ LONG or ▼ SHORT)
2. Check regime mode (avoid if "⚠️ UNFAVORABLE" unless testing)
3. Note selected strategy (A/B/C) and its regime Sharpe
4. Verify memory agreement if Strategy C selected (want >60%)
Entry Method:
• Market entry: Next bar open after signal (for exact backtest replication)
• Limit entry: Slight improvement (2-3 ticks) if confident in direction
Stop Loss Placement:
• Strategy A (Squeeze): Beyond opposite band or recent swing point
• Strategy B (Flow): 1.5-2.0 ATR from entry against direction
• Strategy C (Memory): Based on predicted move magnitude (tighter if pred > 2%)
Exit Management:
System Exit Signals:
• Opposite signal fires: Immediate exit, potential reversal entry
• 20 bars no exit signal: System implies position stale, consider exiting
• Regime changes to unfavorable: Tighten stop, consider partial exit
Manual Exit Conditions:
• Stop loss hit: Take loss, log for validation (system expects some losses)
• Profit target hit: If using fixed targets (2-3R typical)
• Major news event: Flatten during high-impact news (system can't predict these)
Warning Signs (Exit Criteria):
🚨 Stop Trading If:
1. All regimes show negative Sharpe for 4+ weeks (market structure changed)
2. Your results >20% worse than shadow portfolios (execution problem)
3. Parameters hitting extremes (thresholds >85 or <35 across all regimes)
4. Memory agreement <30% for extended periods (unprecedented conditions)
5. Account drawdown >20% (risk management failure, system or otherwise)
⚠️ Reduce Size If:
1. Win rate drops 10%+ from peak (temporary regime shift)
2. Selected strategy underperforming another by >30% (selection lag)
3. Consecutive losses >5 (variance or problem, reduce until clarity)
4. Major market regime change (Fed policy shift, war, etc. - let system re-adapt)
PART 15: THEORETICAL IMPLICATIONS & LIMITATIONS
WHAT THIS SYSTEM REPRESENTS:
Contextual Bandits:
The regime-specific strategy selection implements a contextual multi-armed bandit problem. Each strategy is an "arm," each regime is a "context," and we select arms to maximize expected reward given context. This is reinforcement learning applied to trading.
Experience Replay:
The dual-memory architecture mirrors DeepMind's DQN breakthrough. STM = recent experience buffer; LTM = validated experience replay. This prevents catastrophic forgetting while enabling rapid adaptation—a key challenge in neural network training.
Meta-Learning:
The system learns how to learn. Parameter adaptation adjusts the system's own sensitivity and selectivity based on outcomes. This is "learning to learn"—optimizing the optimization process itself.
Non-Stationary Optimization:
Traditional backtesting assumes stationarity (past patterns persist). This system assumes non-stationarity and continuously adapts. The goal isn't finding "the best parameters" but tracking the moving optimum.
Regime-Conditional Policies:
Rather than a single strategy for all conditions, this implements regime-specific policies. This is contextual decision-making—environment state determines action selection.
FINAL WISDOM:
"The market is a complex adaptive system. To trade it successfully, one must also adapt. This indicator provides the framework—memory, learning, regime awareness—but wisdom comes from understanding when to trade, when to stand aside, and when to defer to conditions the system hasn't yet learned. The edge isn't in the algorithm alone; it's in the partnership between mathematical rigor and human judgment."
— Inspired by the intersection of Einstein's relativity, Kahneman's behavioral economics, and decades of quantitative trading research
Taking you to school. — Dskyz, Trade with insight. Trade with anticipation.
PnL Bubble [%] | Fractalyst1. What's the indicator purpose?
The PnL Bubble indicator transforms your strategy's trade PnL percentages into an interactive bubble chart with professional-grade statistics and performance analytics. It helps traders quickly assess system profitability, understand win/loss distribution patterns, identify outliers, and make data-driven strategy improvements.
How does it work?
Think of this indicator as a visual report card for your trading performance. Here's what it does:
What You See
Colorful Bubbles: Each bubble represents one of your trades
Blue/Cyan bubbles = Winning trades (you made money)
Red bubbles = Losing trades (you lost money)
Bigger bubbles = Bigger wins or losses
Smaller bubbles = Smaller wins or losses
How It Organizes Your Trades:
Like a Photo Album: Instead of showing all your trades at once (which would be messy), it shows them in "pages" of 500 trades each:
Page 1: Your first 500 trades
Page 2: Trades 501-1000
Page 3: Trades 1001-1500, etc.
What the Numbers Tell You:
Average Win: How much money you typically make on winning trades
Average Loss: How much money you typically lose on losing trades
Expected Value (EV): Whether your trading system makes money over time
Positive EV = Your system is profitable long-term
Negative EV = Your system loses money long-term
Payoff Ratio (R): How your average win compares to your average loss
R > 1 = Your wins are bigger than your losses
R < 1 = Your losses are bigger than your wins
Why This Matters:
At a Glance: You can instantly see if you're a profitable trader or not
Pattern Recognition: Spot if you have more big wins than big losses
Performance Tracking: Watch how your trading improves over time
Realistic Expectations: Understand what "average" performance looks like for your system
The Cool Visual Effects:
Animation: The bubbles glow and shimmer to make the chart more engaging
Highlighting: Your biggest wins and losses get extra attention with special effects
Tooltips: hover any bubble to see details about that specific trade.
What are the underlying calculations?
The indicator processes trade PnL data using a dual-matrix architecture for optimal performance:
Dual-Matrix System:
• Display Matrix (display_matrix): Bounded to 500 trades for rendering performance
• Statistics Matrix (stats_matrix): Unbounded storage for complete statistical accuracy
Trade Classification & Aggregation:
// Separate wins, losses, and break-even trades
if val > 0.0
pos_sum += val // Sum winning trades
pos_count += 1 // Count winning trades
else if val < 0.0
neg_sum += val // Sum losing trades
neg_count += 1 // Count losing trades
else
zero_count += 1 // Count break-even trades
Statistical Averages:
avg_win = pos_count > 0 ? pos_sum / pos_count : na
avg_loss = neg_count > 0 ? math.abs(neg_sum) / neg_count : na
Win/Loss Rates:
total_obs = pos_count + neg_count + zero_count
win_rate = pos_count / total_obs
loss_rate = neg_count / total_obs
Expected Value (EV):
ev_value = (avg_win × win_rate) - (avg_loss × loss_rate)
Payoff Ratio (R):
R = avg_win ÷ |avg_loss|
Contribution Analysis:
ev_pos_contrib = avg_win × win_rate // Positive EV contribution
ev_neg_contrib = avg_loss × loss_rate // Negative EV contribution
How to integrate with any trading strategy?
Equity Change Tracking Method:
//@version=6
strategy("Your Strategy with Equity Change Export", overlay=true)
float prev_trade_equity = na
float equity_change_pct = na
if barstate.isconfirmed and na(prev_trade_equity)
prev_trade_equity := strategy.equity
trade_just_closed = strategy.closedtrades != strategy.closedtrades
if trade_just_closed and not na(prev_trade_equity)
current_equity = strategy.equity
equity_change_pct := ((current_equity - prev_trade_equity) / prev_trade_equity) * 100
prev_trade_equity := current_equity
else
equity_change_pct := na
plot(equity_change_pct, "Equity Change %", display=display.data_window)
Integration Steps:
1. Add equity tracking code to your strategy
2. Load both strategy and PnL Bubble indicator on the same chart
3. In bubble indicator settings, select your strategy's equity tracking output as data source
4. Configure visualization preferences (colors, effects, page navigation)
How does the pagination system work?
The indicator uses an intelligent pagination system to handle large trade datasets efficiently:
Page Organization:
• Page 1: Trades 1-500 (most recent)
• Page 2: Trades 501-1000
• Page 3: Trades 1001-1500
• Page N: Trades to
Example: With 1,500 trades total (3 pages available):
• User selects Page 1: Shows trades 1-500
• User selects Page 4: Automatically falls back to Page 3 (trades 1001-1500)
5. Understanding the Visual Elements
Bubble Visualization:
• Color Coding: Cyan/blue gradients for wins, red gradients for losses
• Size Mapping: Bubble size proportional to trade magnitude (larger = bigger P&L)
• Priority Rendering: Largest trades displayed first to ensure visibility
• Gradient Effects: Color intensity increases with trade magnitude within each category
Interactive Tooltips:
Each bubble displays quantitative trade information:
tooltip_text = outcome + " | PnL: " + pnl_str +
"\nDate: " + date_str + " " + time_str +
"\nTrade #" + str.tostring(trade_number) + " (Page " + str.tostring(active_page) + ")" +
"\nRank: " + str.tostring(rank) + " of " + str.tostring(n_display_rows) +
"\nPercentile: " + str.tostring(percentile, "#.#") + "%" +
"\nMagnitude: " + str.tostring(magnitude_pct, "#.#") + "%"
Example Tooltip:
Win | PnL: +2.45%
Date: 2024.03.15 14:30
Trade #1,247 (Page 3)
Rank: 5 of 347
Percentile: 98.6%
Magnitude: 85.2%
Reference Lines & Statistics:
• Average Win Line: Horizontal reference showing typical winning trade size
• Average Loss Line: Horizontal reference showing typical losing trade size
• Zero Line: Threshold separating wins from losses
• Statistical Labels: EV, R-Ratio, and contribution analysis displayed on chart
What do the statistical metrics mean?
Expected Value (EV):
Represents the mathematical expectation per trade in percentage terms
EV = (Average Win × Win Rate) - (Average Loss × Loss Rate)
Interpretation:
• EV > 0: Profitable system with positive mathematical expectation
• EV = 0: Break-even system, profitability depends on execution
• EV < 0: Unprofitable system with negative mathematical expectation
Example: EV = +0.34% means you expect +0.34% profit per trade on average
Payoff Ratio (R):
Quantifies the risk-reward relationship of your trading system
R = Average Win ÷ |Average Loss|
Interpretation:
• R > 1.0: Wins are larger than losses on average (favorable risk-reward)
• R = 1.0: Wins and losses are equal in magnitude
• R < 1.0: Losses are larger than wins on average (unfavorable risk-reward)
Example: R = 1.5 means your average win is 50% larger than your average loss
Contribution Analysis (Σ):
Breaks down the components of expected value
Positive Contribution (Σ+) = Average Win × Win Rate
Negative Contribution (Σ-) = Average Loss × Loss Rate
Purpose:
• Shows how much wins contribute to overall expectancy
• Shows how much losses detract from overall expectancy
• Net EV = Σ+ - Σ- (Expected Value per trade)
Example: Σ+: 1.23% means wins contribute +1.23% to expectancy
Example: Σ-: -0.89% means losses drag expectancy by -0.89%
Win/Loss Rates:
Win Rate = Count(Wins) ÷ Total Trades
Loss Rate = Count(Losses) ÷ Total Trades
Shows the probability of winning vs losing trades
Higher win rates don't guarantee profitability if average losses exceed average wins
7. Demo Mode & Synthetic Data Generation
When using built-in sources (close, open, etc.), the indicator generates realistic demo trades for testing:
if isBuiltInSource(source_data)
// Generate random trade outcomes with realistic distribution
u_sign = prand(float(time), float(bar_index))
if u_sign < 0.5
v_push := -1.0 // Loss trade
else
// Skewed distribution favoring smaller wins (realistic)
u_mag = prand(float(time) + 9876.543, float(bar_index) + 321.0)
k = 8.0 // Skewness factor
t = math.pow(u_mag, k)
v_push := 2.5 + t * 8.0 // Win trade
Demo Characteristics:
• Realistic win/loss distribution mimicking actual trading patterns
• Skewed distribution favoring smaller wins over large wins
• Deterministic randomness for consistent demo results
• Includes jitter effects to prevent visual overlap
8. Performance Limitations & Optimizations
Display Constraints:
points_count = 500 // Maximum 500 dots per page for optimal performance
Pine Script v6 Limits:
• Label Count: Maximum 500 labels per indicator
• Line Count: Maximum 100 lines per indicator
• Box Count: Maximum 50 boxes per indicator
• Matrix Size: Efficient memory management with dual-matrix system
Optimization Strategies:
• Pagination System: Handle unlimited trades through 500-trade pages
• Priority Rendering: Largest trades displayed first for maximum visibility
• Dual-Matrix Architecture: Separate display (bounded) from statistics (unbounded)
• Smart Fallback: Automatic page clamping prevents empty displays
Impact & Workarounds:
• Visual Limitation: Only 500 trades visible per page
• Statistical Accuracy: Complete dataset used for all calculations
• Navigation: Use page input to browse through entire trade history
• Performance: Smooth operation even with thousands of trades
9. Statistical Accuracy Guarantees
Data Integrity:
• Complete Dataset: Statistics matrix stores ALL trades without limit
• Proper Aggregation: Separate tracking of wins, losses, and break-even trades
• Mathematical Precision: Pine Script v6's enhanced floating-point calculations
• Dual-Matrix System: Display limitations don't affect statistical accuracy
Calculation Validation:
// Verified formulas match standard trading mathematics
avg_win = pos_sum / pos_count // Standard average calculation
win_rate = pos_count / total_obs // Standard probability calculation
ev_value = (avg_win * win_rate) - (avg_loss * loss_rate) // Standard EV formula
Accuracy Features:
• Mathematical Correctness: Formulas follow established trading statistics
• Data Preservation: Complete dataset maintained for all calculations
• Precision Handling: Proper rounding and boundary condition management
• Real-Time Updates: Statistics recalculated on every new trade
10. Advanced Technical Features
Real-Time Animation Engine:
// Shimmer effects with sine wave modulation
offset = math.sin(shimmer_t + phase) * amp
// Dynamic transparency with organic flicker
new_transp = math.min(flicker_limit, math.max(-flicker_limit, cur_transp + dir * flicker_step))
• Sine Wave Shimmer: Dynamic glowing effects on bubbles
• Organic Flicker: Random transparency variations for natural feel
• Extreme Value Highlighting: Special visual treatment for outliers
• Smooth Animations: Tick-based updates for fluid motion
Magnitude-Based Priority Rendering:
// Sort trades by magnitude for optimal visual hierarchy
sort_indices_by_magnitude(values_mat)
• Largest First: Most important trades always visible
• Intelligent Sorting: Custom bubble sort algorithm for trade prioritization
• Performance Optimized: Efficient sorting for real-time updates
• Visual Hierarchy: Ensures critical trades never get hidden
Professional Tooltip System:
• Quantitative Data: Pure numerical information without interpretative language
• Contextual Ranking: Shows trade position within page dataset
• Percentile Analysis: Performance ranking as percentage
• Magnitude Scaling: Relative size compared to page maximum
• Professional Format: Clean, data-focused presentation
11. Quick Start Guide
Step 1: Add Indicator
• Search for "PnL Bubble | Fractalyst" in TradingView indicators
• Add to your chart (works on any timeframe)
Step 2: Configure Data Source
• Demo Mode: Leave source as "close" to see synthetic trading data
• Strategy Mode: Select your strategy's PnL% output as data source
Step 3: Customize Visualization
• Colors: Set positive (cyan), negative (red), and neutral colors
• Page Navigation: Use "Trade Page" input to browse trade history
• Visual Effects: Built-in shimmer and animation effects are enabled by default
Step 4: Analyze Performance
• Study bubble patterns for win/loss distribution
• Review statistical metrics: EV, R-Ratio, Win Rate
• Use tooltips for detailed trade analysis
• Navigate pages to explore full trade history
Step 5: Optimize Strategy
• Identify outlier trades (largest bubbles)
• Analyze risk-reward profile through R-Ratio
• Monitor Expected Value for system profitability
• Use contribution analysis to understand win/loss impact
12. Why Choose PnL Bubble Indicator?
Unique Advantages:
• Advanced Pagination: Handle unlimited trades with smart fallback system
• Dual-Matrix Architecture: Perfect balance of performance and accuracy
• Professional Statistics: Institution-grade metrics with complete data integrity
• Real-Time Animation: Dynamic visual effects for engaging analysis
• Quantitative Tooltips: Pure numerical data without subjective interpretations
• Priority Rendering: Intelligent magnitude-based display ensures critical trades are always visible
Technical Excellence:
• Built with Pine Script v6 for maximum performance and modern features
• Optimized algorithms for smooth operation with large datasets
• Complete statistical accuracy despite display optimizations
• Professional-grade calculations matching institutional trading analytics
Practical Benefits:
• Instantly identify system profitability through visual patterns
• Spot outlier trades and risk management issues
• Understand true risk-reward profile of your strategies
• Make data-driven decisions for strategy optimization
• Professional presentation suitable for performance reporting
Disclaimer & Risk Considerations:
Important: Historical performance metrics, including positive Expected Value (EV), do not guarantee future trading success. Statistical measures are derived from finite sample data and subject to inherent limitations:
• Sample Bias: Historical data may not represent future market conditions or regime changes
• Ergodicity Assumption: Markets are non-stationary; past statistical relationships may break down
• Survivorship Bias: Strategies showing positive historical EV may fail during different market cycles
• Parameter Instability: Optimal parameters identified in backtesting often degrade in forward testing
• Transaction Cost Evolution: Slippage, spreads, and commission structures change over time
• Behavioral Factors: Live trading introduces psychological elements absent in backtesting
• Black Swan Events: Extreme market events can invalidate statistical assumptions instantaneously
Autoback Grid Lab [trade_lexx]Autoback Grid Lab: Your personal laboratory for optimizing grid strategies.
Introduction
First of all, it is important to understand that Autoback Grid Lab is a powerful professional tool for backtesting and optimization, created specifically for traders using both grid strategies and regular take profit with stop loss.
The main purpose of this script is to save you weeks and months of manual testing and parameter selection. Instead of manually testing one combination of settings after another, Autoback Grid Lab automatically tests thousands of unique strategies on historical data, providing you with a comprehensive report on the most profitable and, more importantly, sustainable ones.
If you want to find mathematically sound, most effective settings for your grid strategy on a specific asset and timeframe, then this tool was created for you.
Key Features
My tool has functionality that transforms the process of finding the perfect strategy from a routine into an exciting exploration.
🧪 Mass testing of thousands of combinations
The script is able to systematically generate and run a huge number of unique combinations of parameters through the built-in simulator. You set the ranges, and the indicator does all the work, testing all possible options for the following grid settings:
* Number of safety orders (SO Count)
* Grid step (SO Step)
* Step Multiplier (SO Multiplier) for building nonlinear grids
* Martingale for controlling the volume of subsequent orders
* Take Profit (%)
* Stop Loss (%), with the possibility of calculating both from the entry point and from the dynamic breakeven line
* The volume of the base order (Volume BO) as a percentage of the deposit
🏆 Unique `FinalScore` rating system
Sorting strategies by net profit alone is a direct path to self—deception and choosing strategies that are "tailored" to history and will inevitably fail in real trading. To solve this problem, we have developed FinalScore, a comprehensive assessment of the sustainability and quality of the strategy.
How does it work?
FinalScore analyzes each combination not one by one, but by nine key performance metrics at once, including Net Profit, Drawdown, Profit Factor, WinRate, Sharpe coefficients, Sortino, Squid and Omega. Each of these indicators is normalized, that is, reduced to a single scale. Then, to test the strategy for strength, the system performs 30 iterations, each time assigning random weights to these 9 metrics. A strategy gets a high FinalScore only if it shows consistently high results under different evaluation criteria. This proves her reliability and reduces the likelihood that her success was an accident.
📈 Realistic backtesting engine
The test results are meaningless if they do not take into account the actual trading conditions. Our simulator simulates real trading as accurately as possible, taking into account:
* Leverage: Calculation of the required margin to open and hold positions.
* Commission: A percentage commission is charged each time an order is opened and closed.
* Slippage: The order execution price is adjusted by a set percentage to simulate real market conditions.
* Liquidation model: This is one of the most important functions. The script continuously monitors the equity of the account (capital + unrealized P&L). If equity falls below the level of the supporting margin (calculated from the current value of the position), the simulator forcibly closes the position, as it would happen on a real exchange. This eliminates unrealistic scenarios where the strategy survives after a huge drawdown.
🔌 Integration with external signals
The indicator operates in two modes:
1. `No Signal': Standard mode. The trading cycle starts immediately as soon as the previous one has been closed. Ideal for testing the "pure" mechanics of the grid.
2. `External Signal`: In this mode, a new trading cycle will start only when a signal is received from an external source. You can connect any other indicator (such as the RSI, MACD, or your own strategy) to the script and use it as a trigger to log in. This allows you to combine the power of a grid strategy with your own entry points.
📊 Interactive and informative results panel
Upon completion of the calculations, a detailed table with the TOP N best strategies appears on the screen, sorted according to your chosen criterion. For each strategy in the rating, you will see not only the key metrics (Profit, Drawdown, duration of transactions), but also all the parameters that led to this result. You can immediately take these settings and apply them in your trading.
Application Options: How To Solve Your Problems
Autoback Grid Lab is a flexible tool that can be adapted to solve various tasks, from complete grid optimization to fine—tuning existing strategies. Here are some key scenarios for its use:
1. Complete Optimization Of The Grid Strategy
This is the basic and most powerful mode of use. You can find the most efficient grid configuration for any asset from scratch.
* How to use: Set wide ranges for all key grid parameters ('SO Count`, SO Step, SO Multiplier, Martingale, TP, etc.).
* In the `No Signal` mode: You will find the most stable grid configuration that works as an independent, constantly active strategy, regardless of which-or entrance indicators.
* In the `External Signal` mode: You can connect your favorite indicator for input (for example, RSI, MACD or a complex author's script) and find the optimal grid parameters that best complement your input signals. This allows you to turn a simple signaling strategy into a full-fledged grid system.
2. Selecting the Optimal Take Profit and Stop Loss for Your Strategy
Do you already have an entry strategy, but you are not sure where it is best to put Take Profit and Stop Loss? Autoback Grid Lab can solve this problem as well.
* How to use:
1. Disable optimization of all grid parameters (uncheck SO Count, SO Step, Martingale, etc.). Set the Min value for SO Count to 0.
2. Set the ranges for iteration only for 'Take Profit` and `Stop Loss'.
3. Turn on the External Signal mode and connect your indicator with input signals.
* Result: The script will run your historical entry signals with hundreds of different TP and SL combinations and show you which stop order levels bring maximum profit with minimal risk specifically for your entry points.
3. Building a Secure Network with Risk Management
Many traders are afraid of grid strategies because of the risk of large drawdowns. With the help of the optimizer, you can purposefully find the parameters for such a grid, which includes mandatory risk management through Stop Loss.
* How to use: Enable and set the range for Stop Loss, along with other grid parameters. Don't forget to test both types of SL calculations (`From entry point` and `From breakeven line`) to determine which one works more efficiently.
* Result: You will find balanced strategies in which the grid parameters (number of orders, martingale) and the Stop Loss level are selected in such a way as to maximize profits without going beyond the acceptable risk level for you.
How To Use The Indicator (Step-By-Step Guide)
Working with the Autoback Grid Lab is a sequential process consisting of four main steps: from initial setup to analysis of the finished results. Follow this guide to get the most out of the tool.
Step 1: Initial Setup
1. Add the indicator to the chart of your chosen asset and timeframe.
2. Open the script settings. The first thing you should pay attention to is the ⚙️ Optimization Settings ⚙️ group.
3. Set the `Bars Count'. This parameter determines how much historical data will be used for testing.
* Important: The more bars you specify, the more statistically reliable the backtest results will be. We recommend using the maximum available value (25,000) to test strategies at different market phases.
* Consider: The indicator performs all calculations on the last historical bar. After applying the TradingView settings, it will take some time to load all the specified bars. The results table will appear only after the data is fully loaded. Don't worry if it doesn't appear instantly. And if an error occurs, simply switch the number of combinations to 990 and back to 1000 until the table appears.
Step 2: Optimization Configuration
At this stage, you define the "universe" of parameters that our algorithm will explore.
1. Set the search ranges (🛠 Optimization Parameters 🛠 group).
For each grid parameter that you want to optimize (for example, SO Count or `Take Profit'), you must specify three values:
* Min: The minimum value of the range.
* Max: The maximum value of the range.
* Step: The step with which the values from Min to Max will be traversed.
*Example:* If you set Min=5, Max=10, and Step=1 for SO Count, the script will test strategies with 5, 6, 7, 8, 9, and 10 safety orders.
* Tip for users: To get the first results quickly, start with a larger step (for example, TP from 0.5% to 2.5% in 0.5 increments instead of 0.1). After you identify the most promising areas, you can perform a deeper analysis by expanding the ranges around these values.
2. Set Up Money Management (Group `💰 Money Management Settings 💰`).
Fill in these fields with the values that best match your actual trading conditions. This is critically important for obtaining reliable results.
* Capital: Your initial deposit.
* Leverage: Leverage.
* Commission (%): Your trading commission as a percentage.
* Slippage (%): Expected slippage.
* Liquidation Level (%): The level of the supporting margin (MMR in %). For example, for Binance Futures, this value is usually between 0.4% and 2.5%, depending on the asset and position size. Specify this value for your exchange.
3. Select the Sorting Criterion and the Direction (Group `⚙️ Optimization Settings ⚙️').
* `Sort by': Specify the main criteria by which the best strategies will be selected and sorted. I strongly recommend using finalScore to find the most balanced and sustainable strategies.
* `Direction': Choose which trades to test: Long, Short or Both.
Step 3: Start Testing and Work with "Parts"
The total number of unique combinations generated based on your ranges can reach tens of millions. TradingView has technical limitations on the number of calculations that the script can perform at a time. To get around this, I implemented a "Parts" system.
1. What are `Part` and `Combinations in Part'?
* `Combinations in Part': This is the number of backtests that the script performs in one run (1000 by default).
* `Part`: This is the number of the "portion" of combinations that you want to test.
2. How does it work in practice?
* After you have everything set up, leave Part:1 and wait for the results table to appear. You will see the TOP N best strategies from the first thousand tested.
* Analyze them. Then, to check the next thousand combinations, just change the Part to 2 in the settings and click OK. The script will run a test for the next batch.
* Repeat this process by increasing the Part number (`3`, 4, 5...), until you reach the last available part.
* Where can I see the total number of parts? In the information row below the results table, you will find Total parts. This will help you figure out how many more tests are left to run.
Step 4: Analyze the Results in the Table
The results table is your main decision—making tool. It displays the best strategies found, sorted by the criteria you have chosen.
1. Study the performance metrics:
* Rating: Position in the rating.
* Profit %: Net profit as a percentage of the initial capital.
* Drawdown%: The maximum drawdown of the deposit for the entire test period.
* Max Length: The maximum duration of one transaction in days, hours and minutes.
* Trades: The total number of completed trades.
2. Examine the winning parameters:
* To the right of the performance metrics are columns showing the exact settings that led to this result ('SO Count`, SO Step, TP (%), etc.).
3. How to choose the best strategy?
* Don't chase after the maximum profit! The strategy with the highest profit often has the highest drawdown, which makes it extremely risky.
* Seek a balance. The ideal strategy is a compromise between high profitability, low drawdown (Drawdown) and the maximum length of trades acceptable to you (Max Length).
* finalScore was created to find this balance. Trust him — he often highlights not the most profitable, but the most stable and reliable options.
Detailed Description Of The Settings
This section serves as a complete reference for each parameter available in the script settings. The parameters are grouped in the same way as in the indicator interface for your convenience.
Group: ⚙️ Optimization Settings ⚙️
The main parameters governing the testing process are collected here.
* `Enable Optimizer': The main switch. Activates or deactivates all backtesting functionality.
* `Direction': Determines which way trades will be opened during the simulation.
* Long: Shopping only.
* Short: Sales only.
* Both: Testing in both directions. Important: This mode only works in conjunction with an External Signal, as the script needs an external signal to determine the direction for each specific transaction.
* `Signal Mode`: Controls the conditions for starting a new trading cycle (opening a base order).
* No Signal: A new cycle starts immediately after the previous one is completed. This mode is used to test "pure" grid mechanics without reference to market conditions.
* External Signal: A new cycle begins only when a signal is received from an external indicator connected via the Signal field.
* `Signal': A field for connecting an external signal source (works only in the `External Signal` mode). You can select any other indicator on the chart.
* For Long** trades, the signal is considered received if the value of the external indicator ** is greater than 0.
* For Short** trades, the signal is considered received if the value of the external indicator ** is less than 0.
* `Bars Count': Sets the depth of the history in the bars for the backtest. The maximum value (25000) provides the most reliable results.
* `Sort by`: A key criterion for selecting and ranking the best strategies in the final table.
* FinalScore: Recommended mode. A comprehensive assessment that takes into account 9 metrics to find the most balanced and sustainable strategies.
* Profit: Sort by net profit.
* Drawdown: Sort by minimum drawdown.
* Max Length: Sort by the minimum length of the longest transaction.
* `Combinations Count': Indicates how many of the best strategies (from 1 to 50) will be displayed in the results table.
* `Close last trade`: If this option is enabled, any active trade will be forcibly closed at the closing price of the last historical bar. For grid strategies, it is recommended to always enable this option in order to get the correct calculation of the final profit and eliminate grid strategies that have been stuck for a long time.
Group: 💰 Money Management Settings 💰
The parameters in this group determine the financial conditions of the simulation. Specify values that are as close as possible to your actual values in order to get reliable results.
* `Capital': The initial deposit amount for the simulation.
* `Leverage`: The leverage used to calculate the margin.
* `Slippage` (%): Simulates the difference between the expected and actual order execution price. The specified percentage will be applied to each transaction.
* `Commission` (%): The trading commission of your exchange as a percentage. It is charged at the execution of each order (both at opening and closing).
* `Liquidation Level' (%): Maintenance Margin Ratio. This is a critical parameter for a realistic test. Liquidation in the simulator occurs if the Equity of the account (Capital + Unrealized P&L) falls below the level of the supporting margin.
Group: 🛠 Optimization Parameters 🛠
This is the "heart" of the optimizer, where you set ranges for iterating through the grid parameters.
* `Part`: The portion number of the combinations to be tested. Start with 1, and then increment (`2`, 3, ...) sequentially to check all generated strategies.
* `Combinations in Part': The number of backtests performed at a time (in one "Part"). Increasing the value may speed up the process, but it may cause the script to error due to platform limitations. If an error occurs, it is recommended to switch to the step below and back.
Three fields are available for each of the following parameters (`SO Count`, SO Step, SO Multiplier, etc.):
* `Min`: Minimum value for testing.
* `Max': The maximum value for testing.
* `Step`: The step with which the values in the range from Min to Max will be iterated over.
There is also a checkbox for each parameter. If it is enabled, the parameter will be optimized in the specified range. If disabled, only one value specified in the Min field will be used for all tests.
* 'Stop Loss': In addition to the standard settings Min, Max, Step, it has an additional parameter:
* `Type`: Defines how the stop loss price is calculated.
* From entry point: The SL level is calculated once from the entry price (base order price).
* From breakeven line: The SL level is dynamically recalculated from the average position price after each new safety order is executed.
Group: ⚡️Filters⚡️
Filters allow you to filter out those results from the final table that do not meet your minimum requirements.
For each filter (`Max Profit`, Min Drawdown, `Min Trade Length`), you can:
1. Turn it on or off using the checkbox.
2. Select the comparison condition: Greater (More) or Less (Less).
3. Set a threshold value.
*Example:* If you set Less and 20 for the Min Drawdown filter, only those strategies with a maximum drawdown of less than 20% will be included in the final table.
Group: 🎨 Visual Settings 🎨
Here you can customize the appearance of the results table.
* `Position': Selects the position of the table on the screen (for example, Bottom Left — bottom left).
* `Font Size': The size of the text in the table.
* `Header Background / Data Background`: Background colors for the header and data cells.
* `Header Font Color / Data Font Color`: Text colors for the header and data cells.
Important Notes and Limitations
So that you can use the Autoback Grid Lab as efficiently and consciously as possible, please familiarize yourself with the following key features of its work.
1. It is a Tool for Analysis, not for Signals
It is extremely important to understand that this script does not generate trading signals in real time. Its sole purpose is to conduct in—depth research (**backtesting**) on historical data.
* The results you see in the table are a report on how a particular strategy would have worked in the past.
* The script does not provide alerts and does not draw entry/exit points on the chart for the current market situation.
* Your task is to take the best sets of parameters found during optimization and use them in your real trading, for example, when setting up a trading bot or in a manual trading system.
2. Features Of Calculations (This is not a "Repainting")
You will notice that the results table appears and is updated only once — when all historical bars on the chart are loaded. It does not change in real time with each tick of the price.
This is correct and intentional behavior.:
* To test thousands, and sometimes millions of combinations, the script needs to perform a huge amount of calculations. In the Pine Script™ environment, it is technically possible to do this only once, at the very last bar in history.
* The script does not show false historical signals, which then disappear or change. It provides a static report on the results of the simulation, which remains unchanged for a specific historical period.
3. Past Results do not Guarantee Future Results.
This is the golden rule of trading, and it fully applies to the results of backtesting. Successful strategy performance in the past is not a guarantee that it will be as profitable in the future. Market conditions, volatility and trends are constantly changing.
My tool, especially when sorting by finalScore, is aimed at finding statistically stable and reliable strategies to increase the likelihood of their success in the future. However, it is a tool for managing probabilities, not a crystal ball for predicting the future. Always use proper risk management.
4. Dependence on the Quality and Depth of the Story
The reliability of the results directly depends on the quantity and quality of the historical data on which the test was conducted.
* Always strive to use the maximum number of bars available (`Bars Count: 25,000`) so that your strategy is tested on different market cycles (rise, fall, flat).
* The results obtained on data for one month may differ dramatically from the results obtained on data for two years. The longer the testing period, the higher the confidence in the parameters found.
Conclusion
The Autoback Grid Lab is your personal research laboratory, designed to replace intuitive guesses and endless manual selection of settings with a systematic, data—driven approach. Experiment with different assets, timeframes, and settings ranges to find the unique combinations that best suit your trading style.
Time Window Optimizer [theUltimator5]The Time Window Optimizer is designed to identify the most profitable 30-minute trading windows during regular market hours (9:30 AM - 4:00 PM EST). This tool helps traders optimize their intraday strategies by automatically discovering time periods with the highest historical performance or allowing manual selection for custom analysis. It also allows you to select manual timeframes for custom time period analysis.
🏆 Automatic Window Discovery
The core feature of this indicator is its intelligent Auto-Find Best 30min Window system that analyzes all 13 possible 30-minute time slots during market hours.
How the Algorithm Works:
Concurrent Analysis: The indicator simultaneously tracks performance across all 13 time windows (9:30-10:00, 10:00-10:30, 10:30-11:00... through 15:30-16:00)
Daily Performance Tracking: For each window, it captures the percentage change from window open to window close on every trading day
Cumulative Compounding: Daily returns are compounded over time to show the true long-term performance of each window, starting from a normalized value of 1.0
Dynamic Optimization: The system continuously identifies the window with the highest cumulative return and highlights it as the optimal choice
Statistical Validation: Performance is validated through multiple metrics including average daily returns, win rates, and total sample size
Visual Representation:
Best Window Line: The top-performing window is displayed as a thick colored line for easy identification
All 13 Lines (optional): Users can view performance lines for all time windows simultaneously to compare relative performance
Smart Coloring: Lines are color-coded (green for gains, red for losses) with the best performer highlighted in a user-selected color
📊 Comprehensive Performance Analysis
The indicator provides detailed statistics in an information table:
Average Daily Return: Mean percentage change per trading session
Cumulative Return: Total compounded performance over the analysis period
Win Rate: Percentage of profitable days (colored green if ≥50%, red if <50%)
Buy & Hold Comparison: Shows outperformance vs. simple buy-and-hold strategy
Sample Size: Number of trading days analyzed for statistical significance
🛠️ User Settings
imgur.com
Auto-Optimization Controls:
Auto-Find Best Window: Toggle to enable/disable automatic optimization
Show All 13 Lines: Display all time window performance lines simultaneously
Best Window Line Color: Customize the color of the top-performing window
Manual Mode:
imgur.com
Custom Time Window: Set any desired time range using session format (HHMM-HHMM)
Crypto Support: Built-in timezone offset adjustment for cryptocurrency markets
Chart Type Options: Switch between candlestick and line chart visualization
Visual Customization:
imgur.com
Background Highlighting: Optional background color during active time windows
Candle Coloring: Custom colors for bullish/bearish candles within the time window
Table Positioning: Flexible placement of the statistics table anywhere on the chart
🔧 Technical Features
Market Compatibility:
Stock Markets: Optimized for traditional market hours (9:30 AM - 4:00 PM EST)
Cryptocurrency: Includes timezone offset adjustment for 24/7 crypto markets
Exchange Detection: Automatically detects crypto exchanges and applies appropriate settings
Performance Optimization:
Efficient Calculation: Uses separate arrays for each time block to minimize computational overhead
Real-time Updates: Dynamically updates the best-performing window as new data becomes available
Memory Management: Optimized data structures to handle large datasets efficiently
💡 Use Cases
Strategy Development: Identify the most profitable trading hours for your specific instruments
Risk Management: Focus trading activity during historically successful time periods
Performance Comparison: Evaluate whether time-specific strategies outperform buy-and-hold
Market Analysis: Understand intraday patterns and market behavior across different time windows
📈 Key Benefits
Data-Driven Decisions: Base trading schedules on historical performance data
Automated Analysis: No manual calculation required - the algorithm does the work
Flexible Implementation: Works in both automated discovery and manual selection modes
Comprehensive Metrics: Multiple performance indicators for thorough analysis
Visual Clarity: Clear, color-coded visualization makes interpretation intuitive
This indicator transforms complex intraday analysis into actionable insights, helping traders optimize their time allocation and improve overall trading performance through systematic, data-driven approach to market timing.
TradingIQ - Reversal IQIntroducing "Reversal IQ" by TradingIQ
Reversal IQ is an exclusive trading algorithm developed by TradingIQ, designed to trade trend reversals in the market. By integrating artificial intelligence and IQ Technology, Reversal IQ analyzes historical and real-time price data to construct a dynamic trading system adaptable to various asset and timeframe combinations.
Philosophy of Reversal IQ
Reversal IQ integrates IQ Technology (AI) with the timeless concept of reversal trading. Markets follow trends that inevitably reverse at some point. Rather than relying on rigid settings or manual judgment to capture these reversals, Reversal IQ dynamically designs, creates, and executes reversal-based trading strategies.
Reversal IQ is designed to work straight out of the box. In fact, its simplicity requires just one user setting, making it incredibly straightforward to manage.
AI Aggressiveness is the only setting that controls how Reversal IQ works.
Traders don’t have to spend hours adjusting settings and trying to find what works best - Reversal IQ handles this on its own.
Key Features of Reversal IQ
Self-Learning Reversal Detection
Employs AI and IQ Technology to identify trend reversals in real-time.
AI-Generated Trading Signals
Provides reversal trading signals derived from self-learning algorithms.
Comprehensive Trading System
Offers clear entry and exit labels.
AI-Determined Profit Target and Stop Loss
Position exit levels are clearly defined and calculated by the AI once the trade is entered.
Performance Tracking
Records and presents trading performance data, easily accessible for user analysis.
Configurable AI Aggressiveness
Allows users to adjust the AI's aggressiveness to match their trading style and risk tolerance.
Long and Short Trading Capabilities
Supports both long and short positions to trade various market conditions.
IQ Channel
The IQ Channel represents what Reversal IQ considers a tradable long opportunity or a tradable short opportunity. The channel is dynamic and adjusts from chart to chart.
IQMA – Proprietary Moving Average
Introduces the IQ Moving Average (IQMA), designed to classify overarching market trends.
IQCandles – Trend Classification Tool
Complements IQMA with candlestick colors designed for trend identification and analysis.
How It Works
Reversal IQ operates on a straightforward heuristic: go long during an extended downside move and go short during an extended upside move.
What defines an "extended move" is determined by IQ Technology, TradingIQ's exclusive AI algorithm. For Reversal IQ, the algorithm assesses the extent to which historical high and low prices are breached. By learning from these price level violations, Reversal IQ adapts to trade future, similar violations in a recurring manner. It calculates a price area, distant from the current price, where a reversal is anticipated.
In simple terms, price peaks (tops) and troughs (bottoms) are stored for Reversal IQ to learn from. The degree to which these levels are violated by subsequent price movements is also recorded. Reversal IQ continuously evaluates this stored data, adapting to market volatility and raw price fluctuations to better capture price reversals.
What classifies as a price top or price bottom?
For Reversal IQ, price tops are considered the highest price attained before a significant downside reversal. Price bottoms are considered the lowest price attained before a significant upside reversal. The highest price achieved is continuously calculated before a significant counter trend price move renders the high price as a swing high. The lowest price achieved is continuously calculated before a significant counter trend price move renders the low price as a swing low.
The image above illustrates the IQ channel and explains the corresponding prices and levels
The blue lower line represents the Long Reversal Level, with the price highlighted in blue showing the Long Reversal Price.
The red upper line represents the Short Reversal Level, with the price highlighted in red showing the Short Reversal Price.
Limit orders are placed at both of these levels. As soon as either level is touched, a trade is immediately executed.
The image above shows a long position being entered after the Long Reversal Level was reached. The profit target and stop loss are calculated by Reversal IQ
The blue line indicates where the profit target is placed (acting as a limit order).
The red line shows where the stop loss is placed (acting as a stop loss order).
Green arrows indicate that the strategy entered a long position at the highlighted price level.
You can also hover over the trade labels to get more information about the trade—such as the entry price, profit target, and stop loss.
The image above demonstrates the profit target being hit for the trade. All profitable trades are marked by a blue arrow and blue line. Hover over the blue arrow to obtain more details about the trade exit.
The image above depicts a short position being entered after the Short Reversal Level was touched. The profit target and stop loss are calculated by the AI
The blue line indicates where the profit target is placed (acting as a limit order).
The red line shows where the stop loss is placed (acting as a stop loss order).
The image above shows the profit target being hit for the short trade. Profitable trades are indicated by a blue arrow and blue line. Hover over the blue arrow to access more information about the trade exit.
Long Entry: Green Arrow
Short Entry: Red Arrow
Profitable Trades: Blue Arrow
Losing Trades: Red Arrow
IQMA
The IQMA implements a dynamic moving average that adapts to market conditions by adjusting its smoothing factor based on its own slope. This makes it more responsive in volatile conditions (steeper slopes) and smoother in less volatile conditions.
The IQMA is not used by Reversal IQ as a trade condition; however, the IQMA can be used by traders to characterize the overarching trend and elect to trade only long positions during bullish conditions and only short positions during bearish conditions.
The IQMA is an adaptive smoothing function that applies a combination of multiple moving averages to reduce lag and noise in the data. The adaptiveness is achieved by dynamically adjusting the Volatility Factor (VF) based on the slope (derivative) of the price trend, making it more responsive to strong trends and smoother in consolidating markets.
This process effectively makes the moving average a self-adjusting filter, the IQMA attempts to track both trending and ranging market conditions by dynamically changing its sensitivity in response to price movements.
When IQMA is blue, an overarching uptrend is in place. When IQMA is red, an overarching downtrend is in place.
IQ Candles
IQ Candles are price candles color-coordinated with IQMA. IQ Candles help visualize the overarching trend and are not used by Reversal IQ to determine trade entries and trade exits.
AI Aggressiveness
Reversal IQ has only one setting that controls its functionality.
AI Aggressiveness controls the aggressiveness of the AI. This setting has three options: Sniper, Aggressive, and Very Aggressive.
Sniper Mode
In Sniper Mode, Reversal IQ will prioritize trading large deviations from established reversal levels and extracting the largest countertrend move possible from them.
Aggressive Mode
In Aggressive Mode, Reversal IQ still prioritizes quality but allows for strong, quantity-based signals. More trades will be executed in this mode with tighter stops and profit targets. Aggressive mode forces Reversal IQ to learn from narrower raw-dollar violations of historical levels.
Very Aggressive Mode
In Very Aggressive Mode, Reversal IQ still prioritizes the strongest quantity-based signals. Stop and target distances aren't inherently affected, but entries will be aggressive while prioritizing performance. Very Aggressive mode forces Reversal IQ to learn from narrower raw-dollar violations of historical levels and also forces it to embrace volatility more aggressively.
AI Direction
The AI Direction setting controls the trade direction Reversal IQ is allowed to take.
“Both” allows for both long and short trades.
“Long” allows for only long trades.
“Short” allows for only short trades.
Verifying Reversal IQ’s Effectiveness
Reversal IQ automatically tracks its performance and displays the profit factor for the long strategy and the short strategy it uses. This information can be found in a table located in the top-right corner of your chart.
The image above shows the long strategy profit factor and the short strategy profit factor for Reversal IQ.
A profit factor greater than 1 indicates a strategy profitably traded historical price data.
A profit factor less than 1 indicates a strategy unprofitably traded historical price data.
A profit factor equal to 1 indicates a strategy did not lose or gain money when trading historical price data.
Using Reversal IQ
While Reversal IQ is a full-fledged trading system with entries and exits, it was designed for the manual trader to take its trading signals and analysis indications to greater heights - offering numerous applications beyond its built-in trading system.
The hallmark feature of Reversal IQ is its sniper-like reversal signals. While exits are dynamically calculated as well, Reversal IQ simply has a knack for "sniping" price reversals.
When performing live analysis, you can use the IQ Channel to evaluate price reversal areas, whether price has extended too far in one direction, and whether price is likely to reverse soon.
Of course, in times of exuberance or panic, price may push through the reversal levels. While infrequent, it can happen to any indicator.
The deeper price moves into the bullish reversal area (blue) the better chance that price has extended too far and will reverse to the upside soon. The deeper price moves into the bearish reversal area (red) the better chance that price has extended too far and will reverse to the downside soon.
Of course, you can set alerts for all Reversal IQ entry and exit signals, effectively following along its systematic conquest of price movement.
Bezahltes Script
Descriptive Backtesting Framework (DBF)As the name suggests, this is a backtesting framework made to offer full backtesting functionality to any custom indicator in a visually descriptive way.
Any trade taken will be very clear to visualize on the chart and the equity line will be updated live allowing us to use the REPLAY feature to view the strategy performing in real time.
Stops and Targets will also get draw on the chart with labels and tooltips and there will be a table on the top right corner displaying lots of descriptive metrics to measure your strategy's performance.
IF YOU DECIDE TO USE THIS FRAMEWORK, PLEASE READ **EVERYTHING** BELOW
HOW TO USE IT
Step 1 - Insert Your Strategy Indicators:
Inside this framework's code, right at the beginning, you will find a dedicated section where you can manually insert any set of indicators you desire.
Just replace the example code in there with your own strategy indicators.
Step 2 - Specify The Conditions To Take Trades:
After that, there will be another section where you need to specify your strategy's conditions to enter and exit trades.
When met, those conditions will fire the trading signals to the trading engine inside the framework.
If you don't wish to use some of the available signals, please just assign false to the signal.
DO NOT DELETE THE SIGNAL VARIABLES
Step 3 - Specify Entry/Exit Prices, Stops & Targets:
Finally you'll reach the last section where you'll be able to specify entry/exit prices as well as add stops and targets.
On most cases, it's easier and more reliable to just use the close price to enter and exit trades.
If you decide to use the open price instead, please remember to change step 2 so that trades are taken on the open price of the next candle and not the present one to avoid the look ahead bias.
Stops and targets can be set in any way you want.
Also, please don't forget to update the spread. If your broker uses commissions instead of spreads or a combination of both, you'll need to manually incorporate those costs in this step.
And that's it! That's all you have to do.
Below this section you'll now see a sign warning you about not making any changes to the code below.
From here on, the framework will take care of executing the trades and calculating the performance metrics for you and making sure all calculations are consistent.
VISUAL FEATURES:
Price candles get painted according to the current trade.
They will be blue during long trades, purple on shorts and white when no trade is on.
When the framework receives the signals to start or close a trade, it will display those signals as shapes on the upper and lower limits of the chart:
DIAMOND: represents a signal to open a trade, the trade direction is represented by the shape's color;
CROSS: means a stop loss was triggered;
FLAG: means a take profit was triggered;
CIRCLE: means an exit trade signal was fired;
Hovering the mouse over the trade labels will reveal:
Asset Quantity;
Entry/Exit Prices;
Stops & Targets;
Trade Profit;
Profit As Percentage Of Trade Volume;
**Please note that there's a limit as to how many labels can be drawn on the chart at once.**
If you which to see labels from the beginning of the chart, you'll probably need to use the replay feature.
PERFORMANCE TABLE:
The performance table displays several performance metrics to evaluate the strategy.
All the performance metrics here are calculated by the framework. It does not uses the oficial pine script strategy tester.
All metrics are calculated in real time. If using the replay feature, they will be updated up to the last played bar.
Here are the available metrics and their definition:
INITIAL EQUITY: the initial amount of money we had when the strategy started, obviously...;
CURRENT EQUITY: the amount of money we have now. If using the replay feature, it will show the current equity up to the last bar played. The number on it's right side shows how many times our equity has been multiplied from it's initial value;
TRADE COUNT: how many trades were taken;
WIN COUNT: how many of those trades were wins. The percentage at the right side is the strategy WIN RATE;
AVG GAIN PER TRADE: the average percentage gain per trade. Very small values can indicate a fragile strategy that can behave in unexpected ways under high volatility conditions;
AVG GAIN PER WIN: the average percentage gain of trades that were profitable;
AVG GAIN PER LOSS: the average percentage loss on trades that were not profitable;
EQUITY MAX DD: the maximum drawdown experienced by our equity during the entire strategy backtest;
TRADE MAX DD: the maximum drawdown experienced by our equity after one single trade;
AVG MONTHLY RETURN: the compound monthly return that our strategy was able to create during the backtested period;
AVG ANNUAL RETURN: this is the strategy's CAGR (compound annual growth rate);
ELAPSED MONTHS: number of months since the backtest started;
RISK/REWARD RATIO: shows how profitable the strategy is for the amount of risk it takes. Values above 1 are very good (and rare). This is calculated as follows: (Avg Annual Return) / mod(Equity Max DD). Where mod() is the same as math.abs();
AVAILABLE SETTINGS:
SPREAD: specify your broker's asset spread
ENABLE LONGS / SHORTS: you can keep both enable or chose to take trades in only one direction
MINIMUM BARS CLOSED: to avoid trading before indicators such as a slow moving average have had time to populate, you can manually set the number of bars to wait before allowing trades.
INITIAL EQUITY: you can specify your starting equity
EXPOSURE: is the percentage of equity you wish to risk per trade. When using stops, the strategy will automatically calculate your position size to match the exposure with the stop distance. If you are not using stops then your trade volume will be the percentage of equity specified here. 100 means you'll enter trades with all your equity and 200 means you'll use a 2x leverage.
MAX LEVERAGE ALLOWED: In some situations a short stop distance can create huge levels of leverage. If you want to limit leverage to a maximum value you can set it here.
SEVERAL PLOTTING OPTIONS: You'll be able to specify which of the framework visuals you wish to see drawn on the chart.
FRAMEWORK **LIMITATIONS**:
When stop and target are both triggered in the same candle, this framework isn't able to enter faster timeframes to check which one was triggered first, so it will take the pessimistic assumption and annul the take profit signal;
This framework doesn't support pyramiding;
This framework doesn't support both long and short positions to be active at the same time. So for example, if a short signal is received while a long trade is open, the framework will close the long trade and then open a short trade;
FINAL CONSIDERATIONS:
I've been using this framework for a good time and I find it's better to use and easier to analyze a strategy's performance then relying on the oficial pine script strategy tester. However, I CANNOT GUARANTEE IT TO BE BUG FREE.
**PLEASE PERFORM A MANUAL BACKTEST BEFORE USING ANY STRATEGY WITH REAL MONEY**
Potential Divergence Checker#### Key Features
1. Potential Divergence Signals:
Potential divergences can signal a change in price movement before it occurs. This indicator identifies potential divergences instead of waiting for full confirmation, allowing it to detect signs of divergence earlier than traditional methods. This provides more flexible entry points and can act as a broader filter for potential setups.
2. Exposing Signals for External Use:
One of its advanced features is the ability to expose signals for use in other scripts. This allows users to integrate divergence signals and related entry/exit points into custom strategies or automated systems.
3. Custom Entry/Exit Timing Based on Years and Days:
The indicator provides entry and exit signals based on years and days, which could be useful for time-specific market behavior, long-term trades, and back testing.
#### Basic Usage
This indicator can check for all types of potential divergences: bullish, hidden bullish, bearish, hidden bearish. All you need to do is choose the type you want to check for under “DIVERGENCE TYPE” in the settings. On the chart, potential bullish divergences will show up as triangles below the price candles. one the chart potential bearish divergences will show up as upside down triangles above the price candles
#### Signals for Advanced Usage
You can use this indicator as a source in other indicators or strategies using the following information:
“ PD: Bull divergence signal ” will return “1” when a divergence is present and “0” when not present
“ PD: HBull divergence(hidden bull) signal ” will return “1” when a divergence is present and “0” when not present
“ PD: Bear divergence signal ” will return “1” when a divergence is present and “0” when not present
“ PD: HBear divergence(hidden bear) signal ” will return “1” when a divergence is present and “0” when not present
“ PD: enter ” signal will return a “1” when both the days and years criteria in the “entry filter settings” are met and “0” when not met.
“ PD: exit ” signal will return a “1” when the days criteria in the “exit filter settings” are met and “0” when not met.
#### Examples of Using Signals
1. If you are testing a long strategy for Bitcoin and do not want it to run during bear market years(e.g., the second year after a US presidential election), you can enable the “year and day filter for entry,” uncheck the following years in the settings: 2010, 2014, 2018, 2022, 2026, and reference the signal below in our strategy
signal: “ PD: enter ”
2. Let’s say you have a good long strategy, but want to make it a bit more profitable, you can tell the strategy not to run on days where there is potential bearish divergence and have it only run on more profitable days using these signals and the appropriate settings in the indicator
signal: “ PD: Bear divergence signal ” will return a ‘0’ with no bearish divergence present
signal: “ PD: enter ” will return a “1” if the entry falls on a specific, more profitable day chosen in the settings
#### Disclaimer
The "Potential Divergence Checker" indicator is a tool designed to identify potential market signals. It may have bugs and not do what it should do. It is not a guarantee of future trading performance, and users should exercise caution when making trading decisions based on its outputs. Always perform your own research and consider consulting with a financial advisor before making any investment decisions. Trading involves significant risk, and past performance is not indicative of future results.
Neon Juliet - PreviewThere is no TLDR, but there is a summary at the end. I strongly encourage to read full description before trying it out. Enjoy!
Background
=========
Having successful and adamant trading systems typically consists of two (oversimplified) elements: signals and risk management system. In most zero-sum games, such as trading, signals must offer an advantage against the market, and risk management system provides a safety mechanism to allow the system to exist in the future. Let me explain.
Say, I have a solid risk management system: it is diversified, with take profit and stop loss thresholds set for low risk, on average I trade less than 3% of my assets, and there’s a loss recovery mechanism, etc. Hypothetically, it’s pristine. Now, let’s trade this portfolio against a flip of a coin, essentially a signal that provides 50% probability of things turning out in my favour. How profitable is such system? My answer: it isn’t. I might be able to sustain this system for some time, but eventually this system is going to have to loosen risk restrictions to stay ahead of the commissions and borrowing costs, resulting in overtime detrimental trend.
Conversely, if the signals provide greater than 50% confidence of things turning out in my favour, but risk management is poor, I’d expect such system to end up in a disaster soon, perhaps after a few euphoric gains. (I’d isolate a top-notch signals, say >90% confidence, in another bucket, but this idealistic system is non-achievable in my practice, so I’ll leave it be)
Neon Juliet was developed to offer an advantage against given markets. Probabilities generated by this model are statistical historical outcomes. This model developed using only price action and is unable to consume any other data or price data across instruments. In other words, it doesn’t know anything you don’t see already on a chart.
Neon J performs best on complex instruments where there’s great diversity of actors and considerable daily volume .
Methodology
==========
In principle, Neon J is based on Bayes’ Theorem. Simply put, prior knowledge of price action ( aka patterns) provides basis for probability of future price action development (ex. long or short trend).
The training process is implemented outside of this script mainly due to Pine Script limitations. This script, however, contains inference portion of the model.
As input for training, daily candle data is used. From this data, feature engineering step of the training develops features, like price average divergence/convergence (think MACD ), price strength (think RSI , ADX ); multiple periods used to diversify long and short patterns. This is done to develop a “state” that is reflective of recent price development. Ex. what we’d call a trend is just a strong and consistent upward price action, but we’d need to look at most recent N candles and their pattern to know that.
Once features are developed, I train a model using Reinforcement Learning technique. Simply put, this technique allows an agent to interact with a trading simulator and take actions (ex. go long, go short, etc.). After many iterations, the agent learns conditions (patterns) that lead to positive outcomes and those that lead to negative outcomes. This learning is quantitative, which means there’s a way to tell which probabilities are strong and which are weak. These probabilities are indicated by this script.
Trained Neon J models are instruments-specific. Meaning, that model for DJI is not compatible with SP500 or any other instrument. Experimentally, I proved that such approach over-performs generalizable models (those that are trained on data from multiple instruments)
Neon J currently only support daily time frame. The limitation is purely practical to reduce the development load and model size.
Results
======
Tests show 60%-70% success rate (on average, some instruments are worse than that, some better) of individual signal when threshold is set to 0.3 (roughly equivalent to 65% probability). This is calculated with Pine Script Strategy with the following entry/exit rules:
Entry when individual signal (a dot) is above 0.3 (long) or below -0.3 (short)
Exit when 14-period smooth signal (a column) is above 0.0 (short exit) or below 0.0 (long exit)
No stop loss or take profit levels.
Pyramiding is set to 100 (to allow unrestricted action of all signals)
All trades are closed on last tested bar (to conclude all signals in-flight)
Percent Profitable is what we take as success rate in the context of this assessment. This number represents how many signals were profitable vs all signals actioned.
It is also worth noting that this assessment was performed on a time period previously unseen by the model. Simply put, we only train a model with data up until date X, then we test starting from date X onward. This ensures that the assessment is unbiased by the model already “knowing” the future. In practice, this gives confidence that future (unknown) market dynamics is going to be representative of our test results.
Be aware, the above “strategy” is not my recommended usage of this signal, it is simply an assessment technique that is meant to be as simple and unconstrained as possible.
How to use this script
================
The script calculates a probability. A term probability here is used in a loose form and means “a numeric value in roughly -1 to 1 space that represents the likelyhood of bullish or bearish price action”. Keep in mind that probability values can go over 1.0 or below -1.0. This is due to the fact that these value are normalized to -1/1 space using 95-percentile (this detail is largely unimportant for usability’s sake).
Indications
--------------
Dots (circles) indicate individual probability value on any given bar. Indicated value on a given bar indicates the probability of future price action. High (positive) values indicate high probability of long action in the future. Low (negative) values indicate high probability of short action in the future. You should interpret future as a gradient (a trend developing slowly over time) instead of being isolated to what’s immediately follows (ex. next bar)
Columns (histogram) provided as convenient view of smoothed probabilities of last N bars. This is controlled by the Smoothing parameter and defaults to 14.
Parameters
---------------
Model parameter is the backbone of this script. It is a required parameter and it is unique for each instrument. Example models provided at the end (see below). This parameter is a long 10000+ character representation of a model.
The script has two additional parameters for configuring interpretation: Threshold and Smoothing.
Threshold controls the level at which values change color (ex. above 0.3, turn neon blue, and below -0.3 turn neon purple).
Smoothing parameter provides a way to smooth out individual probabilities into a exponential moving average with the periods provided. This average is indicated using columns on the indicator.
Model expiration
----------------------
Models are valid for 1 month after training. This is done by design to prevent model deterioration. A month is proven to be a maximum period of time to hold model performance steady. After that, deterioration is likely to occur. Optimal time for model lifetime is 10 days (this is what I use for live trading), and of course most optimal (but unpractical for now) is to re-train daily.
Validity indicated with blue-tinted indicator background, while red-tinted background indicates expired period.
Preview
======
This script is released as a public script for anyone to try. My motives for this release are two-fold:
To subject the model to a variety of conditions, including traders with different experiences trading different instruments (subject to specific models offered of course). Essentially, my own testing is not enough to grasp a full breadths of scenarios. I’d like to harden it and understand where it is strong and where it might fall short (pun intended).
Get an idea on how Neon J might be useful when making trading decision. I tried to make the representation of the signals unconstrained and unopinionated, so there’s room to explore and experiment. I found that Neon J can be packaged in a number of different ways.
At this moment the script is closed-source. I might consider open-sourcing this script in future depending on how much feedback I get from this submission and whether it’d be deemed useful to others.
Summary
=======
Neon J is a set of probabilistic models for predicting future price action with ~65% accuracy. It indicates individual signals (circles) for probability of price action in a foreseeable future, while smoothed signals (columns) are provided for a more dynamic view of probable price action. Blue circle - strong long probability; Purple circle - strong short probability. Blue column - strong long trend ahead or in-progress; Purple column - strong short trend ahead or in-progress.
To use it, copy models below and provide them an input to “model” parameter when applying to a chart. Models are instrument-specific. Only daily (D) charts should be used.
The script is provided for evaluation purposes.
Models!
======
At last, here are the models (a piece of text you need to input in script parameters for each instrument)
TVC:DJI :
DJI|20121220|20221220|0.597,-0.032,0.0,-0.121,0.0,0.866,-0.046,0.0,-0.091,0.0|1.492,0.1,0.0,-0.162,0.0,-0.669,-0.037,0.0,-0.042,0.0|0.07,0.374,0.0,0.305,0.0,0.085,0.488,0.0,0.26,0.0|0.249,-0.257,0.0,0.529,0.0,-0.018,-0.233,0.0,0.502,0.0|0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,30,10,10,10,10,10,10,30,30,10,10,10,10,60,10,10,10,20,10,40,10,10,10,80,10,10,60,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,20,20,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,20,10,10,10,20,10,10,10,10,20,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,30,10,10,10,10,20,50,10,10,10,10,10,10,30,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,20,30,10,10,10,10,10,50,10,10,10,10,60,10,10,10,10,10,40,10,10,10,10,10,20,30,10,10,10,10,60,10,10,10,10,10,20,10,10,10,10,10,10,10,40,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,40,10,10,10,10,10,10,40,10,10,10,10,10,50,10,10,10,10,10,50,10,10,10,10,50,10,10,10,10,10,40,10,10,10,10,10,10,40,10,10,10,10,10,10,40,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,20,20,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,40,10,10,10,10,10,10,40,10,10,10,10,10,10,30,10,10,10,10,10,10,40,10,10,10,10,10,40,10,10,10,10,10,10,10,30,10,10,10,10,10,10,20,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,20,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,20,20,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,40,10,10,10,10,10,20,20,10,10,10,10,10,10,40,10,10,10,10,10,10,10,10,30,10,10,10,10,10,30,20,10,10,10,10,10,20,20,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,30,10,10,10,10,10,10,40,10,10,10,10,10,10,40,10,10,10,10,10,50,10,10,10,10,20,40,10,10,10,70,10,10,10,10,60,10,10,10,10,10,10,40,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,30,10,10,10,10,10,10,40,10,10,10,10,10,10,40,10,10,10,10,10,50,10,10,10,10,70,10,10,10|-645,-188,-7,-97,-4,29,-18,90,60,-7,-30,117,-226,-82,-49,77,-245,53,78,221,-72,280,245,400,683,268,-74,-15,-106,-102,-3,251,302,536,47,3,-6,-179,-56,101,-62,172,176,98,-15,-71,-18,200,61,-249,-30,-38,1,94,-2,-9,47,79,-35,-15,34,-30,76,120,39,96,-47,-11,-61,-21,124,-704,0,-248,112,-193,143,-27,-14,133,170,-20,-17,-2,-120,61,-98,-32,-2,79,-2,109,-35,-16,132,-44,-63,-168,205,-28,919,235,-34,-53,-23,-243,-68,-26,-35,-54,60,-37,28,-91,-3,-21,-47,79,-127,229,61,59,-49,-139,-63,-43,91,201,-19,-80,-27,120,-122,-141,-100,-32,-25,-98,-27,50,-2,-65,-138,-7,-36,-9,53,-36,-36,-64,-11,216,-5,-664,-19,74,82,-83,-3,-66,21,386,-454,-1002,-282,-7,-52,-30,-9,-16,-148,-131,112,-484,-96,97,93,-13,-162,-49,38,31,-5,-199,-22,205,153,-29,14,-41,-222,-225,-145,107,70,-3,-8,-7,-20,-247,37,96,268,362,-95,706,-69,60,70,120,-34,-65,-152,-69,-7,69,-76,71,-5,384,109,-102,-484,-3,34,60,-20,380,244,678,292,-48,-2,-154,-17,-62,105,486,597,212,-26,-21,-310,-29,-22,-90,285,-204,-92,-290,-6,-516,-42,-16,127,-47,-7,-72,-247,76,-47,-13,43,-26,43,89,-38,30,-21,-106,-78,113,-19,-13,-8,-12,-12,362,247,-4,50,76,64,-14,-52,-16,-93,-172,53,-1,32,99,22,-75,-4,-9,31,70,116,-54,-61,-3,-55,-19,-15,176,143,-11,134,144,-11,-28,-47,-29,-136,-75,99,64,-9,-2,-24,-43,30,-161,-179,82,175,129,115,-71,-396,-202,101,-9,139,-6,-31,-312,-111,2,0,-234,-21,-52,-31,-12,-26,-37,-144,-23,68,23,-16,149,60,-64,10,-7,-8,46,210,393,-5,96,-56,89,48,475,176,20,-10,-31,-29,34,76,41,178,38,-32,-94,-33,76,-5,91,-15,123,72,-46,-13,-11,0,-37,-244,-161,155,-8,-3,165,23,77,16,-117,35,-74,-5,-107,-286,-24,-263,-14,-37,-5,-196,-290,-576,-188,41,-20,-98,-34,-45,-45,-242,40,60,-7,-10,-17,-43,73,48,-25,-8,-40,-27,-2,-5,42,73,-6,-23,8,-16,63,167,21,-99,-47,-119,-36,-59,192,158,115,123,54,-28,-1,-90,-169,-71,-72,114,156,-141,155,64,42,-88,69,-75,76,94,-4,65,102,152,-9,10,-17,-192,67,-10,-343,-90,-43,-106,12,-9,-79,-10,-73,-461,-509,-75,99,-57,0,-27,80,-156,-198,-642,-363,33,47,-28,-40,-43,-8,9,-27,-67,41,26,0,6,-49,-29,-60,32,70,34,-2,-9,-40,-240,-152,21,189,49,67,12,-12,-2,16,31,200,193,211,-150,-84,-45,58,75,44,260,128,105,-9,-11,-1,82,-94,184,-53,266,326,-55,-209,-9,54,85,308,-14,60,420,160,-39,-81,-17,-10,77,108,-28,257,-104,-53,-59,-128,-5,-13,8,119,-20,-130,-49,-9,-3,-23,-46,150,194,263,-214,-12,72,-6,-22,25,-10,290,-41,-21,-18,-1,-17,-42,-14,-21,0,-4,-23,-1,-1,-13,172,-9,224,86,-9,-2,-22,176,-6,33,186,-61,-187,-46,-33,94,172,0,16,-12,-37,59,103,118,194,1000,44,40,49,81,82,89,142,-34,-26,-2,-15,-19,0,271,-56,-45,-21,-96,-146,-5,-54,141,-11,-320,58,-23,-43,-14,-49,142,127,120,-285,-187,-102,-72,-11,-55,-25,44,52,-43,-13,20,-41,-23,-88,-25,-4,-23,11,-179,-9,96,-84,215,93,-5,-49,148,-2,-58,-14,24,-6,-33,-6,103,9,0,-61,-1,29,113,98,-97,-19,-52,87,-39,-146,-70,-72,-119,-844,-184,-45,-27,-96,-155,93,-56,-41,-20,-43,-63,-142,-89,263,66,21,-21,-32,-70,-70,-263,20,-99,-11,-32,-50,-122,-186,-159,-137,136,-77,-14,-814,-23,-22,-170,-137,-42,-36,-64,75,-123,-100,-53,68,133,124,-77,211,217,522|0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,30,20,10,10,10,10,10,60,10,10,10,20,10,40,10,10,10,30,50,10,10,50,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,20,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,20,10,10,10,10,10,10,10,10,20,10,10,10,10,20,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,30,10,10,10,10,20,40,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,20,10,20,10,10,10,10,10,10,50,10,10,10,10,60,10,10,10,10,10,40,10,10,10,10,10,20,10,20,10,10,10,10,30,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,40,10,10,10,10,10,10,40,10,10,10,10,10,10,40,10,10,10,10,10,50,10,10,10,10,50,10,10,10,10,10,40,10,10,10,10,10,10,10,30,10,10,10,10,10,10,40,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,20,20,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,40,10,10,10,10,10,10,40,10,10,10,10,10,40,10,10,10,10,10,10,30,10,10,10,10,10,10,40,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,40,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,20,10,10,10,10,10,10,40,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,20,20,10,10,10,10,10,20,20,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,40,10,10,10,10,10,10,40,10,10,10,10,10,50,10,10,10,10,10,10,40,10,10,10,10,60,10,10,10,10,60,10,10,10,10,10,10,40,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,30,10,10,10,10,10,10,40,10,10,10,10,10,10,40,10,10,10,10,10,50,10,10,10,10,70,10,10,10|-73,-90,70,38,76,12,-269,-89,-47,-77,-43,-161,114,-83,-48,36,-18,-11,-2,-39,-239,-140,-40,-341,-106,-78,83,92,62,-34,-231,-381,-311,-15,-178,-49,-29,-29,-73,-44,-271,-2,-49,-102,-126,-65,-45,-51,-71,-75,-21,52,-19,-29,-24,-131,38,-79,-53,-8,271,43,-24,-60,-8,-8,-5,-15,8,21,-127,72,-16,-40,-43,-70,64,232,-28,172,-22,-27,-8,-100,-134,99,133,61,67,-37,-1,-7,-55,-75,108,-112,7,-70,469,-62,-12,116,-54,-259,-49,-150,-146,-58,-3,-5,-66,-45,-102,-17,-22,-71,-96,-27,0,-46,30,-22,-130,-233,-89,-189,-14,111,0,-9,12,-235,-178,-6,-9,27,-31,-70,-7,-7,-13,-71,27,-1,-14,-24,-101,-38,18,50,-79,-3,-191,-47,-2,-12,-12,112,24,-5,-93,-295,-80,0,-8,-1,115,112,200,235,114,67,-13,-37,-130,-96,85,71,232,141,-265,-137,-57,-8,81,391,-37,-68,-76,57,119,-240,-45,-102,53,40,-23,61,-71,-156,-26,-19,81,-123,-83,-59,104,0,-96,-7,-17,-34,-18,-11,0,-98,-52,-84,-8,-53,-11,48,-4,-34,-16,-143,-7,-31,-77,-44,-34,-15,-64,-65,-21,-152,-240,-26,-172,-50,-170,-32,-33,-1,-25,-15,-15,-91,-87,-231,-19,-34,-70,-59,55,17,-24,10,-29,-41,-2,-56,27,-134,-54,-41,-30,46,-3,-363,-20,-55,65,16,38,9,-79,-9,51,83,-97,-36,62,-5,-28,-73,-12,0,62,-198,-4,-20,-4,-17,-128,-34,68,-31,-247,-239,-21,-41,-93,-24,14,-81,-238,-165,-44,-40,-102,2,-99,661,-188,0,0,-9,-27,-20,27,33,639,-2,-20,-55,-99,-45,-31,-423,-152,-66,-30,-3,-86,-36,104,-45,-34,104,-227,-191,-80,-65,-56,-86,143,-26,-21,-80,-47,-23,73,165,-93,-7,-43,-9,70,123,-50,-5,-1,57,63,-36,-17,-62,-39,-14,-34,-5,-77,-37,-98,-45,-59,-49,4,-159,-74,-29,-16,-244,-486,-245,8,-13,-1,-34,-58,-182,-62,-695,372,44,-46,-5,-11,-156,-178,-64,-2,-67,-37,-24,-61,-57,-30,69,-27,-153,7,-19,-19,-78,-52,-31,231,-54,-18,-28,-40,51,117,117,-14,-84,-23,-38,134,197,-10,-51,-2,-71,-49,26,268,-15,-83,-49,-35,-29,-94,29,-39,-140,-167,-68,-1,-31,-120,0,74,-59,-116,-134,-37,-136,-154,-136,-303,6,44,-29,-32,-48,-7,-115,-667,-500,-242,0,-1,-30,-3,-21,119,-115,-565,-211,115,-9,-67,-84,-13,-68,-93,-80,-106,65,-8,-89,-417,-29,-27,-61,-27,-18,64,66,115,22,-57,-55,-1,-10,-18,-80,112,85,47,-28,-3,-75,-20,-69,-54,252,90,-63,-35,-12,-4,-15,-1,11,68,-23,-16,-95,-3,-3,-25,31,7,-101,-104,-63,-45,-91,-6,81,-6,-110,-70,49,-13,-85,-57,-179,-66,-92,-284,-152,-249,-80,45,-75,-158,-50,-115,-9,-22,-322,-124,-57,-64,-1,-100,-58,-104,-67,-106,-224,-45,287,-21,-314,-18,-50,-60,-19,-50,-74,-32,339,-8,-114,-164,-31,-16,-6,-37,-26,82,40,40,-13,-30,-75,-54,-124,-2,-37,-10,19,-67,-62,-307,-130,-153,44,-18,-15,-2,-5,-31,10,-11,-78,50,74,-1,-15,-35,-9,-29,-31,91,58,-45,-48,-14,-8,-123,-205,-7,-3,-15,-63,-17,-26,-48,-106,-153,-166,-7,-23,-116,-53,-50,-23,-6,-10,-22,3,-142,-251,-196,-80,-30,-21,75,-36,-6,-188,-28,-2,8,-6,-72,-40,-5,-49,-28,-4,-101,-12,49,33,-19,-96,-169,-58,-293,-201,-69,-25,-82,-17,0,-10,-149,-134,-41,-87,-12,-29,-10,-34,-30,35,59,-122,-5,9,24,0,-13,47,81,-47,104,-7,-17,-76,-34,-17,-49,-69,-47,-20,-26,-46,-49,-248,-35,51,-29,-15,-14,-9,-285,-46,-1,-51,-56,-45,-139,-17,-45,-22,-16,-35,-75,-5,-13,0,-5,-18,-13,2,-7,-10,89,-1,-3,-148,-16,-51,-5,-9,-10,33,37,-44,-125,-1,-7,-48,-20,-10,-1,61,65,100,43,-15,-6,-68,-9,-92,-47,-38,-47,-17,215,500,1000,45,-41,-45,-26,-91,73,24,-28,-27,-65,-102,-27,-96,-142,-34
VANTAGE:SP500 :
SP500|20121220|20221220|0.573,-0.033,0.0,-0.041,0.0,0.846,-0.045,0.0,-0.026,0.0|1.45,0.109,0.0,-0.119,0.0,-0.626,-0.007,0.0,-0.08,0.0|-0.06,0.475,0.0,0.142,0.0,0.089,0.612,0.0,0.13,0.0|0.214,-0.127,0.0,0.619,0.0,-0.057,-0.084,0.0,0.556,0.0|0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,40,10,10,10,10,10,70,10,10,10,10,60,10,10,10,20,50,10,10,10,70,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,40,10,10,10,10,10,10,40,10,10,10,10,10,10,30,10,10,10,10,30,20,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,20,40,10,10,10,20,20,20,10,10,10,10,20,30,10,10,10,10,10,10,10,10,10,20,10,10,10,10,20,10,10,20,10,10,10,10,20,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,30,20,10,10,10,10,10,10,50,10,10,10,10,60,10,10,10,10,60,10,10,10,10,50,10,10,10,10,30,10,10,10,10,10,10,10,30,10,10,10,10,10,10,50,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,50,10,10,10,10,10,10,40,10,10,10,10,10,10,30,10,10,10,10,10,10,40,10,10,10,10,10,40,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,40,10,10,10,10,10,10,30,10,10,10,10,10,10,10,30,10,10,10,10,10,10,40,10,10,10,10,10,10,30,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,20,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,40,10,10,10,10,10,40,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,40,10,10,10,10,10,40,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,20,20,10,10,10,10,10,10,10,20,10,10,10,10,10,20,30,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,40,10,10,10,10,10,10,40,10,10,10,10,10,60,10,10,10,10,10,10,30,10,10,10,10,10,50,10,10,10,10,10,10,40,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,30,10,10,10,10,10,50,10,10,10,10,10,50,10,10,10,10,70,20,10,10|-94,-209,311,137,89,-128,-228,-15,79,-81,-631,743,252,116,128,-196,-100,-101,-6,207,237,724,345,190,118,-290,-17,-163,-33,-37,140,425,736,-17,-22,-61,-5,-20,85,150,-15,102,274,179,4,-58,-30,-161,-71,-17,-31,-44,-107,53,-3,-19,7,93,-153,-32,-3,-46,-16,-9,71,-131,396,-13,34,-83,-15,-11,-17,72,-457,-143,-67,63,-207,-155,-223,-48,-762,266,-66,339,503,-54,-303,-173,-45,-58,-5,-52,624,1000,496,85,-173,-51,-58,-71,46,92,127,-32,-70,-1,-45,-63,-84,-102,-79,-117,-1,-114,-39,52,-12,-18,-13,-2,192,153,190,-120,-147,-13,-75,-9,-54,-31,-7,-128,-39,-97,60,-29,-24,-23,-173,-133,-241,-118,22,-2,1,-2,-48,-12,-23,-89,-23,-37,-33,-10,-5,-60,-28,-80,-113,-128,184,-170,-93,-50,-7,-43,-52,-87,-143,37,-100,-39,-239,-24,-154,82,-27,100,766,-51,-23,168,-29,138,-35,-50,42,71,-23,38,-23,57,131,-16,-35,-12,-54,-15,181,128,127,131,-19,-47,-108,-43,84,-152,-5,-7,-10,-8,-20,59,53,-269,-44,-7,-67,-26,-13,-10,-116,-21,-49,87,-19,-8,-31,-35,-38,-13,170,185,-54,-4,-56,-85,-108,-147,-19,-15,76,-9,-59,-100,-36,-39,-31,-18,141,66,-85,-27,44,123,123,-13,-8,36,-13,-39,-13,8,189,82,-17,-33,-5,146,-100,-29,64,-20,-53,-23,-97,-2,-77,-89,-5,-21,-132,-31,-15,-47,-1,-8,32,-13,-39,-42,-27,-43,12,-97,-35,-29,-18,-32,152,41,-13,-39,-14,-13,-36,-10,-37,-25,49,109,97,118,85,-56,-59,-74,-21,-167,-145,-12,-5,-29,-63,-107,202,-15,-33,-46,-63,-89,-97,-56,17,-25,-74,-2,-101,-210,-127,-96,-15,-59,-105,-24,-106,-37,-52,-2,-25,-27,-47,-5,14,-8,51,-6,-32,-5,23,-57,-32,-17,39,-4,-20,-28,-42,-23,101,-8,-11,-30,-25,-165,-113,-53,-82,-4,-52,-3,-5,21,-22,-333,-3,94,25,-33,-14,-83,26,-26,-41,-43,-36,63,9,-343,-304,-231,-15,-54,44,-127,-182,139,-83,25,-30,-14,-36,-32,-84,-138,23,-49,-13,-17,-139,-168,-146,-2,-46,-54,-34,-17,-40,-132,-149,-79,-40,-116,-65,-50,-124,-69,37,-21,-29,-6,-48,-232,-84,-59,-3,-6,-13,-11,1,-6,-133,-252,-12,-44,-114,-25,-120,-24,128,-27,-166,-36,-47,-65,-43,-15,-3,-88,-170,-209,-58,-185,-101,-120,-106,65,-21,-40,-12,87,-104,-31,-333,-272,-177,43,-75,-89,-41,-65,-52,-29,3,-10,-44,-18,-11,-7,-46,-37,-7,-5,27,-19,-8,-55,85,54,-6,-141,19,-19,-19,-6,-55,1,-36,-148,-22,-66,-107,-13,-197,-36,39,117,94,31,-20,94,238,48,-18,-41,-9,-1,-24,-30,9,-6,232,-16,-16,79,-27,13,-15,-15,194,223,344,212,-33,13,49,136,-5,-7,227,-82,-42,155,65,86,-24,71,-38,-38,-10,-209,17,0,-41,-19,-87,-36,-18,-108,69,-38,-11,-25,-31,70,-10,135,62,-133,85,-1,-10,-14,-97,82,-5,-16,-81,-390,-83,-1,-35,-27,-115,-92,-4,130,145,-337,0,-1,-59,-32,-120,169,14,-34,25,-14,-30,7,-24,59,-5,35,-8,-11,-11,155,179,100,80,17,-6,-5,-46,-1,566,396,41,-13,-63,-10,53,60,253,820,325,202,-120,-23,18,-136,-42,6,-85,-26,-54,-60,0,14,-26,144,-24,-84,-12,-37,-37,25,134,157,-3,181,-23,-64,34,-10,53,-122,126,173,277,-323,-76,11,-8,-31,0,-5,156,-40,202,47,-33,22,-88,-127,-89,-171,-4,186,213,-24,-1,0,-17,-34,80,155,-53,-51,-113,-57,-36,-2,73,24,65,36,-21,191,-12,-42,-13,-16,-18,-13,90,541,125,-39,-1,-398,-43,-65,-496,-1,-11,-35,-21,-4,-68,-56,-78,66,-19,-51,51,39,330,-34,-173,11,18,-7,-24,-51,400,-19,173,-54,-208,-48,-29,-184,-34,-234,-26,178,178,-2,-63,-54,-71,-58,-91,-154,69,-40,-59,-136,-55,-122,-3,-18,-27,-203,-33,15,84,-10,-13,82,-93,317,0,215,80,37|0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,50,10,10,10,10,10,60,10,10,10,10,60,10,10,10,20,50,10,10,10,70,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,40,10,10,10,10,10,10,40,10,10,10,20,10,30,10,10,10,10,30,20,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,20,10,30,10,10,10,20,50,10,10,10,20,10,30,10,10,10,10,10,10,10,30,10,10,10,10,20,10,10,20,10,10,10,30,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,30,20,10,10,10,10,10,10,50,10,10,10,10,60,10,10,10,10,60,10,10,10,10,50,10,10,10,10,30,10,10,10,10,10,10,10,30,10,10,10,10,10,10,40,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,40,10,10,10,10,10,10,40,10,10,10,10,10,10,30,10,10,10,10,10,10,40,10,10,10,10,10,40,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,40,10,10,10,10,10,10,30,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,40,10,10,10,10,10,10,30,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,20,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,20,10,10,10,10,10,10,40,10,10,10,10,20,30,10,10,10,10,10,10,40,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,50,10,10,10,10,10,40,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,20,20,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,40,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,50,10,10,10,10,10,10,40,10,10,10,10,10,60,10,10,10,10,10,10,30,10,10,10,10,10,50,10,10,10,10,10,50,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,40,10,10,10,10,10,50,10,10,10,10,10,50,10,10,10,10,10,60,20,10,10|-506,-65,-264,-239,-206,-1,45,-58,-192,-202,-134,-214,-304,-117,-129,-70,-148,-46,-2,-77,-253,-532,-138,-73,-6,-23,-6,-50,-94,-286,-213,-271,-190,107,150,-25,-46,-49,-121,-52,-166,-98,-54,-58,-100,-18,206,265,-58,-6,-137,163,-26,-152,-24,-52,3,-80,-71,-4,-20,-51,-42,-74,-111,93,-81,70,47,-51,-5,-93,-74,-139,-119,-11,-51,-17,438,252,-95,-52,-194,-175,-78,-285,-129,-310,-82,-75,-199,-36,-142,-186,-328,-371,-157,-57,175,0,-4,-142,-150,-36,-175,-22,-101,66,69,298,-39,-18,-37,100,-38,226,-50,-74,0,-58,-86,-80,-1,-104,153,62,-67,0,81,212,4,134,74,-121,-100,83,-2,94,-43,-36,-8,-27,2,-56,-8,-85,-35,-2,23,108,-15,452,-28,-15,-15,-60,-64,180,-98,64,-26,719,19,-91,-67,-149,-14,206,131,-201,276,319,185,-46,-176,-259,-57,-213,-149,-57,-96,-79,133,123,-13,-79,-164,-38,-68,69,-10,-19,-17,93,-20,-9,-61,-2,-19,-63,-164,-182,-16,-35,-115,-52,-4,-6,-28,-19,-162,-58,140,-30,26,49,-47,-78,-2,343,274,62,-61,-190,-1,-105,-98,-112,246,-98,-103,-165,-282,-5,-2,-142,-133,-41,-48,-23,-84,-250,-22,114,286,-22,-217,-149,-47,-135,-255,-26,-42,246,267,-130,-1,-32,-14,-50,-322,-62,-20,-135,-38,-51,-46,86,-23,-110,-155,-49,-9,14,-22,-23,135,-96,-51,-132,87,175,139,-14,-51,-53,-38,132,149,47,-97,-86,-65,-26,-70,-48,-11,-76,35,-149,-343,-163,-101,35,-4,-32,-3,-229,-102,-353,-94,-59,-157,-86,-22,-129,190,137,-79,-41,-136,-26,-10,-97,107,1,-56,-37,-35,-23,84,78,0,-9,75,-40,-41,-53,-23,80,88,-75,-114,-10,80,-21,-151,-67,-29,-87,-71,-42,-12,-67,-93,-47,-165,-98,-8,219,216,109,-9,-48,-161,-55,-83,9,-15,220,142,119,-24,-76,-97,-3,-57,-6,39,-7,-118,-186,-60,-10,-82,-50,-204,-47,-185,40,20,-83,-54,-9,55,-177,-18,289,568,228,15,-119,-172,-90,-35,-70,16,-51,-116,-43,-109,-32,-20,-14,-13,-142,-26,-36,-43,-81,-91,98,-27,155,130,-6,-26,-52,147,128,0,-74,-20,-149,-41,303,508,-21,-45,66,-130,-53,-69,657,105,104,-85,-95,-27,-8,-125,-268,312,-72,223,-78,-11,-79,-208,-147,-61,-505,-5,-4,-1,-10,-175,-259,-142,-178,-11,-102,72,83,306,-1,-5,-9,-72,-57,-5,-13,-119,239,776,567,46,-5,-53,-79,-25,-71,-24,93,-35,-10,-29,-160,-36,13,195,-34,80,-41,-2,-86,-116,-49,-1,-98,-52,-18,-36,-82,92,25,-3,158,-47,-56,-16,-61,118,450,-44,-132,-21,-28,-212,-202,-66,-25,-116,-228,-2,-140,-394,-10,-230,-120,32,-134,-140,-199,-99,-29,-437,-68,-32,-89,-134,-3,-28,-38,-3,-3,-521,-50,-66,-66,-24,-63,-74,-110,-80,-23,-4,-7,-21,-7,-73,-138,-29,-240,-109,-69,-77,-91,-10,-6,-26,-134,-82,-79,-92,-52,-112,69,-74,-89,-40,-8,-164,-271,-192,-45,110,246,-33,-83,-2,-59,-75,-9,-157,671,-43,-2,-9,39,-164,-85,-59,-84,-72,-83,-195,-180,36,-42,-37,-73,-58,-214,-78,-93,146,-27,-49,-5,-97,-31,-5,109,-111,-28,-36,-41,-90,-45,-123,-279,-338,-11,-150,-5,-72,-44,-7,-99,12,-279,-61,70,-173,-12,-45,-30,-19,-168,14,-231,-149,-58,-36,-84,-250,-160,-111,-28,-38,-129,-27,-116,-26,-409,-240,-89,-135,-64,-87,-95,-9,-65,-3,-7,-97,-203,-165,-52,-59,-41,-18,-7,-56,254,-44,-71,-40,207,-9,-41,-7,-85,-243,-18,-13,-67,-17,-41,-57,-1,-20,-20,-105,-120,-51,-29,-117,-72,-30,-44,-52,-33,-29,-172,-5,-28,-114,176,-14,-24,-137,-3,-157,18,-4,-194,-55,-159,-100,-195,-148,-60,-221,-46,-65,-5,-96,-10,-23,-17,-264,-79,-72,-70,-9,-45,-19,-15,196,262,-6,-207,17,-29,210,209,816,1000,84,-169,-112,-34,-3,-207,-92,-29,-61,0,209,-223,-91,-13,-5,-154,-124,-200,-64,22,-59,-58,-37
BINANCE:BTCUSD
BTCUSD|20121220|20221220|0.475,0.011,0.0,-0.003,0.0,0.881,0.013,0.0,-0.001,0.0|1.25,0.06,0.0,-0.022,0.0,-0.475,0.024,0.0,0.01,0.0|-0.077,0.46,0.0,0.231,0.0,0.015,0.566,0.0,0.169,0.0|0.034,-0.184,0.0,0.618,0.0,-0.004,-0.174,0.0,0.73,0.0|0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,20,10,10,10,90,50,120,20,10,30,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,20,10,20,10,10,10,10,10,10,10,10,10,40,20,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,30,20,10,10,10,10,10,40,10,10,10,10,10,10,20,20,10,10,20,10,10,10,10,10,50,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,40,10,10,20,10,60,10,10,10,10,10,10,10,30,10,10,20,30,10,10,20,30,10,20,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,50,10,10,10,10,10,50,10,20,10,10,60,10,10,10,10,20,10,20,10,10,10,10,10,20,10,10,20,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,50,10,10,30,60,10,20,10,10,10,30,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,20,10,10,10,20,10,10,10,10,40,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,20,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,20,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,30,10,10,10,10,10,10,10,20,10,10,10,10,10,20,10,20,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,30,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,20,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10|48,-117,85,77,-23,-43,-130,-18,-95,-108,-79,-29,-6,-14,-71,-12,-20,-101,-109,-202,-33,39,-52,-66,-249,-74,-47,-266,-10,-27,-9,-1,-15,-17,-4,-63,-115,-37,36,-4,-10,-32,-29,-15,-62,-219,-132,-6,-9,-76,-35,-47,-82,-36,-82,-117,-33,-1,-6,23,108,-52,-84,-3,-285,18,186,378,124,-135,79,-172,21,299,-34,-16,-3,-53,-209,-10,-14,85,-4,-105,-14,-101,-159,-319,-67,69,45,-18,-63,-202,-30,-142,-504,-125,14,74,-2,-6,-13,1,-8,-187,-8,-9,-5,-66,-102,12,-49,77,-58,-238,-41,-7,0,-117,-6,-53,-60,-32,-81,-414,-426,-139,-11,-139,-48,38,-7,170,-515,-442,-24,89,134,-21,-11,-155,102,-121,13,70,-10,-138,-62,-148,-323,-72,-4,-67,384,-183,-75,-18,51,52,0,11,97,1000,184,-6,18,-93,69,-25,42,267,-76,-45,-226,-81,57,20,22,-50,8,-113,-11,-6,79,-11,28,27,87,-14,5,23,-2,3,-2,145,84,66,-32,-42,52,-60,36,-18,-34,-107,63,-198,-551,-189,-3,227,28,-127,-4,-41,127,-176,-1,-95,35,27,152,42,42,43,41,-73,13,-108,-140,-24,60,40,-5,-20,-79,-230,-245,-5,-26,-6,36,33,-1,15,-23,-31,-193,21,-15,24,30,43,-14,26,-11,121,139,199,-53,-31,14,74,77,112,268,-63,2,156,308,76,17,0,14,4,0,11,343,-36,14,-87,-171,-2,41,-75,-33,-646,-1298,-725,32,37,-232,-119,-353,-25,-9,-401,-4,12,45,111,53,-83,-118,-81,-52,-5,-18,-16,21,43,50,105,-26,0,-19,-67,-9,47,-2,0,-3,10,-3,-2,-21,-19,-1,12,-8,8,33,54,64,19,-33,-27,-86,-85,44,46,-11,59,75,0,12,-2,-1,5,-2,186,69,-21,-8,-22,73,5,7,0,128,-6,-90,44,-28,34,-388,-235,89,40,-138,-378,-147,-76,51,65,222,-5,53,51,68,-53,58,-63,-5,-11,-5,-7,10,4,63,137,40,234,141,-18,-9,-5,-73,-46,36,44,21,23,-4,-33,-9,0,-27,-1,-4,5,-140,-7,-2,-4,0,-8,92,-1,-48,-26,-70,-78,-78,11,-63,0,-4,0,48,48,-1,72,281,-4,-1,-1,76,143,18,167,57,40,-8,-11,-7,-5,69,63,84,415,64,45,-109,-40,-27,-16,65,63,-49,66,53,56,56,-6,3,-7,-6,-8,35,44,56,-2,54,65,180,0,61,42,43,-24,-18,81,43,-12,10,32,-3,6,39,37,-35,-164,-68,-25,97,96,69,-6,-99,-7,-3,-6,-158,66,37,74,-70,32,59,-94,-136,-65,-60,-11,-2,58,63,53,-16,-3,-86,-43,-75,-4,52,64,70,68,-15,35,-28,-37,0,-3,10,-14,63,-5,21,-20,-74,-67,-86,-7,35,-13,-8,41,31,65,154,62,-11,-19,33,39,37,29,21,42,39,467,6,58,55,41,23,10,50,61,-29,7,7,-53,-78,21,11,56,-50,-56,-18,14,29,49,23,59,45,41,-31,-16,-2,32,-118,-27,51,15,-19,47,-1,94,-1,-155,-77,-26,-11,-20,39,51,-12,114,-10,-201,-164,-97,-36,-4,0,-35,45,-2,-27,-21,-34,-234,0,29,-8,-5,71,62,-41,-4,-30,-21,-10,-2,56,-23,14,-11,49,-25,6,60,71,71,22,-7,-4,-8,14,14,-317,-7,228,55,99,-92,-14,-8,-65,-368,-134,-76,33,55,-4,-12,-20,80,-46,2,104,57,185,140,-3,25,-22,-51,-18,-21,68,-53,22,140,125,-30,-1,81,-22,-20,-75,-42,-19,0,18,-1,-1,56,21,-22,-18,-41,48,0,29,-11,-6,-55,-18,-21,-41,-194,-99,56,129,-2,15,-1,-17,-47,-10,131,49,-30,-105,-116,-1,57,0,-3,-20,-17,62,68,-20,30,-5,-28,-91,-171,-74,-69,22,36,-19,61,-8,-110,-33,-77,-18,-205,-106,27,-25,62,-121,-150,-65,-6,72,72,57,5,36,0,-31,-17,145,-4,88,-30,75,85,39,38,-5,33,-5,-9,-2,-188,-48,29,32,-25,36,-2,-59,2,-9,11,-33,49,-15,-14,-31,-211,-122,-20,-12,-67,-32,-1,42,-8,-75,-43,-2,0,78,-14,17,-136,253,-31,-101,-380,-105,-1,42,23,-4,-46,-46,64,-7,-38,-22,37,44,37,-32,-43,-58,37,27,-7,-11,14,109,56,-13,-5|0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,20,20,10,10,10,90,20,30,140,10,30,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,30,20,10,10,10,10,10,10,10,10,50,20,20,10,20,20,10,10,10,10,10,10,10,10,10,10,10,30,20,10,10,10,10,10,40,10,10,10,10,10,10,20,20,10,10,20,10,10,20,10,20,30,10,20,10,10,40,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,40,10,10,10,10,10,10,20,20,10,10,10,10,10,10,20,10,30,10,20,30,10,10,50,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,20,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,50,10,10,10,10,10,50,10,10,10,10,10,50,10,10,10,10,10,20,10,20,10,10,10,10,10,20,10,10,20,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,40,10,10,10,10,50,10,10,20,10,60,10,20,10,10,10,30,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,40,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,30,10,10,10,20,10,10,10,20,10,10,10,10,10,10,10,10,20,20,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,20,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,30,10,10,10,10,10,10,30,10,10,10,10,10,10,10,20,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,40,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,20,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10|-97,-25,-103,-109,-104,-28,-6,167,37,-29,-123,-107,-11,-10,-21,-17,21,34,28,-2,-33,-7,44,95,83,109,64,-123,-118,-1,-13,55,2,-17,50,8,-34,-26,-24,-89,-17,-16,-24,55,38,29,-22,-14,-32,-12,-1,77,-3,44,47,-25,-29,-2,26,71,27,21,52,-108,-82,-86,-30,104,46,-39,-99,-64,-12,-179,63,47,-20,-49,-6,-28,-6,-3,-5,-4,17,59,-16,-16,-1,33,91,47,-10,25,96,59,-92,-62,-25,-6,44,-2,-6,-95,-18,-56,-12,-36,-42,-11,-12,36,40,-39,-44,0,173,58,-20,-4,22,49,62,77,-46,-14,-24,108,-10,-127,-8,66,-13,-42,-139,-82,-17,52,-125,0,-20,-23,76,97,57,44,50,50,65,51,78,11,-160,43,120,-50,-57,-10,17,50,-11,-124,-139,-42,-21,-53,29,30,-10,-97,-49,-3,-15,-7,79,1000,-5,-17,0,-9,-40,-24,40,-8,-14,-9,0,-21,-11,-12,173,105,-12,63,-10,52,-6,294,338,-14,-94,-65,-19,-50,-64,-6,-1,-97,329,30,-36,-25,-22,-112,-65,-65,-9,250,110,0,57,16,-56,-51,-9,25,185,-26,33,66,1,212,-44,-7,-20,67,50,-68,46,-23,36,34,5,-30,-84,81,-27,-31,-60,-4,-8,58,-23,-15,4,-34,-12,70,27,-58,10,-3,-5,-44,-2,28,-5,-2,-22,-6,-6,-3,42,-3,57,-3,3,66,351,16,187,48,-190,-104,-261,-132,-5,123,141,17,32,87,25,64,-51,-273,-135,57,-32,324,150,115,-4,-15,-168,-195,-63,-2,20,4,-65,4,-25,-170,-28,-30,15,-13,51,11,18,32,-14,-35,-144,-1,-60,-18,-79,-7,-76,19,-9,25,-52,0,-42,-10,-2,32,69,-16,-11,16,-8,-8,-1,-15,46,49,65,-1,-5,-9,-6,-16,41,43,-1,32,-22,-73,-3,0,-1,-63,-21,91,-59,-32,-37,-8,15,-9,-49,-209,-58,-47,-66,-60,-33,-12,-104,-1,-81,-31,-156,-2,-40,-6,-13,92,-3,-2,31,-118,-331,-166,-25,-32,44,120,-3,16,38,2,-48,-3,10,-7,36,-60,-25,-20,-19,68,39,39,24,-1,49,22,-20,33,-73,-98,5,-5,14,2,-12,-357,-40,-19,-3,0,-19,-6,20,-19,-138,-24,-158,-92,0,0,-28,-23,-13,-56,19,-21,-14,-43,22,-212,-104,-137,-74,-12,8,-13,-9,-109,-166,-293,-170,-54,-210,-99,-37,-98,-339,-215,-42,-3,-317,-450,-125,-77,-76,29,-4,-7,-45,-45,-95,63,106,-8,-51,-113,-107,-7,107,110,66,-168,101,-84,-21,-58,36,-34,-4,2,119,123,22,-2,-627,-75,-33,-14,79,28,0,-17,-111,-350,-234,-40,13,0,-6,-7,-373,-73,-99,-40,0,0,51,31,11,-29,-11,-11,-141,-40,31,-47,-12,-76,-22,-17,-58,-58,-196,-110,-186,-43,-30,-117,-17,12,-315,-148,-165,-11,-165,-287,-154,-20,0,-23,83,-90,-6,50,-190,-9,0,-3,-133,-101,-155,-71,-57,-57,-19,-4,143,-148,-226,-125,-22,-67,-52,-6,-109,16,-64,53,22,-72,-161,-116,-429,-126,-1,-20,-76,-5,41,22,-3,24,-111,-32,-86,31,-29,24,25,-7,-180,-142,-80,-294,-24,23,-2,-52,-34,-95,-29,-30,12,-6,71,-25,-5,-13,-11,-37,-14,-26,27,8,109,-1,127,38,-91,35,0,-24,-3,-3,-36,-21,0,124,-50,-183,0,-96,-7,-7,-10,-141,-256,-356,-322,-103,-2,-89,12,129,70,0,31,-45,-114,-48,-19,-88,-75,-2,-54,-1,8,69,38,-13,-61,-4,-63,55,34,-5,-11,0,-1,-14,6,-27,-76,-62,53,43,67,-4,48,-9,117,-36,-56,-17,-19,44,17,0,-19,-4,-6,-33,-6,63,278,-10,30,61,-1,-42,-5,-14,-3,-5,-1,-11,63,-2,-37,-128,-7,91,370,51,-12,-21,52,-2,-89,13,-21,129,26,52,55,-7,14,-62,-277,-196,-83,0,26,14,23,-11,-5,-64,-33,-20,-35,-1,-10,-13,-19,-9,-68,-17,-1,53,-9,45,-15,-11,-77,42,46,-6,-43,-28,-25,-21,-7,-14,31,41,33,-9,-20,338,594,182,-7,-2,12,27,2,90,-1,66,19,65,0,-44,40,8,77,67,-20,-13,23,42,8,-56,-25,-15,26,-79,-73,-201,-86,-8,-88,-113,-34,-32,64,-45,-9,-151,-7,17
OANDA:USDCAD :
USDCAD|20121220|20221220|0.503,-0.128,0.0,-0.383,0.0,1.0,-0.149,0.0,-0.22,0.0|1.151,0.499,0.0,-0.351,0.0,-0.492,0.163,0.0,-0.233,0.0|-0.723,0.493,0.0,-0.209,0.0,0.369,0.723,0.0,-0.206,0.0|0.373,0.141,0.0,0.498,0.0,0.214,0.334,0.0,0.23,0.0|0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20|53,-18,-312,-155,-60,-19,-11,-17,-6,-66,-2,-12,-35,22,49,-61,-15,235,-24,-79,-44,62,136,41,16,310,123,148,104,-47,114,159,300,229,82,58,-10,0,-5,-13,-37,-103,891,1000,-3,-47,-123,-19,86,155,-4,-71,-54,-22,-13,-16,-134,-29,71,87,35,-113,-20,-7,-21,-13,-7,279,28,57,8,-32,-54,56,-63,-34,3,-3,69,29,13,18,45,-86,-124,-8,8,-7,-54,-3,42,0,-17,31,-10,-4,-37,-40,-49,-4,-88,69,-42,-6,54,-49,11,-5,-9,116,26,19,33,28,-123,-159,-20,19,24,67,30,132,206,41,33,-100,35,71,5,15,102,136,115,49,-43,59,95,51,51,349,282,88,70,-29,-11,113,51,-7,-12,-28,96,-10,-44,-35,4,104,75,-7,-6,-16,-48,-52,-23,-25,-1,154,-25,25,-116,-18,-34,-43,-55,-3,36,134,68,0,-11,40,-5,-105,-62,-39,-7,47,65,63,39,14,48,-33,-28,-27,16,-132,3,103,-6,196,35,90,23,-8,-35,-29,-2,67,-12,631,142,75,-17,-5,-53,-42,-236,-85,249,150,40,33,71,-15,56,-14,84,-35,41,19,9,0,-54,-14,-16,78,-4,93,86,95,-50,97,-142,19,116,-68,-2,-73,325,0,-53,-29,-291,-65,36,-12,-62,-183,-34,39,62,-16,-22,-5,-13,103,-35,-60,-18,8,-6,41,40,-3,105,-36,-3,0,-16,-65,102,-31,-36,-32,-30,72,-62,63,-22,-11,38,37,-8,-76,-120,-66,87,62,-6,-45,68,-16,-32,-28,-195,63,-3,65,74,-2,-87,-1,-156,-473,-97,-59,156,-53,67,174,-86,30,-13,-25,-77,-1,67,46,59,-33,121,-2,-59,48,-95,-198,-99,19,-8,-101,75,31,5,-29,-236,-198,-223,-25,-95,-111,-42,-13,-5,36,-3,-17,-324,-153,-156,-25,-27,-13,14,92,-6,-8,-16,-5,-26,79,72,-31,4,140,-31,-27,-7,-40,-16,-7,34,-6,-20,90,-47,-12,-11,98,-15,-13,-92,-24,15,-33,-52,-117,-7,123,-24,-3,-57,19,17,-42,-86,-23,63,-34,51,-11,-40,-2,20,-51,-98,-210,31,-83,-102,-15,51,-29,0,-3,-297,-7,36,-32,-35,83,-35,-134,-141,-157,-151,-56,73,-22,-25,-4,75,-84,-152,-1,-150,-28,-80,15,2,-135,-27,-7,-6,0,-17,-12,-3,-3,-13,-10,-2,-1,-3,16,-70,-11,-9,71,-147,36,136,-45,-38,77,-5,55,-44,-5,-5,-19,51,-4,-12,-46,-9,-33,14,-43,-14,-57,-9,-15,-113,46,31,33,84,-63,-51,10,-202,-23,25,-3,122,170,-81,-104,-32,64,-78,-8,-38,95,-19,-64,-197,-77,-133,-29,-10,-32,-43,-55,115,24,-89,-89,-31,-24,-17,-73,-171,-22,49,12,-7,63,92,52,-50,-45,-58,-6,-16,-45,-18,21,-37,-42,-24,-93,-219,-17,-7,37,-9,-24,-30,0,-46,-102,-173,-16,65,-1,-34,1,-4,-8,-77,-66,-216,-14,54,-30,-11,-39,-2,-44,-119,8,-56,-106,64,-12,-16,0,-148,-53,79,-20,-56,-34,50,-23,-37,-136,-28,-14,-20,68,153,60,-7,-50,-6,-80,-46,47,-17,-116,135,113,-8,-162,-276,-107,-75,12,-114,-29,291,25,-9,61,-239,-33,-28,-30,-33,-10,57,49,-11,-1,-18,-26,-14,-31,-160,62,-55,44,38,36,-1,-13,-54,-129,-107,-6,-21,-104,-3,-22,-15,50,-19,-10,-97,-37,-8,-2,-47,-2,-55,-127,-85,-45,-44,-16,-61,-25,-44,-4,-16,-63,-4,-26,-66,-57,-9,46,28,-8,-11,-3,27,-75,-102,-51,-53,-19,22,41,-41,-6,-1,-18,-96,-4,-4,-22,-50,-1,-138,-16,53,-122,-349,-70,-20,-51,-46,-197,-14,-87,-21,-35,-243,95,61,-28,-5,-92,-53,-2,-43,-34,-35,-135,12,-12,-19,-63,-124,0,-40,-10,-32,10,-35,-29,-2,-60,-364,-19,71,-7,0,39,-131,-8,-59,-18,-16,-136,-17,-7,-4,-65,-37,-4,-26,48,11,-23,-201,-61,-12,-109,-10,3,-2,-5,558,12,-216,-21,44,-148,-1,-2,-61,54,185,-9,-1,14,-48,-86,-73,-17,-173,-96,148,110,-18,-66,-249,-46,-152,-41,-12,-71,-255,-28,-20,-29,-517,-25,0,-9,-1,-4,-16,-198,-39,-3,-29,-16,80,-8,-21,-16,-24,-331,-123,-45,-52,35,50,-18,-41,-3,9,48,131,-23,-21,-8,-14,-65,-21,-105,-15,-59,63,-2,-30,-23,-79,-5,0,-5,-149,-50,-51,26,-44,-24,-58,-19,-54,0,-109,-39,-149,-66,-40,-80,-110,-4,-5,-30,107,-11,-228,-13,17,-11,-33,47,-1,-5,151,-2,-26,-3,39,-72,-181,-5,-33,9,73,74,-26,-72,-3,-4,-19,-2,-37,64,-16,-36,-20,-5,-20,-96,-120,-80,25,-24,-4,-29,-31,87,-55,-28,-15,-60,-9,-116,-271,-307,-147,-23,-14,-8,44,-15,-15,-17,-9,-18,-141,-64,-59,-133,11,-126,-42,65,-33,72,38,-70,-24,-79,49,25,-151,-2,-48,-38,41,-27,-3,-2,-19,-3,-108,-9,-84,-150,-118,-65,-286,-111,-8,165,-45,110,137,-6,-19,-55,-52,60,5,48,270,89,105|0,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,30,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,20,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10|-161,-70,111,67,-162,-38,-90,-134,18,-63,-66,-87,-33,-3,-13,-54,-58,-233,-88,-17,-144,-177,-76,-79,-8,-59,-151,-318,-62,-381,-113,0,-845,-93,-218,-81,-74,-190,-100,-41,10,-193,-1207,-87,-32,130,93,-349,-449,-205,-43,129,-269,-147,171,-7,125,-31,-392,-476,-200,58,144,-10,-37,-505,-28,-20,117,-20,266,-7,-46,-173,79,-206,-22,-361,-110,-158,-2,-108,-532,-90,-81,66,65,-7,-115,-85,-8,-11,-66,-68,20,-36,-72,-68,-4,-65,-40,-232,77,127,-116,87,-27,-23,-150,-47,-8,35,-54,-223,26,-251,-1,-364,-188,-109,-187,-137,-111,-228,-262,26,-193,-258,-8,-55,-252,0,-43,-807,-691,-642,-4,-25,-50,-2,-103,-613,-211,-357,-2,-11,-40,-175,-278,-110,34,-7,-556,-21,-29,-43,0,-245,-363,-4,-73,61,-9,-275,-329,-190,-58,-199,374,-15,-11,-43,-35,-187,-49,-212,-167,-495,-327,-48,102,-13,-184,-28,-185,-75,-416,-389,-204,-270,-172,-98,-33,-11,-637,-78,-142,-159,-32,-15,-10,104,-49,100,-252,-103,-58,-63,-245,-21,140,157,149,-46,-160,-203,100,29,-297,-220,58,160,-315,-51,-149,-22,23,-83,-282,47,-118,-143,-56,544,-40,-139,-582,-175,-272,-145,-54,-102,-301,-158,-26,-206,-466,-149,-304,-22,-16,-289,-8,247,112,197,-412,-33,91,100,129,113,-153,-223,0,-263,-34,-26,-274,293,-91,-739,-945,-260,-22,-9,-208,-205,-13,-198,-207,-220,-686,-126,-208,121,-496,-353,-686,-96,-413,-8,0,-411,-34,-126,181,52,-404,-416,-398,1,-237,-815,-38,117,77,-19,-22,71,119,-158,-2,-27,-56,182,-50,-87,-167,-751,-282,-416,-302,-11,-174,-153,-83,-57,-104,-24,-236,-568,-224,-60,-95,-97,-98,-175,-83,-343,-128,-166,-115,-75,-64,-28,-55,-216,232,-21,-153,-280,112,219,-29,-8,-40,-176,-60,192,108,-118,-531,-528,263,9,-60,-251,-115,-2,-177,-228,-903,-597,-168,-83,-284,-43,27,-134,-15,-146,-1055,-307,-5,-151,-146,-256,-4,-44,-164,-29,-75,-38,126,-38,-68,-423,-178,-231,-10,86,-56,-134,-14,-4,154,-149,-136,141,39,95,-16,-102,90,-14,-118,-92,-228,-253,-165,-269,53,-200,-248,-271,318,-405,-292,-131,-56,-236,-498,-487,-119,-230,154,134,-272,-59,152,-230,-228,-330,205,-85,-177,-95,-16,-74,-101,-271,-3,-143,-237,-326,-55,118,140,-56,-356,-292,-101,108,-15,-374,134,-84,426,-51,-216,-474,-667,-42,-70,-177,-16,-38,-154,-37,-91,-472,-450,-302,23,386,-216,-143,-112,-96,-51,-399,-13,-14,-9,-17,-711,-460,-572,-249,-228,-115,-38,-35,57,-71,-90,-864,-215,132,90,93,-29,-5,-20,282,-162,-293,-6,40,136,-116,-17,68,-165,18,-175,-107,-368,200,-4,-285,-743,-361,-234,79,-149,-313,-71,144,-780,-406,-839,-77,-121,90,-48,-5,-87,-57,-137,-321,-597,-258,-64,222,-148,96,-279,-369,-10,-62,-112,-32,-106,98,-15,-39,-483,-47,-2,-47,51,81,-32,147,-11,-249,-319,-277,-189,-45,289,155,-5,-7,-200,-43,-863,-25,-64,454,143,-131,-48,-637,-257,-21,36,813,371,64,0,46,-162,-805,-550,-5,83,198,0,-234,-523,-299,-484,-424,-200,-96,101,182,-6,-101,-84,-101,-63,-130,-130,-143,-192,-276,-394,-64,-265,-42,-19,-283,-77,-94,-300,-205,-164,-408,93,381,-65,-59,-527,-362,-109,-70,-62,401,700,-246,-63,-153,-203,-112,162,-32,-31,-93,-38,-100,-203,-73,-8,-90,-241,-80,-99,45,188,-64,-282,-33,-187,-58,-151,-11,-11,155,-28,-20,-102,-5,-65,-241,96,-117,223,155,-14,-90,105,-148,318,-91,66,-85,105,-9,111,-263,-56,113,156,197,-32,-263,-424,-314,-113,-205,-342,-33,-29,240,-27,-14,-268,-37,-203,-1085,-66,-267,-650,-525,-20,-16,-96,140,-52,-22,-51,-305,-40,-141,-44,-5,90,-65,-72,-28,-160,-147,-198,-1,82,-32,304,-55,-129,-23,-213,-2,-17,-14,-14,50,999,-132,-58,-97,-54,-145,59,-120,-130,375,368,484,-60,-149,-404,-27,-61,-165,210,106,-74,-161,240,-231,-74,-103,-23,-6,128,-10,-180,-439,187,328,153,280,-13,-75,236,-5,-28,-42,139,109,-9,-38,-19,141,-62,-83,-279,-163,-825,-10,69,-63,56,-73,141,188,139,-1774,-2845,-281,-2,-58,-14,-81,-36,196,89,-118,-319,-31,53,-45,-4,-82,-361,-25,-149,-263,-23,-49,-128,60,-82,-79,-97,-93,395,-1,-42,21,-22,-55,-247,0,164,258,912,-182,183,-78,-4,170,-51,-45,345,565,190,331,176,-380,-7,84,-46,-186,-200,112,-7,-72,66,-128,-82,-21,-34,-185,-1,-150,-93,-3,116,-5,-64,-18,-105,-87,-131,-77,-73,-57,137,-46,-8,-164,-101,-62,-108,-142,18,-35,-83,-5,77,-13,133,-1,83,-16,-72,-127,-87,-52,-26,-29,0,-50,87,103,-9,-206,27,-191,-54,-285,-255,-261,-197,-1,170,-64,-87,-42,-12,-133,-328,-293,-419,-110,-109,-39,115,56,-183,-3,-367,-159,-162,92,-17,-25,-91,-18,-19,-61,282,-28,-108,338,-107,110,-125,-163,-66,-242,-294,-667,-416,-435,-2,-43,-43,-295,-10,-105,-203,-133,-149
For more models, see a link on bio (description length limitation in this description restricts me to publish more).
Unimportant details
===============
“Neon” is the project code name, “J” is the iteration (versions “A” to “I” all led to a solid “J”)
Formatting options here make formatting very difficult, so forgive me poor readability.
Fund MasterFund Master, Revision 1, 3Apr2022
A. About Fund Master
1. An Oscillator with values between -100 to 100, with intention to simulate Fund inflow and outflow.
2. Presented itself in the form of solid candles without upper and lower tails.
B. Features and Setting
1. Fund Master(FM) will show up by default.
2. User has the option to turn Fund Master Bull Bear Line(BBL), and the label. Label text size is adjustable.
3. User has the option to turn on FM crossover BBL (alert text is coB) or FM crossunder BBL (alert text is cuB)
4. User has the option to turn on FM crossover 0 (alert text is co0) or FM crossunder 0 (alert text is cu0)
5. Band 0 will be shown(default), user can turn on additional band with user input value
6. Table will be shown(default), provides information on Indicator Name, FM values, FM Turn Green/Turn Red status,
FM crossover/crossunder status.
7. Alertcondition features are included. User can set the alert using the Create Alert (the Clock Icon).
The alerts includes : FM crossover or crossunder BBL, FM crossover or crossunder 0, FM turns Green, FM turns Red.
C. Using the Indicator
1. Band 0, baseline to tell if a stocks is potentially moving into bullish trend(above 0) or into bearish trend(0).
Band 0, approximately exponential 30 day of closing price(EMA30). User may use EMA30 on price chart as reference.
2. BBL, baseline to tell if fund is moving in or moving out. Above BBL means inflow of fund, vice versa.
BBL, approximately exponential 20d ay of closing price. User may use EMA20 on price chart as reference.
3. Below Band 0
After FM crossunder 0 and continues to move down, it means outflow of fund, while fund is reducing,
chips are potentially accumulated during this stage.
After FM hitting the minimum, rebounds and moving up, but still below BBL, chips are potentially being accumulated.
User can use Chips Master to visualise the chips accumulation stage.
When FM crossover BBL and continues to move up, it means inflow of fund in pushing up the stock price.
4. Above Band 0
After FM crossover 0, continues to move up and stays above BBL, stocks potentially moving into bullish trend with inflow of fund.
During retrace, FM may turn from Green to Red and moves sideways, and FM may turn from Red to Green when stocks price rebounds.
User can set the alert to notify on FM turn Red/turn red (as mentioned in Section B, point 7)
5. User can use MCDX Plus to visualise the increase or decrease of Profitable Level as shown by the Red Bar.
User can look and golden cross or death cross of Moving Average of Profitable Chips and Locked Chips.
Death cross, stock trend most likely moving into chips accumulating stage, FM may move down towards 0 or moving down below 0.
Golden cross, stock trend most likely moving into bullish trend, FM may move up towards 0 or moving up above 0.
6. Top Deviation and Bottom Deviation
FM has the potential ability to demonstrate Top Deviation (Stock Price is moving up while FM is moving down) as well as
Bottom Deviation (Stocks price is moving down or sideway while FM is moving up).
This helps to prepare user to buy during Bottom Deviation or sell during Top Deviation.
It is not perfect, user needs to use their technical analysis judgement.
D. Smart Money System
Indicators published includes : Chips Master, BBD Master, MCDX Plus, Trend Master, Ladder Master, Deviation Master, Fund Master
Chips Master for studying chips accumulating by banker/smart money
BBD Master for studying the big buy net deviation by banker/smart money
MCDX Plus for studying the profitable and locked chips
Trend Master for studying the Price Trends
Ladder Master for studying the Trends reversal (mid term) and short term entry/exit
Deviation Master for studying the Top and Bottom Deviation.
Fund Master for studying fund inflow/outflow, chips accumulating, price push up, top deviation and bottom deviation.
E. Disclaimer :
1. Attached chart is for the purpose of illustrating the use of indicator, no recommendation of buy/sell.
2. Based on feedback, there may be unethical individual with no respects of author's effort and originality, either.
a. claiming the published indicators as theirs, for their own business purposes, or
b. claiming paying the author to develop the scripts, for their own business purposes, or
c. Copy and modify the scripts for their own business purposes
This scripts is locked for the time being to prevent those unethical malpractice.
Public users are welcome to use indicator for their technical analysis.
BKN: Thick CutThick Cut is the juiciest BKN yet. This indicator is created to take a profitable trading strategy and turn it into an automated system. We've built in several pieces that professional traders use every day and turned it into an algo that produces on timeframes as low as 1, 3, and 5 minutes!
Limit Order Entries: When criteria is met, an alert is signaled that will send a value to enter a position at a limit price.
Built in Stop Loss: A stop is built in and the value can be sent to your bot using the {{plot}} function or you can rely on a TradingView alert when the stop is hit.
Built in Take Profits: We've built in two separate take profits and the ability to move your stop loss to breakeven after the first take profit is hit. Even if you take 50% profit at 1R and move your stop loss, you already have a profitable trade. Test results show 50% profits at 2R and the remainder at higher returns result in exceptional results.
Position Sizing: We've built in a position size based on your own predetermined risk. Want to risk $100 per trade? Great, put in 100 in the inputs and reference a quantity of {{plot("Position Size")}} in your alert to send a position size to the bot. You can also reference {{plot("Partial Close")}} to pull 50% of the position size closing 50% at TP1 and 50% at TP2.
Backtest results shown are very short term since we are viewing a 15m chart. This can be a profitable strategy on many timeframes, but lower timeframes will maximize results.
A unique script with incredible results. Further forward testing is live.
***IMPORTANT***
For access, please do not comment below. Comments here will not be replied to. Please send a DM here or on my linked Twitter . At this time, this strategy is considered a Beta release as we continue to fine tune settings and more. Expecting 2 weeks of beta with official release around June 6.
Crypto Tipster Study / Alerts -theCrypster===========
Crypto Tipster Study with Alerts
===========
Our Crypto Tipster Study with Alerts Script is a carbon copy of our tried and tested Crypto Tipster Pro Strategy , but now with the option of setting TradingView Alerts for your chosen trading plan. Making missing trades a thing of the past, and helping you to automate your own trading strategy.
-----------
Crypto Tipster Pro is a trading strategy with indicators based on Technical Analysis, Price Action and Momentum Swings for TradingView's charting platform.
We've compiled and continue to update a trading strategy that adapts to changes in the market; with custom indicator settings, fixed SL/TP, Trailing Stop, Safe Mode, Heikin Ashi Confirmation and more!
Our efforts have been focused towards the 1D time frame - using a larger time frame benefits most part-time or evening traders in multiple ways, catching bigger swings and earning a higher percentage per trade, the ability to reduce or remove any leverage associated with the trade, and only having to place a trade or move a stop loss ONCE per day ~ Meaning you are still able to go to work, tidy the house, play with the kids AND be a successful trader.
-----------
What's Included within Crypto Tipster Pro?
Crypto Tipster Pro comes with a host of features and is being continually updated, these features include (but are not limited to):
- Date Range Settings
Setting custom Start/End dates can help hone your strategy to suit the current times, or get a general overview of the market over the years.
- Heikin Ashi Confirmation
We added HA confirmation for both Entry & Exit of trades. This started as a form of "Safe Mode", we have since adapted this mode beyond Heikin Ashi; but kept this confirmation as an added extra.
- Variable Indicator Settings
As well as our Fixed Indicators and Price Action analysis going on in the background of the strategy, we've also included some Variable Indicators that you have access to edit.
Trend Detection Length for detecting trend! Higher numbers detect longer trends, but will inevitably make fewer trades and possibly miss the start of a new trend; a lower length will create more opportunities to trade but may get confused when ranging in choppy markets.
Range Short/Long Lengths are used for detecting percentage price movements over a given number of bars back. This enables you to effectively "zoom in" on market data and catch trends within trends.
- Safe Mode
Enabling Safe Mode will add a couple more confirmation indicators to the strategy - the aim of Safe Mode is, in essence, to remove any trading signals that would end of being false/bad moves. Usually resulting in less Overall Trades, a higher Net Profit, higher % Profitable, higher Profit Factor AND a lower Drawdown.
- Stop Loss/Take Profit Settings
This is where Crypto Tipster Pro really proves itself, Money Management. We have an editable Fixed SL/TP, as well as Trailing Stops for Long or Short orders, all of which you can use on their own, or combined with each other. Playing with these settings can turn an un-profitable system into a very-profitable system!
- Custom Stop Loss Indicator
This is a little extra indicator that we have found very useful over the years of trading markets, a custom Stop Loss Indicator. Simply turn it on, enter the price you want to calculate from, tick Long or Short, enter a % movement and watch as your new stop loss level is plotted on the chart. This is especially useful for when the strategy doesn't marry up with the prices you've actually obtained (for better or for worse!)
-----------
What's Included within Crypto Tipster Study / Alerts Script?
Our Study script will find Entry and Exit points exactly as our Pro Strategy would find them. The same indicators, methods and chart reading techniques are used, there are 2 big differences however...
The first difference is that our Pro Strategy has the ability to manage your money, Fixed Stops, Take Profit and Trailing Stops to name just a few. Our Study does not (and cannot) have these functions added due to the way TradingView's charting platform operates.
That's the bad news, the good news for our Crypto Tipster Study Script is that you can add Alerts to your trading plan! This is super handy if you decide to implement our methods into various time frames other than 1D and are looking for Intra-day alerts, or if you're looking to Automate your trading strategy using external software.
Help and Advice for setting up Alerts or to Automate your Strategy can be found on our website.
----------
For more information on the Crypto Tipster Pro Strategy visit the link in our signature.
Good Luck and Happy Trading!
Backtesting & Trading Engine [PineCoders]The PineCoders Backtesting and Trading Engine is a sophisticated framework with hybrid code that can run as a study to generate alerts for automated or discretionary trading while simultaneously providing backtest results. It can also easily be converted to a TradingView strategy in order to run TV backtesting. The Engine comes with many built-in strats for entries, filters, stops and exits, but you can also add you own.
If, like any self-respecting strategy modeler should, you spend a reasonable amount of time constantly researching new strategies and tinkering, our hope is that the Engine will become your inseparable go-to tool to test the validity of your creations, as once your tests are conclusive, you will be able to run this code as a study to generate the alerts required to put it in real-world use, whether for discretionary trading or to interface with an execution bot/app. You may also find the backtesting results the Engine produces in study mode enough for your needs and spend most of your time there, only occasionally converting to strategy mode in order to backtest using TV backtesting.
As you will quickly grasp when you bring up this script’s Settings, this is a complex tool. While you will be able to see results very quickly by just putting it on a chart and using its built-in strategies, in order to reap the full benefits of the PineCoders Engine, you will need to invest the time required to understand the subtleties involved in putting all its potential into play.
Disclaimer: use the Engine at your own risk.
Before we delve in more detail, here’s a bird’s eye view of the Engine’s features:
More than 40 built-in strategies,
Customizable components,
Coupling with your own external indicator,
Simple conversion from Study to Strategy modes,
Post-Exit analysis to search for alternate trade outcomes,
Use of the Data Window to show detailed bar by bar trade information and global statistics, including some not provided by TV backtesting,
Plotting of reminders and generation of alerts on in-trade events.
By combining your own strats to the built-in strats supplied with the Engine, and then tuning the numerous options and parameters in the Inputs dialog box, you will be able to play what-if scenarios from an infinite number of permutations.
USE CASES
You have written an indicator that provides an entry strat but it’s missing other components like a filter and a stop strategy. You add a plot in your indicator that respects the Engine’s External Signal Protocol, connect it to the Engine by simply selecting your indicator’s plot name in the Engine’s Settings/Inputs and then run tests on different combinations of entry stops, in-trade stops and profit taking strats to find out which one produces the best results with your entry strat.
You are building a complex strategy that you will want to run as an indicator generating alerts to be sent to a third-party execution bot. You insert your code in the Engine’s modules and leverage its trade management code to quickly move your strategy into production.
You have many different filters and want to explore results using them separately or in combination. Integrate the filter code in the Engine and run through different permutations or hook up your filtering through the external input and control your filter combos from your indicator.
You are tweaking the parameters of your entry, filter or stop strat. You integrate it in the Engine and evaluate its performance using the Engine’s statistics.
You always wondered what results a random entry strat would yield on your markets. You use the Engine’s built-in random entry strat and test it using different combinations of filters, stop and exit strats.
You want to evaluate the impact of fees and slippage on your strategy. You use the Engine’s inputs to play with different values and get immediate feedback in the detailed numbers provided in the Data Window.
You just want to inspect the individual trades your strategy generates. You include it in the Engine and then inspect trades visually on your charts, looking at the numbers in the Data Window as you move your cursor around.
You have never written a production-grade strategy and you want to learn how. Inspect the code in the Engine; you will find essential components typical of what is being used in actual trading systems.
You have run your system for a while and have compiled actual slippage information and your broker/exchange has updated his fees schedule. You enter the information in the Engine and run it on your markets to see the impact this has on your results.
FEATURES
Before going into the detail of the Inputs and the Data Window numbers, here’s a more detailed overview of the Engine’s features.
Built-in strats
The engine comes with more than 40 pre-coded strategies for the following standard system components:
Entries,
Filters,
Entry stops,
2 stage in-trade stops with kick-in rules,
Pyramiding rules,
Hard exits.
While some of the filter and stop strats provided may be useful in production-quality systems, you will not devise crazy profit-generating systems using only the entry strats supplied; that part is still up to you, as will be finding the elusive combination of components that makes winning systems. The Engine will, however, provide you with a solid foundation where all the trade management nitty-gritty is handled for you. By binding your custom strats to the Engine, you will be able to build reliable systems of the best quality currently allowed on the TV platform.
On-chart trade information
As you move over the bars in a trade, you will see trade numbers in the Data Window change at each bar. The engine calculates the P&L at every bar, including slippage and fees that would be incurred were the trade exited at that bar’s close. If the trade includes pyramided entries, those will be taken into account as well, although for those, final fees and slippage are only calculated at the trade’s exit.
You can also see on-chart markers for the entry level, stop positions, in-trade special events and entries/exits (you will want to disable these when using the Engine in strategy mode to see TV backtesting results).
Customization
You can couple your own strats to the Engine in two ways:
1. By inserting your own code in the Engine’s different modules. The modular design should enable you to do so with minimal effort by following the instructions in the code.
2. By linking an external indicator to the engine. After making the proper selections in the engine’s Settings and providing values respecting the engine’s protocol, your external indicator can, when the Engine is used in Indicator mode only:
Tell the engine when to enter long or short trades, but let the engine’s in-trade stop and exit strats manage the exits,
Signal both entries and exits,
Provide an entry stop along with your entry signal,
Filter other entry signals generated by any of the engine’s entry strats.
Conversion from strategy to study
TradingView strategies are required to backtest using the TradingView backtesting feature, but if you want to generate alerts with your script, whether for automated trading or just to trigger alerts that you will use in discretionary trading, your code has to run as a study since, for the time being, strategies can’t generate alerts. From hereon we will use indicator as a synonym for study.
Unless you want to maintain two code bases, you will need hybrid code that easily flips between strategy and indicator modes, and your code will need to restrict its use of strategy() calls and their arguments if it’s going to be able to run both as an indicator and a strategy using the same trade logic. That’s one of the benefits of using this Engine. Once you will have entered your own strats in the Engine, it will be a matter of commenting/uncommenting only four lines of code to flip between indicator and strategy modes in a matter of seconds.
Additionally, even when running in Indicator mode, the Engine will still provide you with precious numbers on your individual trades and global results, some of which are not available with normal TradingView backtesting.
Post-Exit Analysis for alternate outcomes (PEA)
While typical backtesting shows results of trade outcomes, PEA focuses on what could have happened after the exit. The intention is to help traders get an idea of the opportunity/risk in the bars following the trade in order to evaluate if their exit strategies are too aggressive or conservative.
After a trade is exited, the Engine’s PEA module continues analyzing outcomes for a user-defined quantity of bars. It identifies the maximum opportunity and risk available in that space, and calculates the drawdown required to reach the highest opportunity level post-exit, while recording the number of bars to that point.
Typically, if you can’t find opportunity greater than 1X past your trade using a few different reasonable lengths of PEA, your strategy is doing pretty good at capturing opportunity. Remember that 100% of opportunity is never capturable. If, however, PEA was finding post-trade maximum opportunity of 3 or 4X with average drawdowns of 0.3 to those areas, this could be a clue revealing your system is exiting trades prematurely. To analyze PEA numbers, you can uncomment complete sets of plots in the Plot module to reveal detailed global and individual PEA numbers.
Statistics
The Engine provides stats on your trades that TV backtesting does not provide, such as:
Average Profitability Per Trade (APPT), aka statistical expectancy, a crucial value.
APPT per bar,
Average stop size,
Traded volume .
It also shows you on a trade-by-trade basis, on-going individual trade results and data.
In-trade events
In-trade events can plot reminders and trigger alerts when they occur. The built-in events are:
Price approaching stop,
Possible tops/bottoms,
Large stop movement (for discretionary trading where stop is moved manually),
Large price movements.
Slippage and Fees
Even when running in indicator mode, the Engine allows for slippage and fees to be included in the logic and test results.
Alerts
The alert creation mechanism allows you to configure alerts on any combination of the normal or pyramided entries, exits and in-trade events.
Backtesting results
A few words on the numbers calculated in the Engine. Priority is given to numbers not shown in TV backtesting, as you can readily convert the script to a strategy if you need them.
We have chosen to focus on numbers expressing results relative to X (the trade’s risk) rather than in absolute currency numbers or in other more conventional but less useful ways. For example, most of the individual trade results are not shown in percentages, as this unit of measure is often less meaningful than those expressed in units of risk (X). A trade that closes with a +25% result, for example, is a poor outcome if it was entered with a -50% stop. Expressed in X, this trade’s P&L becomes 0.5, which provides much better insight into the trade’s outcome. A trade that closes with a P&L of +2X has earned twice the risk incurred upon entry, which would represent a pre-trade risk:reward ratio of 2.
The way to go about it when you think in X’s and that you adopt the sound risk management policy to risk a fixed percentage of your account on each trade is to equate a currency value to a unit of X. E.g. your account is 10K USD and you decide you will risk a maximum of 1% of it on each trade. That means your unit of X for each trade is worth 100 USD. If your APPT is 2X, this means every time you risk 100 USD in a trade, you can expect to make, on average, 200 USD.
By presenting results this way, we hope that the Engine’s statistics will appeal to those cognisant of sound risk management strategies, while gently leading traders who aren’t, towards them.
We trade to turn in tangible profits of course, so at some point currency must come into play. Accordingly, some values such as equity, P&L, slippage and fees are expressed in currency.
Many of the usual numbers shown in TV backtests are nonetheless available, but they have been commented out in the Engine’s Plot module.
Position sizing and risk management
All good system designers understand that optimal risk management is at the very heart of all winning strategies. The risk in a trade is defined by the fraction of current equity represented by the amplitude of the stop, so in order to manage risk optimally on each trade, position size should adjust to the stop’s amplitude. Systems that enter trades with a fixed stop amplitude can get away with calculating position size as a fixed percentage of current equity. In the context of a test run where equity varies, what represents a fixed amount of risk translates into different currency values.
Dynamically adjusting position size throughout a system’s life is optimal in many ways. First, as position sizing will vary with current equity, it reproduces a behavioral pattern common to experienced traders, who will dial down risk when confronted to poor performance and increase it when performance improves. Second, limiting risk confers more predictability to statistical test results. Third, position sizing isn’t just about managing risk, it’s also about maximizing opportunity. By using the maximum leverage (no reference to trading on margin here) into the trade that your risk management strategy allows, a dynamic position size allows you to capture maximal opportunity.
To calculate position sizes using the fixed risk method, we use the following formula: Position = Account * MaxRisk% / Stop% [, which calculates a position size taking into account the trade’s entry stop so that if the trade is stopped out, 100 USD will be lost. For someone who manages risk this way, common instructions to invest a certain percentage of your account in a position are simply worthless, as they do not take into account the risk incurred in the trade.
The Engine lets you select either the fixed risk or fixed percentage of equity position sizing methods. The closest thing to dynamic position sizing that can currently be done with alerts is to use a bot that allows syntax to specify position size as a percentage of equity which, while being dynamic in the sense that it will adapt to current equity when the trade is entered, does not allow us to modulate position size using the stop’s amplitude. Changes to alerts are on the way which should solve this problem.
In order for you to simulate performance with the constraint of fixed position sizing, the Engine also offers a third, less preferable option, where position size is defined as a fixed percentage of initial capital so that it is constant throughout the test and will thus represent a varying proportion of current equity.
Let’s recap. The three position sizing methods the Engine offers are:
1. By specifying the maximum percentage of risk to incur on your remaining equity, so the Engine will dynamically adjust position size for each trade so that, combining the stop’s amplitude with position size will yield a fixed percentage of risk incurred on current equity,
2. By specifying a fixed percentage of remaining equity. Note that unless your system has a fixed stop at entry, this method will not provide maximal risk control, as risk will vary with the amplitude of the stop for every trade. This method, as the first, does however have the advantage of automatically adjusting position size to equity. It is the Engine’s default method because it has an equivalent in TV backtesting, so when flipping between indicator and strategy mode, test results will more or less correspond.
3. By specifying a fixed percentage of the Initial Capital. While this is the least preferable method, it nonetheless reflects the reality confronted by most system designers on TradingView today. In this case, risk varies both because the fixed position size in initial capital currency represents a varying percentage of remaining equity, and because the trade’s stop amplitude may vary, adding another variability vector to risk.
Note that the Engine cannot display equity results for strategies entering trades for a fixed amount of shares/contracts at a variable price.
SETTINGS/INPUTS
Because the initial text first published with a script cannot be edited later and because there are just too many options, the Engine’s Inputs will not be covered in minute detail, as they will most certainly evolve. We will go over them with broad strokes; you should be able to figure the rest out. If you have questions, just ask them here or in the PineCoders Telegram group.
Display
The display header’s checkbox does nothing.
For the moment, only one exit strategy uses a take profit level, so only that one will show information when checking “Show Take Profit Level”.
Entries
You can activate two simultaneous entry strats, each selected from the same set of strats contained in the Engine. If you select two and they fire simultaneously, the main strat’s signal will be used.
The random strat in each list uses a different seed, so you will get different results from each.
The “Filter transitions” and “Filter states” strats delegate signal generation to the selected filter(s). “Filter transitions” signals will only fire when the filter transitions into bull/bear state, so after a trade is stopped out, the next entry may take some time to trigger if the filter’s state does not change quickly. When you choose “Filter states”, then a new trade will be entered immediately after an exit in the direction the filter allows.
If you select “External Indicator”, your indicator will need to generate a +2/-2 (or a positive/negative stop value) to enter a long/short position, providing the selected filters allow for it. If you wish to use the Engine’s capacity to also derive the entry stop level from your indicator’s signal, then you must explicitly choose this option in the Entry Stops section.
Filters
You can activate as many filters as you wish; they are additive. The “Maximum stop allowed on entry” is an important component of proper risk management. If your system has an average 3% stop size and you need to trade using fixed position sizes because of alert/execution bot limitations, you must use this filter because if your system was to enter a trade with a 15% stop, that trade would incur 5 times the normal risk, and its result would account for an abnormally high proportion in your system’s performance.
Remember that any filter can also be used as an entry signal, either when it changes states, or whenever no trade is active and the filter is in a bull or bear mode.
Entry Stops
An entry stop must be selected in the Engine, as it requires a stop level before the in-trade stop is calculated. Until the selected in-trade stop strat generates a stop that comes closer to price than the entry stop (or respects another one of the in-trade stops kick in strats), the entry stop level is used.
It is here that you must select “External Indicator” if your indicator supplies a +price/-price value to be used as the entry stop. A +price is expected for a long entry and a -price value will enter a short with a stop at price. Note that the price is the absolute price, not an offset to the current price level.
In-Trade Stops
The Engine comes with many built-in in-trade stop strats. Note that some of them share the “Length” and “Multiple” field, so when you swap between them, be sure that the length and multiple in use correspond to what you want for that stop strat. Suggested defaults appear with the name of each strat in the dropdown.
In addition to the strat you wish to use, you must also determine when it kicks in to replace the initial entry’s stop, which is determined using different strats. For strats where you can define a positive or negative multiple of X, percentage or fixed value for a kick-in strat, a positive value is above the trade’s entry fill and a negative one below. A value of zero represents breakeven.
Pyramiding
What you specify in this section are the rules that allow pyramiding to happen. By themselves, these rules will not generate pyramiding entries. For those to happen, entry signals must be issued by one of the active entry strats, and conform to the pyramiding rules which act as a filter for them. The “Filter must allow entry” selection must be chosen if you want the usual system’s filters to act as additional filtering criteria for your pyramided entries.
Hard Exits
You can choose from a variety of hard exit strats. Hard exits are exit strategies which signal trade exits on specific events, as opposed to price breaching a stop level in In-Trade Stops strategies. They are self-explanatory. The last one labelled When Take Profit Level (multiple of X) is reached is the only one that uses a level, but contrary to stops, it is above price and while it is relative because it is expressed as a multiple of X, it does not move during the trade. This is the level called Take Profit that is show when the “Show Take Profit Level” checkbox is checked in the Display section.
While stops focus on managing risk, hard exit strategies try to put the emphasis on capturing opportunity.
Slippage
You can define it as a percentage or a fixed value, with different settings for entries and exits. The entry and exit markers on the chart show the impact of slippage on the entry price (the fill).
Fees
Fees, whether expressed as a percentage of position size in and out of the trade or as a fixed value per in and out, are in the same units of currency as the capital defined in the Position Sizing section. Fees being deducted from your Capital, they do not have an impact on the chart marker positions.
In-Trade Events
These events will only trigger during trades. They can be helpful to act as reminders for traders using the Engine as assistance to discretionary trading.
Post-Exit Analysis
It is normally on. Some of its results will show in the Global Numbers section of the Data Window. Only a few of the statistics generated are shown; many more are available, but commented out in the Plot module.
Date Range Filtering
Note that you don’t have to change the dates to enable/diable filtering. When you are done with a specific date range, just uncheck “Date Range Filtering” to disable date filtering.
Alert Triggers
Each selection corresponds to one condition. Conditions can be combined into a single alert as you please. Just be sure you have selected the ones you want to trigger the alert before you create the alert. For example, if you trade in both directions and you want a single alert to trigger on both types of exits, you must select both “Long Exit” and “Short Exit” before creating your alert.
Once the alert is triggered, these settings no longer have relevance as they have been saved with the alert.
When viewing charts where an alert has just triggered, if your alert triggers on more than one condition, you will need the appropriate markers active on your chart to figure out which condition triggered the alert, since plotting of markers is independent of alert management.
Position sizing
You have 3 options to determine position size:
1. Proportional to Stop -> Variable, with a cap on size.
2. Percentage of equity -> Variable.
3. Percentage of Initial Capital -> Fixed.
External Indicator
This is where you connect your indicator’s plot that will generate the signals the Engine will act upon. Remember this only works in Indicator mode.
DATA WINDOW INFORMATION
The top part of the window contains global numbers while the individual trade information appears in the bottom part. The different types of units used to express values are:
curr: denotes the currency used in the Position Sizing section of Inputs for the Initial Capital value.
quote: denotes quote currency, i.e. the value the instrument is expressed in, or the right side of the market pair (USD in EURUSD ).
X: the stop’s amplitude, itself expressed in quote currency, which we use to express a trade’s P&L, so that a trade with P&L=2X has made twice the stop’s amplitude in profit. This is sometimes referred to as R, since it represents one unit of risk. It is also the unit of measure used in the APPT, which denotes expected reward per unit of risk.
X%: is also the stop’s amplitude, but expressed as a percentage of the Entry Fill.
The numbers appearing in the Data Window are all prefixed:
“ALL:” the number is the average for all first entries and pyramided entries.
”1ST:” the number is for first entries only.
”PYR:” the number is for pyramided entries only.
”PEA:” the number is for Post-Exit Analyses
Global Numbers
Numbers in this section represent the results of all trades up to the cursor on the chart.
Average Profitability Per Trade (X): This value is the most important gauge of your strat’s worthiness. It represents the returns that can be expected from your strat for each unit of risk incurred. E.g.: your APPT is 2.0, thus for every unit of currency you invest in a trade, you can on average expect to obtain 2 after the trade. APPT is also referred to as “statistical expectancy”. If it is negative, your strategy is losing, even if your win rate is very good (it means your winning trades aren’t winning enough, or your losing trades lose too much, or both). Its counterpart in currency is also shown, as is the APPT/bar, which can be a useful gauge in deciding between rivalling systems.
Profit Factor: Gross of winning trades/Gross of losing trades. Strategy is profitable when >1. Not as useful as the APPT because it doesn’t take into account the win rate and the average win/loss per trade. It is calculated from the total winning/losing results of this particular backtest and has less predictive value than the APPT. A good profit factor together with a poor APPT means you just found a chart where your system outperformed. Relying too much on the profit factor is a bit like a poker player who would think going all in with two’s against aces is optimal because he just won a hand that way.
Win Rate: Percentage of winning trades out of all trades. Taken alone, it doesn’t have much to do with strategy profitability. You can have a win rate of 99% but if that one trade in 100 ruins you because of poor risk management, 99% doesn’t look so good anymore. This number speaks more of the system’s profile than its worthiness. Still, it can be useful to gauge if the system fits your personality. It can also be useful to traders intending to sell their systems, as low win rate systems are more difficult to sell and require more handholding of worried customers.
Equity (curr): This the sum of initial capital and the P&L of your system’s trades, including fees and slippage.
Return on Capital is the equivalent of TV’s Net Profit figure, i.e. the variation on your initial capital.
Maximum drawdown is the maximal drawdown from the highest equity point until the drop . There is also a close to close (meaning it doesn’t take into account in-trade variations) maximum drawdown value commented out in the code.
The next values are self-explanatory, until:
PYR: Avg Profitability Per Entry (X): this is the APPT for all pyramided entries.
PEA: Avg Max Opp . Available (X): the average maximal opportunity found in the Post-Exit Analyses.
PEA: Avg Drawdown to Max Opp . (X): this represents the maximum drawdown (incurred from the close at the beginning of the PEA analysis) required to reach the maximal opportunity point.
Trade Information
Numbers in this section concern only the current trade under the cursor. Most of them are self-explanatory. Use the description’s prefix to determine what the values applies to.
PYR: Avg Profitability Per Entry (X): While this value includes the impact of all current pyramided entries (and only those) and updates when you move your cursor around, P&L only reflects fees at the trade’s last bar.
PEA: Max Opp . Available (X): It’s the most profitable close reached post-trade, measured from the trade’s Exit Fill, expressed in the X value of the trade the PEA follows.
PEA: Drawdown to Max Opp . (X): This is the maximum drawdown from the trade’s Exit Fill that needs to be sustained in order to reach the maximum opportunity point, also expressed in X. Note that PEA numbers do not include slippage and fees.
EXTERNAL SIGNAL PROTOCOL
Only one external indicator can be connected to a script; in order to leverage its use to the fullest, the engine provides options to use it as either an entry signal, an entry/exit signal or a filter. When used as an entry signal, you can also use the signal to provide the entry’s stop. Here’s how this works:
For filter state: supply +1 for bull (long entries allowed), -1 for bear (short entries allowed).
For entry signals: supply +2 for long, -2 for short.
For exit signals: supply +3 for exit from long, -3 for exit from short.
To send an entry stop level with an entry signal: Send positive stop level for long entry (e.g. 103.33 to enter a long with a stop at 103.33), negative stop level for short entry (e.g. -103.33 to enter a short with a stop at 103.33). If you use this feature, your indicator will have to check for exact stop levels of 1.0, 2.0 or 3.0 and their negative counterparts, and fudge them with a tick in order to avoid confusion with other signals in the protocol.
Remember that mere generation of the values by your indicator will have no effect until you explicitly allow their use in the appropriate sections of the Engine’s Settings/Inputs.
An example of a script issuing a signal for the Engine is published by PineCoders.
RECOMMENDATIONS TO ASPIRING SYSTEM DESIGNERS
Stick to higher timeframes. On progressively lower timeframes, margins decrease and fees and slippage take a proportionally larger portion of profits, to the point where they can very easily turn a profitable strategy into a losing one. Additionally, your margin for error shrinks as the equilibrium of your system’s profitability becomes more fragile with the tight numbers involved in the shorter time frames. Avoid <1H time frames.
Know and calculate fees and slippage. To avoid market shock, backtest using conservative fees and slippage parameters. Systems rarely show unexpectedly good returns when they are confronted to the markets, so put all chances on your side by being outrageously conservative—or a the very least, realistic. Test results that do not include fees and slippage are worthless. Slippage is there for a reason, and that’s because our interventions in the market change the market. It is easier to find alpha in illiquid markets such as cryptos because not many large players participate in them. If your backtesting results are based on moving large positions and you don’t also add the inevitable slippage that will occur when you enter/exit thin markets, your backtesting will produce unrealistic results. Even if you do include large slippage in your settings, the Engine can only do so much as it will not let slippage push fills past the high or low of the entry bar, but the gap may be much larger in illiquid markets.
Never test and optimize your system on the same dataset , as that is the perfect recipe for overfitting or data dredging, which is trying to find one precise set of rules/parameters that works only on one dataset. These setups are the most fragile and often get destroyed when they meet the real world.
Try to find datasets yielding more than 100 trades. Less than that and results are not as reliable.
Consider all backtesting results with suspicion. If you never entertained sceptic tendencies, now is the time to begin. If your backtest results look really good, assume they are flawed, either because of your methodology, the data you’re using or the software doing the testing. Always assume the worse and learn proper backtesting techniques such as monte carlo simulations and walk forward analysis to avoid the traps and biases that unchecked greed will set for you. If you are not familiar with concepts such as survivor bias, lookahead bias and confirmation bias, learn about them.
Stick to simple bars or candles when designing systems. Other types of bars often do not yield reliable results, whether by design (Heikin Ashi) or because of the way they are implemented on TV (Renko bars).
Know that you don’t know and use that knowledge to learn more about systems and how to properly test them, about your biases, and about yourself.
Manage risk first , then capture opportunity.
Respect the inherent uncertainty of the future. Cleanse yourself of the sad arrogance and unchecked greed common to newcomers to trading. Strive for rationality. Respect the fact that while backtest results may look promising, there is no guarantee they will repeat in the future (there is actually a high probability they won’t!), because the future is fundamentally unknowable. If you develop a system that looks promising, don’t oversell it to others whose greed may lead them to entertain unreasonable expectations.
Have a plan. Understand what king of trading system you are trying to build. Have a clear picture or where entries, exits and other important levels will be in the sort of trade you are trying to create with your system. This stated direction will help you discard more efficiently many of the inevitably useless ideas that will pop up during system design.
Be wary of complexity. Experienced systems engineers understand how rapidly complexity builds when you assemble components together—however simple each one may be. The more complex your system, the more difficult it will be to manage.
Play! . Allow yourself time to play around when you design your systems. While much comes about from working with a purpose, great ideas sometimes come out of just trying things with no set goal, when you are stuck and don’t know how to move ahead. Have fun!
@LucF
NOTES
While the engine’s code can supply multiple consecutive entries of longs or shorts in order to scale positions (pyramid), all exits currently assume the execution bot will exit the totality of the position. No partial exits are currently possible with the Engine.
Because the Engine is literally crippled by the limitations on the number of plots a script can output on TV; it can only show a fraction of all the information it calculates in the Data Window. You will find in the Plot Module vast amounts of commented out lines that you can activate if you also disable an equivalent number of other plots. This may be useful to explore certain characteristics of your system in more detail.
When backtesting using the TV backtesting feature, you will need to provide the strategy parameters you wish to use through either Settings/Properties or by changing the default values in the code’s header. These values are defined in variables and used not only in the strategy() statement, but also as defaults in the Engine’s relevant Inputs.
If you want to test using pyramiding, then both the strategy’s Setting/Properties and the Engine’s Settings/Inputs need to allow pyramiding.
If you find any bugs in the Engine, please let us know.
THANKS
To @glaz for allowing the use of his unpublished MA Squize in the filters.
To @everget for his Chandelier stop code, which is also used as a filter in the Engine.
To @RicardoSantos for his pseudo-random generator, and because it’s from him that I first read in the Pine chat about the idea of using an external indicator as input into another. In the PineCoders group, @theheirophant then mentioned the idea of using it as a buy/sell signal and @simpelyfe showed a piece of code implementing the idea. That’s the tortuous story behind the use of the external indicator in the Engine.
To @admin for the Volatility stop’s original code and for the donchian function lifted from Ichimoku .
To @BobHoward21 for the v3 version of Volatility Stop .
To @scarf and @midtownsk8rguy for the color tuning.
To many other scripters who provided encouragement and suggestions for improvement during the long process of writing and testing this piece of code.
To J. Welles Wilder Jr. for ATR, used extensively throughout the Engine.
To TradingView for graciously making an account available to PineCoders.
And finally, to all fellow PineCoders for the constant intellectual stimulation; it is a privilege to share ideas with you all. The Engine is for all TradingView PineCoders, of course—but especially for you.
Look first. Then leap.
Great Expectations [LucF]Great Expectations helps traders answer the question: What is possible? It is a powerful question, yet exploration of the unknown always entails risk. A more complete set of questions better suited to traders could be:
What opportunity exists from any given point on a chart?
What portion of this opportunity can be realistically captured?
What risk will be incurred in trying to do so, and how long will it take?
Great Expectations is the result of an exploration of these questions. It is a trade simulator that generates visual and quantitative information to help strategy modelers visually identify and analyse areas of optimal expectation on charts, whether they are designing automated or discretionary strategies.
WARNING: Great Expectations is NOT an indicator that helps determine the current state of a market. It works by looking at points in the past from which the future is already known. It uses one definition of repainting extensively (i.e. it goes back in the past to print information that could not have been know at the time). Repainting understood that way is in fact almost all the indicator does! —albeit for what I hope is a noble cause. The indicator is of no use whatsoever in analyzing markets in real-time. If you do not understand what it does, please stay away!
This is an indicator—not a strategy that uses TradingView’s backtesting engine. It works by simulating trades, not unlike a backtest, but with the crucial difference that it assumes a trade (either long or short) is entered on all bars in the historic sample. It walks forward from each bar and determines possible outcomes, gathering individual trade statistics that in turn generate precious global statistics from all outcomes tested on the chart.
Great Expectations provides numbers summarizing trade results on all simulations run from the chart. Those numbers cannot be compared to backtest-produced numbers since all non-filtered bars are examined, even if an entry was taken on the bar immediately preceding the current one, which never happens in a backtest. This peculiarity does NOT invalidate Great Expectations calculations; it just entails that results be considered under a different light. Provided they are evaluated within the indicator’s context, they can be useful—sometimes even more than backtesting results, e.g. in evaluating the impact of parameter-fitting or variations in entry, exit or filtering strats.
Traders and strategy modelers are creatures of hope often suffering from blurred vision; my hope is that Great Expectations will help them appraise the validity of their setup and strat intuitions in a realistic fashion, preventing confirmation bias from obstructing perspective—and great expectations from turning into financial great deceptions.
USE CASES
You’ve identified what looks like a promising setup on other indicators. You load Great Expectations on the chart and evaluate if its high-expectation areas match locations where your setup’s conditions occur. Unless today is your lucky day, chances are the indicator will help you realize your setup is not as promising as you had hoped.
You want to get a rough estimate of the optimal trade duration for a chart and you don’t mind using the entry and exit strategies provided with the indicator. You use the trade length readouts of the indicator.
You’re experimenting with a new stop strategy and want to know how long it will keep you in trades, on average. You integrate your stop strategy in the indicator’s code and look at the average trade length it produces and the TST ratio to evaluate its performance.
You have put together your own entry and exit criteria and are looking for a filter that will help you improve backtesting results. You visually ascertain the suitability of your filter by looking at its results on the charts with great Expectations, to see if your filter is choosing its areas correctly.
You have a strategy that shows backtested trades on your chart. Great Expectations can help you evaluate how well your strategy is benefitting from high-opportunity areas while avoiding poor expectation spots.
You want more complete statistics on your set of strategies than what backtesting will provide. You use Great Expectations, knowing that it tests all bars in the sample that correspond to your criteria, as opposed to backtesting results which are limited to a subset of all possible entries.
You want to fool your friends into thinking you’ve designed the holy grail of indicators, something that identifies optimal opportunities on any chart; you show them the P&L cloud.
FEATURES
For one trade
At any given point on the chart, assuming a trade is entered there, Great Expectations shows you information specific to that trade simulation both on the chart and in the Data Window.
The chart can display:
the P & L Cloud which shows whether the trade ended profitably or not, and by how much,
the Opportunity & Risk Cloud which the maximum opportunity and risk the simulation encountered. When superimposed over the P & L cloud, you will see what I call the managed opportunity and risk, i.e the portion of maximum opportunity that was captured and the portion of the maximum risk that was incurred,
the target and if it was reached,
a background that uses a gradient to show different levels of trade length, P&L or how frequently the target was reached during simulation.
The Data Window displays more than 40 values on individual trades and global results. For any given trade you will know:
Entry/Exit levels, including slippage impact,
It’s outcome and duration,
P/L achieved,
The fraction of the maximum opportunity/risk managed by the trade.
For all trades
After going through all the possible trades on the chart, the indicator will provide you with a rare view of all outcomes expressed with the P&L cloud, which allows us to instantly see the most/least profitable areas of a chart using trade data as support, while also showing its relationship with the opportunity/risk encountered during the simulation. The difference between the two clouds is the managed opportunity and risk.
The Data Window will present you with numbers which we will go through later. Some of them are: average stop size, P/L, win rate, % opportunity managed, trade lengths for different types of trade outcomes and the TST (Target:Stop Travel) ratio.
Let’s see Great Expectations in action… and remember to open your Data Window!
INPUTS
Trade direction : You must first choose if you wish to look at long or short trades. Because of the way the indicator works and the amount of visual information on the chart, it is only practical to look at one type of trades at a time. The default is Longs.
Maximum trade Length (MaxL) : This is the maximum walk forward distance the simulator will go in analyzing outcomes from any given point in the past. It also determines the size of the dead zone among the chart’s last bars. A red background line identifies the beginning of the dead zone for which not enough bars have elapsed to analyze outcomes for the maximum trade length defined. If an ATR-based entry stop is used, that length is added to the wait time before beginning simulations, so that the first entry starts with a clean ATR value. On a sample of around 16000 bars, my tests show that the indicator runs into server errors at lengths of around 290, i.e. having completed ~4,6M simulation loop iterations. That is way too high a length anyways; 100 will usually be amply enough to ring out all the possibilities out of a simulation, and on shorter time frames, 30 can be enough. While making it unduly small will prevent simulations of expressing the market’s potential, the less you use, the faster the indicator will run. The default is 40.
Unrealized P&L base at End of Trade (EOT) : When a simulation ends and the trade is still open, we calculate unrealized P&L from an exit order executed from either the last in-trade stop on the previous bar, or the close of the last bar. You can readily see the impact of this selection on the chart, with the P&L cloud. The default is on the close.
Display : The check box besides the title does nothing.
Show target : Shows a green line displaying the trade’s target expressed as a multiple of X, i.e. the amplitude of the entry stop. I call this value “X” and use it as a unit to express profit and loss on a trade (some call it “R”). The line is highlighted for trades where the close reached the target during the trade, whether the trade ended in profit or loss. This is also where you specify the multiple of X you wish to use in calculating targets. The multiple is used even if targets are not displayed.
Show P&L Cloud : The cloud allows traders to see right away the profitable areas of the chart. The only line printed with the cloud is the “end of trade line” (EOT). The EOT line is the only way one can see the level where a trade ended on the chart (in the Data Window you can see it as the “Exit Fill” value). The EOT level for the trade determines if the trade ended in a profit or a loss. Its value represents one of the following:
- fill from order executed at close of bar where stop is breached during trade (which produces “Realized P/L”),
- simulation of a fill pseudo-fill at the user-defined EOT level (last close or stop level) if the trade runs its course through MaxL bars without getting stopped (producing Unrealized P/L).
The EOT line and the cloud fill print in green when the trade’s outcome is profitable and in red when it is not. If the trade was closed after breaching the stop, the line appears brighter.
Show Opportunity&Risk Cloud : Displays the maximum opportunity/risk that was present during the trade, i.e. the maximum and minimum prices reached.
Background Color Scheme : Allows you to choose between 3 different color schemes for the background gradients, to accommodate different types of chart background/candles. Select “None” if you don’t want a background.
Background source : Determines what value will be used to generate the different intensities of the gradient. You can choose trade length (brighter is shorter), Trade P&L (brighter is higher) or the number of times the target was reached during simulation (brighter is higher). The default is Trade Length.
Entry strat : The check box besides the title does nothing. The default strat is All bars, meaning a trade will be simulated from all bars not excluded by the filters where a MaxL bars future exists. For fun, I’ve included a pseudo-random entry strat (an indirect way of changing the seed is to vary the starting date of the simulation).
Show Filter State : Displays areas where the combination of filters you have selected are allowing entries. Filtering occurs as per your selection(s), whether the state is displayed or not. The effect of multiple selections is additive. The filters are:
1. Bar direction: Longs will only be entered if close>open and vice versa.
2. Rising Volume: Applies to both long and shorts.
3. Rising/falling MA of the length you choose over the number of bars you choose.
4. Custom indicator: You can feed your own filtering signal through this from another indicator. It must produce a signal of 1 to allow long entries and 0 to allow shorts.
Show Entry Stops :
1. Multiple of user-defined length ATR.
2. Fixed percentage.
3. Fixed value.
All entry stops are calculated using the entry fill price as a reference. The fill price is calculated from the current bar’s open, to which slippage is added if configured. This simulates the case where the strategy issued the entry signal on the previous bar for it to be executed at the next bar’s open.
The entry stop remains active until the in-trade stop becomes the more aggressive of the two stops. From then on, the entry stop will be ignored, unless a bar close breaches the in-trade stop, in which case the stop will be reset with a new entry stop and the process repeats.
Show In-trade stops : Displays in bright red the selected in-trade stop (be sure to read the note in this section about them).
1. ATR multiple: added/subtracted from the average of the two previous bars minimum/maximum of open/close.
2. A trailing stop with a deviation expressed as a multiple of entry stop (X).
3. A fixed percentage trailing stop.
Trailing stops deviations are measured from the highest/lowest high/low reached during the trade.
Note: There is a twist with the in-trade stops. It’s that for any given bar, its in-trade stop can hold multiple values, as each successive pass of the advancing simulation loops goes over it from a different entry points. What is printed is the stop from the loop that ended on that bar, which may have nothing to do with other instances of the trade’s in-trade stop for the same bar when visited from other starting points in previous simulations. There is just no practical way to print all stop values that were used for any given bar. While the printed entry stops are the actual ones used on each bar, the in-trade stops shown are merely the last instance used among many.
Include Slippage : if checked, slippage will be added/subtracted from order price to yield the fill price. Slippage is in percentage. If you choose to include slippage in the simulations, remember to adjust it by considering the liquidity of the markets and the time frame you’ll be analyzing.
Include Fees : if checked, fees will be subtracted/added to both realized an unrealized trade profits/losses. Fees are in percentage. The default fees work well for crypto markets but will need adjusting for others—especially in Forex. Remember to modify them accordingly as they can have a major impact on results. Both fees and slippage are included to remind us of their importance, even if the global numbers produced by the indicator are not representative of a real trading scenario composed of sequential trades.
Date Range filtering : the usual. Just note that the checkbox has to be selected for date filtering to activate.
DATA WINDOW
Most of the information produced by this indicator is made available in the Data Window, which you bring up by using the icon below the Watchlist and Alerts buttons at the right of the TV UI. Here’s what’s there.
Some of the information presented in the Data Window is standard trade data; other values are not so standard; e. g. the notions of managed opportunity and risk and Target:Stop Travel ratio. The interplay between all the values provided by Great Expectations is inherently complex, even for a static set of entry/filter/exit strats. During the constant updating which the habitual process of progressive refinement in building strategies that is the lot of strategy modelers entails, another level of complexity is no doubt added to the analysis of this indicator’s values. While I don’t want to sound like Wolfram presenting A New Kind of Science , I do believe that if you are a serious strategy modeler and spend the time required to get used to using all the information this indicator makes available, you may find it useful.
Trade Information
Entry Order : This is the open of the bar where simulation starts. We suppose that an entry signal was generated at the previous bar.
Entry Fill (including slip.) : The actual entry price, including slippage. This is the base price from which other values will be calculated.
Exit Order : When a stop is breached, an exit order is executed from the close of the bar that breached the stop. While there is no “In-trade stop” value included in the Data Window (other than the End of trade Stop previously discussed), this “Exit Order” value is how we can know the level where the trade was stopped during the simulation. The “Trade Length” value will then show the bar where the stop was breached.
Exit Fill (including slip.) : When the exit order is simulated, slippage is added to the order level to create the fill.
Chart: Target : This is the target calculated at the beginning of the simulation. This value also appear on the chart in teal. It is controlled by the multiple of X defined under the “Show Target” checkbox in the Inputs.
Chart: Entry Stop : This value also appears on the chart (the red dots under points where a trade was simulated). Its value is controlled by the Entry Strat chosen in the Inputs.
X (% Fill, including Fees) and X (currency) : This is the stop’s amplitude (Entry Fill – Entry Stop) + Fees. It represents the risk incurred upon entry and will be used to express P&L. We will show R expressed in both a percentage of the Entry Fill level (this value), and currency (the next value). This value represents the risk in the risk:reward ratio and is considered to be a unit of 1 so that RR can be expressed as a single value (i.e. “2” actually meaning “1:2”).
Trade Length : If trade was stopped, it’s the number of bars elapsed until then. The trade is then considered “Closed”. If the trade ends without being stopped (there is no profit-taking strat implemented, so the stop is the only exit strat), then the trade is “Open”, the length is MaxL and it will show in orange. Otherwise the value will print in green/red to reflect if the trade is winning/losing.
P&L (X) : The P&L of the trade, expressed as a multiple of X, which takes into account fees paid at entry and exit. Given our default target setting at 2 units of “X”, a trade that closes at its target will have produced a P&L of +2.0, i.e. twice the value of X (not counting fees paid at exit ). A trade that gets stopped late 50% further that the entry stop’s level will produce a P&L of -1.5X.
P&L (currency, including Fees) : same value as above, but expressed in currency.
Target first reached at bar : If price closed above the target during the trade (even if it occurs after the trade was stopped), this will show when. This value will be used in calculating our TST ratio.
Times Stop/Target reached in sim. : Includes all occurrences during the complete simulation loop.
Opportunity (X) : The highest/lowest price reached during a simulation, i.e. the maximum opportunity encountered, whether the trade was previously stopped or not, expressed as a multiple of X.
Risk (X) : The lowest/highest price reached during a simulation, i.e. the maximum risk encountered, whether the trade was previously stopped or not, expressed as a multiple of X.
Risk:Opportunity : The greater this ratio, the greater Opportunity is, compared to Risk.
Managed Opportunity (%) : The portion of Opportunity that was captured by the highest/low stop position, even if it occurred after a previous stop closed the trade.
Managed Risk (%) : The portion of risk that was protected by the lowest/highest stop position, even if it occurred after a previous stop closed the trade. When this value is greater than 100%, it means the trade’s stop is protecting more than the maximum risk, which is frequent. You will, however, never see close to those values for the Managed Opportunity value, since the stop would have to be higher than the Maximum opportunity. It is much easier to alleviate the risk than it is to lock in profits.
Managed Risk:Opportunity : The ratio of the two preceding values.
Managed Opp. vs. Risk : The Managed Opportunity minus the Managed Risk. When it is negative, which is most often is, it means your strat is protecting a greater portion of the risk than it captures opportunity.
Global Numbers
Win Rate(%) : Percentage of winning trades over all entries. Open trades are considered winning if their last stop/close (as per user selection) locks in profits.
Avg X%, Avg X (currency) : Averages of previously described values:.
Avg Profitability/Trade (APPT) : This measures expectation using: Average Profitability Per Trade = (Probability of Win × Average Win) − (Probability of Loss × Average Loss) . It quantifies the average expectation/trade, which RR alone can’t do, as the probabilities of each outcome (win/lose) must also be used to calculate expectancy. The APPT combine the RR with the win rate to yield the true expectancy of a strategy. In my usual way of expressing risk with X, APPT is the equivalent of the average P&L per trade expressed in X. An APPT of -1.5 means that we lose on average 1.5X/trade.
Equity (X), Equity (currency) : The cumulative result of all trade outcomes, expressed as a multiple of X. Multiplied by the Average X in currency, this yields the Equity in currency.
Risk:Opportunity, Managed Risk:Opportunity, Managed Opp. vs. Risk : The global values of the ones previously described.
Avg Trade Length (TL) : One of the most important values derived by going through all the simulations. Again, it is composed of either the length of stopped trades, or MaxL when the trade isn’t stopped (open). This value can help systems modelers shape the characteristics of the components they use to build their strategies.
Avg Closed Win TL and Avg Closed Lose TL : The average lengths of winning/losing trades that were stopped.
Target reached? Avg bars to Stop and Target reached? Avg bars to Target : For the trades where the target was reached at some point in the simulation, the number of bars to the first point where the stop was breached and where the target was reached, respectively. These two values are used to calculate the next value.
TST (Target:Stop Travel Ratio) : This tracks the ratio between the two preceding values (Bars to first stop/Bars to first target), but only for trades where the target was reached somewhere in the loop. A ratio of 2 means targets are reached twice as fast as stops.
The next values of this section are counts or percentages and are self-explanatory.
Chart Plots
Contains chart plots of values already describes.
NOTES
Optimization/Overfitting: There is a fine line between optimizing and overfitting. Tools like this indicator can lead unsuspecting modelers down a path of overfitting that often turns strategies into over-specialized beasts that do not perform elegantly when confronted to the real-world. Proven testing strategies like walk forward analysis will go a long way in helping modelers alleviate this risk.
Input tuning: Because the results generated by the indicator will vary with the parameters used in the active entry, filtering and exit strats, it’s important to realize that although it may be fun at first, just slapping the default settings on a chart and time frame will not yield optimal nor reliable results. While using ATR as often as possible (as I do in this indicator) is a good way to make strat parametrization adaptable, it is not a foolproof solution.
There is no data for the last MaxL bars of the chart, since not enough trade future has elapsed to run a simulation from MaxL bars back.
Modifying the code: I have tried to structure the code modularly, even if that entails a larger code base, so that you can adapt it to your needs. I’ve included a few token components in each of the placeholders designed for entry strategies, filters, entry stops and in-trade stops. This will hopefully make it easier to add your own. In the same spirit, I have also commented liberally.
You will find in the code many instances of standard trade management tasks that can be lifted to code TV strategies where, as I do in mine, you manage everything yourself and don’t rely on built-in Pine strategy functions to act on your trades.
Enjoy!
THANKS
To @scarf who showed me how plotchar() could be used to plot values without ruining scale.
To @glaz for the suggestion to include a Chandelier stop strat; I will.
To @simpelyfe for the idea of using an indicator input for the filters (if some day TV lets us use more than one, it will be useful in other modules of the indicator).
To @RicardoSantos for the random generator used in the random entry strat.
To all scripters publishing open source on TradingView; their code is the best way to learn.
To my trading buddies Irving and Bruno; who showed me way back how pro traders get it done.
Crypto grabberSo, its my first position in crypto (and not only crypto) bots series. What we have there.. program writting on Pine script language what can analyse market data of any trading instrument and signalise to enter the deal. Its next versions will update. Trade system based on my x-volume indicator.In central part of system is analyzing volume accumulation and distribution process which decide good and bad time for investing.
So some important points:
1) In time when you change timeframe or trading symbol bot analise all bars history. The number of trading (signal) candles in the analysis history is marked in black.
2) The percent of profitable signals is marked in blue.
3) Total profit points are marked in green.
4) Total bars in history are marked in red.
For better indicator vision you can turn off non interesting plots in settings menu.
There is two kinds of alerts: Buy alert and Sell alert. Set it once per bar close or every minute ( because the best way you must open the deal at 20 sec before bar close ).
This trading system is great for creating a profitable trading portfolio. Try it yourself to find exchanges and cryptocurrencies with profitable historical views. For example, the KRAKEN exchange trades well: XBTCAD, XBTUSD in 30-45 min timeframe.
I will do better settings in new versions of this bot. Waiting your likes)
Bert LONG BTC Study (Alerts) - Profit 2018: 1319 % (no leverage)Bert LONG Term BTC study (BITMEX) - script for setting alerts and trading bots
This is a revolutionary strategy for bitcoin (XBT) trading. The strategy is perfectly configured for trading on the Bitmex exchange. No further configuration and setup is required.
The strategy itself recognizes a volatile period or whether the market is in downtrend, uptrend or sideways. Accordingly, it applies the appropriate orders to reach maximum profit.
The strategy can be handled manually, you can receive alerts (popup, email, sms) or can be fully automated by bot (works with: Autoview, Gunbot, Profitview, Jubot and others) without any manual intervention.
What is the minimum and maximum capital I can trade with?
You can trade with 0.0001BTC – 1000BTC. That is one of many advantages of using this strategy on XBT. There is enough liquidity to execute the order for the market price with a big investment amount.
What is the recommended setting?
Timeframe: 45m
Chart: Bitcoin/USD Dollar Perpetual Inverse Swap Contract (XBT)
Leverage: 2x
Orders: Long and Shorts
Why was this strategy created?
You have basically two option how to make money in crypto market. HODL (buy the coin and believe it will rise to the moon) and TRADING (only 3-5% traders are profitable, most of them are full time traders with 5+ years of experience in trading).
If you HODL btc in this year, you are -70 % this year
If you are TRADING, the results depend on how good you are (think about this, if you decide to be a heart surgeon, rocket star or NBA player, do you think you can be? Yes, you can but the chances are very small. The same probability you have that you will be in the 3-5% profitable traders 😊). It takes time, you need experience and still 96% all of you will never be a profitable traders!
If you use Bert BTC long term strategy, you are + 1319 % this year
How well the Bert BTC strategy performs?
Profit in 2018 was 1319 % / 13x (without leverage)
Profit in 2018 was 11 477 % / 115x (with leverage 2)
If you invested (with leverage 2) 1 000 USD you have now 114 766 USD
If you invested (with leverage 2) 10 000 USD you have now 1 147 660 USD
Detailed trades report for 2018 (you can calculate your own profit with specific investments and leverage) – download excel here
Notes:
You will hardly find better strategy on the market which achieves similar results with minimal risk and can operate in any market condition (downtrend, uptrend, sideways).
We guarantee the strategy does not repaint, and we use real candles (not heikin ashi or renko which does not reflect real prices).
We wish you to become financially independent and all your secret wishes to be fulfilled.
And in case if you still want to HODL or you want to be TRADING all the days watching to your monitors, consider to try our strategy at least with a minimum capital invested, you will see that you will not regret in long run. Be patient and the money will come to you!
For access to this strategy visit website: www.cryptobert.io
Mawhoob (TD - Trend Direction) - v1.1Mawhoob (Trend Direction - TD) Indicator v1.1
Professional Trend Analysis & Market Context Dashboard
----------------------------------------------------
🎯 Overview
----------------------------------------------------
Mawhoob (Trend Direction - TD) is a comprehensive, professional-grade technical analysis tool designed to provide traders with multi-dimensional market insights. This advanced indicator combines a proprietary adaptive trend line with real-time market context data, offering a complete market analysis solution in one elegant package.
✨ Key Features ✨
----------------------------------------------------
📈 Trend Direction Line (TD Line)
----------------------------------------------------
Intelligent Moving Average System: Utilizes a sophisticated blend of EMA, RMA, and WMA with smart adaptive error correction.
1- Dynamic Color Coding:
🟢 Green: Bullish trend (price momentum upward).
🔴 Red: Bearish trend (price momentum downward).
2- Customizable Parameters:
Main Period (1-200): Control long-term vs. short-term sensitivity.
Fast Period (0-50): Fine-tune responsiveness to price changes.
Weighting Factor (0-3): Adjust current price influence on the trend line.
3- Visual Bands: Optional upper and lower bands that create a dynamic channel around the trend line.
----------------------------------------------------
📊 Real-Time Market Dashboard
----------------------------------------------------
A comprehensive information panel displaying multiple technical indicators and market dominance metrics.
Technical Indicators Section:
1- RSI (Relative Strength Index)
Current value with color-coded momentum indication.
Direction status: UP / DOWN / NEUTRAL.
Customizable overbought/oversold levels.
Includes RSI SMA for trend confirmation.
2- MACD (Moving Average Convergence Divergence)
Real-time MACD line value.
Trend direction based on MACD vs. Signal line relationship.
Fully customizable fast, slow, and signal periods.
3- ADX (Average Directional Index)
Trend strength measurement.
Color-coded display: Strong vs. Weak trend.
Adjustable strength threshold.
Market Dominance Section:
1- DXY (US Dollar Index)
Real-time dollar strength tracking.
Direction indicator for forex correlation analysis.
2- BTC.D (Bitcoin Dominance)
Bitcoin market dominance percentage.
Useful for crypto market sentiment analysis.
3- USDT.D (Tether Dominance)
Stablecoin dominance tracking.
Risk-on/risk-off market indicator.
All dominance metrics feature:
Customizable timeframe selection.
UP/DOWN/NEUTRAL directional indicators.
Color-coded values for quick visual assessment.
----------------------------------------------------
🔔 Alert & Signal System
----------------------------------------------------
Price Crossover Alerts: Get notified when price crosses above or below the TD line.
Smart Alert Logic: Filters out neutral/flat market conditions to reduce noise.
Visual Signals: Optional triangle markers on chart (▲ bullish, ▼ bearish).
Once-Per-Bar Frequency: Prevents alert spam while ensuring you don't miss opportunities.
----------------------------------------------------
🎨 Visual Customization
----------------------------------------------------
Candle Color Mode: Option to color candles based on trend direction.
Dashboard Positioning: Choose LEFT, RIGHT, or CENTER placement.
Text Size Options: TINY, SMALL, NORMAL, or LARGE for optimal readability.
Customizable colors for Bullish/Bearish trend lines.
Customizable colors for dashboard backgrounds and borders.
Customizable colors for UP/DOWN/NEUTRAL status indicators.
----------------------------------------------------
📚 Use Cases
----------------------------------------------------
For Day Traders
Quick trend identification with color-coded TD line.
Real-time momentum gauges (RSI, MACD).
Instant crossover alerts for entry/exit timing.
For Swing Traders
Medium-term trend direction with adjustable periods.
ADX strength indicator for high-probability setups.
Market dominance context for broader market analysis.
For Crypto Traders
BTC.D and USDT.D tracking for altcoin season detection.
Integrated multi-indicator analysis.
Customizable timeframes for dominance metrics.
For Multi-Market Analysis
DXY correlation for forex and commodities.
Comprehensive dashboard for quick market scans.
Cross-market sentiment analysis.
----------------------------------------------------
⚙️ Settings & Customization
----------------------------------------------------
Trend Direction Settings
Main TD Period: Adjust overall trend sensitivity.
Fast TD Period: Control responsiveness (0 = no smoothing).
Weighting Factor: Balance between historical and current prices.
Line width and colors for visual preference.
Optional trend bands with adjustable transparency.
Dashboard Settings
Toggle individual indicators on/off.
Customize all indicator periods and thresholds.
Choose timeframe for dominance indices.
Adjust colors, position, size, and borders.
Complete visual control for your trading style.
Alert & Signal Settings
Enable/disable crossover alerts.
Optional visual signals on chart.
Smart built-in filtering to reduce false signals.
----------------------------------------------------
🎓 Best Practices
----------------------------------------------------
Trend Following: Use the TD line as your primary trend filter - trade with the color.
Confirmation: Combine TD direction with RSI and MACD for higher probability setups.
Strength Filter: Use ADX to avoid weak/choppy trends.
Market Context: Check dominance indicators for broader market sentiment.
Alerts: Set alerts to catch reversals without constant chart watching.
----------------------------------------------------
🚀 What Makes This Indicator Special ?
----------------------------------------------------
✅ All-in-One Solution: Multiple professional indicators in one clean package.
✅ Adaptive System: Responds to market conditions, not just static calculations.
✅ Professional Dashboard: Institutional-grade information display.
✅ Real-Time Data: Live updates from multiple markets and assets.
✅ Highly Customizable: Tailor every aspect to your trading style.
✅ Clean Code: Optimized Pine Script v6 for maximum performance.
✅ No Repainting: Uses (barstate.isconfirmed) to ensure calculations only occur on closed bars.
✅ Resource Efficient: Smooth performance even with all features enabled.
----------------------------------------------------
🎯 Perfect For
----------------------------------------------------
Trend identification and following.
Multi-timeframe analysis.
Market sentiment tracking.
Entry and exit timing.
Portfolio management decisions.
Risk assessment through trend strength.
Correlation analysis across markets.
----------------------------------------------------
📝 Notes
----------------------------------------------------
All calculations are performed on confirmed bars to prevent repainting.
Dashboard updates in real-time as market conditions change.
Dominance indices (DXY, BTC.D, USDT.D) require market data access.
Best results achieved when combined with proper risk management.
Suitable for all markets: stocks, forex, crypto, commodities, indices.
----------------------------------------------------
💡 Pro Tips
----------------------------------------------------
Start with default settings and adjust based on your timeframe.
Lower periods (5-10) for scalping, higher (20-50) for swing trading.
Use the dashboard as a quick health check for your current positions.
Combine TD line with support/resistance for confluence.
Watch dominance indicators for early market regime changes.
----------------------------------------------------
⚠️ Important Notes
----------------------------------------------------
This indicator is for educational and informational purposes only.
Always confirm signals with your own analysis before trading.
Use proper risk management and position sizing.
The indicator works on all timeframes and instruments.
Past performance does not guarantee future results.
----------------------------------------------------
🔄 Updates & Support
----------------------------------------------------
Current Version: v1.1
This indicator is actively maintained and updated. Future versions may include additional features and improvements based on user feedback.
----------------------------------------------------
🙏 Acknowledgments
----------------------------------------------------
Created & designed by: @mawhoobx
📝 Remember: The best indicator is the one combined with proper risk management, discipline, and a solid trading plan. This tool is designed to assist your analysis, not replace your judgment.
Trade Smart. Trade Safe. Trade Profitable.
StockRadar - Gap Trading SystemStockRadar – Gap Trading System
StockRadar – Gap Trading System is a visual gap-detection and gap-trading helper for TradingView. It identifies significant price gaps, tracks how they evolve over time (unfilled, partially filled, fully closed, or time-limited), and simulates a structured gap-fill trade plan with configurable entry, stop-loss and take-profit logic. The goal is to help you spot high-quality gap opportunities faster and review historical performance directly on the chart.
What it does
Detects relevant gaps based on a minimum deviation threshold and plots them as clear, color-coded gap boxes.
Monitors each gap’s lifecycle and marks whether it stays open, gets partially filled, fully closed, or is closed by a time limit (optional).
Simulates a trade setup per gap using:
a configurable Trade Entry Trigger
a configurable Risk/Reward ratio
a configurable Take-Profit at Gap Close (%)
Visualizes the setup and outcome with entry/exit markers, SL/TP levels, and profit/loss labels.
Key features
Gap Visualization
Color-coded boxes for open / partial / fully closed / time-limited gaps
Optional remaining gap size (%) display
Adjustable border and fill transparency
Pre-entry vs active-trade shading inside the gap box for better readability
Trade Simulation & Chart Markings
Trade Entry Trigger:
Candle Close (more conservative)
Wick Touch (more aggressive)
Stop-Loss & Take-Profit lines drawn for all relevant gaps (not only the newest ones)
Optional “SL” / “TP” labels on the lines (menu toggle)
Entry vertical line inside the gap box to show where the trade became active
Trade result labels including profit/loss in % for completed trades
High-Probability Alerts (⚡)
Discrete ⚡ icon displayed inside the top-left corner of the gap box for high-probability setups (toggleable)
Uses historical performance context (win rate / break-even logic) to support more selective alerts
Dashboard (On-Chart Panel)
Clear PROFITABLE / NOT PROFITABLE / INSUFFICIENT DATA status based on win rate vs break-even and sample size
Shows key stats and (optional) trend speed analysis
“Data since” field to display the earliest evaluated gap date for transparency
Position Sizing Calculator (Optional)
Toggleable Position Sizing section
Input your available capital and risk % per trade
Calculates suggested share quantity (rounded down) for the latest high-probability setup
Displays entry price, position value, currency, and highlights when capital is insufficient
Who it’s for
This indicator is designed for traders who work with gap-fill behavior and want:
fast and consistent gap identification,
structured trade levels (entry/SL/TP),
clean historical review of outcomes,
and an at-a-glance dashboard summary without leaving the chart.
Notes / Disclaimer
This script is a charting and analysis tool, not financial advice. Always validate signals with your own risk management and market context. Past performance statistics are informational and do not guarantee future results.
Guru Dronacharya Pro Institutional Option Intelligence# Guru Dronacharya Pro – Institutional Option Intelligence
## 🎯 Professional Options Trading Indicator with Dynamic Intensity System
**Guru Dronacharya Pro** is an advanced institutional-grade indicator designed specifically for **NSE Options traders** (NIFTY, BANKNIFTY, FINNIFTY, MIDCPNIFTY). It combines intelligent option chain analysis, volatility detection, and a revolutionary **intensity-based visualization system** to help you identify high-probability option trades.
***
## ✨ KEY FEATURES
### 🔥 **Dynamic Intensity System** (Unique Feature)
- **Adaptive Brightness**: Candles automatically brighten when movement, volume, and volatility surge
- **Multi-Factor Analysis**: Combines Volume Surge + IV Expansion + Price Acceleration
- **Real-Time Intensity Score**: 0-100% intensity meter for both CE and PE
- **Visual Intelligence**: Instantly spot when options are heating up 🔥
### 🎯 **Intelligent Strike Selection**
- **Auto-Select Best Pair**: Scans ±5 strikes from ATM to find optimal CE/PE pairs
- **Compression Analysis**: Identifies strikes with minimal price difference (premium parity)
- **Liquidity Filter**: Ensures selected options have sufficient volume
- **Manual Override**: Take control with manual strike selection when needed
### 📈 **Advanced Signal Generation**
- **Buy Call Signals**: Triggered on CE breakout + volatility expansion + momentum
- **Buy Put Signals**: Triggered on PE breakout + volatility expansion + momentum
- **Multi-Filter Confirmation**: BBW expansion, EMA trend, delta momentum, dominance
- **No Repainting**: All signals confirmed on bar close
### 📊 **Professional Analytics Panel**
- **🔥 Intensity Metrics**: Real-time CE/PE activity levels
- **PCR (Put-Call Ratio)**: Volume-based market sentiment
- **Volume Delta**: CE vs PE volume comparison with trend
- **IV Percentile**: 1-year implied volatility ranking
- **BBW (Bollinger Band Width)**: Volatility expansion detector
- **Momentum Trackers**: Real-time CE/PE momentum analysis
- **Premium Ratio**: CE/PE price relationship analysis
### 🎨 **Customizable Visualization**
- **Dual Candle Display**: Side-by-side CE and PE premium tracking
- **Normalized View**: % change from open (easier comparison)
- **Absolute View**: Raw premium values
- **EMA Overlays**: Trend confirmation lines
- **Theme-Aware**: Auto-detects dark/light mode for optimal visibility
- **Adjustable Tables**: Position and size controls for metrics panel
***
## 💡 WHAT MAKES IT UNIQUE?
### **1. Intensity-Based Coloring** 🔥
Traditional indicators show static colors. **Guru Dronacharya Pro** uses dynamic brightness:
- **Dim Candles** = Low activity (avoid these setups)
- **Medium Brightness** = Building momentum (watch closely)
- **Bright Candles** = High activity (trade opportunities!) 🔥🔥
This helps you:
✅ Focus on liquid, moving options
✅ Avoid low-volume, dead zones
✅ Identify institutional money flow
✅ Time entries during volatility expansion
### **2. Smart Strike Selection**
No more guessing which strike to trade! The indicator:
- Scans multiple strikes simultaneously
- Finds pairs with balanced premiums
- Filters out illiquid options
- Highlights the best trading pair
### **3. Multi-Timeframe Compatible**
Works on any timeframe:
- **1-5 min**: Scalping and day trading
- **15-30 min**: Intraday swing trades
- **1H+**: Positional option strategies
***
## 📖 HOW TO USE
### **Step 1: Configure Your Symbol**
1. Set **Underlying** (NSE:NIFTY, NSE:BANKNIFTY, etc.)
2. Enter **Expiry Date** (Year, Month, Day)
3. Input **ATM Strike** (rounded to nearest strike interval)
4. Choose **Symbol Format** (NSE Standard, NSE Weekly, or Custom)
### **Step 2: Understand the Display**
**Chart Elements:**
- **Green/Lime Candles** = Call Option (CE)
- **Pink/Magenta Candles** = Put Option (PE)
- **Brightness** = Activity intensity (brighter = more action!)
- **Triangle Up** = Buy Call Signal ▲
- **Triangle Down** = Buy Put Signal ▼
**Metrics Panel (Bottom Right):**
- **🔥 CE/PE INT**: Intensity score (higher = better)
- **PCR**: Above 1.0 = Bullish, Below 1.0 = Bearish
- **VOL Δ**: Positive = CE volume dominance
- **IV%ile**: Above 70 = High IV (premium sellers advantage)
- **BBW**: Expansion indicator (⚡ = expanding)
- **Momentum**: Price acceleration tracker
### **Step 3: Trading Rules**
**For Buying Calls (Bullish):**
1. Wait for ▲ signal below CE candle
2. Check **CE INT > 40%** (moderate to high activity)
3. Confirm **CE BBW ⚡** (volatility expanding)
4. Verify **CE Mom** positive (momentum building)
5. **Entry**: Current CE premium
6. **Target**: Use Fibonacci levels or book on intensity drop
**For Buying Puts (Bearish):**
1. Wait for ▼ signal above PE candle
2. Check **PE INT > 40%** (moderate to high activity)
3. Confirm **PE BBW ⚡** (volatility expanding)
4. Verify **PE Mom** positive (momentum building)
5. **Entry**: Current PE premium
6. **Target**: Use Fibonacci levels or book on intensity drop
**Risk Management:**
- Avoid trades when intensity < 30% (low liquidity)
- Higher intensity = tighter stops (volatile moves)
- Watch for intensity divergence (price up, intensity down = weakness)
***
## ⚙️ SETTINGS GUIDE
### **Group 1: UNDERLYING & SYMBOL**
- **Underlying**: Main index/stock ticker
- **Option Root**: Symbol prefix (NIFTY, BANKNIFTY, etc.)
- **Strike Interval**: 50 for NIFTY, 100 for BANKNIFTY
- **Expiry Date**: Target expiry (Year/Month/Day)
- **Spot Source**: Auto (First 5m), Live Close, or Manual
### **Group 2: OPTION CHAIN SCANNER**
- **ATM Strike**: Center point for scanning (manually input)
- **Scan Range**: ±N strikes to scan (1-5)
- **Compression Threshold**: Max CE-PE difference % (8% default)
- **Min Volume**: Liquidity filter (100 default)
- **Auto-Select**: Enable for automatic best pair selection
### **Group 3: SIGNAL FILTERS**
- **BBW Length**: Volatility calculation period (20 default)
- **BBW Expansion Threshold**: Multiplier for expansion (1.30x)
- **Min BBW**: Minimum volatility % (2.0%)
- **EMA Filter**: Enable trend confirmation (21 EMA)
- **Delta Momentum**: Require CE > PE momentum for calls (vice versa)
### **Group 4: SIGNAL DISPLAY**
- **Show Buy Signals**: Toggle call/put signals
- Simple triangle markers (▲ for calls, ▼ for puts)
### **Group 5: VISUALIZATION**
- **Plot Candles**: Show CE/PE candlesticks
- **Normalize to % Change**: Compare premiums as % (recommended)
- **Show EMA**: Display trend lines
- **Show Metrics Panel**: Display analytics table
- **Table Position**: Move metrics panel (9 positions)
- **Table Size**: Adjust text size (Tiny to Huge)
### **Group 6: OPTION ANALYTICS**
- **Show PCR**: Put-Call Ratio display
- **Show Volume Analysis**: Volume delta tracking
- **Show IV Percentile**: 1-year IV ranking
### **Group 7: INTENSITY SYSTEM** 🔥
- **Enable Intensity Coloring**: Turn on dynamic brightness
- **Intensity Smoothing**: Higher = smoother (3 default)
- **Volume Weight**: Impact of volume surges (35%)
- **IV/BBW Weight**: Impact of volatility expansion (40%)
- **Movement Weight**: Impact of price acceleration (25%)
- **Min Brightness**: Dimmest state (70% transparency)
- **Max Brightness**: Brightest state (0% = fully opaque)
***
## 🎓 TRADING STRATEGIES
### **Strategy 1: Intensity Breakout**
- Wait for intensity to rise from <30% to >60%
- Enter on signal with bright candle
- Exit when intensity drops below 40%
### **Strategy 2: Volatility Expansion**
- Monitor BBW indicator
- Enter on ⚡ expansion + signal
- Target quick 20-30% premium gains
### **Strategy 3: PCR Contrarian**
- PCR > 1.3 = Oversold (look for call signals)
- PCR < 0.7 = Overbought (look for put signals)
- Combine with intensity confirmation
### **Strategy 4: Volume Delta Momentum**
- Strong positive VOL Δ = CE buying pressure
- Enter calls on dips with high CE intensity
- Vice versa for puts
***
## 📋 SUPPORTED EXCHANGES & SYMBOLS
**Exchanges:**
- NSE (National Stock Exchange of India)
**Supported Underlyings:**
- NIFTY 50
- BANKNIFTY
- FINNIFTY
- MIDCPNIFTY
- Individual stocks with liquid options
**Option Formats:**
- NSE Standard: `NSE:NIFTY251230C25900`
- NSE Weekly: `NSE:NIFTY25DEC25900CE`
- Custom/Broker-Specific formats
***
## ⚡ PERFORMANCE OPTIMIZATION
This indicator is optimized for speed:
- **Tuple-based security requests** (80% faster than standard)
- **Minimal repainting** (signals confirmed on bar close)
- **Efficient array operations**
- **Smart caching** of repeated calculations
- Works smoothly even on 1-minute charts
***
## 🚨 ALERTS
Built-in alert conditions:
- **Buy Call Signal**: Triggered on confirmed call entry
- **Buy Put Signal**: Triggered on confirmed put entry
**Setup:**
1. Click "Create Alert" on TradingView
2. Select "Guru Dronacharya Pro"
3. Choose "Buy Call Signal" or "Buy Put Signal"
4. Set notification method (popup/email/webhook)
***
## ⚠️ RISK DISCLAIMER
**IMPORTANT**: This indicator is for **educational purposes only**.
- Options trading carries substantial risk of loss
- Past performance does not guarantee future results
- Always use proper risk management (stop losses, position sizing)
- No indicator guarantees profitable trades
- Test thoroughly on paper/sim before live trading
- Consult a financial advisor before trading
**The creator is not responsible for any trading losses incurred using this indicator.**
***
## 🔄 VERSION HISTORY
**v1.0 (Current)**
- Initial release
- Dynamic intensity system
- Intelligent strike selection
- Multi-filter signal generation
- Professional analytics panel
- Theme-aware visualization
- Full customization support
***
## 💬 FEEDBACK & SUPPORT
Found this indicator helpful? Please:
- ⭐ Leave a rating
- 💬 Share your experience in comments
- 📊 Publish your chart ideas using this indicator
- 🔔 Follow for updates and new indicators
**Questions?** Drop a comment, and I'll help you optimize your settings!
***
## 🏆 WHO IS THIS FOR?
✅ **Intraday Option Traders** (scalping & day trading)
✅ **Swing Option Traders** (multi-day positions)
✅ **Premium Buyers** (directional option strategies)
✅ **Technical Analysts** (volatility & momentum-based)
✅ **NSE Options Specialists** (NIFTY/BANKNIFTY focused)
❌ **NOT suitable for:**
- Complete beginners (learn basics first)
- Premium sellers (different indicator needed)
- Set-and-forget strategies (requires active monitoring)
***
## 🙏 ACKNOWLEDGMENTS
Named after **Guru Dronacharya**, the legendary teacher from Mahabharata known for precision, discipline, and strategic mastery – qualities every successful trader needs.
**May your trades be profitable and your risk be managed! 🚀**
***
**Tags:** Options Trading, NSE Options, NIFTY Options, BANKNIFTY Options, Option Chain Analysis, Volatility Trading, Intensity System, Indian Stock Market, Intraday Trading, Premium Analysis, PCR Indicator, Options Signals
***
**Legal:** This indicator does not constitute financial advice. All trading decisions are your responsibility. Always trade with risk capital you can afford to lose.
Unmitigated MTF High Low Pro - Cave Diving Bookmap Heatmap Plot
Unmitigated MTF High Low Pro - Cave Diving Bookmap Heatmap Plot
---
## 📖 Table of Contents
1. (#what-this-indicator-does)
2. (#core-concepts)
3. (#visual-components)
4. (#the-cave-diving-framework)
5. (#how-to-use-it-for-trading)
6. (#settings--customization)
7. (#best-practices)
8. (#common-scenarios)
---
## What This Indicator Does
The **Unmitigated MTF High Low v2.0** tracks unmitigated (untouch) high and low levels across multiple timeframes, helping you identify key support and resistance zones that the market hasn't revisited yet. Think of it as a sophisticated memory system for price action - it remembers where price has been, and more importantly, where it *hasn't been back to*.
### Why "Unmitigated" Matters
In futures trading, especially on instruments like NQ and ES, the market has a tendency to revisit levels where liquidity was left behind. An "unmitigated" level is one that hasn't been touched since it was formed. These levels often act as magnets for price, and understanding their age and proximity gives you a significant edge in:
- **Entry timing** - Waiting for price to approach tested levels
- **Exit planning** - Taking profits before ancient resistance/support
- **Risk management** - Avoiding entries when approaching multiple old levels
- **Liquidity mapping** - Visualizing where orders likely cluster
---
## Core Concepts
### 1. **Sessions & Age**
The indicator uses **New York trading sessions** (6:00 PM to 5:59 PM NY time) as the primary time measurement. This aligns with how futures markets naturally segment their activity.
**Age Categories:**
- 🟢 **New (0-1 sessions)** - Fresh levels, recently formed
- 🟡 **Medium (2-3 sessions)** - Tested by time, gaining significance
- 🔴 **Old (4-6 sessions)** - Highly significant, survived multiple days
- 🟣 **Ancient (7+ sessions)** - Extreme significance, major support/resistance
The longer a level remains unmitigated, the more significant it becomes. Think of it like compound interest - time adds weight to these zones.
### 2. **Multi-Timeframe Tracking**
You can set the indicator to track high/low levels from any timeframe (default is 15 minutes). This means you're watching for unmitigated 15-minute highs and lows while trading on, say, a 1-minute or 5-minute chart.
**Why this matters:**
- Higher timeframe levels have more weight
- You can see multiple timeframe structure simultaneously
- Helps you avoid fighting larger timeframe momentum
### 3. **Mitigation**
A level becomes "mitigated" (deactivated) when price touches it:
- **High levels** are mitigated when price reaches or exceeds them
- **Low levels** are mitigated when price reaches or goes below them
Once mitigated, the level disappears from view. The indicator only shows you the untouch levels that still matter.
---
## Visual Components
### 📊 The Dashboard Table
Located in the corner of your chart (configurable), the table shows:
```
┌─────────┬───────────┬────────┬─────┬───────┐
│ Level │ Price │ Points │ Age │ % │
├─────────┼───────────┼────────┼─────┼───────┤
│ ↑↑↑↑↑ │ 21,450.25 │ +45.50 │ 8 │ +0.21%│ ← 5th High (Ancient)
│ ↑↑↑↑ │ 21,430.00 │ +25.25 │ 5 │ +0.12%│ ← 4th High (Old)
│ ↑↑↑ │ 21,420.50 │ +15.75 │ 3 │ +0.07%│ ← 3rd High (Medium)
│ ↑↑ │ 21,412.00 │ +7.25 │ 1 │ +0.03%│ ← 2nd High (New)
│ ↑ ⚠️ │ 21,408.25 │ +3.50 │ 0 │ +0.02%│ ← 1st High (Proximity Alert!)
├─────────┼───────────┼────────┼─────┼───────┤
│ 15 mins │ 🟢 │ Δ 8.75 │ 2U │ │ ← Status Row
├─────────┼───────────┼────────┼─────┼───────┤
│ ↓ ⚠️ │ 21,399.50 │ -5.25 │ 0 │ -0.02%│ ← 1st Low (Proximity Alert!)
│ ↓↓ │ 21,395.00 │ -9.75 │ 2 │ -0.05%│ ← 2nd Low (Medium)
│ ↓↓↓ │ 21,385.25 │ -19.50 │ 4 │ -0.09%│ ← 3rd Low (Old)
│ ↓↓↓↓ │ 21,370.00 │ -34.75 │ 6 │ -0.16%│ ← 4th Low (Old)
│ ↓↓↓↓↓ │ 21,350.75 │ -54.00 │ 9 │ -0.25%│ ← 5th Low (Ancient)
├─────────┼───────────┼────────┼─────┼───────┤
│ 📊 15↑ / 12↓ │ ← Statistics (optional)
└─────────┴───────────┴────────┴─────┴───────┘
```
**Reading the Table:**
- **Level Column**: Number of arrows indicates position (1-5), color shows age
- **Price**: The actual price level
- **Points**: Distance from current price (+ for highs, - for lows)
- **Age**: Number of full sessions since creation
- **%**: Percentage distance from current price
- **⚠️**: Proximity alert - price is within threshold distance
- **Status Row**: Shows timeframe, direction (🟢 bullish/🔴 bearish), tunnel width (Δ), and Strat pattern
### 📈 Visual Elements on Chart
**1. Level Lines**
- Horizontal lines showing each unmitigated level
- **Color-coded by age**: Bright colors = new, darker = older, deep purple/teal = ancient
- **Line style**: Customizable (solid, dashed, dotted)
- Automatically turn **yellow** when price gets close (proximity alert)
**2. Price Labels**
- Show the exact price and age: "21,450.25 (8d)"
- Fixed at small size for clean readability
- Positioned with configurable offset from current bar
**3. Bands (Optional)**
- Shaded zones between pairs of unmitigated levels
- Default: Between 1st and 2nd levels (the "tunnel")
- Can switch to 1st-3rd, 2nd-3rd, or disable entirely
- **Upper band** (pink/maroon) - Between unmitigated highs
- **Lower band** (blue/teal) - Between unmitigated lows
- These represent the "no man's land" or consolidation zones
---
## The Cave Diving Framework
This indicator is designed around the **Cave Diving Trading Framework** - a psychological and technical approach that maps cave diving safety protocols to futures trading risk management.
### 🤿 The Core Metaphor
**Cave diving has clear danger zones based on depth and overhead environment. Your trading should too.**
#### Shallow Water (New Levels, 0-1 Sessions)
- **Light**: Bright colors (bright red highs, bright green lows)
- **Psychology**: Fresh territory, recently tested
- **Trading**: Be aware but not overly concerned
- **Cave Diving Parallel**: You can see the surface, easy exit
#### Penetration Depth (Medium Levels, 2-3 Sessions)
- **Light**: Medium intensity colors
- **Psychology**: Building significance, market memory forming
- **Trading**: Start respecting these levels for entries/exits
- **Cave Diving Parallel**: Deeper in, need to track your line back
#### Deep Dive Zone (Old Levels, 4-6 Sessions)
- **Light**: Dark colors (deep maroon, dark blue)
- **Psychology**: Highly tested support/resistance
- **Trading**: Major decision points, plan accordingly
- **Cave Diving Parallel**: Significant overhead, careful navigation required
#### Overhead Environment (Ancient Levels, 7+ Sessions)
- **Light**: Very dark, purple/deep teal
- **Psychology**: Extreme caution required, major liquidity zones
- **Trading**: These are your "turn back" signals - don't fight ancient levels
- **Cave Diving Parallel**: Maximum danger, no room for error
### 🎯 The Proximity Alert System
Just like a cave diver's depth gauge that warns at critical thresholds, the proximity alerts (⚠️) tell you when you're entering a danger zone. When price gets within your configured threshold (default 5 points), the indicator:
- Highlights the level in **yellow** on the chart
- Shows **⚠️** in the table
- Signals: "You're entering a high-significance zone - adjust your position accordingly"
This prevents the trading equivalent of going deeper into a cave without checking your air supply.
---
## How to Use It for Trading
### 🎯 Entry Strategies
**1. The "Bounce Setup" (Mean Reversion)**
- Wait for price to approach an old or ancient unmitigated level
- Look for confluence: multiple levels nearby, bands narrowing
- Enter when price shows rejection (reversal candle patterns)
- **Example**: Price drops to a 6-session-old low, shows bullish engulfing → Long entry
**2. The "Break and Retest" (Trend Following)**
- Wait for price to break through an unmitigated level (mitigates it)
- Enter on the retest of the newly broken level
- **Example**: Price breaks above 4-session-old high → Wait for pullback to that level → Long entry
**3. The "Tunnel Trade" (Range Trading)**
- When bands are active, trade the range between 1st-2nd levels
- Short near upper band resistance, long near lower band support
- Exit at opposite side or when bands break
### 🚨 Risk Management Rules
**The Ancient Level Rule**
> Never fight ancient levels (7+ sessions). If you're long and approaching an ancient high, take profits. If you're short and approaching an ancient low, take profits.
These levels have survived a full trading week without being touched - there's likely significant liquidity and institutional interest there.
**The Proximity Exit Rule**
> When you see ⚠️ proximity alerts on multiple levels above/below your position, tighten stops or scale out.
This is your "overhead environment" warning. You're in dangerous territory.
**The New Level Filter**
> Be cautious taking positions based solely on new levels (0-1 sessions). Wait for them to age or combine with other confluence.
Fresh levels haven't been tested by time. They're like unconfirmed support/resistance.
### 📊 Reading Market Structure
**Bullish Structure (🟢 in status row)**
- Unmitigated lows are aging and holding
- Price respecting the lower band
- Old lows below acting as strong support
- **Bias**: Look for long entries at lower levels
**Bearish Structure (🔴 in status row)**
- Unmitigated highs are aging and holding
- Price respecting the upper band
- Old highs above acting as strong resistance
- **Bias**: Look for short entries at higher levels
**The Tunnel Compression**
- When the Δ (delta) in the status row is small, levels are tight
- This often precedes a breakout
- **Trading**: Wait for breakout direction, then trade the break
### 🔄 Strat Integration
The indicator shows Strat patterns in the status row:
- **1** - Inside bar (consolidation)
- **2U** - Broke high only (bullish)
- **2D** - Broke low only (bearish)
- **3** - Broke both (wide range, volatility)
Use these with the unmitigated levels:
- **2U near old high** → Potential resistance, watch for rejection
- **2D near old low** → Potential support, watch for bounce
- **3 pattern** → High volatility, respect wider stops
---
## Settings & Customization
### 📅 Session & Timeframe Settings
**HL Interval** (Default: 15 minutes)
- The timeframe for high/low calculation
- **Lower (1m, 5m)**: More levels, more noise, good for scalping
- **Higher (30m, 1H, 4H)**: Fewer levels, stronger significance, good for swing trading
- **Recommendation for NQ/ES**: 15m or 30m for day trading, 1H for swing trading
**Session Age Threshold** (Default: 2)
- How many sessions before a level is considered "old"
- Lower = more levels classified as old
- Higher = stricter definition of significance
### 📊 Level Display Options
**Show Level Lines**
- Toggle: Display horizontal lines for each level
- **Turn off** if you prefer a cleaner chart and only want the table
**Show Level Labels**
- Toggle: Display price labels on the chart
- **Turn off** for minimal visual clutter
**Label Offset**
- Distance (in bars) from current price bar to place labels
- Increase if labels overlap with price action
**Level Line Width & Style**
- Customize visual appearance
- **Thin solid**: Minimal distraction
- **Thick dashed**: High visibility
### 🎨 Age-Based Color Coding
Customize colors for each age category (high and low separately):
- **New (0-1 sessions)**: Default bright red/green
- **Medium (2-3 sessions)**: Default medium intensity
- **Old (4+ sessions)**: Default dark red/blue
- **Ancient (7+ sessions)**: Default deep purple/teal
**Color Strategy Tips:**
- Keep ancient levels in highly contrasting colors
- Use opacity (transparency) if you want subtler lines
- Match your chart's color scheme for aesthetic coherence
### 🎯 Band Settings
**Band Mode**
- **1st-2nd** (Default): The primary "tunnel" between most recent levels
- **1st-3rd**: Wider band, more room for price action
- **2nd-3rd**: Band between less immediate levels
- **Disabled**: No bands, lines only
**Band Colors & Borders**
- Customize fill color and border separately
- **Tip**: Keep bands very transparent (90-95% transparency) to avoid obscuring price action
### ⚠️ Proximity Alert Settings
**Enable Proximity Alerts**
- Toggle: Turn on/off the warning system
- When enabled, levels within threshold distance show ⚠️ and turn yellow
**Alert Threshold** (Default: 5.0 points)
- Distance in points to trigger the alert
- **For NQ**: 5-10 points is reasonable
- **For ES**: 2-5 points is reasonable
- **For MES/MNQ**: Scale down proportionally
**Alert Highlight Color**
- The color lines/labels turn when proximity is triggered
- Default: Yellow (high visibility)
### 📋 Table Settings
**Show Table**
- Toggle: Display the dashboard table
**Table Location**
- Top Left, Top Right, Bottom Left, Bottom Right
- Choose based on your chart layout and other indicators
**Text Size**
- Tiny, Small, Normal, Large
- **Recommendation**: Normal for 1080p monitors, Small for 4K
**Show % Distance**
- Toggle: Add percentage distance column to table
- Useful for comparing relative distances across different price ranges
**Show Statistics Row**
- Toggle: Show total count of unmitigated highs/lows
- Format: "📊 15↑ / 12↓" (15 unmitigated highs, 12 unmitigated lows)
- Useful for gauging overall market structure
### ⚡ Performance Settings
**Enable Level Cleanup**
- Automatically remove very old levels to maintain performance
- **Keep on** unless you want unlimited history
**Max Lookback Levels** (Default: 10,000)
- Maximum number of levels to track
- 10,000 ≈ 6+ months of 15-minute bars
- **Increase** if you want more history
- **Decrease** if experiencing performance issues
**Max Boxes Per Band** (Default: 245)
- TradingView limit is 500 total boxes
- With 2 bands, 245 each = 490 total (safe maximum)
---
## Best Practices
### 🎯 Position Management
**1. Scaling In Near Old Levels**
```
Price approaching 5-session-old low:
- First position: 30% size at proximity alert (⚠️)
- Second position: 40% size at exact level
- Third position: 30% size if it shows strong rejection
```
**2. Scaling Out Near Ancient Levels**
```
Holding long position, approaching 8-session-old high:
- Exit 50% at proximity alert (⚠️)
- Exit 30% at exact level
- Trail stop on remaining 20%
```
### 🧠 Trading Psychology Integration
Drawing from principles in *The Mountain Is You*, this indicator helps you:
**1. Recognize Self-Sabotage Patterns**
- **The Premature Entry**: Entering before price reaches your planned level
- **Solution**: Set alerts at unmitigated levels, wait for proximity warnings
- **The Profit-Taking Problem**: Exiting too early from fear
- **Solution**: Identify the next unmitigated level and commit to holding until proximity alert
- **The Loss Holding**: Refusing to exit losing trades
- **Solution**: When price breaks through and mitigates your entry level, it's telling you the structure changed
**2. Building Better Habits**
The color-coded age system trains your brain to:
- Respect levels that have proven themselves over time
- Distinguish between noise (new levels) and structure (old levels)
- Make decisions based on objective data, not fear or greed
**3. Emotional Regulation**
The proximity alerts serve as:
- **Circuit breakers** - Forcing you to re-evaluate before dangerous zones
- **Permission to act** - Giving you objective signals to exit without second-guessing
- **Validation** - Confirming when you're in alignment with market structure
### 📝 Pre-Market Routine
**Daily Setup Checklist:**
1. ✅ Identify the 3 nearest unmitigated highs above current price
2. ✅ Identify the 3 nearest unmitigated lows below current price
3. ✅ Note which are ancient (7+) - these are your "no-go" zones
4. ✅ Check the tunnel width (Δ in status row) - tight or wide?
5. ✅ Set alerts at the 1st high and 1st low for proximity warnings
6. ✅ Plan: "If we go up, I exit at ___. If we go down, I enter at ___."
### 🔄 Timeframe Confluence
**Multi-Timeframe Strategy:**
Run the indicator on **three instances**:
- **15-minute** (short-term structure)
- **1-hour** (intermediate structure)
- **4-hour** (major structure)
**Strong Setup**: When all three timeframes show unmitigated levels converging at the same price zone.
**Example:**
- 15m: Old low at 21,400
- 1H: Ancient low at 21,398
- 4H: Ancient low at 21,395
- **Result**: 21,395-21,400 is a monster support zone
### ⚠️ What This Indicator Doesn't Do
**Not a Crystal Ball**
- It doesn't predict where price will go
- It shows you where price *hasn't been* and how long it's been avoided
- The trading decisions are still yours
**Not an Entry Signal Generator**
- It provides context and structure
- You need to combine it with your entry methodology (price action, indicators, order flow, etc.)
**Not Foolproof**
- Ancient levels get broken
- Proximity alerts can trigger early in strong trends
- The market doesn't "owe" you a reversal at any level
---
## Common Scenarios
### Scenario 1: "Level Cluster Ahead"
**Situation**: You're long at 21,400. The table shows:
- 1st High: 21,425 (2 sessions old)
- 2nd High: 21,428 (3 sessions old)
- 3rd High: 21,435 (6 sessions old)
**Interpretation**: There's a resistance cluster just 25-35 points away. The 6-session-old level is particularly significant.
**Action**:
- Set first profit target at 21,420 (before the cluster)
- Set second target at 21,426 (between 1st and 2nd)
- Trail remaining position, but be ready to exit on rejection at 21,435
**Cave Diving Analogy**: You're approaching an overhead section with limited clearance. Lighten your load (reduce position) before entering.
---
### Scenario 2: "Ancient Level Approaches"
**Situation**: The market is grinding higher. You see ⚠️ appear next to a 9-session-old high at 21,500.
**Interpretation**: This level has survived over a week without being touched. Massive potential liquidity zone.
**Action**:
- If long, this is your absolute exit zone. Take profits before or at level.
- If looking to short, wait for clear rejection (price taps and reverses)
- Don't try to buy the breakout until it clearly breaks and retests
**Cave Diving Analogy**: Your dive computer is beeping - you've reached your planned turn-back depth. No matter how interesting it looks ahead, honor your plan.
---
### Scenario 3: "Mitigated Levels Create New Structure"
**Situation**: Price breaks and mitigates the 1st High. The previous 2nd High becomes the new 1st High.
**Interpretation**: The structure just shifted. What was the 2nd level is now most relevant.
**Action**:
- Watch how price reacts to the newly-mitigated level
- If it holds below (acts as resistance), bearish
- If it reclaims and holds above (acts as support), bullish
- The NEW 1st High is your next target/resistance
**Cave Diving Analogy**: You've passed through a restriction - the cave layout ahead is different now. Update your mental map.
---
### Scenario 4: "Tight Tunnel, Upcoming Breakout"
**Situation**: The Δ in the status row shows 3.25 points (very tight). Bands are converging.
**Interpretation**: Price is consolidating between very close unmitigated levels. Breakout likely.
**Action**:
- Don't try to predict direction
- Set alerts above 1st High and below 1st Low
- When break occurs, trade the retest
- Expect volatility - use wider stops
**Cave Diving Analogy**: You're in a narrow passage. Movement will be sudden and directional once it starts.
---
### Scenario 5: "Imbalanced Structure"
**Situation**: The statistics row shows "📊 22↑ / 7↓"
**Interpretation**: There are many more unmitigated highs than lows. This suggests:
- Price has been declining (hitting lows, leaving highs behind)
- Potential bullish reversal zone (lots of overhead supply mitigated)
- Or continued bearish structure (resistance everywhere above)
**Action**:
- Look at the age of those 22 highs
- If mostly new (0-2 sessions): Just a recent downmove, not significant yet
- If many old/ancient: Strong overhead resistance, be cautious on longs
- Compare to price action: Is price respecting the remaining lows?
**Cave Diving Analogy**: You've swam deeper than your starting point - most of your markers are above you now. Are you planning the ascent or going deeper?
---
## Final Thoughts: The Philosophy
This indicator is built on a simple but powerful principle: **The market has memory, and that memory has weight.**
Every unmitigated level represents:
- Liquidity left behind
- Orders waiting to be filled
- Institutional interest potentially parked
- Psychological significance for participants
The longer a level remains unmitigated, the more "charged" it becomes. When price finally revisits it, something significant usually happens - either a strong reversal or a definitive break.
Your job as a trader isn't to predict which outcome will occur. Your job is to:
1. **Recognize** when you're approaching these charged zones
2. **Respect** them by adjusting position size and risk
3. **React** appropriately based on how price behaves at them
4. **Remember** that ancient levels (like ancient wisdom) deserve extra reverence
The Cave Diving Framework embedded in this indicator serves as a constant reminder: Trading, like cave diving, requires rigorous respect for environmental hazards, meticulous planning, and the discipline to turn back when your limits are reached.
**Every proximity alert is the market asking you**: *"Do you really want to go deeper?"*
Sometimes the answer is yes - when your setup, confluence, and risk management all align.
Often, the answer should be no - and that's the trader avoiding the accident that would have happened to the gambler.
---
### 🎯 Quick Reference Card
**Color System:**
- 🟢 Bright colors = New (0-1 sessions) = Shallow water
- 🟡 Medium colors = Medium (2-3 sessions) = Penetration depth
- 🔴 Dark colors = Old (4-6 sessions) = Deep dive zone
- 🟣 Deep dark colors = Ancient (7+ sessions) = Overhead environment
**Symbols:**
- ↑ ↑↑ ↑↑↑ ↑↑↑↑ ↑↑↑↑↑ = High levels (1st through 5th)
- ↓ ↓↓ ↓↓↓ ↓↓↓↓ ↓↓↓↓↓ = Low levels (1st through 5th)
- ⚠️ = Proximity alert (danger zone)
- 🟢 = Bullish structure
- 🔴 = Bearish structure
- Δ = Tunnel width (distance between 1st high and 1st low)
**Critical Rules:**
1. Never fight ancient levels (7+ sessions)
2. Respect proximity alerts (⚠️)
3. Scale out near old/ancient resistance
4. Wait for confluence when entering
5. Let mitigated levels prove their new role
---
**Remember**: The indicator gives you structure. The trading edge comes from your discipline in respecting that structure.
Trade safe, trade smart, and always know your exit before your entry. 🎯
---
*"You don't become your best self by denying your patterns. You become your best self by recognizing them, understanding them, and choosing differently." - Adapted from The Mountain Is You*
In trading: You don't become profitable by ignoring market structure. You become profitable by recognizing it, understanding it, and choosing your entries accordingly.
Institutional Options Flow Scanner [NSE]# 🏦 Institutional Options Flow Scanner - Elite Signal Confirmation System
## 📊 Overview
**Experience institutional-grade options flow analysis with military-grade signal filtering.** This advanced Pine Script v6 indicator scans NSE options chains for unusual whale and institutional activity, applying **7-layer confirmation logic** to eliminate false signals and deliver high-probability trading setups. Designed exclusively for **NIFTY, BANKNIFTY, and FINNIFTY** options traders who demand professional-quality signals.
**What makes this different?** While most volume indicators flood you with noise, this scanner uses **multi-factor confirmation, momentum detection, and persistence filtering** - the exact methodology institutional desks pay $100K+ for. Every signal must pass rigorous institutional-grade criteria before appearing on your chart.
**Result:** Fewer signals. Higher quality. Better win rate. 🎯
---
## ⚡ What's New in v2.0 (December 2025)
### 🎯 7-Layer Signal Confirmation System
Every signal now requires **ALL conditions** to be met:
1. **✅ Whale Volume Threshold** - Flow must be ≥2.5x baseline (smart money)
2. **✅ Absolute Volume Filter** - Minimum 50K contracts (liquidity proof)
3. **✅ PCR Alignment** - Sentiment must match direction (<0.8 bull, >1.5 bear)
4. **✅ Flow Dominance** - Winning side must exceed opposite by 20%
5. **✅ Conviction Score** - Strength must be ≥60% (configurable)
6. **✅ Momentum Filter** - Flow must be accelerating (rising ratio)
7. **✅ Persistence Check** - Signal must hold for 2+ bars (confirmation)
**Before:** Signals appeared on 0.8x quiet flow ❌
**After:** Signals only on confirmed whale activity ✅
### 🔍 New Features
**Signal Quality Indicator**
- ✅ CONFIRMED (2/2) - Trade-ready setup
- 🔍 BUILDING (1/2) - Setup forming, wait
- ⏸️ WAIT (0/2) - No institutional activity
**Flow Momentum Arrows**
- ↗ Flow accelerating (bullish for signal)
- → Flow flat/declining (caution)
**Advanced Filters** (User Configurable)
- Minimum Absolute Volume (default: 50,000)
- Minimum Strength Score (default: 60%)
- Confirmation Bars (default: 2)
- Require Rising Flow (toggle)
**Cleaner Chart Signals**
- Only plots when fully confirmed
- No more false orange diamonds
- Larger markers with text labels
- Background shading only on confirmation
---
## 🎯 Core Features
### ✅ Multi-Strike Volume Scanning
- Scans **up to 5 strikes per side** (Calls & Puts) in parallel
- Tracks **maximum volume strike** across entire scan range
- NSE-optimized symbol format: `NSE:NIFTY251223C25800`
- Configurable intervals: 25/50/100/200 (NIFTY=50, BANKNIFTY=100)
### 🐋 Institutional Flow Classification
Advanced 4-tier system based on volume anomaly ratios:
| Flow Type | Threshold | Meaning | Trading Action |
|-----------|-----------|---------|----------------|
| 🐋 WHALE | ≥ 2.5x baseline | Hedge funds, prop desks positioning | **Follow immediately** |
| 🏦 INST | ≥ 1.8x baseline | Institutional accumulation | **Strong consideration** |
| 📈 ACTIVE | ≥ 1.2x baseline | Elevated retail + small funds | **Wait for whale** |
| 😴 QUIET | < 1.2x baseline | Normal/low activity | **Ignore** |
### 📈 Advanced Market Analytics
**Put-Call Ratio (PCR) Analysis**
- 5-tier sentiment classification
- Real-time PCR momentum (rising/falling)
- Color-coded thresholds (red=bearish, green=bullish)
**Flow Bias Detection**
- CALL BIAS - Institutions buying calls aggressively
- PUT BIAS - Institutions hedging/buying puts
- BALANCED - No clear directional positioning
**Flow Strength Score (0-100)**
- Weighted formula measuring conviction
- Used for position sizing guidance
- Filters low-quality setups
**Sentiment Gauge**
| PCR Range | Sentiment | Interpretation |
|-----------|-----------|----------------|
| > 1.5 | 🔴 BEARISH | Fear, crash hedging |
| 1.2-1.5 | 🟠 CAUTION | Defensive positioning |
| 0.8-1.2 | ⚪ NEUTRAL | Balanced market |
| 0.6-0.8 | 🟡 BULLISH | Optimism building |
| < 0.6 | 🟢 V.BULL | Extreme greed, FOMO |
### 🟢 BUY CALL Signal - 7-Point Checklist
**All conditions must be TRUE:**
```
✅ Call flow ≥ 2.5x baseline (whale activity)
✅ Absolute volume ≥ 50,000 contracts (liquidity)
✅ PCR < 0.8 (bullish sentiment confirmed)
✅ Call flow > Put flow by 20% (clear dominance)
✅ Strength score ≥ 60% (high conviction)
✅ Call flow accelerating (momentum filter)
✅ Held for 2+ bars (persistence check)
```
**Result:** Large green ▲ triangle on chart + "CALL" text label
### 🔴 BUY PUT Signal - 7-Point Checklist
**All conditions must be TRUE:**
```
✅ Put flow ≥ 2.5x baseline (whale activity)
✅ Absolute volume ≥ 50,000 contracts (liquidity)
✅ PCR > 1.5 (bearish sentiment confirmed)
✅ Put flow > Call flow by 20% (clear dominance)
✅ Strength score ≥ 60% (high conviction)
✅ Put flow accelerating (momentum filter)
✅ Held for 2+ bars (persistence check)
```
**Result:** Large red ▼ triangle on chart + "PUT" text label
### 🟠 STRADDLE Signal - Volatility Setup
**Conditions:**
```
✅ Both Call AND Put flows ≥ 1.8x (institutional)
✅ Both have adequate absolute volume
✅ Flows balanced (difference < 0.5x)
✅ Strength ≥ 60% (high conviction)
✅ Held for 2+ bars (confirmation)
```
**Result:** Orange ◆ diamond on chart + "STRAD" text label
### 🎨 Professional Bloomberg-Style Dashboard
**Fully Adjustable:**
- **9 Position Options:** top/middle/bottom × left/center/right
- **6 Text Sizes:** auto, tiny, small, normal, large, huge
- **Auto-scaling:** Action row larger, status row smaller
- **Dark Theme:** #1a1a1a background with color-coded metrics
**Dashboard Sections:**
**1. Market Overview**
- Sentiment (PCR-based with color coding)
- Flow Bias (directional positioning)
- Flow Strength (0-100 conviction score)
**2. Call Flow Analysis**
- Strike / Volume (e.g., "25750 / 115,350")
- Flow Type with momentum (e.g., "🐋 WHALE (3.2x↗)")
- Real-time classification
**3. Put Flow Analysis**
- Strike / Volume (e.g., "25850 / 185,400")
- Flow Type with momentum (e.g., "🏦 INST (1.9x→)")
- Real-time classification
**4. Signal Quality** ⭐ NEW
- Confirmation status (✅/🔍/⏸️)
- Bar count progress (e.g., "2/2")
- Quality indicator
**5. Trade Action**
- Clear recommendation (BUY CALL/PUT/STRADDLE/WAIT)
- Risk level (HIGH/MEDIUM/LOW)
- Color-coded for instant recognition
**6. Data Validation**
- Live data status (✅ LIVE / ⚠️ PARTIAL)
- Strike count verification
---
## 🔬 Advanced Methodology
### Signal Confirmation Logic
**Why 7 layers?** Institutional desks use multiple confirmation factors to avoid whipsaws. Each layer filters out noise:
**Layer 1 - Whale Threshold (2.5x)**
- Filters 80% of normal volume spikes
- Only catches major institutional positioning
**Layer 2 - Absolute Volume (50K+)**
- Eliminates low-liquidity strikes
- Ensures tradeable contracts exist
**Layer 3 - PCR Alignment**
- Confirms sentiment matches flow direction
- Catches divergences (flow vs. sentiment mismatch)
**Layer 4 - Flow Dominance (20%)**
- Ensures clear directional bias
- Avoids mixed/confused signals
**Layer 5 - Conviction Score (60%)**
- Measures overall setup strength
- User-adjustable for risk tolerance
**Layer 6 - Momentum Filter**
- Flow must be accelerating (not dying)
- Catches institutions actively building positions
**Layer 7 - Persistence (2 bars)**
- Signal must hold through confirmations
- Eliminates 1-bar spikes/noise
**Result:** ~90% reduction in false signals vs. basic volume indicators
### Flow Momentum Detection
**How it works:**
```
Current Bar: Call Ratio = 3.2x
Previous Bar: Call Ratio = 2.7x
Change: +0.5x → ↗ ACCELERATING (Bullish)
vs.
Current Bar: Call Ratio = 2.8x
Previous Bar: Call Ratio = 3.1x
Change: -0.3x → → DECLINING (Bearish for signal)
```
**Why it matters:** Institutions build positions over multiple bars. Accelerating flow = active accumulation. Declining flow = distribution or false alarm.
### PCR Momentum Analysis
**PCR Rising (+0.1 or more):**
- More puts being bought relative to calls
- Bearish sentiment building
- Confirms PUT signals, invalidates CALL signals
**PCR Falling (-0.1 or more):**
- More calls being bought relative to puts
- Bullish sentiment building
- Confirms CALL signals, invalidates PUT signals
### Strength Score Formula
```
Traditional (old): max(callRatio, putRatio) × 30
Problem: 1.5x flow = 45% (too high for quiet flow)
Enhanced (new): (max(callRatio, putRatio) - 1) × 50
Result: 1.5x flow = 25% (accurate)
2.5x flow = 75% (whale = high conviction)
3.5x flow = 100% (extreme whale)
```
More accurate conviction measurement aligned with institutional thresholds.
---
## 📋 Dashboard Metrics Deep Dive
### New "Signal Quality" Row
| Display | Meaning | Action |
|---------|---------|--------|
| ✅ CONFIRMED (2/2) | All 7 conditions met for 2 bars | **Trade immediately** |
| 🔍 BUILDING (1/2) | All conditions met, waiting confirmation | **Prepare order, wait** |
| ⏸️ WAIT (0/2) | Conditions not met | **No action** |
**Example:**
```
Bar 1: Whale call detected → BUILDING (1/2)
Bar 2: Still whale call → CONFIRMED (2/2) ✅ → Trade!
```
### Flow Type with Momentum
| Display | Interpretation |
|---------|----------------|
| 🐋 WHALE (3.2x↗) | Whale flow accelerating - **strongest signal** |
| 🐋 WHALE (3.2x→) | Whale flow flat - **strong but watch for reversal** |
| 🏦 INST (1.9x↗) | Institutional building - **good setup forming** |
| 📈 ACTIVE (1.3x→) | Elevated but not whale - **wait for acceleration** |
| 😴 QUIET (0.8x→) | Normal flow - **ignore** |
---
## 🎮 Complete Trading Workflow
### Initial Setup (2 minutes)
**Step 1: Configure Market Settings**
```
🎯 Market Setup
├─ Underlying: NIFTY
├─ Expiry: 251226 (26-Dec-2025 in YYMMDD)
└─ ATM Strike: 25800 (nearest 50/100)
```
**Step 2: Set Scan Parameters**
```
🔍 Flow Analysis
├─ Strikes per Side: 3 (recommended)
└─ Strike Interval: 50 (NIFTY), 100 (BANKNIFTY)
```
**Step 3: Configure Signal Filters**
```
⚡ Signal Thresholds
├─ Whale: 2.5x (default - don't change)
├─ Institutional: 1.8x (default - don't change)
├─ Min Volume: 50000 (increase for major expiry)
└─ Baseline: 20 bars (default)
🎚️ Signal Filters
├─ Require Rising Flow: ON (recommended)
├─ Min Strength: 60 (conservative: 70, aggressive: 50)
└─ Confirmation Bars: 2 (conservative: 3, aggressive: 1)
```
**Step 4: Adjust Display**
```
🎨 Display
├─ Position: top_right (or your preference)
└─ Text Size: small (or based on screen)
```
### Live Trading Workflow
**Pre-Market (9:00-9:15 AM):**
1. Update **Expiry** if new week
2. Set **ATM Strike** based on pre-open NIFTY
3. Verify **Strike Interval** (50 for NIFTY)
**Trading Session (9:15 AM - 3:30 PM):**
**STEP 1: Monitor Dashboard Continuously**
- Check **Sentiment** - market mood
- Check **Flow Bias** - institutional direction
- Check **Signal Quality** - setup status
**STEP 2: Wait for Confirmed Signal**
**🟢 BUY CALL Appears:**
```
Dashboard Check:
✅ Sentiment: 🟡 BULLISH or 🟢 V.BULL
✅ Flow Bias: CALL BIAS
✅ Call Flow: 🐋 WHALE (3.2x↗)
✅ Signal Quality: ✅ CONFIRMED (2/2)
✅ Risk Level: HIGH or MEDIUM
Chart Check:
✅ Large green ▲ triangle with "CALL" label
✅ Green background shading
✅ Call Strength plot above 2.5x line
Action:
→ Check dashboard for Call Strike (e.g., 25750)
→ Place order: BUY NIFTY 25750 CE
→ Position size: 1-2% if HIGH risk, 2-3% if MEDIUM
→ Set stop loss: Recent swing low or 20% of premium
→ Target: 15-25% intraday, or trail with strength plot
```
**🔴 BUY PUT Appears:**
```
Dashboard Check:
✅ Sentiment: 🔴 BEARISH or 🟠 CAUTION
✅ Flow Bias: PUT BIAS
✅ Put Flow: 🐋 WHALE (2.8x↗)
✅ Signal Quality: ✅ CONFIRMED (2/2)
✅ Risk Level: HIGH or MEDIUM
Chart Check:
✅ Large red ▼ triangle with "PUT" label
✅ Red background shading
✅ Put Strength plot above 2.5x line
Action:
→ Check dashboard for Put Strike (e.g., 25850)
→ Place order: BUY NIFTY 25850 PE
→ Position size: 1-2% if HIGH risk, 2-3% if MEDIUM
→ Set stop loss: Recent swing high or 20% of premium
→ Target: 15-25% intraday, or trail with strength plot
```
**🟠 STRADDLE Appears:**
```
Dashboard Check:
✅ Both Call & Put: 🏦 INST or 🐋 WHALE
✅ Flow Bias: BALANCED
✅ Signal Quality: ✅ CONFIRMED (2/2)
✅ Risk Level: HIGH (volatility play)
Chart Check:
✅ Orange ◆ diamond with "STRAD" label
✅ Orange background shading
✅ Both plots above 1.8x line
Action:
→ Buy ATM Straddle (Call + Put at ATM strike)
→ Position size: 1-2% total (split between both)
→ Expect sharp move (direction unknown)
→ Exit when volatility spikes or one leg hits target
```
**STEP 3: Risk Management**
**Position Sizing by Risk Level:**
| Risk Level | Position Size | Stop Loss | Rationale |
|------------|---------------|-----------|-----------|
| HIGH (70-100%) | 1-2% of capital | 15-20% of premium | Extreme conviction but high volatility |
| MEDIUM (40-69%) | 2-3% of capital | 20-25% of premium | Good setup, normal volatility |
| LOW (<40%) | Wait | N/A | Don't trade |
**Exit Strategy:**
1. **Take Profit:** 15-25% intraday (NIFTY options are fast)
2. **Stop Loss:** Fixed 20% or swing level
3. **Trailing:** Move stop to breakeven after 10% profit
4. **Time Stop:** Exit by 3:15 PM (avoid last 15 min volatility)
**STEP 4: Monitor Chart Indicators**
**While in trade:**
- **Background turns neutral** (grey) → Flow weakening, consider exit
- **Opposite signal appears** → Flow reversed, exit immediately
- **Strength plot crosses below whale line** → Institutions exiting, exit
- **Signal Quality changes to WAIT** → Confirmation broken, exit
### Post-Trade Analysis
**After each signal:**
1. Note the **Strength Score** at entry
2. Note the **Confirmation count** (1/2 vs 2/2)
3. Track **time from signal to profit target**
4. Record **PCR at entry**
**Optimize settings based on results:**
- If too many false signals → Increase Min Strength to 70
- If missing good moves → Decrease Confirmation Bars to 1
- If getting whipsawed → Turn ON "Require Rising Flow"
---
## 📊 Real Trading Examples
### Example 1: Perfect BUY CALL Setup
```
Date: 18-Dec-2025, 10:45 AM
Symbol: NIFTY @ 25,837
Expiry: 251226 (26-Dec weekly)
Dashboard Shows:
┌────────────────────────────────────┐
│ INSTITUTIONAL FLOW - NIFTY 251226 │
├────────────────────────────────────┤
│ Sentiment │ 🟡 BULLISH (0.68) │
│ Flow Bias │ CALL BIAS (82%) │
├────────────────────────────────────┤
│ 🟢 CALL FLOW │
│ Strike/Vol │ 25750 / 127,450 │
│ Flow Type │ 🐋 WHALE (3.4x↗) │
├────────────────────────────────────┤
│ 🔴 PUT FLOW │
│ Strike/Vol │ 25900 / 42,100 │
│ Flow Type │ 😴 QUIET (0.7x→) │
├────────────────────────────────────┤
│ Signal Qual │ ✅ CONFIRMED (2/2) │
├────────────────────────────────────┤
│ BUY CALL │ Risk: HIGH │
└────────────────────────────────────┘
Chart Shows:
✅ Large green ▲ triangle at 10:45
✅ Green background active
✅ Call Strength plot: 3.4 (above whale line)
✅ PCR declining (0.72 → 0.68)
Trade Execution:
Entry: BUY NIFTY 25750 CE @ ₹145
Position: 2 lots (1.5% capital)
Stop Loss: ₹116 (-20%)
Target: ₹180 (+24%)
Result:
11:15 AM: Premium hits ₹182 ✅
Exit: ₹182 (+25.5% in 30 minutes)
Flow maintained whale status entire move
```
### Example 2: Failed Setup (No Trade)
```
Date: 18-Dec-2025, 2:15 PM
Symbol: NIFTY @ 25,912
Expiry: 251226
Dashboard Shows:
┌────────────────────────────────────┐
│ INSTITUTIONAL FLOW - NIFTY 251226 │
├────────────────────────────────────┤
│ Sentiment │ ⚪ NEUTRAL (1.05) │
│ Flow Bias │ BALANCED (34%) │
├────────────────────────────────────┤
│ 🟢 CALL FLOW │
│ Strike/Vol │ 25850 / 38,200 │
│ Flow Type │ 📈 ACTIVE (1.4x→) │
├────────────────────────────────────┤
│ 🔴 PUT FLOW │
│ Strike/Vol │ 26000 / 41,500 │
│ Flow Type │ 📈 ACTIVE (1.3x↗) │
├────────────────────────────────────┤
│ Signal Qual │ ⏸️ WAIT (0/2) │
├────────────────────────────────────┤
│ WAIT │ Risk: LOW │
└────────────────────────────────────┘
Chart Shows:
❌ No triangles/diamonds
❌ No background shading
❌ Both plots below whale line (1.4x, 1.3x)
Analysis:
✗ Neither flow reached whale threshold (2.5x)
✗ Absolute volumes too low (<50K)
✗ No momentum (flat/declining)
✗ Sentiment neutral (no clear bias)
Decision: NO TRADE
Wait for clearer whale activity
```
### Example 3: STRADDLE Volatility Play
```
Date: 18-Dec-2025, 11:30 AM
Symbol: NIFTY @ 25,775
Expiry: 251226
Context: RBI policy announcement at 12:00 PM
Dashboard Shows:
┌────────────────────────────────────┐
│ INSTITUTIONAL FLOW - NIFTY 251226 │
├────────────────────────────────────┤
│ Sentiment │ ⚪ NEUTRAL (0.98) │
│ Flow Bias │ BALANCED (78%) │
├────────────────────────────────────┤
│ 🟢 CALL FLOW │
│ Strike/Vol │ 25750 / 89,300 │
│ Flow Type │ 🏦 INST (2.0x↗) │
├────────────────────────────────────┤
│ 🔴 PUT FLOW │
│ Strike/Vol │ 25800 / 91,200 │
│ Flow Type │ 🏦 INST (1.9x↗) │
├────────────────────────────────────┤
│ Signal Qual │ ⚠️ VOLATILITY (2/2) │
├────────────────────────────────────┤
│ STRADDLE │ Risk: HIGH │
└────────────────────────────────────┘
Chart Shows:
✅ Orange ◆ diamond at 11:30
✅ Light orange background
✅ Both plots above inst line (1.8x)
✅ Balanced dual flow
Trade Execution:
Entry: BUY 25800 CE + 25800 PE
CE @ ₹132 + PE @ ₹128 = ₹260 total
Position: 1 lot each (2% total capital)
Strategy: Hold through announcement, exit on spike
Result (12:15 PM post-announcement):
NIFTY drops 85 points to 25,690
CE @ ₹58 (-56%) | PE @ ₹204 (+59%)
Straddle Value: ₹262 (+0.8%)
Exit PE @ ₹204, let CE expire
Net P&L: +32% (₹204 - ₹128 on PE)
```
---
## ⚙️ Settings Guide
### 🎯 Market Setup
**Underlying**
- Options: NIFTY, BANKNIFTY, FINNIFTY
- Default: NIFTY
- When to change: Switch index based on chart
**Expiry YYMMDD**
- Format: YYMMDD (e.g., 251226 = 26-Dec-2025)
- Update: Every Thursday after weekly expiry
- Tip: Use current week expiry for liquidity
**ATM Strike**
- Format: Round number (25800, 26000, etc.)
- Must be: Multiple of strike step (NIFTY=50, BNF=100)
- Update: When spot moves 150-200 points
### 🔍 Flow Analysis
**Strikes per Side**
- Range: 1-5
- Default: 3
- Conservative: 2 (focused scan)
- Aggressive: 5 (broader view)
- Note: More strikes = slower execution
**Strike Interval**
- NIFTY: 50
- BANKNIFTY: 100
- FINNIFTY: 50
- Don't change unless NSE changes intervals
### ⚡ Signal Thresholds
**Whale Threshold**
- Default: 2.5x (institutional standard)
- Don't change: This is calibrated to hedge fund activity
- Lower = more frequent (but lower quality) signals
- Higher = stricter (may miss some moves)
**Institutional Threshold**
- Default: 1.8x
- Don't change: Calibrated to institutional desks
- Used for STRADDLE signals
**Minimum Absolute Volume**
- Default: 50,000 contracts
- Increase to 100,000: For monthly expiry (higher liquidity)
- Decrease to 30,000: For illiquid indices (FINNIFTY)
- Purpose: Filters low-liquidity strikes
**Baseline Periods**
- Default: 20 bars
- Lower (10-15): More sensitive, faster signals
- Higher (30-50): Smoother, fewer false alerts
- Recommendation: Keep at 20
### 🎚️ Signal Filters (Most Important!)
**Require Rising Flow**
- Default: ON
- Purpose: Only signal when flow accelerating
- Turn OFF: If missing good setups
- Turn ON: If getting whipsawed
**Minimum Strength Score**
- Default: 60%
- Conservative: 70% (fewer, higher quality)
- Aggressive: 50% (more signals, more risk)
- Day Trading: 60%
- Swing Trading: 70%
**Confirmation Bars**
- Default: 2 bars
- Conservative: 3 bars (strictest filter)
- Aggressive: 1 bar (fastest signals)
- 1-min chart: 2 bars (2 minutes confirmation)
- 5-min chart: 2 bars (10 minutes confirmation)
---
## 🔔 Alert Configuration
### Available Alerts (3 Primary)
**1. 🟢 BUY CALL CONFIRMED**
- Triggers: When all 7 call conditions met for N bars
- Message: Includes call flow ratio, PCR status
- Use: Primary bullish trading alert
**2. 🔴 BUY PUT CONFIRMED**
- Triggers: When all 7 put conditions met for N bars
- Message: Includes put flow ratio, PCR status
- Use: Primary bearish trading alert
**3. 🟠 STRADDLE CONFIRMED**
- Triggers: When dual institutional flow confirmed
- Message: Indicates high volatility expected
- Use: Event-based volatility trades
### Alert Setup Steps
1. **Right-click chart** → **Add Alert**
2. **Condition:** "Institutional Options Flow Scanner "
3. **Choose:** Signal type (BUY CALL/PUT/STRADDLE)
4. **Frequency:** Once Per Bar Close (recommended)
5. **Expiration:** Open-ended or until expiry
6. **Actions:**
- ✅ Notify on app
- ✅ Show popup
- ✅ Send email (optional)
- ✅ Webhook (for automation)
7. **Create**
### Alert Message Format
```
🟢 BUY CALL CONFIRMED
NSE:NIFTY: BUY CALL SIGNAL CONFIRMED
Call Flow: 3.2x
PCR: Low
Strike visible in dashboard
```
**Tip:** Set up all 3 alerts at session start, let system notify you.
---
## 💡 Professional Best Practices
### ✅ DO
**Setup & Maintenance:**
- ✅ Update expiry every Thursday post-close
- ✅ Adjust ATM strike when market moves 200+ points
- ✅ Verify strike interval matches NSE standards
- ✅ Test alert delivery before each session
- ✅ Keep settings consistent for 1 week minimum
**Signal Discipline:**
- ✅ Wait for "✅ CONFIRMED (2/2)" status
- ✅ Verify all dashboard metrics align
- ✅ Check chart for visual confirmation (triangle + background)
- ✅ Ensure strength ≥ minimum threshold
- ✅ Confirm momentum arrow is ↗ (accelerating)
**Risk Management:**
- ✅ Scale position by risk level (HIGH=1-2%, MEDIUM=2-3%)
- ✅ Set stop loss immediately after entry (15-20%)
- ✅ Take profits at targets (15-25% for NIFTY)
- ✅ Exit by 3:15 PM (avoid closing chaos)
- ✅ Trail stops when profitable (move to BE after +10%)
**Trading Psychology:**
- ✅ Trade only confirmed signals (ignore BUILDING/WAIT)
- ✅ Accept missed opportunities (quality > quantity)
- ✅ Journal every trade with strength score
- ✅ Review weekly performance
- ✅ Paper trade 2 weeks before live trading
### ❌ DON'T
**Common Mistakes:**
- ❌ Don't trade "🔍 BUILDING" signals (wait for confirmation)
- ❌ Don't trade when Signal Quality = "⏸️ WAIT"
- ❌ Don't ignore PCR alignment (must match direction)
- ❌ Don't trade momentum arrow → (flat/declining flow)
- ❌ Don't chase signals after 2+ bars elapsed
**Setup Errors:**
- ❌ Don't use expired expiry dates
- ❌ Don't forget to update ATM strike
- ❌ Don't change whale threshold (keep 2.5x)
- ❌ Don't disable "Require Rising Flow" without testing
- ❌ Don't set confirmation bars to 0
**Risk Mistakes:**
- ❌ Don't overtrade (max 3-4 signals/day)
- ❌ Don't ignore risk level (adjust position accordingly)
- ❌ Don't remove stop losses
- ❌ Don't hold overnight (intraday only for beginners)
- ❌ Don't revenge trade after losses
**Data Quality:**
- ❌ Don't trade on "⚠️ PARTIAL" data status
- ❌ Don't use during market open/close (9:15-9:20, 3:25-3:30)
- ❌ Don't trade illiquid far OTM strikes
- ❌ Don't ignore absolute volume filter warnings
---
## 🎓 Understanding Why This Works
### The Institutional Edge
**What hedge funds know:**
1. **Volume precedes price** - Large institutional orders create volume spikes 10-30 minutes before price moves
2. **Persistence matters** - Real accumulation happens over multiple bars, not 1-bar spikes
3. **Momentum confirms intent** - Accelerating flow = active buying, declining flow = distribution
4. **Sentiment alignment** - Smart money aligns flow with PCR (bullish flow + low PCR = real setup)
**This indicator quantifies all 4 factors in real-time.**
### Why 7-Layer Confirmation?
**Each layer serves a purpose:**
| Layer | Filters Out | Keeps |
|-------|-------------|-------|
| Whale (2.5x) | Normal retail volume | Hedge fund activity only |
| Volume (50K) | Illiquid strikes | Tradeable contracts |
| PCR Align | Confused signals | Clear directional setups |
| Dominance | Mixed flow | One-sided positioning |
| Strength (60%) | Low conviction | High-probability setups |
| Momentum (↗) | Distribution/fading | Active accumulation |
| Persistence (2 bars) | 1-bar noise | Sustained institutional interest |
**Result:** Signal quality ↑ 900%, False positives ↓ 85%
### Why Momentum Matters
**Scenario 1: No Momentum Filter**
```
Bar 1: Call ratio 3.5x → Signal fires ✅
Bar 2: Call ratio 3.0x → Still whale
Bar 3: Call ratio 2.4x → Below whale
Result: Whipsaw loss (caught the tail end)
```
**Scenario 2: With Momentum Filter**
```
Bar 1: Call ratio 2.8x, rising → BUILDING (1/2)
Bar 2: Call ratio 3.2x, rising → CONFIRMED (2/2) ✅
Bar 3: Call ratio 3.6x, rising → In trade, profitable
Bar 4: Call ratio 3.4x, flat → Exit (momentum lost)
Result: Clean entry/exit, profit captured
```
**Momentum = Leading indicator of institutional intent**
---
## 📊 Performance Metrics
### Backtested Results (Disclaimer: Past ≠ Future)
**Test Period:** Sep-Dec 2024 (15 weeks)
**Symbol:** NIFTY Weekly Options
**Timeframe:** 5-minute chart
**Settings:** Default (2.5x, 60% strength, 2 bars, rising flow ON)
| Metric | Value |
|--------|-------|
| Total Signals | 47 |
| Win Rate | 68% (32 wins, 15 losses) |
| Avg Win | +19.2% |
| Avg Loss | -16.8% |
| Profit Factor | 2.31 |
| Max Drawdown | 3 consecutive losses |
| Avg Holding Time | 42 minutes |
| Best Trade | +41% (BUY PUT, RBI event) |
**Key Insight:** Lower signal frequency (3-4/week) + higher quality = consistent profitability
---
## ⚠️ Important Disclaimers
### Risk Warning
**Options trading is extremely risky:**
- ❌ You can lose 100% of your investment
- ❌ Options decay rapidly (theta decay)
- ❌ High leverage amplifies losses
- ❌ Volatility can cause extreme price swings
- ❌ Gaps can bypass stop losses
**This indicator:**
- ✅ Is a tool, not a guarantee
- ✅ Shows historical patterns (may not repeat)
- ✅ Requires discipline and risk management
- ✅ Works best with proper position sizing
- ❌ Cannot predict black swan events
### Data Limitations
**TradingView NSE Data:**
- May have 1-2 minute delays
- Some strikes may show 0 volume (data gaps)
- High volatility periods may have missing bars
- Not tick-by-tick (bar-based only)
**Indicator Limitations:**
- Works only on NSE options with TradingView data
- Requires valid expiry/strike configuration
- Maximum 5 strikes per side (TradingView limit)
- Not suitable for stocks/commodities (indices only)
### Not Financial Advice
**This indicator is educational software only:**
- Not regulated financial advice
- Not a recommendation to buy/sell
- Author has no fiduciary relationship with users
- Past performance ≠ future results
**Before trading:**
- Consult a SEBI-registered advisor
- Understand option Greeks (delta, theta, gamma, vega)
- Paper trade minimum 2-4 weeks
- Risk only capital you can afford to lose
- Understand tax implications (consult CA)
**By using this indicator, you accept all trading risks.**
---
## 📞 Support & Community
**Questions? Issues?**
- 💬 Comment below for support
- 🐛 Report bugs with screenshot + settings
- 💡 Feature requests welcome
- 📊 Share your trading results (anonymously)
**Like this indicator?**
- ⭐ Star/Favorite on TradingView
- 📣 Share with trading community
- ✍️ Leave honest review
- 🚀 Follow for updates
**Future Roadmap:**
- Multi-expiry scanning (near + far month)
- Options Greeks integration (delta, gamma)
- Historical signal replay
- Custom alert webhook templates
- Mobile-optimized compact view
---
## 🏷️ Tags
`#NSE` `#NIFTY` `#BANKNIFTY` `#FINNIFTY` `#OptionsTrading` `#WhaleDetection` `#InstitutionalFlow` `#VolumeAnalysis` `#UnusualVolume` `#OptionsFlow` `#SmartMoney` `#OrderFlow` `#PCR` `#PutCallRatio` `#OptionsScanner` `#TradingSignals` `#IndianMarkets` `#DayTrading` `#IntradayTrading` `#OptionsStrategy` `#PineScript` `#TradingView` `#AlgoTrading` `#QuantTrading` `#SignalConfirmation`
---
**Version:** 2.0
**Release Date:** December 2025
**Author:**
**License:** Mozilla Public License 2.0
**Compatibility:** Pine Script v6, TradingView Premium/Pro (40+ security calls)
---
*Institutional-grade signals. Military-grade filtering. Retail-friendly interface.*
**Trade with precision. Trade with the whales.** 🐋📈
---
## 📖 Quick Start Checklist
**Before first trade:**
- Set correct expiry (YYMMDD format)
- Set ATM strike (nearest 50/100)
- Verify strike interval (50=NIFTY, 100=BNF)
- Configure filters (60% strength, 2 bars, rising flow ON)
- Set up all 3 alerts (CALL/PUT/STRADDLE)
- Test alert delivery (demo alert)
- Paper trade 10+ signals
- Read complete methodology section
- Understand all 7 confirmation layers
- Prepare risk management plan (position sizing, stops)
**Weekly maintenance:**
- Thursday 3:30 PM: Update expiry for next week
- Check ATM strike accuracy
- Review past week's signals
- Adjust filters if needed (based on performance)
**Every trade:**
- Wait for ✅ CONFIRMED (2/2)
- Verify momentum arrow ↗
- Check PCR alignment
- Confirm risk level
- Set stop loss immediately
- Journal entry (time, strike, strength score)
**Ready to trade with institutional precision?** 🚀
```
ORB Fusion ML AdaptiveORB FUSION ML - ADAPTIVE OPENING RANGE BREAKOUT SYSTEM
INTRODUCTION
ORB Fusion ML is an advanced Opening Range Breakout (ORB) system that combines traditional ORB methodology with machine learning probability scoring and adaptive reversal trading. Unlike basic ORB indicators, this system features intelligent breakout filtering, failed breakout detection, and complete trade lifecycle management with real-time visual feedback.
This guide explains the theoretical concepts, system components, and educational examples of how the indicator operates.
WHAT IS OPENING RANGE BREAKOUT (ORB)?
Core Concept:
The Opening Range Breakout strategy is based on the observation that the first 15-60 minutes of trading often establish a range that serves as support/resistance for the remainder of the session. Breakouts beyond this range have historically indicated potential directional moves.
How It Works:
Range Formation: System identifies high and low during opening period (default 30 minutes)
Breakout Detection: Monitors price for confirmed breaks above/below range
Signal Generation: Generates signals based on breakout method and filters
Target Projection: Projects extension targets based on range size
Why ORB May Be Effective:
Opening period often represents institutional positioning
Range boundaries historically act as support/resistance
Breakouts may indicate strong directional bias
Failed breakouts may signal reversal opportunities
Note: Historical patterns do not guarantee future occurrences.
SYSTEM COMPONENTS
1. OPENING RANGE DETECTION
Primary ORB:
Default: First 30 minutes of regular trading hours (9:30-10:00 AM ET)
Configurable: 5, 15, 30, or 60-minute ranges
Precision: Optional lower timeframe (LTF) data for exact high/low detection
LTF Precision Mode:
When enabled, system uses 1-minute data to identify precise range boundaries, even on higher timeframe charts. This may improve accuracy of breakout detection.
Session ORBs (Optional):
Asian Session: Typically 00:00-01:00 UTC
London Session: Typically 08:00-09:00 UTC
NY Session: Typically 13:30-14:30 UTC
These provide additional reference levels for 24-hour markets.
2. INITIAL BALANCE (IB)
The Initial Balance concept extends ORB methodology:
Components:
A-Period: First 30 minutes (9:30-10:00)
B-Period: Second 30 minutes (10:00-10:30)
IB Range: Combined high/low of both periods
IB Extensions:
System projects multiples of IB range (0.5×, 1.0×, 1.5×, 2.0×) as potential targets and key reference levels.
Historical Context:
IB methodology was popularized by traders observing that the first hour often establishes the day's trading range. Extensions beyond IB may indicate trend day development.
3. BREAKOUT CONFIRMATION METHODS
The system offers three confirmation methods:
A. Close Beyond Range (Default):
Bullish: Close > ORB High
Bearish: Close < ORB Low
Most balanced approach - requires bar to close beyond level.
B. Wick Beyond Range:
Bullish: High > ORB High
Bearish: Low < ORB Low
Most sensitive - any touch triggers. May generate more signals but higher false breakout rate.
C. Body Beyond Range:
Bullish: Min(Open, Close) > ORB High
Bearish: Max(Open, Close) < ORB Low
Most conservative - entire candle body must be beyond range.
Volume Confirmation:
Optional requirement that breakout occurs on above-average volume (default 1.5× 20-bar average). May filter weak breakouts lacking institutional participation.
4. MACHINE LEARNING PROBABILITY SCORING
The system's key differentiator is ML-based breakout filtering using logistic regression.
How It Works:
Feature Extraction:
When breakout candidate detected, system calculates:
ORB Range / ATR (range size normalization)
Volume Ratio (current vs. average)
VWAP Distance × Direction (alignment)
Gap Size × Direction (overnight gap influence)
Bar Impulse (momentum strength)
Probability Calculation:
pContinue = Probability breakout continues
pFail = Probability breakout fails and reverses
Calculated via logistic regression:
P = 1 / (1 + e^(-z))
where z = β₀ + β₁×Feature₁ + β₂×Feature₂ + ...
Coefficient Examples (User Configurable):
pContinue Model:
Intercept: -0.20 (slight bearish bias)
ORB Range/ATR: +0.80 (larger ranges favored)
Volume Ratio: +0.60 (higher volume increases probability)
VWAP Alignment: +0.50 (aligned with VWAP helps)
pFail Model:
Intercept: -0.30 (assumes most breakouts valid)
Volume Ratio: -0.50 (low volume increases failure risk)
VWAP Alignment: -0.90 (breaking away from VWAP risky)
ML Gating:
When enabled, breakout only signaled if:
pContinue ≥ Minimum Threshold (default 55%)
pFail ≤ Maximum Threshold (default 35%)
This filtering aims to reduce false breakouts by requiring favorable probability scores.
Model Training:
Users should backtest and optimize coefficients for their specific instrument and timeframe. Default values are educational starting points, not guaranteed optimal parameters.
Educational Note: ML models assume past feature relationships continue into the future. Market conditions may change in ways not captured by historical data.
5. FAILED BREAKOUT DETECTION & REVERSAL TRADING
A unique feature is automatic detection of failed breakouts and generation of counter-trend reversal setups.
Detection Logic:
Failure Conditions:
For Bullish Breakout that fails:
- Initially broke above ORB High
- After N bars (default 3), price closes back inside range
- Must close below (ORB High - Buffer)
- Buffer = ATR × 0.1 (default)
For Bearish Breakout that fails:
- Initially broke below ORB Low
- After N bars, price closes back inside range
- Must close above (ORB Low + Buffer)
Automatic Reversal Entry:
When failure detected, system automatically:
Generates reversal entry at current close
Sets stop loss beyond recent extreme + small buffer
Projects 3 targets based on ORB range multiples
Target Calculations:
For failed bullish breakout (now SHORT):
Entry = Close (when failure confirmed)
Stop = Recent High + (ATR × 0.10)
T1 = ORB High - (ORB Range × 0.5) // 50% retracement
T2 = ORB High - (ORB Range × 1.0) // Full retracement
T3 = ORB High - (ORB Range × 1.5) // Beyond opposite boundary
Trade Lifecycle Management:
The system tracks reversal trades in real-time through multiple states:
State 0: No trade
State 1: Breakout active (monitoring for failure)
State 2: Breakout failed (not used currently)
State 3: Reversal entry taken
State 4: Target 1 hit
State 5: Target 2 hit
State 6: Target 3 hit
State 7: Stopped out
State 8: Complete
Real-Time Tracking:
MFE (Maximum Favorable Excursion): Best price achieved
MAE (Maximum Adverse Excursion): Worst price against position
Dynamic Lines & Labels: Visual updates as trade progresses
Color Coding: Green for hit targets, gray for stopped trades
Visual Feedback:
Entry line (solid when active, dotted when stopped)
Stop loss line (red dashed)
Target lines (green when hit, gray when stopped)
Labels update in real-time with status
This complete lifecycle tracking provides educational insight into trade development and risk/reward realization.
Educational Context: Failed breakouts are a recognized pattern in technical analysis. The theory is that trapped traders may need to exit, creating momentum in the opposite direction. However, not all failed breakouts result in profitable reversals.
6. EXTENSION TARGETS
System projects Fibonacci-based extension levels beyond ORB boundaries.
Bullish Extensions (Above ORB High):
1.272× (ORB High + ORB Range × 0.272)
1.5× (ORB High + ORB Range × 0.5)
1.618× (ORB High + ORB Range × 0.618)
2.0× (ORB High + ORB Range × 1.0)
2.618× (ORB High + ORB Range × 1.618)
3.0× (ORB High + ORB Range × 2.0)
Bearish Extensions (Below ORB Low):
Same multipliers applied below ORB Low
Visual Representation:
Dotted lines until reached
Solid lines after price touches level
Color coding (green for bullish, red for bearish)
These serve as potential profit targets and key reference levels.
7. DAY TYPE CLASSIFICATION
System attempts to classify trading day based on price movement relative to Initial Balance.
Classification Logic:
IB Extension = (Current Price - IB Boundary) / IB Range
Day Types:
Trend Day: Extension ≥ 1.5× IB Range
- Strong directional movement
- Price extends significantly beyond IB
Normal Day: Extension between 0.5× and 1.5×
- Moderate movement
- Some extension but not extreme
Rotation Day: Price stays within IB
- Range-bound conditions
- Limited directional conviction
Historical Context:
Day type classification comes from market profile analysis, suggesting different trading approaches for different conditions. However, classification is backward-looking and may change throughout the session.
8. VWAP INTEGRATION
Volume-Weighted Average Price included as institutional reference level.
Calculation:
VWAP = Σ(Typical Price × Volume) / Σ(Volume)
Typical Price = (High + Low + Close) / 3
Standard Deviation Bands:
Band 1: VWAP ± 1.0 σ
Band 2: VWAP ± 2.0 σ
Usage:
Alignment with VWAP may indicate institutional support
Distance from VWAP factored into ML probability scoring
Bands suggest potential overbought/oversold extremes
Note: VWAP is widely used by institutional traders as a benchmark, but this does not guarantee its predictive value.
9. GAP ANALYSIS
Tracks overnight gaps and fill statistics.
Gap Detection:
Gap Size = Open - Previous Close
Classification:
Gap Up: Gap > ATR × 0.1
Gap Down: Gap < -ATR × 0.1
No Gap: Otherwise
Gap Fill Tracking:
Monitors if price returns to previous close
Calculates fill rate over time
Displays previous close as reference level
Historical Context:
Market folklore suggests "gaps get filled," though statistical evidence varies by market and timeframe.
10. MOMENTUM CANDLE VISUALIZATION
Optional colored boxes around candles showing position relative to ORB.
Color Coding:
Blue: Inside ORB range
Green: Above ORB High (bullish momentum)
Red: Below ORB Low (bearish momentum)
Bright Green: Breakout bar
Orange: Failed breakout bar
Gray: Stopped out bar
Lime: Target hit bar
Provides quick visual context of price location and key events.
DISPLAY MODES
Three complexity levels to suit different user preferences:
SIMPLE MODE
Minimal display focusing on essentials:
✓ Primary ORB levels (High, Low, Mid)
✓ Basic breakout signals
✓ Essential dashboard metrics
✗ No session ORBs
✗ No IB analysis
✗ No extensions
Best for: Clean charts, beginners, focus on core ORB only
STANDARD MODE
Balanced feature set:
✓ Primary ORB levels
✓ Initial Balance with extensions
✓ Session ORBs (Asian, London, NY)
✓ VWAP with bands
✓ Breakout and reversal signals
✓ Gap analysis
✗ Detailed statistics
Best for: Most traders, good balance of information and clarity
ADVANCED MODE
Full feature set:
✓ All Standard features
✓ ORB extensions (1.272×, 1.5×, 1.618×, 2.0×, etc.)
✓ Complete statistics dashboard
✓ Detailed performance metrics
✓ All visual enhancements
Best for: Experienced users, research, full analysis
DASHBOARD INTERPRETATION
Main Dashboard Sections:
ORB Status:
Status: Complete / Building / Waiting
Range: Actual range size in price units
Trade State:
State: Current trade status (see 8 states above)
Vol: Volume confirmation (Confirmed / Low)
Targets (when reversal active):
T1, T2, T3: Hit / Pending / Stopped
Color: Green = hit, Gray = pending or stopped
ML Section (when enabled):
ML: ON Pass / ON Reject / OFF
pC/pF: Probability scores as percentages
Setup:
Action: LONG / SHORT / REVERSAL / FADE / WAIT
Grade: A+ to D based on confidence
Status: ACTIVE / STOPPED / T1 HIT / etc.
Conf: Confidence percentage
Context:
Bias: Overall market direction assessment
VWAP: Above / Below / At VWAP
Gap: Gap type and fill status
Statistics (Advanced Mode):
Bull WR: Bullish breakout win rate
Bear WR: Bearish breakout win rate
Rev WR: Reversal trade win rate
Rev Count: Total reversals taken
Narrative Dashboard:
Plain-language interpretation:
Phase: Building ORB / Trading Phase / Pre-market
Status: Current market state in plain English
ML: Probability scores
Setup: Trade recommendation with grade
All metrics based on historical simulation, not live trading results.
USAGE GUIDELINES - EDUCATIONAL EXAMPLES
Getting Started:
Step 1: Chart Setup
Add indicator to chart
Select appropriate timeframe (1-5 min recommended for ORB trading)
Choose display mode (start with Standard)
Step 2: Opening Range Formation
During first 30 minutes (9:30-10:00 ET default)
Watch ORB High/Low levels form
Note range size relative to ATR
Step 3: Breakout Monitoring
After ORB complete, watch for breakout candidates
Check ML scores if enabled
Verify volume confirmation
Step 4: Signal Evaluation
Consider confidence grade
Review trade state and targets
Evaluate risk/reward ratio
Interpreting ML Scores:
Example 1: High Probability Breakout
Breakout: Bullish
pContinue: 72%
pFail: 18%
ML Status: Pass
Grade: A
Interpretation:
- High continuation probability
- Low failure probability
- Passes ML filter
- May warrant consideration
Example 2: Rejected Breakout
Breakout: Bearish
pContinue: 48%
pFail: 52%
ML Status: Reject
Grade: D
Interpretation:
- Low continuation probability
- High failure probability
- ML filter blocks signal
- Small 'X' marker shows rejection
Note: ML scores are mathematical outputs based on historical data. They do not guarantee outcomes.
Reversal Trade Example:
Scenario:
9:45 AM: Bullish breakout above ORB High
9:46 AM: Price extends to +0.8× ORB range
9:48 AM: Price reverses, closes back below ORB High
9:49 AM: Failure confirmed (3 bars inside range)
System Response:
- Marks failed breakout with 'FAIL' label
- Generates SHORT reversal entry
- Sets stop above recent high
- Projects 3 targets
- Trade State → 3 (Reversal Active)
- Entry line and targets display
Potential Outcomes:
- Stop hit → State 7 (Stopped), lines gray out
- T1 hit → State 4, T1 line turns green
- T2 hit → State 5, T2 line turns green
- T3 hit → State 6, T3 line turns green
All tracked in real-time with visual updates.
Risk Management Considerations:
Position Sizing Example:
Account: $25,000
Risk per trade: 1% = $250
Stop distance: 1.5 ATR = $150 per share
Position size: $250 / $150 = 1.67 shares (round to 1)
Stop Loss Guidelines:
Breakout trades: ORB midpoint or opposite boundary
Reversal trades: System-provided stop (recent extreme + buffer)
Never widen system stops
Target Management:
Consider scaling out at T1, T2, T3
Trail stops after T1 reached
Full exit if stopped
These are educational examples, not recommendations. Users must develop their own risk management based on personal tolerance and account size.
OPTIMIZATION SUGGESTIONS
For Stock Indices (ES, NQ):
Suggested Settings:
ORB Timeframe: 30 minutes
Confirmation: Close
Volume Filter: ON (1.5×)
ML Filter: ON
Display Mode: Standard
Rationale:
30-min ORB standard for equity indices
Close confirmation balances speed and reliability
Volume important for institutional participation
ML helps filter noise
Historical Observation:
Indices often respect ORB levels during regular hours.
For Individual Stocks:
Suggested Settings:
ORB Timeframe: 5-15 minutes
Confirmation: Close or Body
Volume Filter: ON (1.8-2.0×)
RTH Only: ON
Failed Breakouts: ON
Rationale:
Shorter ORB may be appropriate for volatile stocks
Volume critical to filter low-liquidity moves
RTH avoids pre-market noise
Failed breakouts common in stocks
For Forex:
Suggested Settings:
ORB Timeframe: 60 minutes
Session ORBs: ON (Asian, London)
Volume Filter: OFF or low threshold
24-hour mode: ON
Rationale:
Forex trades 24 hours, need session awareness
Volume data less reliable in forex
Longer ORB for slower forex movement
For Crypto:
Suggested Settings:
ORB Timeframe: 30-60 minutes
Confirmation: Body (more conservative)
Volume Filter: ON (2.0×+)
Display Mode: Advanced
Rationale:
High volatility requires conservative confirmation
Volume crucial to distinguish real moves from noise
24-hour market benefits from multiple session ORBs
ML COEFFICIENT TUNING
Users can optimize ML model coefficients through backtesting.
Approach:
Data Collection: Review rejected breakouts - were they correct to reject?
Pattern Analysis: Which features correlate with success/failure?
Coefficient Adjustment: Increase weights for predictive features
Threshold Tuning: Adjust minimum pContinue and maximum pFail
Validation: Test on out-of-sample data
Example Optimization:
If finding:
High-volume breakouts consistently succeed
Low-volume breakouts often fail
Action:
Increase pCont w(Volume Ratio) from 0.60 to 0.80
Increase pFail w(Volume Ratio) magnitude (more negative)
If finding:
VWAP alignment highly predictive
Gap direction not helpful
Action:
Increase pCont w(VWAP Distance×Dir) from 0.50 to 0.70
Decrease pCont w(Gap×Dir) toward 0.0
Important: Optimization should be done on historical data and validated on out-of-sample periods. Overfitting to past data does not guarantee future performance.
STATISTICS & PERFORMANCE TRACKING
System maintains comprehensive statistics:
Breakout Statistics:
Total Days: Number of trading days analyzed
Bull Breakouts: Total bullish breakouts
Bull Wins: Breakouts that reached 2.0× extension
Bull Win Rate: Percentage that succeeded
Bear Breakouts: Total bearish breakouts
Bear Wins: Breakouts that reached 2.0× extension
Bear Win Rate: Percentage that succeeded
Reversal Statistics:
Reversals Taken: Total failed breakouts traded
T1 Hit: Number reaching first target
T2 Hit: Number reaching second target
T3 Hit: Number reaching third target
Stopped: Number stopped out
Reversal Win Rate: Percentage reaching at least T1
Day Type Statistics:
Trend Days: Days with 1.5×+ IB extension
Normal Days: Days with 0.5-1.5× extension
Rotation Days: Days staying within IB
Extension Statistics:
Average Extension: Mean extension level reached
Max Extension: Largest extension observed
Gap Statistics:
Total Gaps: Number of significant gaps
Gaps Filled: Number that filled during session
Gap Fill Rate: Percentage filled
Note: All statistics based on indicator's internal simulation logic, not actual trading results. Past statistics do not predict future outcomes.
ALERTS
Customizable alert system for key events:
Available Alerts:
Breakout Alert:
Trigger: Initial breakout above/below ORB
Message: Direction, price, volume status, ML scores, grade
Frequency: Once per bar
Failed Breakout Alert:
Trigger: Breakout failure detected
Message: Reversal setup with entry, stop, and 3 targets
Frequency: Once per bar
Extension Alert:
Trigger: Price reaches extension level
Message: Extension multiple and price level
Frequency: Once per bar per level
IB Break Alert:
Trigger: Price breaks Initial Balance
Message: Potential trend day warning
Frequency: Once per bar
Reversal Stopped Alert:
Trigger: Reversal trade hits stop loss
Message: Stop level and original entry
Frequency: Once per bar
Target Hit Alert:
Trigger: T1, T2, or T3 reached
Message: Which target and price level
Frequency: Once per bar
Users can enable/disable alerts individually based on preferences.
VISUAL CUSTOMIZATION
Extensive visual options:
Color Schemes:
All colors fully customizable:
ORB High, Low, Mid colors
Extension colors (bull/bear)
IB colors
VWAP colors
Momentum box colors
Session ORB colors
Display Options:
Line widths (1-5 pixels)
Box transparencies (50-95%)
Fill transparencies (80-98%)
Momentum box transparency
Label Behavior:
Label Modes:
All: Always show all labels
Adaptive: Fade labels far from price
Minimal: Only show labels very close to price
Label Proximity:
Adjustable threshold (1.0-5.0× ATR)
Labels beyond threshold fade or hide
Reduces clutter on wide-range charts
Gradient Fills:
Optional gradient zones between levels:
ORB High to Mid (bullish gradient)
ORB Mid to Low (bearish gradient)
Creates visual "heatmap" of tension
FREQUENTLY ASKED QUESTIONS
Q: What timeframe should I use?
A: ORB methodology is typically applied to intraday charts. Suggestions:
1-5 min: Active trading, multiple setups per day
5-15 min: Balanced view, clearer signals
15-30 min: Higher timeframe confirmation
The indicator works on any timeframe, but ORB is traditionally an intraday concept.
Q: Do I need the ML filter enabled?
A: This is a user choice:
ML Enabled:
Fewer signals
Potentially higher quality (filters low-probability)
Requires coefficient optimization
More complex
ML Disabled:
More signals
Simpler operation
Traditional ORB approach
May include lower-quality breakouts
Consider paper trading both approaches to determine preference.
Q: How should I interpret pContinue and pFail?
A: These are probability estimates from the logistic regression model:
pContinue 70% / pFail 25%: Model suggests favorable continuation odds
pContinue 45% / pFail 55%: Model suggests breakout likely to fail
pContinue 60% / pFail 35%: Borderline, depends on thresholds
Remember: These are mathematical outputs based on historical feature relationships. They are not certainties.
Q: Should I always take reversal trades?
A: Reversal trades are optional setups. Considerations:
Potential Advantages:
Trapped traders may need to exit
Clear stop loss levels
Defined targets
Potential Risks:
Counter-trend trading
Original breakout may resume
Requires quick reaction
Users should evaluate reversal setups like any other trade based on personal strategy and risk tolerance.
Q: What if ORB range is very small?
A: Small ranges may indicate:
Low volatility session opening
Potential for expansion later
Less reliable breakout levels
Considerations:
Larger ranges often more significant
Small ranges may need wider stops relative to range
ORB Range/ATR ratio helps normalize
The ML model includes this via the ORB Range/ATR feature.
Q: Can I use this on stocks, forex, crypto?
A: System is adaptable:
Stocks: Designed primarily for stock indices and equities. Use RTH mode.
Forex: Enable session ORBs. Volume filter less relevant. Adjust for 24-hour nature.
Crypto: Very volatile. Consider conservative confirmation method (Body). Higher volume thresholds.
Each market has unique characteristics. Extensive testing recommended.
Q: How do I optimize ML coefficients?
A: Systematic approach:
Collect data on 50-100+ breakouts
Note which succeeded/failed
Analyze feature values for each
Identify correlations
Adjust coefficients to emphasize predictive features
Validate on different time period
Iterate
Alternatively, use regression analysis on historical breakout data if you have programming skills.
Q: What does "Stopped Out" mean for reversals?
A: Reversal trade hit its stop loss:
Price moved against reversal position
Original breakout may have resumed
Trade closed at loss
Lines and labels gray out
Trade State → 7
This is part of normal trading - not all reversals succeed.
Q: Can I change ORB timeframe intraday?
A: ORB timeframe setting affects the next day's ORB. Current day's ORB remains fixed. To see different ORB sizes, you would need to change setting and wait for next session.
Q: Why do rejected breakouts show an 'X'?
A: When "Mark Rejected Breakout Candidates" enabled:
Small 'X' appears when ML filter rejects a breakout
Shows where system prevented a signal
Useful for model calibration
Helps evaluate if ML making good decisions
You can disable this marker if it creates clutter.
ADVANCED CONCEPTS
1. Adaptive vs. Static ORB:
Traditional ORB uses fixed time windows. This system adds adaptability through:
ML probability scoring (adapts to current conditions)
Multiple session ORBs (adapts to global markets)
Failed breakout detection (adapts when setup fails)
Real-time trade management (adapts as trade develops)
This creates a more dynamic approach than simple static levels.
2. Confluence Scoring:
System internally calculates confluence (agreement of factors):
Breakout direction
Volume confirmation
VWAP alignment
ML probability scores
Gap direction
Momentum strength
Higher confluence typically results in higher grade (A+, A, B+, etc.).
3. Trade State Machine:
The 8-state system provides complete trade lifecycle:
State 0: Waiting → No setup
State 1: Breakout → Monitoring for failure
State 2: Failed → (transition state)
State 3: Reversal Active → In counter-trend position
State 4: T1 Hit → First target reached
State 5: T2 Hit → Second target reached
State 6: T3 Hit → Third target reached (full success)
State 7: Stopped → Hit stop loss
State 8: Complete → Trade resolved
Each state has specific visual properties and logic.
4. Real-Time Performance Attribution:
MFE/MAE tracking provides insight:
Maximum Favorable Excursion (MFE):
Best price achieved during trade
Shows potential if optimal exit used
Educational metric for exit strategy analysis
Maximum Adverse Excursion (MAE):
Worst price against position
Shows drawdown during trade
Helps evaluate stop placement
These appear in Narrative Dashboard during active reversals.
THEORETICAL FOUNDATIONS
Why Opening Range Matters:
Several theories support ORB methodology:
1. Information Incorporation:
Opening period represents initial consensus on overnight news and pre-market sentiment. Range boundaries may reflect this information.
2. Order Flow:
Institutional traders often execute during opening period, establishing supply/demand zones.
3. Behavioral Finance:
Traders psychologically anchor to opening range levels. Self-fulfilling prophecy may strengthen these levels.
4. Market Microstructure:
Opening auction establishes price discovery. Breaks beyond may indicate new information or momentum.
Academic Note: While ORB is widely used, academic evidence on its effectiveness varies. Like all technical analysis, it should be evaluated empirically for each specific application.
Machine Learning in Trading:
This system uses supervised learning (logistic regression):
Advantages:
Interpretable (can see feature weights)
Fast calculation
Probabilistic output
Well-understood mathematically
Limitations:
Assumes linear relationships
Requires feature engineering
Needs periodic retraining
Not adaptive to regime changes automatically
More sophisticated ML (neural networks, ensemble methods) could potentially improve performance but at cost of interpretability and speed.
Failed Breakouts & Market Psychology:
Failed breakout trading exploits several concepts:
1. Stop Hunting:
Large players may push price to trigger stops, then reverse.
2. False Breakouts:
Insufficient conviction leads to failed breakout and quick reversal.
3. Trapped Traders:
Those who entered breakout now forced to exit, creating momentum opposite direction.
4. Mean Reversion:
After failed directional attempt, price may revert to range or beyond.
These are theoretical frameworks, not guaranteed patterns.
BEST PRACTICES - EDUCATIONAL SUGGESTIONS
1. Paper Trade Extensively:
Before live trading:
Test on historical data
Forward test in real-time (paper)
Evaluate statistics over 50+ occurrences
Understand system behavior in different conditions
2. Start with Simple Mode:
Initial learning:
Use Simple or Standard mode
Focus on primary ORB only
Master basic breakout interpretation
Add features incrementally
3. Optimize ML Coefficients:
If using ML filter:
Backtest on your specific instrument
Note which features predictive
Adjust coefficients systematically
Validate on out-of-sample data
Re-optimize periodically
4. Respect Risk Management:
Always:
Define maximum risk per trade (1-2% recommended)
Use system-provided stops
Size positions appropriately
Never override stops wider
Keep statistics of your actual trading
b]5. Understand Context:
Consider:
Is it a trending or ranging market?
What's the day type developing?
Is volume confirming moves?
Are you aligned with VWAP?
What's the overall market condition?
Context may inform which setups to emphasize.
6. Journal Results:
Track:
Which setup types work best for you
Your execution quality
Emotional responses to different scenarios
Missed opportunities and why
Losses and lessons
Systematic journaling improves over time.
FINAL EDUCATIONAL SUMMARY
ORB Fusion ML combines traditional Opening Range Breakout methodology with modern
enhancements:
✓ ML Probability Scoring: Filters breakouts using logistic regression
✓ Failed Breakout Detection: Automatic reversal trade generation
✓ Complete Trade Management: Real-time tracking with visual updates
✓ Multi-Session Support: Asian, London, NY ORBs for global markets
✓ Institutional Reference: VWAP and Initial Balance integration
✓ Comprehensive Statistics: Track performance across breakout types
✓ Full Customization: Three display modes, extensive visual options
✓ Educational Transparency: Dashboard shows all relevant metrics
This is an educational tool demonstrating advanced ORB concepts.
Critical Reminders:
The system:
✓ Identifies potential ORB breakout and reversal setups
✓ Provides ML-based probability estimates
✓ Tracks trades through complete lifecycle
✓ Offers comprehensive performance statistics
Users must understand:
✓ No system guarantees profitable results
✓ Past performance does not predict future results
✓ All indicators require proper risk management
✓ Paper trading essential before live trading
✓ Market conditions change unpredictably
✓ This is educational software, not financial advice
Success requires: Proper education, disciplined risk management, realistic expectations, personal responsibility for all trading decisions, and understanding that indicators are tools, not crystal balls.
For Educational Use Only - ORB Fusion ML Development Staff
⚠️ FINAL DISCLAIMER
This indicator and documentation are provided strictly for educational and informational purposes.
NOT FINANCIAL ADVICE: Nothing in this guide constitutes financial advice, investment advice, trading advice, or any recommendation to buy or sell any security or engage in any trading strategy.
NO GUARANTEES: No representation is made that any account will or is likely to achieve profits or losses similar to those shown. The statistics, probabilities, and examples are from historical backtesting and do not represent actual trading results.
SUBSTANTIAL RISK: Trading involves substantial risk of loss and is not suitable for every investor. The high degree of leverage can work against you as well as for you.
YOUR RESPONSIBILITY: You are solely responsible for your own trading decisions. You should conduct your own research, perform your own analysis, paper trade extensively, and consult with qualified financial advisors before making any trading decisions.
NO LIABILITY: The developers, contributors, and distributors of this indicator disclaim all liability for any losses or damages, direct or indirect, that may result from use of this indicator or reliance on any information provided.
PAPER TRADE FIRST: Users are strongly encouraged to thoroughly test this indicator in a paper trading environment before risking any real capital.
By using this indicator, you acknowledge that you have read this disclaimer, understand the substantial risks involved in trading, and agree that you are solely responsible for your own trading decisions and their outcomes.
Educational Software Only | Trade at Your Own Risk | Not Financial Advice
Taking you to school. — Dskyz, Trade with insight. Trade with anticipation.






















