Synthetic Liquidity HeatmapSYNTHETIC LIQUIDITY HEATMAP (SLH) v1.0
---
DESCRIPTION
The Synthetic Liquidity Heatmap (SLH) is an advanced statistical order book estimation tool that generates a visual representation of probable liquidity zones without requiring direct access to Level 2 market data. By analyzing price action, volume dynamics, and market microstructure patterns, SLH constructs a synthetic approximation of where institutional orders are likely concentrated.
---
KEY INNOVATIONS
1. CHL SPREAD MODEL (Close-High-Low)
Implements a logarithmic spread estimation model based on the relationship between close price and the high-low midrange. This microstructure approach captures the implicit bid-ask spread behavior embedded in OHLC data, providing insight into market maker activity and order flow imbalances.
2. VSA INTEGRATION (Volume Spread Analysis)
Optional Volume Spread Analysis mode weighs liquidity calculations by the product of volume and candle range. This identifies bars with significant effort (volume) relative to result (price movement), highlighting potential accumulation and distribution zones.
3. DYNAMIC LEVEL SPACING
Liquidity levels are spaced using ATR-based calculations, automatically adapting to current market volatility. This ensures relevant level placement across different instruments and timeframes without manual adjustment.
4. ACCUMULATIVE LIQUIDITY TRACKING
When price revisits the same level multiple times, contracts accumulate rather than creating duplicate zones. This mimics real order book behavior where resting orders stack at key price levels.
5. REAL-TIME HIT DETECTION
The system monitors when price reaches liquidity levels, terminating filled zones and maintaining only active resting liquidity. This provides a dynamic, evolving view of the synthetic order book.
---
MATHEMATICAL FOUNDATION
The CHL Spread Model is defined as:
CHL = √(4 × (ln(C) - M) × (ln(C) - M ))
Where:
- C is the closing price
- M = (ln(H) + ln(L)) / 2 is the log midrange
- M is the previous bar's log midrange
The State Factor adjusts liquidity intensity:
State Factor = max(0.2, 1.0 - (Z_spread × 0.15))
Where Z_spread is the z-score of the current spread relative to its moving average.
Liquidity distribution follows close position analysis:
Bid Strength = is_bullish ? (1 - close_position) × 0.7 + 0.3 : close_position × 0.7 + 0.3
Ask Strength = is_bullish ? close_position × 0.7 + 0.3 : (1 - close_position) × 0.7 + 0.3
---
APPLICATIONS
- Identify probable support and resistance zones based on synthetic order flow
- Visualize where institutional liquidity may be resting
- Anticipate potential reversal or breakout zones
- Complement existing Level 2 data with statistical estimation
- Analyze liquidity dynamics on instruments without accessible order book data
---
VISUAL REPRESENTATION
The heatmap displays:
- Green zones (Bids): Probable buy-side liquidity below current price
- Orange zones (Asks): Probable sell-side liquidity above current price
- Color intensity: Proportional to estimated contract concentration
- Level termination: Zones disappear when price "fills" the liquidity
---
AUTHOR
Name: Hector Octavio Piccone Pacheco
Indicator: Synthetic Liquidity Heatmap (SLH)
Version: 1.0
Date: 2025
Original Contributions:
- CHL-based spread estimation for liquidity inference
- Accumulative synthetic order book model
- ATR-adaptive level spacing system
- Real-time liquidity hit detection engine
- VSA-weighted liquidity distribution
---
DISCLAIMER
Trading involves substantial risk of loss. This indicator provides statistical estimations only and does not represent actual market depth or order book data. Past performance does not guarantee future results. Always conduct your own analysis and risk assessment.
---
ACCESS TO SRC
To request access to the SRC indicator, please contact me through:
Discord: octa_0001
Statistics
TRADE ORBIT:-TOP BOTTOM INDICATOR🔵 BUY TRADE (Bottom Reversal Entry)
Enter when the green triangle appears.
Stop Loss (SL)
Below the low of the signal candle
Or below the swing low (safer)
Target (TP)
Choose ANY:
3%–5% move
Next resistance level (red line)
Risk:Reward = 1:2 or 1:3
Position Size
Risk 2% of your capital per trade (written in rules box).
🔴 SELL TRADE (Top Reversal Entry)
Enter on the red triangle.
Stop Loss (SL)
Above the high of the signal candle
Or above swing high (safer)
Target (TP)
Choose any:
3%–5% downward move
Next support level (green line)
RR = 1:2 or 1:3
📊 BEST WAY TO USE
1. Use on 15m / 30m / 1h for intraday
2. Use on Daily for swing trading
3. Always trade WITH weekly trend (if enabled)
4. Combine with trendlines or EMA200 for extra accuracy
Price Levels ConstructorHello friends,
This is a multi-period OHLC level mapping tool that lets you build your own higher-timeframe levels directly on the chart - across up to 20 customizable period slots.
You choose which periods matter (Year, Half-Year, Quarter, Month, Week, Day, weekdays, etc.), how recent they should be, and which levels to show (Open/High/Mid/Low/Close).
The script then renders those levels with automatic stacking and clear label formatting, giving you a compact higher-timeframe map for intraday and swing trading.
🛠️ How It Works
Each selected period slot creates a period model with its own OHLC+Mid data.
For each active level type, the script draws the price level, tracks the correct H/L/C timestamps when needed, and generates a label consisting of:
The selected recency (Current, Previous, 2nd Previous, …)
The period name (e.g., Month, Q1, Monday)
The level type (O/H/Mid/L/C)
All levels are fed into a registry that merges levels at identical prices, stacks their labels vertically or horizontally, and displays only one rendered line per price with combined label text.
This produces clean clusters when multiple periods share the same level.
Global settings control left/right extensions, label compactness, label content (name, price, % distance), and stacking direction.
🔥 Key Features
20 period slots
Ability to specify period (31 options, from Year to various weekdays)
Ability to specify recency for each selected period (13 options)
5 levels (Open, High, Mid, Low, Close) for each selected period
Stacking of labels of matching levels
% from All-Time High (ATH)
% from All-Time Low (ATL)
Alerts
📸 Visual Examples
The percentages in the level labels make it easy to see the current performance relative to that level
Labels with full level names
Compact labels with vertical stacking
Compact labels with horizontal stacking
👋 Good luck and happy trading!
Ücretli komut dosyası
Granger Causality Flow IndicatorGranger Causality Flow Indicator
█ OVERVIEW
The Granger Causality Flow Indicator is a statistical analysis tool designed to identify predictive relationships between two assets (Symbol X and Symbol Y). In econometrics, "Granger Causality" does not test for actual physical causation (e.g., rain causes mud); rather, it tests for predictive causality .
This script is designed to answer a specific question for traders: "Does the past price action of Asset X provide statistically significant information about the future price of Asset Y, beyond what is already contained in the past prices of Asset Y itself?"
This tool is particularly useful for Pairs Traders , Arbitrageurs , and Macro Analysts looking to identify lead-lag relationships between correlated assets (e.g., BTC vs. ETH, NASDAQ vs. SPY, or Gold vs. Silver).
█ CONCEPTS & CALCULATIONS
To determine if Symbol X "Granger-causes" Symbol Y, this script utilizes a variance-reduction approach based on Auto-Regressive (AR) models. Due to the runtime constraints of Pine Script™, we employ an optimized proxy for the standard Granger test using an AR(1) logic (looking back 1 period).
The calculation performs a comparative test over a rolling window (Default: 50 bars):
The Restricted Model (Baseline):
We attempts to predict the current value of Y using only the previous value of Y (Auto-Regression). We measure the error of this prediction (the "Residuals") and calculate the Variance of the Restricted Model (Var_R) .
The Unrestricted Model (Proxy):
We then test if the past value of X can explain the errors made by the Restricted Model. If X contains predictive power, including it should reduce the error variance. We calculate the remaining Variance of the Unrestricted Model (Var_UR) .
The GC Score:
The script calculates a score based on the ratio of variance reduction:
Score = 1 - (Var_UR / Var_R)
If the Score is High (> 0) : It implies that including X significantly reduced the prediction error for Y. Therefore, X "Granger-causes" Y.
If the Score is Low or 0 : It implies X added no predictive value.
█ HOW TO USE
This indicator is not a simple Buy/Sell signal generator; it is a context filter for cross-asset analysis.
1. Setup
Symbol 1 (X): The potential "Leader" (e.g., BINANCE:BTCUSDT).
Symbol 2 (Y): The potential "Follower" (e.g., BINANCE:ETHUSDT).
Differencing: Enabled by default. This checks the changes in price rather than absolute price, which is crucial for statistical stationarity.
2. Interpreting the Visuals
The script changes the background color and displays a table to indicate the current flow of causality:
Green Background (X → Y): Symbol 1 is leading Symbol 2. Price moves in Symbol 1 are statistically likely to foreshadow moves in Symbol 2.
Orange Background (Y → X): Symbol 2 is leading Symbol 1. The relationship has inverted.
Blue Background (Bidirectional): Both assets are predicting each other (tight coupling or feedback loop).
Gray/No Color: No statistically significant relationship detected.
3. Trading Application
Trend Confirmation: If you trade Symbol Y, wait for the background to turn Green . This indicates that the "Leader" (Symbol X) is currently exerting predictive influence, potentially making trend-following setups on Symbol Y more reliable.
Divergence Warning: If you are trading a correlation pair and the causality breaks (turns Gray), the correlation may be weakening, signaling a higher risk of divergence.
█ SETTINGS
Symbol 1 (X) & Symbol 2 (Y): The two tickers to analyze.
Use Differencing: (Default: True) Converts prices to price-changes. Highly recommended for accurate statistical results to avoid spurious regression.
Calculation Window: The number of bars used to compute the variance and coefficients. Larger windows provide smoother, more stable signals but react slower to regime changes.
Significance Threshold: (0.01 - 0.99) The minimum variance reduction score required to trigger a causal signal.
█ DISCLAIMER
This tool provides statistical analysis of historical price data and does not guarantee future performance. Granger Causality is a measure of predictive capability, not necessarily fundamental causation. Always use appropriate risk management.
IQRIQR Indicator — Simple Notes
Standard IQR: Q1, Q3, IQR = Q3–Q1, bands = Q3 ± 1.5×IQR.
IQR uses last len bars (default 60).
Display uses last N calendar days (default 60), not N bars.
Shows only the recent N-day window unless custom dates are enabled.
With overlay=true, all lines stay on the price axis and scale with candles.
IQR Bands – Date Range VersionQR Indicator — Simple Notes
Standard IQR: Q1, Q3, IQR = Q3–Q1, bands = Q3 ± 1.5×IQR.
IQR uses last len bars (default 60).
Display uses last N calendar days (default 60), not N bars.
Shows only the recent N-day window unless custom dates are enabled.
With overlay=true, all lines stay on the price axis and scale with candles.
Adaptive Genesis Engine [AGE]ADAPTIVE GENESIS ENGINE (AGE)
Pure Signal Evolution Through Genetic Algorithms
Where Darwin Meets Technical Analysis
🧬 WHAT YOU'RE GETTING - THE PURE INDICATOR
This is a technical analysis indicator - it generates signals, visualizes probability, and shows you the evolutionary process in real-time. This is NOT a strategy with automatic execution - it's a sophisticated signal generation system that you control .
What This Indicator Does:
Generates Long/Short entry signals with probability scores (35-88% range)
Evolves a population of up to 12 competing strategies using genetic algorithms
Validates strategies through walk-forward optimization (train/test cycles)
Visualizes signal quality through premium gradient clouds and confidence halos
Displays comprehensive metrics via enhanced dashboard
Provides alerts for entries and exits
Works on any timeframe, any instrument, any broker
What This Indicator Does NOT Do:
Execute trades automatically
Manage positions or calculate position sizes
Place orders on your behalf
Make trading decisions for you
This is pure signal intelligence. AGE tells you when and how confident it is. You decide whether and how much to trade.
🔬 THE SCIENCE: GENETIC ALGORITHMS MEET TECHNICAL ANALYSIS
What Makes This Different - The Evolutionary Foundation
Most indicators are static - they use the same parameters forever, regardless of market conditions. AGE is alive . It maintains a population of competing strategies that evolve, adapt, and improve through natural selection principles:
Birth: New strategies spawn through crossover breeding (combining DNA from fit parents) plus random mutation for exploration
Life: Each strategy trades virtually via shadow portfolios, accumulating wins/losses, tracking drawdown, and building performance history
Selection: Strategies are ranked by comprehensive fitness scoring (win rate, expectancy, drawdown control, signal efficiency)
Death: Weak strategies are culled periodically, with elite performers (top 2 by default) protected from removal
Evolution: The gene pool continuously improves as successful traits propagate and unsuccessful ones die out
This is not curve-fitting. Each new strategy must prove itself on out-of-sample data through walk-forward validation before being trusted for live signals.
🧪 THE DNA: WHAT EVOLVES
Every strategy carries a 10-gene chromosome controlling how it interprets market data:
Signal Sensitivity Genes
Entropy Sensitivity (0.5-2.0): Weight given to market order/disorder calculations. Low values = conservative, require strong directional clarity. High values = aggressive, act on weaker order signals.
Momentum Sensitivity (0.5-2.0): Weight given to RSI/ROC/MACD composite. Controls responsiveness to momentum shifts vs. mean-reversion setups.
Structure Sensitivity (0.5-2.0): Weight given to support/resistance positioning. Determines how much price location within swing range matters.
Probability Adjustment Genes
Probability Boost (-0.10 to +0.10): Inherent bias toward aggressive (+) or conservative (-) entries. Acts as personality trait - some strategies naturally optimistic, others pessimistic.
Trend Strength Requirement (0.3-0.8): Minimum trend conviction needed before signaling. Higher values = only trades strong trends, lower values = acts in weak/sideways markets.
Volume Filter (0.5-1.5): Strictness of volume confirmation. Higher values = requires strong volume, lower values = volume less important.
Risk Management Genes
ATR Multiplier (1.5-4.0): Base volatility scaling for all price levels. Controls whether strategy uses tight or wide stops/targets relative to ATR.
Stop Multiplier (1.0-2.5): Stop loss tightness. Lower values = aggressive profit protection, higher values = more breathing room.
Target Multiplier (1.5-4.0): Profit target ambition. Lower values = quick scalping exits, higher values = swing trading holds.
Adaptation Gene
Regime Adaptation (0.0-1.0): How much strategy adjusts behavior based on detected market regime (trending/volatile/choppy). Higher values = more reactive to regime changes.
The Magic: AGE doesn't just try random combinations. Through tournament selection and fitness-weighted crossover, successful gene combinations spread through the population while unsuccessful ones fade away. Over 50-100 bars, you'll see the population converge toward genes that work for YOUR instrument and timeframe.
📊 THE SIGNAL ENGINE: THREE-LAYER SYNTHESIS
Before any strategy generates a signal, AGE calculates probability through multi-indicator confluence:
Layer 1 - Market Entropy (Information Theory)
Measures whether price movements exhibit directional order or random walk characteristics:
The Math:
Shannon Entropy = -Σ(p × log(p))
Market Order = 1 - (Entropy / 0.693)
What It Means:
High entropy = choppy, random market → low confidence signals
Low entropy = directional market → high confidence signals
Direction determined by up-move vs down-move dominance over lookback period (default: 20 bars)
Signal Output: -1.0 to +1.0 (bearish order to bullish order)
Layer 2 - Momentum Synthesis
Combines three momentum indicators into single composite score:
Components:
RSI (40% weight): Normalized to -1/+1 scale using (RSI-50)/50
Rate of Change (30% weight): Percentage change over lookback (default: 14 bars), clamped to ±1
MACD Histogram (30% weight): Fast(12) - Slow(26), normalized by ATR
Why This Matters: RSI catches mean-reversion opportunities, ROC catches raw momentum, MACD catches momentum divergence. Weighting favors RSI for reliability while keeping other perspectives.
Signal Output: -1.0 to +1.0 (strong bearish to strong bullish)
Layer 3 - Structure Analysis
Evaluates price position within swing range (default: 50-bar lookback):
Position Classification:
Bottom 20% of range = Support Zone → bullish bounce potential
Top 20% of range = Resistance Zone → bearish rejection potential
Middle 60% = Neutral Zone → breakout/breakdown monitoring
Signal Logic:
At support + bullish candle = +0.7 (strong buy setup)
At resistance + bearish candle = -0.7 (strong sell setup)
Breaking above range highs = +0.5 (breakout confirmation)
Breaking below range lows = -0.5 (breakdown confirmation)
Consolidation within range = ±0.3 (weak directional bias)
Signal Output: -1.0 to +1.0 (bearish structure to bullish structure)
Confluence Voting System
Each layer casts a vote (Long/Short/Neutral). The system requires minimum 2-of-3 agreement (configurable 1-3) before generating a signal:
Examples:
Entropy: Bullish, Momentum: Bullish, Structure: Neutral → Signal generated (2 long votes)
Entropy: Bearish, Momentum: Neutral, Structure: Neutral → No signal (only 1 short vote)
All three bullish → Signal generated with +5% probability bonus
This is the key to quality. Single indicators give too many false signals. Triple confirmation dramatically improves accuracy.
📈 PROBABILITY CALCULATION: HOW CONFIDENCE IS MEASURED
Base Probability:
Raw_Prob = 50% + (Average_Signal_Strength × 25%)
Then AGE applies strategic adjustments:
Trend Alignment:
Signal with trend: +4%
Signal against strong trend: -8%
Weak/no trend: no adjustment
Regime Adaptation:
Trending market (efficiency >50%, moderate vol): +3%
Volatile market (vol ratio >1.5x): -5%
Choppy market (low efficiency): -2%
Volume Confirmation:
Volume > 70% of 20-bar SMA: no change
Volume below threshold: -3%
Volatility State (DVS Ratio):
High vol (>1.8x baseline): -4% (reduce confidence in chaos)
Low vol (<0.7x baseline): -2% (markets can whipsaw in compression)
Moderate elevated vol (1.0-1.3x): +2% (trending conditions emerging)
Confluence Bonus:
All 3 indicators agree: +5%
2 of 3 agree: +2%
Strategy Gene Adjustment:
Probability Boost gene: -10% to +10%
Regime Adaptation gene: scales regime adjustments by 0-100%
Final Probability: Clamped between 35% (minimum) and 88% (maximum)
Why These Ranges?
Below 35% = too uncertain, better not to signal
Above 88% = unrealistic, creates overconfidence
Sweet spot: 65-80% for quality entries
🔄 THE SHADOW PORTFOLIO SYSTEM: HOW STRATEGIES COMPETE
Each active strategy maintains a virtual trading account that executes in parallel with real-time data:
Shadow Trading Mechanics
Entry Logic:
Calculate signal direction, probability, and confluence using strategy's unique DNA
Check if signal meets quality gate:
Probability ≥ configured minimum threshold (default: 65%)
Confluence ≥ configured minimum (default: 2 of 3)
Direction is not zero (must be long or short, not neutral)
Verify signal persistence:
Base requirement: 2 bars (configurable 1-5)
Adapts based on probability: high-prob signals (75%+) enter 1 bar faster, low-prob signals need 1 bar more
Adjusts for regime: trending markets reduce persistence by 1, volatile markets add 1
Apply additional filters:
Trend strength must exceed strategy's requirement gene
Regime filter: if volatile market detected, probability must be 72%+ to override
Volume confirmation required (volume > 70% of average)
If all conditions met for required persistence bars, enter shadow position at current close price
Position Management:
Entry Price: Recorded at close of entry bar
Stop Loss: ATR-based distance = ATR × ATR_Mult (gene) × Stop_Mult (gene) × DVS_Ratio
Take Profit: ATR-based distance = ATR × ATR_Mult (gene) × Target_Mult (gene) × DVS_Ratio
Position: +1 (long) or -1 (short), only one at a time per strategy
Exit Logic:
Check if price hit stop (on low) or target (on high) on current bar
Record trade outcome in R-multiples (profit/loss normalized by ATR)
Update performance metrics:
Total trades counter incremented
Wins counter (if profit > 0)
Cumulative P&L updated
Peak equity tracked (for drawdown calculation)
Maximum drawdown from peak recorded
Enter cooldown period (default: 8 bars, configurable 3-20) before next entry allowed
Reset signal age counter to zero
Walk-Forward Tracking:
During position lifecycle, trades are categorized:
Training Phase (first 250 bars): Trade counted toward training metrics
Testing Phase (next 75 bars): Trade counted toward testing metrics (out-of-sample)
Live Phase (after WFO period): Trade counted toward overall metrics
Why Shadow Portfolios?
No lookahead bias (uses only data available at the bar)
Realistic execution simulation (entry on close, stop/target checks on high/low)
Independent performance tracking for true fitness comparison
Allows safe experimentation without risking capital
Each strategy learns from its own experience
🏆 FITNESS SCORING: HOW STRATEGIES ARE RANKED
Fitness is not just win rate. AGE uses a comprehensive multi-factor scoring system:
Core Metrics (Minimum 3 trades required)
Win Rate (30% of fitness):
WinRate = Wins / TotalTrades
Normalized directly (0.0-1.0 scale)
Total P&L (30% of fitness):
Normalized_PnL = (PnL + 300) / 600
Clamped 0.0-1.0. Assumes P&L range of -300R to +300R for normalization scale.
Expectancy (25% of fitness):
Expectancy = Total_PnL / Total_Trades
Normalized_Expectancy = (Expectancy + 30) / 60
Clamped 0.0-1.0. Rewards consistency of profit per trade.
Drawdown Control (15% of fitness):
Normalized_DD = 1 - (Max_Drawdown / 15)
Clamped 0.0-1.0. Penalizes strategies that suffer large equity retracements from peak.
Sample Size Adjustment
Quality Factor:
<50 trades: 1.0 (full weight, small sample)
50-100 trades: 0.95 (slight penalty for medium sample)
100 trades: 0.85 (larger penalty for large sample)
Why penalize more trades? Prevents strategies from gaming the system by taking hundreds of tiny trades to inflate statistics. Favors quality over quantity.
Bonus Adjustments
Walk-Forward Validation Bonus:
if (WFO_Validated):
Fitness += (WFO_Efficiency - 0.5) × 0.1
Strategies proven on out-of-sample data receive up to +10% fitness boost based on test/train efficiency ratio.
Signal Efficiency Bonus (if diagnostics enabled):
if (Signals_Evaluated > 10):
Pass_Rate = Signals_Passed / Signals_Evaluated
Fitness += (Pass_Rate - 0.1) × 0.05
Rewards strategies that generate high-quality signals passing the quality gate, not just profitable trades.
Final Fitness: Clamped at 0.0 minimum (prevents negative fitness values)
Result: Elite strategies typically achieve 0.50-0.75 fitness. Anything above 0.60 is excellent. Below 0.30 is prime candidate for culling.
🔬 WALK-FORWARD OPTIMIZATION: ANTI-OVERFITTING PROTECTION
This is what separates AGE from curve-fitted garbage indicators.
The Three-Phase Process
Every new strategy undergoes a rigorous validation lifecycle:
Phase 1 - Training Window (First 250 bars, configurable 100-500):
Strategy trades normally via shadow portfolio
All trades count toward training performance metrics
System learns which gene combinations produce profitable patterns
Tracks independently: Training_Trades, Training_Wins, Training_PnL
Phase 2 - Testing Window (Next 75 bars, configurable 30-200):
Strategy continues trading without any parameter changes
Trades now count toward testing performance metrics (separate tracking)
This is out-of-sample data - strategy has never seen these bars during "optimization"
Tracks independently: Testing_Trades, Testing_Wins, Testing_PnL
Phase 3 - Validation Check:
Minimum_Trades = 5 (configurable 3-15)
IF (Train_Trades >= Minimum AND Test_Trades >= Minimum):
WR_Efficiency = Test_WinRate / Train_WinRate
Expectancy_Efficiency = Test_Expectancy / Train_Expectancy
WFO_Efficiency = (WR_Efficiency + Expectancy_Efficiency) / 2
IF (WFO_Efficiency >= 0.55): // configurable 0.3-0.9
Strategy.Validated = TRUE
Strategy receives fitness bonus
ELSE:
Strategy receives 30% fitness penalty
ELSE:
Validation deferred (insufficient trades in one or both periods)
What Validation Means
Validated Strategy (Green "✓ VAL" in dashboard):
Performed at least 55% as well on unseen data compared to training data
Gets fitness bonus: +(efficiency - 0.5) × 0.1
Receives priority during tournament selection for breeding
More likely to be chosen as active trading strategy
Unvalidated Strategy (Orange "○ TRAIN" in dashboard):
Failed to maintain performance on test data (likely curve-fitted to training period)
Receives 30% fitness penalty (0.7x multiplier)
Makes strategy prime candidate for culling
Can still trade but with lower selection probability
Insufficient Data (continues collecting):
Hasn't completed both training and testing periods yet
OR hasn't achieved minimum trade count in both periods
Validation check deferred until requirements met
Why 55% Efficiency Threshold?
If a strategy earned 10R during training but only 5.5R during testing, it still proved an edge exists beyond random luck. Requiring 100% efficiency would be unrealistic - market conditions change between periods. But requiring >50% ensures the strategy didn't completely degrade on fresh data.
The Protection: Strategies that work great on historical data but fail on new data are automatically identified and penalized. This prevents the population from being polluted by overfitted strategies that would fail in live trading.
🌊 DYNAMIC VOLATILITY SCALING (DVS): ADAPTIVE STOP/TARGET PLACEMENT
AGE doesn't use fixed stop distances. It adapts to current volatility conditions in real-time.
Four Volatility Measurement Methods
1. ATR Ratio (Simple Method):
Current_Vol = ATR(14) / Close
Baseline_Vol = SMA(Current_Vol, 100)
Ratio = Current_Vol / Baseline_Vol
Basic comparison of current ATR to 100-bar moving average baseline.
2. Parkinson (High-Low Range Based):
For each bar: HL = log(High / Low)
Parkinson_Vol = sqrt(Σ(HL²) / (4 × Period × log(2)))
More stable than close-to-close volatility. Captures intraday range expansion without overnight gap noise.
3. Garman-Klass (OHLC Based):
HL_Term = 0.5 × ²
CO_Term = (2×log(2) - 1) × ²
GK_Vol = sqrt(Σ(HL_Term - CO_Term) / Period)
Most sophisticated estimator. Incorporates all four price points (open, high, low, close) plus gap information.
4. Ensemble Method (Default - Median of All Three):
Ratio_1 = ATR_Current / ATR_Baseline
Ratio_2 = Parkinson_Current / Parkinson_Baseline
Ratio_3 = GK_Current / GK_Baseline
DVS_Ratio = Median(Ratio_1, Ratio_2, Ratio_3)
Why Ensemble?
Takes median to avoid outliers and false spikes
If ATR jumps but range-based methods stay calm, median prevents overreaction
If one method fails, other two compensate
Most robust approach across different market conditions
Sensitivity Scaling
Scaled_Ratio = (Raw_Ratio) ^ Sensitivity
Sensitivity 0.3: Cube root - heavily dampens volatility impact
Sensitivity 0.5: Square root - moderate dampening
Sensitivity 0.7 (Default): Balanced response to volatility changes
Sensitivity 1.0: Linear - full 1:1 volatility impact
Sensitivity 1.5: Exponential - amplified response to volatility spikes
Safety Clamps: Final DVS Ratio always clamped between 0.5x and 2.5x baseline to prevent extreme position sizing or stop placement errors.
How DVS Affects Shadow Trading
Every strategy's stop and target distances are multiplied by the current DVS ratio:
Stop Loss Distance:
Stop_Distance = ATR × ATR_Mult (gene) × Stop_Mult (gene) × DVS_Ratio
Take Profit Distance:
Target_Distance = ATR × ATR_Mult (gene) × Target_Mult (gene) × DVS_Ratio
Example Scenario:
ATR = 10 points
Strategy's ATR_Mult gene = 2.5
Strategy's Stop_Mult gene = 1.5
Strategy's Target_Mult gene = 2.5
DVS_Ratio = 1.4 (40% above baseline volatility - market heating up)
Stop = 10 × 2.5 × 1.5 × 1.4 = 52.5 points (vs. 37.5 in normal vol)
Target = 10 × 2.5 × 2.5 × 1.4 = 87.5 points (vs. 62.5 in normal vol)
Result:
During volatility spikes: Stops automatically widen to avoid noise-based exits, targets extend for bigger moves
During calm periods: Stops tighten for better risk/reward, targets compress for realistic profit-taking
Strategies adapt risk management to match current market behavior
🧬 THE EVOLUTIONARY CYCLE: SPAWN, COMPETE, CULL
Initialization (Bar 1)
AGE begins with 4 seed strategies (if evolution enabled):
Seed Strategy #0 (Balanced):
All sensitivities at 1.0 (neutral)
Zero probability boost
Moderate trend requirement (0.4)
Standard ATR/stop/target multiples (2.5/1.5/2.5)
Mid-level regime adaptation (0.5)
Seed Strategy #1 (Momentum-Focused):
Lower entropy sensitivity (0.7), higher momentum (1.5)
Slight probability boost (+0.03)
Higher trend requirement (0.5)
Tighter stops (1.3), wider targets (3.0)
Seed Strategy #2 (Entropy-Driven):
Higher entropy sensitivity (1.5), lower momentum (0.8)
Slight probability penalty (-0.02)
More trend tolerant (0.6)
Wider stops (1.8), standard targets (2.5)
Seed Strategy #3 (Structure-Based):
Balanced entropy/momentum (0.8/0.9), high structure (1.4)
Slight probability boost (+0.02)
Lower trend requirement (0.35)
Moderate risk parameters (1.6/2.8)
All seeds start with WFO validation bypassed if WFO is disabled, or must validate if enabled.
Spawning New Strategies
Timing (Adaptive):
Historical phase: Every 30 bars (configurable 10-100)
Live phase: Every 200 bars (configurable 100-500)
Automatically switches to live timing when barstate.isrealtime triggers
Conditions:
Current population < max population limit (default: 8, configurable 4-12)
At least 2 active strategies exist (need parents)
Available slot in population array
Selection Process:
Run tournament selection 3 times with different seeds
Each tournament: randomly sample active strategies, pick highest fitness
Best from 3 tournaments becomes Parent 1
Repeat independently for Parent 2
Ensures fit parents but maintains diversity
Crossover Breeding:
For each of 10 genes:
Parent1_Fitness = fitness
Parent2_Fitness = fitness
Weight1 = Parent1_Fitness / (Parent1_Fitness + Parent2_Fitness)
Gene1 = parent1's value
Gene2 = parent2's value
Child_Gene = Weight1 × Gene1 + (1 - Weight1) × Gene2
Fitness-weighted crossover ensures fitter parent contributes more genetic material.
Mutation:
For each gene in child:
IF (random < mutation_rate):
Gene_Range = GENE_MAX - GENE_MIN
Noise = (random - 0.5) × 2 × mutation_strength × Gene_Range
Mutated_Gene = Clamp(Child_Gene + Noise, GENE_MIN, GENE_MAX)
Historical mutation rate: 20% (aggressive exploration)
Live mutation rate: 8% (conservative stability)
Mutation strength: 12% of gene range (configurable 5-25%)
Initialization of New Strategy:
Unique ID assigned (total_spawned counter)
Parent ID recorded
Generation = max(parent generations) + 1
Birth bar recorded (for age tracking)
All performance metrics zeroed
Shadow portfolio reset
WFO validation flag set to false (must prove itself)
Result: New strategy with hybrid DNA enters population, begins trading in next bar.
Competition (Every Bar)
All active strategies:
Calculate their signal based on unique DNA
Check quality gate with their thresholds
Manage shadow positions (entries/exits)
Update performance metrics
Recalculate fitness score
Track WFO validation progress
Strategies compete indirectly through fitness ranking - no direct interaction.
Culling Weak Strategies
Timing (Adaptive):
Historical phase: Every 60 bars (configurable 20-200, should be 2x spawn interval)
Live phase: Every 400 bars (configurable 200-1000, should be 2x spawn interval)
Minimum Adaptation Score (MAS):
Initial MAS = 0.10
MAS decays: MAS × 0.995 every cull cycle
Minimum MAS = 0.03 (floor)
MAS represents the "survival threshold" - strategies below this fitness level are vulnerable.
Culling Conditions (ALL must be true):
Population > minimum population (default: 3, configurable 2-4)
At least one strategy has fitness < MAS
Strategy's age > culling interval (prevents premature culling of new strategies)
Strategy is not in top N elite (default: 2, configurable 1-3)
Culling Process:
Find worst strategy:
For each active strategy:
IF (age > cull_interval):
Fitness = base_fitness
IF (not WFO_validated AND WFO_enabled):
Fitness × 0.7 // 30% penalty for unvalidated
IF (Fitness < MAS AND Fitness < worst_fitness_found):
worst_strategy = this_strategy
worst_fitness = Fitness
IF (worst_strategy found):
Count elite strategies with fitness > worst_fitness
IF (elite_count >= elite_preservation_count):
Deactivate worst_strategy (set active flag = false)
Increment total_culled counter
Elite Protection:
Even if a strategy's fitness falls below MAS, it survives if fewer than N strategies are better. This prevents culling when population is generally weak.
Result: Weak strategies removed from population, freeing slots for new spawns. Gene pool improves over time.
Selection for Display (Every Bar)
AGE chooses one strategy to display signals:
Best fitness = -1
Selected = none
For each active strategy:
Fitness = base_fitness
IF (WFO_validated):
Fitness × 1.3 // 30% bonus for validated strategies
IF (Fitness > best_fitness):
best_fitness = Fitness
selected_strategy = this_strategy
Display selected strategy's signals on chart
Result: Only the highest-fitness (optionally validated-boosted) strategy's signals appear as chart markers. Other strategies trade invisibly in shadow portfolios.
🎨 PREMIUM VISUALIZATION SYSTEM
AGE includes sophisticated visual feedback that standard indicators lack:
1. Gradient Probability Cloud (Optional, Default: ON)
Multi-layer gradient showing signal buildup 2-3 bars before entry:
Activation Conditions:
Signal persistence > 0 (same directional signal held for multiple bars)
Signal probability ≥ minimum threshold (65% by default)
Signal hasn't yet executed (still in "forming" state)
Visual Construction:
7 gradient layers by default (configurable 3-15)
Each layer is a line-fill pair (top line, bottom line, filled between)
Layer spacing: 0.3 to 1.0 × ATR above/below price
Outer layers = faint, inner layers = bright
Color transitions from base to intense based on layer position
Transparency scales with probability (high prob = more opaque)
Color Selection:
Long signals: Gradient from theme.gradient_bull_mid to theme.gradient_bull_strong
Short signals: Gradient from theme.gradient_bear_mid to theme.gradient_bear_strong
Base transparency: 92%, reduces by up to 8% for high-probability setups
Dynamic Behavior:
Cloud grows/shrinks as signal persistence increases/decreases
Redraws every bar while signal is forming
Disappears when signal executes or invalidates
Performance Note: Computationally expensive due to linefill objects. Disable or reduce layers if chart performance degrades.
2. Population Fitness Ribbon (Optional, Default: ON)
Histogram showing fitness distribution across active strategies:
Activation: Only draws on last bar (barstate.islast) to avoid historical clutter
Visual Construction:
10 histogram layers by default (configurable 5-20)
Plots 50 bars back from current bar
Positioned below price at: lowest_low(100) - 1.5×ATR (doesn't interfere with price action)
Each layer represents a fitness threshold (evenly spaced min to max fitness)
Layer Logic:
For layer_num from 0 to ribbon_layers:
Fitness_threshold = min_fitness + (max_fitness - min_fitness) × (layer / layers)
Count strategies with fitness ≥ threshold
Height = ATR × 0.15 × (count / total_active)
Y_position = base_level + ATR × 0.2 × layer
Color = Gradient from weak to strong based on layer position
Line_width = Scaled by height (taller = thicker)
Visual Feedback:
Tall, bright ribbon = healthy population, many fit strategies at high fitness levels
Short, dim ribbon = weak population, few strategies achieving good fitness
Ribbon compression (layers close together) = population converging to similar fitness
Ribbon spread = diverse fitness range, active selection pressure
Use Case: Quick visual health check without opening dashboard. Ribbon growing upward over time = population improving.
3. Confidence Halo (Optional, Default: ON)
Circular polyline around entry signals showing probability strength:
Activation: Draws when new position opens (shadow_position changes from 0 to ±1)
Visual Construction:
20-segment polyline forming approximate circle
Center: Low - 0.5×ATR (long) or High + 0.5×ATR (short)
Radius: 0.3×ATR (low confidence) to 1.0×ATR (elite confidence)
Scales with: (probability - min_probability) / (1.0 - min_probability)
Color Coding:
Elite (85%+): Cyan (theme.conf_elite), large radius, minimal transparency (40%)
Strong (75-85%): Strong green (theme.conf_strong), medium radius, moderate transparency (50%)
Good (65-75%): Good green (theme.conf_good), smaller radius, more transparent (60%)
Moderate (<65%): Moderate green (theme.conf_moderate), tiny radius, very transparent (70%)
Technical Detail:
Uses chart.point array with index-based positioning
5-bar horizontal spread for circular appearance (±5 bars from entry)
Curved=false (Pine Script polyline limitation)
Fill color matches line color but more transparent (88% vs line's transparency)
Purpose: Instant visual probability assessment. No need to check dashboard - halo size/brightness tells the story.
4. Evolution Event Markers (Optional, Default: ON)
Visual indicators of genetic algorithm activity:
Spawn Markers (Diamond, Cyan):
Plots when total_spawned increases on current bar
Location: bottom of chart (location.bottom)
Color: theme.spawn_marker (cyan/bright blue)
Size: tiny
Indicates new strategy just entered population
Cull Markers (X-Cross, Red):
Plots when total_culled increases on current bar
Location: bottom of chart (location.bottom)
Color: theme.cull_marker (red/pink)
Size: tiny
Indicates weak strategy just removed from population
What It Tells You:
Frequent spawning early = population building, active exploration
Frequent culling early = high selection pressure, weak strategies dying fast
Balanced spawn/cull = healthy evolutionary churn
No markers for long periods = stable population (evolution plateaued or optimal genes found)
5. Entry/Exit Markers
Clear visual signals for selected strategy's trades:
Long Entry (Triangle Up, Green):
Plots when selected strategy opens long position (position changes 0 → +1)
Location: below bar (location.belowbar)
Color: theme.long_primary (green/cyan depending on theme)
Transparency: Scales with probability:
Elite (85%+): 0% (fully opaque)
Strong (75-85%): 10%
Good (65-75%): 20%
Acceptable (55-65%): 35%
Size: small
Short Entry (Triangle Down, Red):
Plots when selected strategy opens short position (position changes 0 → -1)
Location: above bar (location.abovebar)
Color: theme.short_primary (red/pink depending on theme)
Transparency: Same scaling as long entries
Size: small
Exit (X-Cross, Orange):
Plots when selected strategy closes position (position changes ±1 → 0)
Location: absolute (at actual exit price if stop/target lines enabled)
Color: theme.exit_color (orange/yellow depending on theme)
Transparency: 0% (fully opaque)
Size: tiny
Result: Clean, probability-scaled markers that don't clutter chart but convey essential information.
6. Stop Loss & Take Profit Lines (Optional, Default: ON)
Visual representation of shadow portfolio risk levels:
Stop Loss Line:
Plots when selected strategy has active position
Level: shadow_stop value from selected strategy
Color: theme.short_primary with 60% transparency (red/pink, subtle)
Width: 2
Style: plot.style_linebr (breaks when no position)
Take Profit Line:
Plots when selected strategy has active position
Level: shadow_target value from selected strategy
Color: theme.long_primary with 60% transparency (green, subtle)
Width: 2
Style: plot.style_linebr (breaks when no position)
Purpose:
Shows where shadow portfolio would exit for stop/target
Helps visualize strategy's risk/reward ratio
Useful for manual traders to set similar levels
Disable for cleaner chart (recommended for presentations)
7. Dynamic Trend EMA
Gradient-colored trend line that visualizes trend strength:
Calculation:
EMA(close, trend_length) - default 50 period (configurable 20-100)
Slope calculated over 10 bars: (current_ema - ema ) / ema × 100
Color Logic:
Trend_direction:
Slope > 0.1% = Bullish (1)
Slope < -0.1% = Bearish (-1)
Otherwise = Neutral (0)
Trend_strength = abs(slope)
Color = Gradient between:
- Neutral color (gray/purple)
- Strong bullish (bright green) if direction = 1
- Strong bearish (bright red) if direction = -1
Gradient factor = trend_strength (0 to 1+ scale)
Visual Behavior:
Faint gray/purple = weak/no trend (choppy conditions)
Light green/red = emerging trend (low strength)
Bright green/red = strong trend (high conviction)
Color intensity = trend strength magnitude
Transparency: 50% (subtle, doesn't overpower price action)
Purpose: Subconscious awareness of trend state without checking dashboard or indicators.
8. Regime Background Tinting (Subtle)
Ultra-low opacity background color indicating detected market regime:
Regime Detection:
Efficiency = directional_movement / total_range (over trend_length bars)
Vol_ratio = current_volatility / average_volatility
IF (efficiency > 0.5 AND vol_ratio < 1.3):
Regime = Trending (1)
ELSE IF (vol_ratio > 1.5):
Regime = Volatile (2)
ELSE:
Regime = Choppy (0)
Background Colors:
Trending: theme.regime_trending (dark green, 92-93% transparency)
Volatile: theme.regime_volatile (dark red, 93% transparency)
Choppy: No tint (normal background)
Purpose:
Subliminal regime awareness
Helps explain why signals are/aren't generating
Trending = ideal conditions for AGE
Volatile = fewer signals, higher thresholds applied
Choppy = mixed signals, lower confidence
Important: Extremely subtle by design. Not meant to be obvious, just subconscious context.
📊 ENHANCED DASHBOARD
Comprehensive real-time metrics in single organized panel (top-right position):
Dashboard Structure (5 columns × 14 rows)
Header Row:
Column 0: "🧬 AGE PRO" + phase indicator (🔴 LIVE or ⏪ HIST)
Column 1: "POPULATION"
Column 2: "PERFORMANCE"
Column 3: "CURRENT SIGNAL"
Column 4: "ACTIVE STRATEGY"
Column 0: Market State
Regime (📈 TREND / 🌊 CHAOS / ➖ CHOP)
DVS Ratio (current volatility scaling factor, format: #.##)
Trend Direction (▲ BULL / ▼ BEAR / ➖ FLAT with color coding)
Trend Strength (0-100 scale, format: #.##)
Column 1: Population Metrics
Active strategies (count / max_population)
Validated strategies (WFO passed / active total)
Current generation number
Total spawned (all-time strategy births)
Total culled (all-time strategy deaths)
Column 2: Aggregate Performance
Total trades across all active strategies
Aggregate win rate (%) - color-coded:
Green (>55%)
Orange (45-55%)
Red (<45%)
Total P&L in R-multiples - color-coded by positive/negative
Best fitness score in population (format: #.###)
MAS - Minimum Adaptation Score (cull threshold, format: #.###)
Column 3: Current Signal Status
Status indicator:
"▲ LONG" (green) if selected strategy in long position
"▼ SHORT" (red) if selected strategy in short position
"⏳ FORMING" (orange) if signal persisting but not yet executed
"○ WAITING" (gray) if no active signal
Confidence percentage (0-100%, format: #.#%)
Quality assessment:
"🔥 ELITE" (cyan) for 85%+ probability
"✓ STRONG" (bright green) for 75-85%
"○ GOOD" (green) for 65-75%
"- LOW" (dim) for <65%
Confluence score (X/3 format)
Signal age:
"X bars" if signal forming
"IN TRADE" if position active
"---" if no signal
Column 4: Selected Strategy Details
Strategy ID number (#X format)
Validation status:
"✓ VAL" (green) if WFO validated
"○ TRAIN" (orange) if still in training/testing phase
Generation number (GX format)
Personal fitness score (format: #.### with color coding)
Trade count
P&L and win rate (format: #.#R (##%) with color coding)
Color Scheme:
Panel background: theme.panel_bg (dark, low opacity)
Panel headers: theme.panel_header (slightly lighter)
Primary text: theme.text_primary (bright, high contrast)
Secondary text: theme.text_secondary (dim, lower contrast)
Positive metrics: theme.metric_positive (green)
Warning metrics: theme.metric_warning (orange)
Negative metrics: theme.metric_negative (red)
Special markers: theme.validated_marker, theme.spawn_marker
Update Frequency: Only on barstate.islast (current bar) to minimize CPU usage
Purpose:
Quick overview of entire system state
No need to check multiple indicators
Trading decisions informed by population health, regime state, and signal quality
Transparency into what AGE is thinking
🔍 DIAGNOSTICS PANEL (Optional, Default: OFF)
Detailed signal quality tracking for optimization and debugging:
Panel Structure (3 columns × 8 rows)
Position: Bottom-right corner (doesn't interfere with main dashboard)
Header Row:
Column 0: "🔍 DIAGNOSTICS"
Column 1: "COUNT"
Column 2: "%"
Metrics Tracked (for selected strategy only):
Total Evaluated:
Every signal that passed initial calculation (direction ≠ 0)
Represents total opportunities considered
✓ Passed:
Signals that passed quality gate and executed
Green color coding
Percentage of evaluated signals
Rejection Breakdown:
⨯ Probability:
Rejected because probability < minimum threshold
Most common rejection reason typically
⨯ Confluence:
Rejected because confluence < minimum required (e.g., only 1 of 3 indicators agreed)
⨯ Trend:
Rejected because signal opposed strong trend
Indicates counter-trend protection working
⨯ Regime:
Rejected because volatile regime detected and probability wasn't high enough to override
Shows regime filter in action
⨯ Volume:
Rejected because volume < 70% of 20-bar average
Indicates volume confirmation requirement
Color Coding:
Passed count: Green (success metric)
Rejection counts: Red (failure metrics)
Percentages: Gray (neutral, informational)
Performance Cost: Slight CPU overhead for tracking counters. Disable when not actively optimizing settings.
How to Use Diagnostics
Scenario 1: Too Few Signals
Evaluated: 200
Passed: 10 (5%)
⨯ Probability: 120 (60%)
⨯ Confluence: 40 (20%)
⨯ Others: 30 (15%)
Diagnosis: Probability threshold too high for this strategy's DNA.
Solution: Lower min probability from 65% to 60%, or allow strategy more time to evolve better DNA.
Scenario 2: Too Many False Signals
Evaluated: 200
Passed: 80 (40%)
Strategy win rate: 45%
Diagnosis: Quality gate too loose, letting low-quality signals through.
Solution: Raise min probability to 70%, or increase min confluence to 3 (all indicators must agree).
Scenario 3: Regime-Specific Issues
⨯ Regime: 90 (45% of rejections)
Diagnosis: Frequent volatile regime detection blocking otherwise good signals.
Solution: Either accept fewer trades during chaos (recommended), or disable regime filter if you want signals regardless of market state.
Optimization Workflow:
Enable diagnostics
Run 200+ bars
Analyze rejection patterns
Adjust settings based on data
Re-run and compare pass rate
Disable diagnostics when satisfied
⚙️ CONFIGURATION GUIDE
🧬 Evolution Engine Settings
Enable AGE Evolution (Default: ON):
ON: Full genetic algorithm (recommended for best results)
OFF: Uses only 4 seed strategies, no spawning/culling (static population for comparison testing)
Max Population (4-12, Default: 8):
Higher = more diversity, more exploration, slower performance
Lower = faster computation, less exploration, risk of premature convergence
Sweet spot: 6-8 for most use cases
4 = minimum for meaningful evolution
12 = maximum before diminishing returns
Min Population (2-4, Default: 3):
Safety floor - system never culls below this count
Prevents population extinction during harsh selection
Should be at least half of max population
Elite Preservation (1-3, Default: 2):
Top N performers completely immune to culling
Ensures best genes always survive
1 = minimal protection, aggressive selection
2 = balanced (recommended)
3 = conservative, slower gene pool turnover
Historical: Spawn Interval (10-100, Default: 30):
Bars between spawning new strategies during historical data
Lower = faster evolution, more exploration
Higher = slower evolution, more evaluation time per strategy
30 bars = ~1-2 hours on 15min chart
Historical: Cull Interval (20-200, Default: 60):
Bars between culling weak strategies during historical data
Should be 2x spawn interval for balanced churn
Lower = aggressive selection pressure
Higher = patient evaluation
Live: Spawn Interval (100-500, Default: 200):
Bars between spawning during live trading
Much slower than historical for stability
Prevents population chaos during live trading
200 bars = ~1.5 trading days on 15min chart
Live: Cull Interval (200-1000, Default: 400):
Bars between culling during live trading
Should be 2x live spawn interval
Conservative removal during live trading
Historical: Mutation Rate (0.05-0.40, Default: 0.20):
Probability each gene mutates during breeding (20% = 2 out of 10 genes on average)
Higher = more exploration, slower convergence
Lower = more exploitation, faster convergence but risk of local optima
20% balances exploration vs exploitation
Live: Mutation Rate (0.02-0.20, Default: 0.08):
Mutation rate during live trading
Much lower for stability (don't want population to suddenly degrade)
8% = mostly inherits parent genes with small tweaks
Mutation Strength (0.05-0.25, Default: 0.12):
How much genes change when mutated (% of gene's total range)
0.05 = tiny nudges (fine-tuning)
0.12 = moderate jumps (recommended)
0.25 = large leaps (aggressive exploration)
Example: If gene range is 0.5-2.0, 12% strength = ±0.18 possible change
📈 Signal Quality Settings
Min Signal Probability (0.55-0.80, Default: 0.65):
Quality gate threshold - signals below this never generate
0.55-0.60 = More signals, accept lower confidence (higher risk)
0.65 = Institutional-grade balance (recommended)
0.70-0.75 = Fewer but higher-quality signals (conservative)
0.80+ = Very selective, very few signals (ultra-conservative)
Min Confluence Score (1-3, Default: 2):
Required indicator agreement before signal generates
1 = Any single indicator can trigger (not recommended - too many false signals)
2 = Requires 2 of 3 indicators agree (RECOMMENDED for balance)
3 = All 3 must agree (very selective, few signals, high quality)
Base Persistence Bars (1-5, Default: 2):
Base bars signal must persist before entry
System adapts automatically:
High probability signals (75%+) enter 1 bar faster
Low probability signals (<68%) need 1 bar more
Trending regime: -1 bar (faster entries)
Volatile regime: +1 bar (more confirmation)
1 = Immediate entry after quality gate (responsive but prone to whipsaw)
2 = Balanced confirmation (recommended)
3-5 = Patient confirmation (slower but more reliable)
Cooldown After Trade (3-20, Default: 8):
Bars to wait after exit before next entry allowed
Prevents overtrading and revenge trading
3 = Minimal cooldown (active trading)
8 = Balanced (recommended)
15-20 = Conservative (position trading)
Entropy Length (10-50, Default: 20):
Lookback period for market order/disorder calculation
Lower = more responsive to regime changes (noisy)
Higher = more stable regime detection (laggy)
20 = works across most timeframes
Momentum Length (5-30, Default: 14):
Period for RSI/ROC calculations
14 = standard (RSI default)
Lower = more signals, less reliable
Higher = fewer signals, more reliable
Structure Length (20-100, Default: 50):
Lookback for support/resistance swing range
20 = short-term swings (day trading)
50 = medium-term structure (recommended)
100 = major structure (position trading)
Trend EMA Length (20-100, Default: 50):
EMA period for trend detection and direction bias
20 = short-term trend (responsive)
50 = medium-term trend (recommended)
100 = long-term trend (position trading)
ATR Period (5-30, Default: 14):
Period for volatility measurement
14 = standard ATR
Lower = more responsive to vol changes
Higher = smoother vol calculation
📊 Volatility Scaling (DVS) Settings
Enable DVS (Default: ON):
Dynamic volatility scaling for adaptive stop/target placement
Highly recommended to leave ON
OFF only for testing fixed-distance stops
DVS Method (Default: Ensemble):
ATR Ratio: Simple, fast, single-method (good for beginners)
Parkinson: High-low range based (good for intraday)
Garman-Klass: OHLC based (sophisticated, considers gaps)
Ensemble: Median of all three (RECOMMENDED - most robust)
DVS Memory (20-200, Default: 100):
Lookback for baseline volatility comparison
20 = very responsive to vol changes (can overreact)
100 = balanced adaptation (recommended)
200 = slow, stable baseline (minimizes false vol signals)
DVS Sensitivity (0.3-1.5, Default: 0.7):
How much volatility affects scaling (power-law exponent)
0.3 = Conservative, heavily dampens vol impact (cube root)
0.5 = Moderate dampening (square root)
0.7 = Balanced response (recommended)
1.0 = Linear, full 1:1 vol response
1.5 = Aggressive, amplified response (exponential)
🔬 Walk-Forward Optimization Settings
Enable WFO (Default: ON):
Out-of-sample validation to prevent overfitting
Highly recommended to leave ON
OFF only for testing or if you want unvalidated strategies
Training Window (100-500, Default: 250):
Bars for in-sample optimization
100 = fast validation, less data (risky)
250 = balanced (recommended) - about 1-2 months on daily, 1-2 weeks on 15min
500 = patient validation, more data (conservative)
Testing Window (30-200, Default: 75):
Bars for out-of-sample validation
Should be ~30% of training window
30 = minimal test (fast validation)
75 = balanced (recommended)
200 = extensive test (very conservative)
Min Trades for Validation (3-15, Default: 5):
Required trades in BOTH training AND testing periods
3 = minimal sample (risky, fast validation)
5 = balanced (recommended)
10+ = conservative (slow validation, high confidence)
WFO Efficiency Threshold (0.3-0.9, Default: 0.55):
Minimum test/train performance ratio required
0.30 = Very loose (test must be 30% as good as training)
0.55 = Balanced (recommended) - test must be 55% as good
0.70+ = Strict (test must closely match training)
Higher = fewer validated strategies, lower risk of overfitting
🎨 Premium Visuals Settings
Visual Theme:
Neon Genesis: Cyberpunk aesthetic (cyan/magenta/purple)
Carbon Fiber: Industrial look (blue/red/gray)
Quantum Blue: Quantum computing (blue/purple/pink)
Aurora: Northern lights (teal/orange/purple)
⚡ Gradient Probability Cloud (Default: ON):
Multi-layer gradient showing signal buildup
Turn OFF if chart lags or for cleaner look
Cloud Gradient Layers (3-15, Default: 7):
More layers = smoother gradient, more CPU intensive
Fewer layers = faster, blockier appearance
🎗️ Population Fitness Ribbon (Default: ON):
Histogram showing fitness distribution
Turn OFF for cleaner chart
Ribbon Layers (5-20, Default: 10):
More layers = finer fitness detail
Fewer layers = simpler histogram
⭕ Signal Confidence Halo (Default: ON):
Circular indicator around entry signals
Size/brightness scales with probability
Minimal performance cost
🔬 Evolution Event Markers (Default: ON):
Diamond (spawn) and X (cull) markers
Shows genetic algorithm activity
Minimal performance cost
🎯 Stop/Target Lines (Default: ON):
Shows shadow portfolio stop/target levels
Turn OFF for cleaner chart (recommended for screenshots/presentations)
📊 Enhanced Dashboard (Default: ON):
Comprehensive metrics panel
Should stay ON unless you want zero overlays
🔍 Diagnostics Panel (Default: OFF):
Detailed signal rejection tracking
Turn ON when optimizing settings
Turn OFF during normal use (slight performance cost)
📈 USAGE WORKFLOW - HOW TO USE THIS INDICATOR
Phase 1: Initial Setup & Learning
Add AGE to your chart
Recommended timeframes: 15min, 30min, 1H (best signal-to-noise ratio)
Works on: 5min (day trading), 4H (swing trading), Daily (position trading)
Load 1000+ bars for sufficient evolution history
Let the population evolve (100+ bars minimum)
First 50 bars: Random exploration, poor results expected
Bars 50-150: Population converging, fitness improving
Bars 150+: Stable performance, validated strategies emerging
Watch the dashboard metrics
Population should grow toward max capacity
Generation number should advance regularly
Validated strategies counter should increase
Best fitness should trend upward toward 0.50-0.70 range
Observe evolution markers
Diamond markers (cyan) = new strategies spawning
X markers (red) = weak strategies being culled
Frequent early activity = healthy evolution
Activity slowing = population stabilizing
Be patient. Evolution takes time. Don't judge performance before 150+ bars.
Phase 2: Signal Observation
Watch signals form
Gradient cloud builds up 2-3 bars before entry
Cloud brightness = probability strength
Cloud thickness = signal persistence
Check signal quality
Look at confidence halo size when entry marker appears
Large bright halo = elite setup (85%+)
Medium halo = strong setup (75-85%)
Small halo = good setup (65-75%)
Verify market conditions
Check trend EMA color (green = uptrend, red = downtrend, gray = choppy)
Check background tint (green = trending, red = volatile, clear = choppy)
Trending background + aligned signal = ideal conditions
Review dashboard signal status
Current Signal column shows:
Status (Long/Short/Forming/Waiting)
Confidence % (actual probability value)
Quality assessment (Elite/Strong/Good)
Confluence score (2/3 or 3/3 preferred)
Only signals meeting ALL quality gates appear on chart. If you're not seeing signals, population is either still learning or market conditions aren't suitable.
Phase 3: Manual Trading Execution
When Long Signal Fires:
Verify confidence level (dashboard or halo size)
Confirm trend alignment (EMA sloping up, green color)
Check regime (preferably trending or choppy, avoid volatile)
Enter long manually on your broker platform
Set stop loss at displayed stop line level (if lines enabled), or use your own risk management
Set take profit at displayed target line level, or trail manually
Monitor position - exit if X marker appears (signal reversal)
When Short Signal Fires:
Same verification process
Confirm downtrend (EMA sloping down, red color)
Enter short manually
Use displayed stop/target levels or your own
AGE tells you WHEN and HOW CONFIDENT. You decide WHETHER and HOW MUCH.
Phase 4: Set Up Alerts (Never Miss a Signal)
Right-click on indicator name in legend
Select "Add Alert"
Choose condition:
"AGE Long" = Long entry signal fired
"AGE Short" = Short entry signal fired
"AGE Exit" = Position reversal/exit signal
Set notification method:
Sound alert (popup on chart)
Email notification
Webhook to phone/trading platform
Mobile app push notification
Name the alert (e.g., "AGE BTCUSD 15min Long")
Save alert
Recommended: Set alerts for both long and short, enable mobile push notifications. You'll get alerted in real-time even if not watching charts.
Phase 5: Monitor Population Health
Weekly Review:
Check dashboard Population column:
Active count should be near max (6-8 of 8)
Validated count should be >50% of active
Generation should be advancing (1-2 per week typical)
Check dashboard Performance column:
Aggregate win rate should be >50% (target: 55-65%)
Total P&L should be positive (may fluctuate)
Best fitness should be >0.50 (target: 0.55-0.70)
MAS should be declining slowly (normal adaptation)
Check Active Strategy column:
Selected strategy should be validated (✓ VAL)
Personal fitness should match best fitness
Trade count should be accumulating
Win rate should be >50%
Warning Signs:
Zero validated strategies after 300+ bars = settings too strict or market unsuitable
Best fitness stuck <0.30 = population struggling, consider parameter adjustment
No spawning/culling for 200+ bars = evolution stalled (may be optimal or need reset)
Aggregate win rate <45% sustained = system not working on this instrument/timeframe
Health Check Pass:
50%+ strategies validated
Best fitness >0.50
Aggregate win rate >52%
Regular spawn/cull activity
Selected strategy validated
Phase 6: Optimization (If Needed)
Enable Diagnostics Panel (bottom-right) for data-driven tuning:
Problem: Too Few Signals
Evaluated: 200
Passed: 8 (4%)
⨯ Probability: 140 (70%)
Solutions:
Lower min probability: 65% → 60% or 55%
Reduce min confluence: 2 → 1
Lower base persistence: 2 → 1
Increase mutation rate temporarily to explore new genes
Check if regime filter is blocking signals (⨯ Regime high?)
Problem: Too Many False Signals
Evaluated: 200
Passed: 90 (45%)
Win rate: 42%
Solutions:
Raise min probability: 65% → 70% or 75%
Increase min confluence: 2 → 3
Raise base persistence: 2 → 3
Enable WFO if disabled (validates strategies before use)
Check if volume filter is being ignored (⨯ Volume low?)
Problem: Counter-Trend Losses
⨯ Trend: 5 (only 5% rejected)
Losses often occur against trend
Solutions:
System should already filter trend opposition
May need stronger trend requirement
Consider only taking signals aligned with higher timeframe trend
Use longer trend EMA (50 → 100)
Problem: Volatile Market Whipsaws
⨯ Regime: 100 (50% rejected by volatile regime)
Still getting stopped out frequently
Solutions:
System is correctly blocking volatile signals
Losses happening because vol filter isn't strict enough
Consider not trading during volatile periods (respect the regime)
Or disable regime filter and accept higher risk
Optimization Workflow:
Enable diagnostics
Run 200+ bars with current settings
Analyze rejection patterns and win rate
Make ONE change at a time (scientific method)
Re-run 200+ bars and compare results
Keep change if improvement, revert if worse
Disable diagnostics when satisfied
Never change multiple parameters at once - you won't know what worked.
Phase 7: Multi-Instrument Deployment
AGE learns independently on each chart:
Recommended Strategy:
Deploy AGE on 3-5 different instruments
Different asset classes ideal (e.g., ES futures, EURUSD, BTCUSD, SPY, Gold)
Each learns optimal strategies for that instrument's personality
Take signals from all 5 charts
Natural diversification reduces overall risk
Why This Works:
When one market is choppy, others may be trending
Different instruments respond to different news/catalysts
Portfolio-level win rate more stable than single-instrument
Evolution explores different parameter spaces on each chart
Setup:
Same settings across all charts (or customize if preferred)
Set alerts for all
Take every validated signal across all instruments
Position size based on total account (don't overleverage any single signal)
⚠️ REALISTIC EXPECTATIONS - CRITICAL READING
What AGE Can Do
✅ Generate probability-weighted signals using genetic algorithms
✅ Evolve strategies in real-time through natural selection
✅ Validate strategies on out-of-sample data (walk-forward optimization)
✅ Adapt to changing market conditions automatically over time
✅ Provide comprehensive metrics on population health and signal quality
✅ Work on any instrument, any timeframe, any broker
✅ Improve over time as weak strategies are culled and fit strategies breed
What AGE Cannot Do
❌ Win every trade (typical win rate: 55-65% at best)
❌ Predict the future with certainty (markets are probabilistic, not deterministic)
❌ Work perfectly from bar 1 (needs 100-150 bars to learn and stabilize)
❌ Guarantee profits under all market conditions
❌ Replace your trading discipline and risk management
❌ Execute trades automatically (this is an indicator, not a strategy)
❌ Prevent all losses (drawdowns are normal and expected)
❌ Adapt instantly to regime changes (re-learning takes 50-100 bars)
Performance Realities
Typical Performance After Evolution Stabilizes (150+ bars):
Win Rate: 55-65% (excellent for trend-following systems)
Profit Factor: 1.5-2.5 (realistic for validated strategies)
Signal Frequency: 5-15 signals per 100 bars (quality over quantity)
Drawdown Periods: 20-40% of time in equity retracement (normal trading reality)
Max Consecutive Losses: 5-8 losses possible even with 60% win rate (probability says this is normal)
Evolution Timeline:
Bars 0-50: Random exploration, learning phase - poor results expected, don't judge yet
Bars 50-150: Population converging, fitness climbing - results improving
Bars 150-300: Stable performance, most strategies validated - consistent results
Bars 300+: Mature population, optimal genes dominant - best results
Market Condition Dependency:
Trending Markets: AGE excels - clear directional moves, high-probability setups
Choppy Markets: AGE struggles - fewer signals generated, lower win rate
Volatile Markets: AGE cautious - higher rejection rate, wider stops, fewer trades
Market Regime Changes:
When market shifts from trending to choppy overnight
Validated strategies can become temporarily invalidated
AGE will adapt through evolution, but not instantly
Expect 50-100 bar re-learning period after major regime shifts
Fitness may temporarily drop then recover
This is NOT a holy grail. It's a sophisticated signal generator that learns and adapts using genetic algorithms. Your success depends on:
Patience during learning periods (don't abandon after 3 losses)
Proper position sizing (risk 0.5-2% per trade, not 10%)
Following signals consistently (cherry-picking defeats statistical edge)
Not abandoning system prematurely (give it 200+ bars minimum)
Understanding probability (60% win rate means 40% of trades WILL lose)
Respecting market conditions (trending = trade more, choppy = trade less)
Managing emotions (AGE is emotionless, you need to be too)
Expected Drawdowns:
Single-strategy max DD: 10-20% of equity (normal)
Portfolio across multiple instruments: 5-15% (diversification helps)
Losing streaks: 3-5 consecutive losses expected periodically
No indicator eliminates risk. AGE manages risk through:
Quality gates (rejecting low-probability signals)
Confluence requirements (multi-indicator confirmation)
Persistence requirements (no knee-jerk reactions)
Regime awareness (reduced trading in chaos)
Walk-forward validation (preventing overfitting)
But it cannot prevent all losses. That's inherent to trading.
🔧 TECHNICAL SPECIFICATIONS
Platform: TradingView Pine Script v5
Indicator Type: Overlay indicator (plots on price chart)
Execution Type: Signals only - no automatic order placement
Computational Load:
Moderate to High (genetic algorithms + shadow portfolios)
8 strategies × shadow portfolio simulation = significant computation
Premium visuals add additional load (gradient cloud, fitness ribbon)
TradingView Resource Limits (Built-in Caps):
Max Bars Back: 500 (sufficient for WFO and evolution)
Max Labels: 100 (plenty for entry/exit markers)
Max Lines: 150 (adequate for stop/target lines)
Max Boxes: 50 (not heavily used)
Max Polylines: 100 (confidence halos)
Recommended Chart Settings:
Timeframe: 15min to 1H (optimal signal/noise balance)
5min: Works but noisier, more signals
4H/Daily: Works but fewer signals
Bars Loaded: 1000+ (ensures sufficient evolution history)
Replay Mode: Excellent for testing without risk
Performance Optimization Tips:
Disable gradient cloud if chart lags (most CPU intensive visual)
Disable fitness ribbon if still laggy
Reduce cloud layers from 7 to 3
Reduce ribbon layers from 10 to 5
Turn off diagnostics panel unless actively tuning
Close other heavy indicators to free resources
Browser/Platform Compatibility:
Works on all modern browsers (Chrome, Firefox, Safari, Edge)
Mobile app supported (full functionality on phone/tablet)
Desktop app supported (best performance)
Web version supported (may be slower on older computers)
Data Requirements:
Real-time or delayed data both work
No special data feeds required
Works with TradingView's standard data
Historical + live data seamlessly integrated
🎓 THEORETICAL FOUNDATIONS
AGE synthesizes advanced concepts from multiple disciplines:
Evolutionary Computation
Genetic Algorithms (Holland, 1975): Population-based optimization through natural selection metaphor
Tournament Selection: Fitness-based parent selection with diversity preservation
Crossover Operators: Fitness-weighted gene recombination from two parents
Mutation Operators: Random gene perturbation for exploration of new parameter space
Elitism: Preservation of top N performers to prevent loss of best solutions
Adaptive Parameters: Different mutation rates for historical vs. live phases
Technical Analysis
Support/Resistance: Price structure within swing ranges
Trend Following: EMA-based directional bias
Momentum Analysis: RSI, ROC, MACD composite indicators
Volatility Analysis: ATR-based risk scaling
Volume Confirmation: Trade activity validation
Information Theory
Shannon Entropy (1948): Quantification of market order vs. disorder
Signal-to-Noise Ratio: Directional information vs. random walk
Information Content: How much "information" a price move contains
Statistics & Probability
Walk-Forward Analysis: Rolling in-sample/out-of-sample optimization
Out-of-Sample Validation: Testing on unseen data to prevent overfitting
Monte Carlo Principles: Shadow portfolio simulation with realistic execution
Expectancy Theory: Win rate × avg win - loss rate × avg loss
Probability Distributions: Signal confidence quantification
Risk Management
ATR-Based Stops: Volatility-normalized risk per trade
Volatility Regime Detection: Market state classification (trending/choppy/volatile)
Drawdown Control: Peak-to-trough equity measurement
R-Multiple Normalization: Performance measurement in risk units
Machine Learning Concepts
Online Learning: Continuous adaptation as new data arrives
Fitness Functions: Multi-objective optimization (win rate + expectancy + drawdown)
Exploration vs. Exploitation: Balance between trying new strategies and using proven ones
Overfitting Prevention: Walk-forward validation as regularization
Novel Contribution:
AGE is the first TradingView indicator to apply genetic algorithms to real-time indicator parameter optimization while maintaining strict anti-overfitting controls through walk-forward validation.
Most "adaptive" indicators simply recalibrate lookback periods or thresholds. AGE evolves entirely new strategies through competitive selection - it's not parameter tuning, it's Darwinian evolution of trading logic itself.
The combination of:
Genetic algorithm population management
Shadow portfolio simulation for realistic fitness evaluation
Walk-forward validation to prevent overfitting
Multi-indicator confluence for signal quality
Dynamic volatility scaling for adaptive risk
...creates a system that genuinely learns and improves over time while avoiding the curse of curve-fitting that plagues most optimization approaches.
🏗️ DEVELOPMENT NOTES
This project represents months of intensive development, facing significant technical challenges:
Challenge 1: Making Genetics Actually Work
Early versions spawned garbage strategies that polluted the gene pool:
Random gene combinations produced nonsensical parameter sets
Weak strategies survived too long, dragging down population
No clear convergence toward optimal solutions
Solution:
Comprehensive fitness scoring (4 factors: win rate, P&L, expectancy, drawdown)
Elite preservation (top 2 always protected)
Walk-forward validation (unproven strategies penalized 30%)
Tournament selection (fitness-weighted breeding)
Adaptive culling (MAS decay creates increasing selection pressure)
Challenge 2: Balancing Evolution Speed vs. Stability
Too fast = population chaos, no convergence. Too slow = can't adapt to regime changes.
Solution:
Dual-phase timing: Fast evolution during historical (30/60 bar intervals), slow during live (200/400 bar intervals)
Adaptive mutation rates: 20% historical, 8% live
Spawn/cull ratio: Always 2:1 to prevent population collapse
Challenge 3: Shadow Portfolio Accuracy
Needed realistic trade simulation without lookahead bias:
Can't peek at future bars for exits
Must track multiple portfolios simultaneously
Stop/target checks must use bar's high/low correctly
Solution:
Entry on close (realistic)
Exit checks on current bar's high/low (realistic)
Independent position tracking per strategy
Cooldown periods to prevent unrealistic rapid re-entry
ATR-normalized P&L (R-multiples) for fair comparison across volatility regimes
Challenge 4: Pine Script Compilation Limits
Hit TradingView's execution limits multiple times:
Too many array operations
Too many variables
Too complex conditional logic
Solution:
Optimized data structures (single DNA array instead of 8 separate arrays)
Minimal visual overlays (only essential plots)
Efficient fitness calculations (vectorized where possible)
Strategic use of barstate.islast to minimize dashboard updates
Challenge 5: Walk-Forward Implementation
Standard WFO is difficult in Pine Script:
Can't easily "roll forward" through historical data
Can't re-optimize strategies mid-stream
Must work in real-time streaming environment
Solution:
Age-based phase detection (first 250 bars = training, next 75 = testing)
Separate metric tracking for train vs. test
Efficiency calculation at fixed interval (after test period completes)
Validation flag persists for strategy lifetime
Challenge 6: Signal Quality Control
Early versions generated too many signals with poor win rates:
Single indicators produced excessive noise
No trend alignment
No regime awareness
Instant entries on single-bar spikes
Solution:
Three-layer confluence system (entropy + momentum + structure)
Minimum 2-of-3 agreement requirement
Trend alignment checks (penalty for counter-trend)
Regime-based probability adjustments
Persistence requirements (signals must hold multiple bars)
Volume confirmation
Quality gate (probability + confluence thresholds)
The Result
A system that:
Truly evolves (not just parameter sweeps)
Truly validates (out-of-sample testing)
Truly adapts (ongoing competition and breeding)
Stays within TradingView's platform constraints
Provides institutional-quality signals
Maintains transparency (full metrics dashboard)
Development time: 3+ months of iterative refinement
Lines of code: ~1500 (highly optimized)
Test instruments: ES, NQ, EURUSD, BTCUSD, SPY, AAPL
Test timeframes: 5min, 15min, 1H, Daily
🎯 FINAL WORDS
The Adaptive Genesis Engine is not just another indicator - it's a living system that learns, adapts, and improves through the same principles that drive biological evolution. Every bar it observes adds to its experience. Every strategy it spawns explores new parameter combinations. Every strategy it culls removes weakness from the gene pool.
This is evolution in action on your charts.
You're not getting a static formula locked in time. You're getting a system that thinks , that competes , that survives through natural selection. The strongest strategies rise to the top. The weakest die. The gene pool improves generation after generation.
AGE doesn't claim to predict the future - it adapts to whatever the future brings. When markets shift from trending to choppy, from calm to volatile, from bullish to bearish - AGE evolves new strategies suited to the new regime.
Use it on any instrument. Any timeframe. Any market condition. AGE will adapt.
This indicator gives you the pure signal intelligence. How you choose to act on it - position sizing, risk management, execution discipline - that's your responsibility. AGE tells you when and how confident . You decide whether and how much .
Trust the process. Respect the evolution. Let Darwin work.
"In markets, as in nature, it is not the strongest strategies that survive, nor the most intelligent - but those most responsive to change."
Taking you to school. — Dskyz, Trade with insight. Trade with anticipation.
— Happy Holiday's
US Macro Dashboard: Rates, Unemployment, InflationThis script builds a macro dashboard that plots the US interest rate, unemployment rate, and year‑over‑year inflation on a single chart.
It pulls each series from TradingView’s economic data and displays them together so you can visually compare the three key indicators over time.
Hemanth's Pure Z-Score IndicatorThe Pure Z-Score Indicator is a statistical tool that measures how far the current price is from its recent average in terms of standard deviations. It helps traders identify overbought, oversold, and mean-reverting conditions in the market. This indicator is fully customizable, lightweight, and easy to use.
Key Features:
Displays the Z-Score of the price with optional smoothing.
Highlights overbought and oversold zones based on standard deviation thresholds.
Highlights mean (0) level for tracking price reversion.
Optional SMA or EMA smoothing to reduce noise.
Background highlights visually indicate extreme zones for easier analysis.
Inputs:
Length – Number of bars used to calculate the Z-Score.
Higher values smooth the indicator but react slower.
Lower values make it more sensitive but may produce more noise.
Overbought Level – Upper threshold for the Z-Score.
Default: 2.0 (2 standard deviations above the mean).
Crossing above this level signals a statistically overbought condition.
Oversold Level – Lower threshold for the Z-Score.
Default: -2.0 (2 standard deviations below the mean).
Crossing below this level signals a statistically oversold condition.
Use EMA instead of SMA – Determines whether the basis for Z-Score calculation is an Exponential Moving Average (EMA) or a Simple Moving Average (SMA).
EMA reacts faster to recent price changes.
SMA gives a smoother, slower-reacting average.
Smooth Z-Score (0 = no smoothing) – Apply additional smoothing to the Z-Score using a moving average.
Reduces noise and false spikes for cleaner visualization.
How to Use:
Overbought/Oversold: Watch for the Z-Score crossing the upper or lower levels to identify potential reversal zones.
Mean Reversion: Z-Score crossing the mean (0) can indicate short-term trend shifts.
Smoothing Options: Adjust the smoothing length and type to suit your trading style and timeframe.
Recommended Timeframes:
Works on any timeframe; suitable for day trading, swing trading, or longer-term analysis.
Best used in combination with price action or other indicators for confirmation.
Note:
This is a pure statistical indicator based on standard deviations. It does not provide buy/sell signals by itself, but helps traders identify areas of extreme price movement and potential reversals.
TRADE2GO CALCULATORMobile-Optimized Position Size Calculator with Intuitive Moveable Lines
Trading on mobile just got easier. Our TradingView calculator features drag-and-drop interactive lines designed specifically for touchscreen devices, eliminating the need for manual price input on small screens.
Key Features:
Easy Touch Controls - Simply drag the Entry, Stop Loss, and Take Profit lines directly on your chart. No more typing precise prices on tiny keyboards or struggling with number pads while analyzing the market.
Real-Time Calculations - As you move the lines, lot sizes and risk parameters update instantly. See your position size, potential profit, and risk amount change dynamically as you adjust your trade setup.
Perfect for Mobile Trading - Whether you're trading on-the-go or prefer mobile analysis, the moveable lines provide a seamless experience that works naturally with touch gestures. Pinch to zoom, drag to position, and your calculations follow your trade plan in real-time.
Visual Trade Planning - Place your lines where you see support/resistance levels, trend lines, key chart patterns, or using Pip Booster trading levels. Your position sizing adapts automatically to your technical analysis, keeping risk management front and center.
One-Glance Risk Assessment - All critical information displays clearly: lot size, risk and reward amounts in your account currency, and the calculated lot size to use—all updating as you refine your trade setup visually on the chart.
Trade smarter on mobile with a calculator that moves at the speed of your analysis.
Realized Volatility — Wang Shi JieA realized volatility indicator based on return standard deviation. Displays volatility for either a selected date range or the latest N bars, helping identify periods of strong or weak price movement.”**
IQR Bands – Clean (Wang Shi Jie)Robust IQR Bands identifies price extremes using statistical quartiles. Unlike Bollinger Bands, it resists noise by focusing on the median Q1-Q3 range and 1.5x IQR outlier levels. Features adaptive source inputs (Close/Open) for precise real-time analysis. Ideal for spotting mean reversion setups.
Z-Score – Clean & Hover Info Wang Shi JieClean Z-Score indicator with no clutter. Shows Z-Score line and key levels (+2/–2/–3). Hover any bar to view date, close price, and Z value. Simple, fast, and ideal for quant and mean-reversion trading.
FAIR VALUE CEDEARSFair Value CEDEARS y ETFs
Important: load together with the CEDEARdata library.
Returns the “Fair Value” of CEDEAR and CEDEAR-based ETF prices traded on ByMA, using as a reference the price of the underlying ordinary share or ETF traded on the NYSE or NASDAQ. It multiplies the NYSE/NASDAQ price by the CEDEAR or ETF conversion ratio and converts the currency to ARS or Dólar MEP using the exchange rate implied by the AL30/AL30C ratio for tickers quoted in ARS (e.g., AAPL) and AL30D/AL30C for tickers quoted in Dólar MEP (e.g., AAPLD).
If the CEDEAR or ETF quote is higher than Fair Value, it highlights the difference in red; if it is lower, it highlights it in green. If any of the markets is closed or in an auction period, it notifies the user and changes the background color.
By default, the CEDEAR or ETF quote used is the last price, but the user may choose to use the BID or OFFER instead. This allows CEDEAR and ETF buyers to compare Fair Value against the OFFER, while sellers may prefer to measure Fair Value against the BID of the local instrument.
BCBA:AAPL
BCBA:AAPLD
NASDAQ:AAPL
BCBA:SPY
BCBA:TSLA
BCBA:TSLAD
CEDEARS
ETFs
ByMA
Liquidation HeatmapSDSH Liquidation Heatmap: Stochastic Microstructure Modeling
Technical Summary
This indicator implements an advanced algorithmic approach for the detection of liquidity and liquidation zones using the State-Dependent Spread Hawkes (SDSH) model. Unlike conventional heatmaps that aggregate raw Ask/Bid and Open Interest (OI) data from external data providers, this script generates a synthetic liquidity topology based purely on the physics of price movement and market microstructure.
Scientific Foundation: The SDSH Model
The core of the indicator relies on two integrated mathematical components that allow for the inference of latent order locations without reading the Limit Order Book (LOB):
State-Dependent Spread Estimation: It uses variations of range-based volatility estimators (based on Corwin-Schultz principles) to calculate the "effective spread" of the market in real-time. This allows determining the actual price friction and, consequently, where leveraged positions are statistically likely to accumulate.
Self-Exciting Hawkes Processes: A stochastic point process model (Hawkes Process) is applied to measure the "intensity" of liquidity events. The algorithm assumes that order arrivals and volatility cluster in time; the model quantifies this market "memory" to project the future intensity of liquidations.
High-Fidelity Replication without Level 2 Data
The critical value of this indicator lies in its ability to replicate with spatial exactitude the zones that a Liquidation Heatmap based on Tick-level or real market depth data would signal, but operating in a "black box" environment regarding provider data.
By triangulating volatility, temporal intensity decay (Hawkes Decay), and standard leverage projections (100x, 50x, 25x), the algorithm reconstructs the liquidation map. Mathematically, real liquidation zones are a function of participant entry and subsequent volatility; by modeling these variables accurately, the visual result converges with the actual location of stop-losses and mass liquidation points.
Utility for Quantitative Modeling (Quants)
This tool is designed for research and quantitative trading environments that require:
Data Independence: Elimination of the need for expensive subscriptions to Open Interest or Depth of Market (DOM) data.
Noise Filtering: As a mathematical model, it filters out "spoofing" (fake orders in the book) that often clutters traditional heatmaps, showing only zones where market structure mathematically forces the existence of liquidity.
Structural Backtesting: It allows for the validation of mean reversion and liquidity breakout strategies on historical data where market depth information is often unavailable or unreliable.
Visual Parameters
The indicator renders "stress boxes" with opacity gradients based on the probability of price collision.
Colors: Map the density of estimated synthetic contracts.
Persistence: Zones remain active until the price interacts with them (absorption) or the model determines that liquidity has dissipated (Hawkes decay).
Nifty levels SHIVAJIonly for nifty levels and only for paper trade----
📊 NIFTY LEVELS – Intraday Trading Indicator
NIFTY LEVELS एक simple और powerful intraday indicator है जो NIFTY के लिए Daily Open आधारित महत्वपूर्ण support & resistance levels automatically plot करता है।
🔹 Indicator क्या दिखाता है
✅ Day Open Level
✅ Major Resistance & Support Levels
✅ Scalping Levels (Intraday Trading के लिए)
✅ Auto update हर नए trading day के साथ
🔹 किसके लिए उपयोगी है
✅ Intraday Traders
✅ Scalpers
✅ Bank Nifty / Nifty Option Traders
✅ Index based price action trading
🔹 कैसे इस्तेमाल करें
📌 Price Day Open के ऊपर हो → Buy bias
📌 Price Day Open के नीचे हो → Sell bias
📌 Big Levels पर reversal या breakout observe करें
📌 Scalping levels से quick entry & exit के लिए सहायता
🔹 Best Timeframe
1 min – 15 min (Intraday)
Index charts (NIFTY
NQ Market DNA MapNQ Market DNA Map
The Market DNA Map indicator is designed to visualize key trading sessions (Asia, London, and New York) on the chart while providing a probabilistic lookup table based on historical session patterns. This tool draws session boxes with midline references, extends session highs and lows until mitigated or a daily hardstop (16:00 in the selected timezone), and displays a summary table with statistical metrics derived from predefined historical data. The data mappings are hardcoded, reflecting an analytical approach for session-based price action. Note that all probabilities and metrics are based on past observations and should not be interpreted as predictions or guarantees of future market behavior. These statistics are only tested and generated based on NQ futures. This indicator is for educational and informational purposes only; trading decisions should incorporate additional analysis and risk management.
Key Features
• Session Visualization:
o Draws colored boxes for the Asia, London, and New York sessions, updating in real-time as the session progresses.
o Includes a dotted midline within each box for quick reference to the session's midpoint.
o Extends horizontal lines from the final session high and low until price mitigates them (crossing both above and below) or the daily hardstop is reached.
• Probabilistic Table:
o A customizable-position table appears on the chart (once the New York open is detected), summarizing conditions and metrics for the current day's setup.
o Conditions include: Asia range relative to its rolling average, London open relative to Asia's midpoint, London sweep type (high only, low only, both, or none), and New York open relative to London's midpoint.
o Metrics displayed include:
First High Sweep %: Probability (based on historical data) that the high of the prior session is swept first during New York.
First Low Sweep %: Probability that the low is swept first.
Med Pen ↑ (High): Median penetration distance (in points) above the session high.
Med Pen ↓ (Low): Median penetration below the session low.
Fail High -> Low %: Failure rate where an initial high sweep fails and reverses to sweep the low.
Fail Low -> High %: Failure rate for an initial low sweep reversing to the high.
Sample Size: Number of historical observations for the matching pattern (n value), with a rating of "High" (n ≥ 150), "Mid" (n ≥ 75), or "Low" (n < 75) to indicate data reliability.
o The table uses color-coding for quick interpretation: Green for above-average/above-mid conditions, red for below, and neutral tones for metrics.
• Asia Range Ratio: Calculates a rolling average of Asia session ranges over a user-defined lookback period to classify the current Asia range as above or below average.
• Hardstop Logic: All extensions cease at 16:00 in the selected timezone to align with typical daily cycle resets.
Inputs and Customization
• Calculation Timezone: Select from predefined options (e.g., "America/New_York", "Europe/London") to align session times with your preferred market clock. Default: "America/New_York".
• Session Times:
o Asia Session: Default "2000-0200" (8:00 PM to 2:00 AM in the selected timezone).
o London Session: Default "0200-0800" (2:00 AM to 8:00 AM).
o NY Session: Default "0800-1600" (8:00 AM to 4:00 PM). These can be adjusted to match specific market hours or personal preferences.
• Asia Ratio Rolling Window: Integer lookback (default: 20) for calculating the average Asia session range ratio (range divided by open price).
• Table Position: Choose where the summary table appears on the chart (e.g., top_right, bottom_right). Default: top_right.
• Colors: Customizable box fill and border colors for each session (Asia: yellow tones, London: blue, NY: gray) with transparency settings for overlay compatibility.
How It Works
1. Session Detection: The indicator checks the current bar's time against user-defined sessions in the selected timezone. Sessions are non-overlapping and assume a 24-hour cycle.
2. Box and Line Drawing:
o At session start, a box is initialized from the open/high/low.
o As the session progresses, the box expands to capture the live high/low, with the midline updating dynamically.
o Upon session end, final high/low are locked, and extension lines are drawn horizontally.
o Extensions persist until price fully mitigates the level (high ≥ level and low ≤ level) or the hardstop time is passed.
3. Asia Ratio Calculation: Maintains a historical array of Asia range ratios (high-low divided by open). The current ratio is compared to the average over the lookback to classify as "Above Avg" or "Below Avg".
4. Key Generation and Lookup:
o A unique key is built from four binary/ternary codes: Asia classification (0/1), London open vs. Asia mid (0/1), London sweep type (0=high only, 1=low only, 2=both, 3=none), NY open vs. London mid (0/1).
o This key queries a hardcoded map of historical data (e.g., "0_0_0_0" for above-avg Asia, above-mid London open, high-only sweep, above-mid NY open).
o Data includes sample size, probabilities, failure rates, and median penetrations, all derived from historical analysis (total samples across all keys: approximately 5,000+ based on the provided mappings).
5. Table Rendering: On the last bar (real-time), the table populates with the current key's data. Metrics are formatted for readability, and penetration values are scaled to the current London high/low in points for context.
6. Performance Notes: The indicator uses up to 500 lines and boxes for extensions and visuals, ensuring compatibility with TradingView limits. It is overlay=true, so it plots directly on the price chart.
Data Source and Limitations
The probabilistic data is hardcoded and represents a compilation of historical session patterns from backtested or observed market behavior on NQ futures. Exact data collection methodology is not specified in the script, but values are presented as-is for illustrative purposes. Users should verify applicability to their specific symbol/timeframe, as markets evolve and past patterns may not repeat. Low-sample patterns (rated "Low") have higher uncertainty.
This indicator does not generate buy/sell signals, alerts, or trading strategies—it solely provides visual and statistical context. Always combine with other tools, fundamental analysis, and proper risk controls. Trading involves risk of loss; no performance guarantees are implied. If republishing or modifying, please credit the original structure and adhere to TradingView's publication guidelines. For questions on usage, refer to TradingView documentation on session indicators and probabilistic tools.
Precious Matrix Signal-S-L15-sum⭐ PRECIOUS MATRIX SIGNAL™
Today Range + R1–R6 Multi-Layer Market Structure Engine
Final Output → 🔵 BUY | 🔴 SELL | ⏹ NEUTRAL
A powerful, multi-range decision engine that reads today’s live structure and compares it with six major past ranges, Δ/E shifts, and daily strength summaries to generate a precise directional signal.
📘 What This Indicator Does
This indicator builds a complete price-behavior matrix combining:
🔹 Today’s High–Low structure
🔹 Six custom historical ranges (R1–R6)
🔹 Live Δ/E trend shifts
🔹 A/R (Above–Below Range) positioning
🔹 Remaining Potential %
🔹 Last-5, Last-10, Last-15 day trend summary
🔹 Auto Spot–Future selection
🔹 Lot size & Margin info
( Not for dark mode &only on NSE Futures & Spot )
All layers combine to produce a single actionable signal.
🔶 How It Works (Simple Flow)
1️⃣ Symbol Auto-Detection
If chart is futures, uses futures data
If futures range missing → switches to continuous 1!
If chart is spot, uses spot cleanly
Auto-reads lot size and margin
2️⃣ Today’s Live Range Engine
Live High / Low
Time of High & Low
Δ (Range size)
A/R (Where current price sits inside the range)
Remaining Potential % (powerful continuation measure)
3️⃣ R1–R6 Custom Range Engine
Each user-set range displays:
High & Low
Δ
A/R positioning
Remaining Potential %
Overshoot/Breakdown markers
Δ/E (Direction shift)
Color-coded range strength
4️⃣ Δ/E Shift Logic (Live Mode)
For each R1–R6:
Prev = previous close before the range
E = end-close of the range
Δ/E = Direction:
▲ Positive → Bullish
▼ Negative → Bearish
■ Neutral → Sideways
If the range ends today → uses intraday close (E*).
5️⃣ Trend Validation (Last-5 / 10 / 15 Days)
Automatic summary tables:
Daily Date
Close
H/L
Δ
A/R
Net Trend Color
Strongest zone marked
This prevents false signals and confirms bias.
6️⃣ Final Signal Engine
Uses a weighted scoring across:
Today’s bias
R1–R6 bias
Δ/E direction
Remaining potential
Last-5/10/15 confirmation
🔵 BUY
→ Majority Ranges UP
→ Today’s structure UP
→ Δ/E = ▲
→ Last-5 positive
🔴 SELL
→ Majority Ranges DOWN
→ Today’s structure DOWN
→ Δ/E = ▼
→ Last-5 negative
⏹ NEUTRAL
→ Mixed or no clear dominance
→ Low potential/compressed price
📊 Dashboard Panels
Panel 1 – Today + R1–R6 Master Matrix
Shows:
H / L / Δ
A/R
Remaining Potential %
Δ/E (live option)
Range badges & colors
Panel 2 – Last-5 / 10 / 15 Summary
Your secondary confirmation panel.
Panel 3 – Lot Size + Margin
Auto margin estimate at 24%.
⚙️ Input Controls
Show/Hide HLX Panel
Custom Range Start/End
Δ/E Live Override
Force Intraday Mode
Last-5/10/15 Selector ( last work properly display on mobile )
Nudge (Panel Offset)
Potential % thresholds
Designed to adjust smoothly for all timeframes.
🎯 Recommended Usage
Use on 3m / 5m / 15m / 30m / 1H / 2H / 4H
Works great on Index Futures, Stock Futures, and Spot
Keep Option-2 Δ/E enabled for live trading
Last-5 and R2–R6 give strongest confirmation for trend days
📈 Who Is This For?
Traders who want:
Multi-range professional context
Reliable bias confirmation
High-probability directional entries
Auto-range intelligence without manual marking
Futures–spot multi-engine precision
🟢 SUPER-SIMPLE FLOWCHART
START
|
Detect Spot/Future + Lot
|
Compute TODAY H/L
|
Compute R1–R6 Ranges
|
Apply Δ/E Live Logic
|
Build Range Strength Score
|
Build Last5/10/15 Trend
|
Combine All Scores (matrix)
|
BUY ? SELL ? NEUTRAL ?
|
Display Full Dashboard
🛑 Disclaimer
This is an educational tool.
No buy/sell recommendations.
Always use proper risk management.
6B1! Manipulation/Distribution Projections (OHLC Stats)Overview
The Manipulation/Distribution Projections (OHLC Stats) indicator is a powerful tool designed to forecast potential price levels for various timeframes on British Pound futures (6B1!). It operates on a simple yet profound principle: price action within a single candle can be broken down into “manipulation” and “distribution” phases.
By analyzing over 17 years of 6B (6B1!) historical OHLC data externally in Python, this script calculates the average (mean) and typical (median) extent of these movements. These statistical insights are then used to project key levels on your chart based on the current period’s opening price—providing a statistically-grounded framework for potential support, resistance, and price targets.
________________________________________
Key Concepts Explained
The indicator’s logic is based on how price wicks and bodies form relative to the opening price.
• Manipulation: This refers to the initial move that goes against the candle’s eventual direction.
o For a bullish candle, it’s the lower wick (the move from the open down to the low before reversing higher).
o For a bearish candle, it’s the upper wick (the move from the open up to the high before selling off).
It represents a “fake out” or a stop hunt.
• Distribution: This is the primary, directional move of the candle from the opening price.
o For a bullish candle, it’s the distance from the open to the high.
o For a bearish candle, it’s the distance from the open to the low.
It represents the “real” intended direction of price for that period.
________________________________________
How It Works
This indicator does not calculate these ratios in real-time. Instead, it leverages a comprehensive statistical analysis performed externally in Python on over 17 years of 6B (6B1!) OHLC data. This analysis determined the mean and median ratios for both Manipulation and Distribution movements across different timeframes and, for intraday periods, different times of day.
These pre-computed, static ratios are embedded directly into the script. When a new period begins (e.g., a new day on the Daily timeframe), the indicator:
1. Takes the opening price for that period.
2. Retrieves the corresponding pre-calculated Manipulation and Distribution ratios.
3. Applies these ratios to the opening price to project eight potential price levels:
o
/ - Mean Distribution
o
/ - Median Distribution
o
/ - Mean Manipulation
o
/ - Median Manipulation
This approach provides a stable, forward-looking set of levels for the entire duration of the trading period.
________________________________________
Features
• Statistically-Derived Projections: Plots eight key price levels based on historical tendencies, providing clear potential zones for entries, exits, and stop placement.
• Selectable Timeframe: Choose to view projections for the 1H, 4H, 1D, or 1W periods directly from the settings.
• Dynamic Stats Table: A powerful, on-chart dashboard that provides real-time context. For all four timeframes (1H, 4H, 1D, 1W), it shows:
o Position: Where the current price is relative to the projected zones (e.g., “In +Manip Zone,” “Below -Dist”).
o Range Completed: The percentage of the historical average range that the current period has already covered.
o Current & Average Range: The current high-to-low range in points vs. the historical average.
• Historical Context: You can display levels for previous periods to see how price has interacted with them in the past.
• Full Customization: Control the color, style, and visibility of every line, label, and fill to match your chart’s theme.
________________________________________
How to Use
This indicator is versatile and can be integrated into various trading strategies.
• Identifying Targets & Reversal Zones: The Distribution levels (especially the zone between the median and mean) can serve as logical take-profit targets, as they represent a historical point of extension. Conversely, Manipulation levels can indicate areas where price might form a wick and reverse.
• Gauging Volatility: Use the Stats Table’s “Range Completed” column to assess market conditions. If the 1D range is only 30% complete by mid-day, there may be room for significant expansion. If it’s already at 150%, the market might be overextended and due for consolidation.
• Multi-Timeframe Confluence: Use the Stats Table to quickly check if the price on a lower timeframe (e.g., 1H) is approaching a significant level on a higher timeframe (e.g., 1D), adding more weight to that level.
• Defining Bias: If the price opens and holds above the Manipulation zones, it can signal a strong directional bias for the rest of the period.
________________________________________
Settings
• Projection Timeframe: The primary timeframe for which to calculate and display the levels.
• Historical Periods to Show: Set to 1 for only the current period, or increase to see how levels from past periods held up.
• Timezone: Set the timezone for accurate hourly calculations (defaults to America/New_York).
• Visuals: Customize the appearance of the projection lines, labels, and the shaded zones between mean and median levels.
• Stats Table: Enable/disable the table and configure its position, size, and colors.
________________________________________
Disclaimer
This indicator is for informational and educational purposes only. It does not constitute financial advice or a recommendation to buy or sell any asset. All trading involves risk, and past performance is not indicative of future results. Please do your own research and risk management.
Enjoy!
GC1! Manipulation/Distribution Projections (17 years OHLC Stats)Overview
The Manipulation/Distribution Projections (OHLC Stats) indicator is a powerful tool designed to forecast potential price levels for various timeframes on Gold futures (GC1!). It operates on a simple yet profound principle: price action within a single candle can be broken down into “manipulation” and “distribution” phases.
By analyzing over 17 years of GC (GC1!) historical OHLC data externally in Python, this script calculates the average (mean) and typical (median) extent of these movements. These statistical insights are then used to project key levels on your chart based on the current period’s opening price—providing a statistically-grounded framework for potential support, resistance, and price targets.
________________________________________
Key Concepts Explained
The indicator’s logic is based on how price wicks and bodies form relative to the opening price.
• Manipulation: This refers to the initial move that goes against the candle’s eventual direction.
o For a bullish candle, it’s the lower wick (the move from the open down to the low before reversing higher).
o For a bearish candle, it’s the upper wick (the move from the open up to the high before selling off).
It represents a “fake out” or a stop hunt.
• Distribution: This is the primary, directional move of the candle from the opening price.
o For a bullish candle, it’s the distance from the open to the high.
o For a bearish candle, it’s the distance from the open to the low.
It represents the “real” intended direction of price for that period.
________________________________________
How It Works
This indicator does not calculate these ratios in real-time. Instead, it leverages a comprehensive statistical analysis performed externally in Python on over 17 years of GC (GC1!) OHLC data. This analysis determined the mean and median ratios for both Manipulation and Distribution movements across different timeframes and, for intraday periods, different times of day.
These pre-computed, static ratios are embedded directly into the script. When a new period begins (e.g., a new day on the Daily timeframe), the indicator:
1. Takes the opening price for that period.
2. Retrieves the corresponding pre-calculated Manipulation and Distribution ratios.
3. Applies these ratios to the opening price to project eight potential price levels:
o
/ - Mean Distribution
o
/ - Median Distribution
o
/ - Mean Manipulation
o
/ - Median Manipulation
This approach provides a stable, forward-looking set of levels for the entire duration of the trading period.
________________________________________
Features
• Statistically-Derived Projections: Plots eight key price levels based on historical tendencies, providing clear potential zones for entries, exits, and stop placement.
• Selectable Timeframe: Choose to view projections for the 1H, 4H, 1D, or 1W periods directly from the settings.
• Dynamic Stats Table: A powerful, on-chart dashboard that provides real-time context. For all four timeframes (1H, 4H, 1D, 1W), it shows:
o Position: Where the current price is relative to the projected zones (e.g., “In +Manip Zone,” “Below -Dist”).
o Range Completed: The percentage of the historical average range that the current period has already covered.
o Current & Average Range: The current high-to-low range in points vs. the historical average.
• Historical Context: You can display levels for previous periods to see how price has interacted with them in the past.
• Full Customization: Control the color, style, and visibility of every line, label, and fill to match your chart’s theme.
________________________________________
How to Use
This indicator is versatile and can be integrated into various trading strategies.
• Identifying Targets & Reversal Zones: The Distribution levels (especially the zone between the median and mean) can serve as logical take-profit targets, as they represent a historical point of extension. Conversely, Manipulation levels can indicate areas where price might form a wick and reverse.
• Gauging Volatility: Use the Stats Table’s “Range Completed” column to assess market conditions. If the 1D range is only 30% complete by mid-day, there may be room for significant expansion. If it’s already at 150%, the market might be overextended and due for consolidation.
• Multi-Timeframe Confluence: Use the Stats Table to quickly check if the price on a lower timeframe (e.g., 1H) is approaching a significant level on a higher timeframe (e.g., 1D), adding more weight to that level.
• Defining Bias: If the price opens and holds above the Manipulation zones, it can signal a strong directional bias for the rest of the period.
________________________________________
Settings
• Projection Timeframe: The primary timeframe for which to calculate and display the levels.
• Historical Periods to Show: Set to 1 for only the current period, or increase to see how levels from past periods held up.
• Timezone: Set the timezone for accurate hourly calculations (defaults to America/New_York).
• Visuals: Customize the appearance of the projection lines, labels, and the shaded zones between mean and median levels.
• Stats Table: Enable/disable the table and configure its position, size, and colors.
________________________________________
Disclaimer
This indicator is for informational and educational purposes only. It does not constitute financial advice or a recommendation to buy or sell any asset. All trading involves risk, and past performance is not indicative of future results. Please do your own research and risk management.
Enjoy!
ES1! Manipulation/Distribution Projections (17 years OHLC Stats)Overview
The Manipulation/Distribution Projections (OHLC Stats) indicator is a powerful tool designed to forecast potential price levels for various timeframes on S&P 500 E-mini futures (ES1!). It operates on a simple yet profound principle: price action within a single candle can be broken down into “manipulation” and “distribution” phases.
By analyzing over 17 years of ES (ES1!) historical OHLC data externally in Python, this script calculates the average (mean) and typical (median) extent of these movements. These statistical insights are then used to project key levels on your chart based on the current period’s opening price—providing a statistically-grounded framework for potential support, resistance, and price targets.
________________________________________
Key Concepts Explained
The indicator’s logic is based on how price wicks and bodies form relative to the opening price.
• Manipulation: This refers to the initial move that goes against the candle’s eventual direction.
o For a bullish candle, it’s the lower wick (the move from the open down to the low before reversing higher).
o For a bearish candle, it’s the upper wick (the move from the open up to the high before selling off).
It represents a “fake out” or a stop hunt.
• Distribution: This is the primary, directional move of the candle from the opening price.
o For a bullish candle, it’s the distance from the open to the high.
o For a bearish candle, it’s the distance from the open to the low.
It represents the “real” intended direction of price for that period.
________________________________________
How It Works
This indicator does not calculate these ratios in real-time. Instead, it leverages a comprehensive statistical analysis performed externally in Python on over 17 years of ES (ES1!) OHLC data. This analysis determined the mean and median ratios for both Manipulation and Distribution movements across different timeframes and, for intraday periods, different times of day.
These pre-computed, static ratios are embedded directly into the script. When a new period begins (e.g., a new day on the Daily timeframe), the indicator:
1. Takes the opening price for that period.
2. Retrieves the corresponding pre-calculated Manipulation and Distribution ratios.
3. Applies these ratios to the opening price to project eight potential price levels:
o
/ - Mean Distribution
o
/ - Median Distribution
o
/ - Mean Manipulation
o
/ - Median Manipulation
This approach provides a stable, forward-looking set of levels for the entire duration of the trading period.
________________________________________
Features
• Statistically-Derived Projections: Plots eight key price levels based on historical tendencies, providing clear potential zones for entries, exits, and stop placement.
• Selectable Timeframe: Choose to view projections for the 1H, 4H, 1D, or 1W periods directly from the settings.
• Dynamic Stats Table: A powerful, on-chart dashboard that provides real-time context. For all four timeframes (1H, 4H, 1D, 1W), it shows:
o Position: Where the current price is relative to the projected zones (e.g., “In +Manip Zone,” “Below -Dist”).
o Range Completed: The percentage of the historical average range that the current period has already covered.
o Current & Average Range: The current high-to-low range in points vs. the historical average.
• Historical Context: You can display levels for previous periods to see how price has interacted with them in the past.
• Full Customization: Control the color, style, and visibility of every line, label, and fill to match your chart’s theme.
________________________________________
How to Use
This indicator is versatile and can be integrated into various trading strategies.
• Identifying Targets & Reversal Zones: The Distribution levels (especially the zone between the median and mean) can serve as logical take-profit targets, as they represent a historical point of extension. Conversely, Manipulation levels can indicate areas where price might form a wick and reverse.
• Gauging Volatility: Use the Stats Table’s “Range Completed” column to assess market conditions. If the 1D range is only 30% complete by mid-day, there may be room for significant expansion. If it’s already at 150%, the market might be overextended and due for consolidation.
• Multi-Timeframe Confluence: Use the Stats Table to quickly check if the price on a lower timeframe (e.g., 1H) is approaching a significant level on a higher timeframe (e.g., 1D), adding more weight to that level.
• Defining Bias: If the price opens and holds above the Manipulation zones, it can signal a strong directional bias for the rest of the period.
________________________________________
Settings
• Projection Timeframe: The primary timeframe for which to calculate and display the levels.
• Historical Periods to Show: Set to 1 for only the current period, or increase to see how levels from past periods held up.
• Timezone: Set the timezone for accurate hourly calculations (defaults to America/New_York).
• Visuals: Customize the appearance of the projection lines, labels, and the shaded zones between mean and median levels.
• Stats Table: Enable/disable the table and configure its position, size, and colors.
________________________________________
Disclaimer
This indicator is for informational and educational purposes only. It does not constitute financial advice or a recommendation to buy or sell any asset. All trading involves risk, and past performance is not indicative of future results. Please do your own research and risk management.
Enjoy!






















