Infinity Signal Momentum ConsensusMulti-Timeframe Momentum Fusion & Projection
Infinity Signal — Momentum Consensus is a multi-timeframe momentum oscillator designed to identify early turning points, directional bias, and momentum structure by blending momentum data across multiple timeframes into a single, unified signal.
Instead of relying on a traditional single-timeframe Stochastic RSI, this indicator creates a consensus momentum curve that reflects how short-, medium-, and long-term momentum align in real time.
The result is a smoother, more stable oscillator that often turns before price and before standard momentum indicators react.
This approach reduces noise while preserving the geometric structure required for forward projection and swing analysis.
🔍 How It Works
The indicator computes Stochastic RSI momentum across multiple timeframes (1H, 4H, 1D, 1W, 1M), normalizes those values, and combines them into a single composite curve.
Each timeframe contributes differently:
Higher timeframes shape overall curvature and bias
Mid timeframes influence impulse strength
Lower timeframes refine timing
When averaged together, these form a momentum consensus that highlights genuine shifts in market behavior.
The indicator also includes:
A forward momentum projection based on prior curvature
A multi-timeframe alignment table with weighted bias and grading
Visual context for overbought, oversold, and transitional states
🧭 How to Use
1️⃣ Identify Directional Bias
Use the Composite Momentum Curve to determine the dominant market bias.
Rising curve → bullish momentum pressure
Falling curve → bearish momentum pressure
Flattening or compressing curve → consolidation or transition
Because the curve blends multiple timeframes, its direction is often more reliable than single-TF oscillators.
2️⃣ Watch for Early Turning Points
Key signals occur when the composite curve bends, flattens, or crosses.
Momentum turns frequently appear before price reversals
Signals near overbought or oversold zones carry greater significance
The smoother curve helps reduce whipsaw
These inflection points are particularly useful for swing and position traders.
3️⃣ Use the Multi-Timeframe Table for Confirmation
The table summarizes momentum alignment across all tracked timeframes.
Bull / Bear / Mixed shows agreement or divergence
Weighted scores reveal which timeframes dominate
Signal grades (A+ → F) reflect alignment quality
The strongest setups occur when table bias and momentum direction agree.
4️⃣ Interpret Projections as Context
Projected momentum paths visualize how momentum may evolve based on prior structure.
Use projections as guidance, not guarantees
Look for symmetry, slope changes, and recurring curvature
Combine projections with structure or support/resistance
Projections are most effective in stable momentum regimes.
5️⃣ Combine with Price Action & Risk Management
Infinity Signal — Momentum Consensus is designed as a decision-support tool.
Confirm signals with market structure and price behavior
Use clear invalidation levels and risk controls
Reduce exposure during mixed or low-alignment conditions
No indicator replaces proper risk management.
🎯 Ideal Use Cases
Swing trading & position trading
Momentum-based trend analysis
Early reversal and pivot detection
Multi-timeframe confirmation
⚠️ Disclaimer
This indicator is for educational and analytical purposes only and does not constitute financial advice. Always manage risk appropriately.
Indicatori e strategie
AT trading systemIn the AT trading system, AT LONG means closing a long position and AT short means closing a long position and shorting.
CTA Trend Model (TA and Quant)Simple CTA Long-Term model using a mix of Quant and old school Technical Indicators.
Use on Daily or Weekly Charts for trending macro futures/spot markets
VWAP Institutional Trading Engine INDICATORVWAP Institutional Trading Engine
Adaptive Market Regime & Trading Model Indicator
🔍 Overview
The VWAP Institutional Trading Engine is an advanced, rule-based market analysis indicator designed to replicate institutional decision-making logic using VWAP, volatility, and session-based market behavior.
This indicator does not predict price.
Instead, it answers a more important question:
“What type of trading is appropriate right now – if any?”
The engine continuously evaluates:
Market regime (trend, range, dead market)
Volatility conditions
VWAP acceptance and deviation
Trading session (Asia / London / New York)
Based on this, it dynamically activates one of three trading models:
TREND
MEAN REVERSION
OFF (no trading)
This makes it ideal for:
Discretionary traders
Systematic traders
Risk-focused trading
Educational / portfolio-style trading approaches
🧠 Core Philosophy
Professional trading is not about finding more signals.
It is about knowing when not to trade.
This indicator is built around three institutional principles:
VWAP defines fair value
Volatility defines opportunity or danger
Different sessions require different behavior
⚙️ Indicator Components
1️⃣ VWAP & Statistical Deviation Bands
VWAP represents institutional fair price
±1σ bands indicate acceptance zones
±2σ bands represent statistical extremes
Used for:
Mean reversion zones
Trend acceptance confirmation
Go Score calculation
2️⃣ Volatility Engine
Volatility is measured using ATR relative to price
Compared against its own moving average
Classifications:
Low volatility → dead / untradable market
Normal volatility → structured behavior
High volatility → trend or liquidation events
3️⃣ Market Regime Detection
The engine classifies each moment into one regime:
Regime Meaning
TREND Price accepts above or below VWAP with volatility
RANGE Price rotates near VWAP
DEAD Low volatility, no opportunity
MIXED Unclear structure
4️⃣ Active Trading Model (Most Important)
Displayed in the dashboard as Model:
Model Interpretation
TREND Trade with momentum and continuation
MEAN_REVERT Trade extremes back to VWAP
OFF Do not trade
The Model tells you HOW you are allowed to trade right now.
5️⃣ Session Awareness (UTC)
The indicator adapts behavior based on session logic:
Session Preferred Behavior
Asia Mean Reversion
London Trend
New York Selective / adaptive
Trades are only allowed when model + session are aligned.
6️⃣ Go Score – Trade Quality Filter
Each potential setup receives a Go Score (0–100), based on:
Distance from VWAP
Market regime quality
Volatility penalties
Go Score Interpretation
≥ 80 High-quality (A+)
65–79 Acceptable
< 65 No trade
7️⃣ Risk Guidance (Informational)
The indicator outputs a Risk % suggestion, based on:
Go Score
Simulated drawdown logic
⚠️ This is guidance only, not position sizing.
📈 Visual Signals
The indicator plots contextual signals, not blind entries:
Mean Reversion Signals
▲ Long below −2σ
▼ Short above +2σ
Trend Signals
↑ Long after acceptance above +1σ
↓ Short after acceptance below −1σ
Signals appear only when trading is allowed by:
Model
Session
Go Score
🧩 Dashboard Explanation
The top-right dashboard displays real-time engine state:
Field Description
Session Current UTC session
Regime Detected market condition
Go Score Trade quality score
Risk % Suggested relative risk
Drawdown % Virtual defensive metric
Model Active trading model
If Model = OFF → do nothing.
🧭 Practical Trading Manual (Step-by-Step)
Step 1 – Check the Model
TREND → look for continuation
MEAN_REVERT → look for extremes
OFF → do not trade
Step 2 – Confirm Session Alignment
Asia + Mean Reversion ✔
London + Trend ✔
Misalignment = caution
Step 3 – Check Go Score
Below 65 → skip
65+ → proceed
Step 4 – Use Chart Structure
VWAP = anchor
σ bands = context
Signal = permission, not obligation
Step 5 – Manage Risk Manually
Use your own SL/TP rules
Follow the Risk % as guidance, not law
❌ What This Indicator Is NOT
Not a signal spam tool
Not a prediction system
Not a “holy grail”
It is a decision framework.
✅ Best Use Cases
Futures
Indices
Forex
Crypto
Intraday & swing trading
Recommended timeframes:
5m – 1H (intraday)
4H (contextual swing)
🏁 Final Notes
This indicator is intentionally transparent and rule-based.
It is designed to help traders:
Think in regimes
Trade with structure
Avoid overtrading
Protect capital
If you trade with the Model, not against it,
you will already be ahead of most market participants.
Candle Statistics | by beidou_123Script Description
Candle Statistics is a quantitative market analysis indicator that provides a structured statistical overview of recent price behavior using candlestick classification.
The script analyzes historical candles over four user-defined lookback periods and classifies each candle into one of three categories:
Bullish candles (close > open)
Bearish candles (close < open)
Doji candles , defined as candles whose real body is less than or equal to 10% of the total candle range
Key Features
Fully customizable lookback periods
Users can define four independent candle windows (e.g., 15, 60, 240, 480 bars).
Standardized Doji definition
A Doji is identified when the candle body is small relative to total price range, ensuring consistency across instruments and timeframes.
Directional dominance calculation
For each lookback period, the script computes the Bullish Percentage, defined as:
Bullish % = Bullish Candles ÷ (Bullish + Bearish Candles)
Doji candles are intentionally excluded from this calculation to avoid diluting directional bias.
Visual dominance highlighting
If Bullish % > 50%, the value is displayed using a user-defined bullish dominance color
If Bullish % ≤ 50%, the value is displayed using a user-defined bearish dominance color
On-chart statistics table
All results are presented in a compact, non-intrusive table displayed directly on the main chart.
Table position is fully configurable.
Intended Use
This indicator is designed for:
Market structure analysis
Trend bias evaluation
Volatility and indecision studies
Systematic filtering in discretionary or rule-based trading systems
It is not a signal generator, but a statistical context tool that helps traders assess whether recent price action is dominated by bullish pressure, bearish pressure, or indecision.
Disclaimer
This indicator is provided for educational and analytical purposes only and does not constitute financial or investment advice.
libSchedulerTLDR: This is a lightweight, easy-to-use way to throttle sections of Pinescript v6 scripts, the same as you'd use barstate.isconfirmed or barstate.islast. You can use this for enormous efficiency gains, provided you design your script to handle updates on differing intervals rather than computing everything on each cycle. Usage is easy:
```
import showmethegrail/libScheduler/1 as libScheduler
i_tf_fetch = input.enum(libScheduler.Timeframes.C, "Fetch Interval",
tooltip="Do things just once every interval, default=once per chart timeframe.")
var scheduler = libScheduler.Scheduler.new().init()
if scheduler.every(i_tf_fetch)
// Do stuff
```
That's it. If you need to know more, the code is well-commented.
Combine this with sensible caching, and you can right-size the compute-heavy sections of your script, for better stability and managed use of Pinescript compute quotas. You'll need to know the proper use of var and varip to make the most of this, but I found this effectively replaced a lot of boilerplate in throttling my own scripts.
Sound software engineering, made Pinescript-level easy. That's all.
DeeptestDeeptest: Quantitative Backtesting Library for Pine Script
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ OVERVIEW
Deeptest is a Pine Script library that provides quantitative analysis tools for strategy backtesting. It calculates over 100 statistical metrics including risk-adjusted return ratios (Sharpe, Sortino, Calmar), drawdown analysis, Value at Risk (VaR), Conditional VaR, and performs Monte Carlo simulation and Walk-Forward Analysis.
█ WHY THIS LIBRARY MATTERS
Pine Script is a simple yet effective coding language for algorithmic and quantitative trading. Its accessibility enables traders to quickly prototype and test ideas directly within TradingView. However, the built-in strategy tester provides only basic metrics (net profit, win rate, drawdown), which is often insufficient for serious strategy evaluation.
Due to this limitation, many traders migrate to alternative backtesting platforms that offer comprehensive analytics. These platforms require other language programming knowledge, environment setup, and significant time investment—often just to test a simple trading idea.
Deeptest bridges this gap by bringing institutional-level quantitative analytics directly to Pine Script. Traders can now perform sophisticated analysis without leaving TradingView or learning complex external platforms. All calculations are derived from strategy.closedtrades.* , ensuring compatibility with any existing Pine Script strategy.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ ORIGINALITY AND USEFULNESS
This library is original work that adds value to the TradingView community in the following ways:
1. Comprehensive Metric Suite: Implements 112+ statistical calculations in a single library, including advanced metrics not available in TradingView's built-in tester (p-value, Z-score, Skewness, Kurtosis, Risk of Ruin).
2. Monte Carlo Simulation: Implements trade-sequence randomization to stress-test strategy robustness by simulating 1000+ alternative equity curves.
3. Walk-Forward Analysis: Divides historical data into rolling in-sample and out-of-sample windows to detect overfitting by comparing training vs. testing performance.
4. Rolling Window Statistics: Calculates time-varying Sharpe, Sortino, and Expectancy to analyze metric consistency throughout the backtest period.
5. Interactive Table Display: Renders professional-grade tables with color-coded thresholds, tooltips explaining each metric, and period analysis cards for drawdowns/trades.
6. Benchmark Comparison: Automatically fetches S&P 500 data to calculate Alpha, Beta, and R-squared, enabling objective assessment of strategy skill vs. passive investing.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ KEY FEATURES
Performance Metrics
Net Profit, CAGR, Monthly Return, Expectancy
Profit Factor, Payoff Ratio, Sample Size
Compounding Effect Analysis
Risk Metrics
Sharpe Ratio, Sortino Ratio, Calmar Ratio (MAR)
Martin Ratio, Ulcer Index
Max Drawdown, Average Drawdown, Drawdown Duration
Risk of Ruin, R-squared (equity curve linearity)
Statistical Distribution
Value at Risk (VaR 95%), Conditional VaR
Skewness (return asymmetry)
Kurtosis (tail fatness)
Z-Score, p-value (statistical significance testing)
Trade Analysis
Win Rate, Breakeven Rate, Loss Rate
Average Trade Duration, Time in Market
Consecutive Win/Loss Streaks with Expected values
Top/Worst Trades with R-multiple tracking
Advanced Analytics
Monte Carlo Simulation (1000+ iterations)
Walk-Forward Analysis (rolling windows)
Rolling Statistics (time-varying metrics)
Out-of-Sample Testing
Benchmark Comparison
Alpha (excess return vs. benchmark)
Beta (systematic risk correlation)
Buy & Hold comparison
R-squared vs. benchmark
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ QUICK START
Basic Usage
//@version=6
strategy("My Strategy", overlay=true)
// Import the library
import Fractalyst/Deeptest/1 as *
// Your strategy logic
fastMA = ta.sma(close, 10)
slowMA = ta.sma(close, 30)
if ta.crossover(fastMA, slowMA)
strategy.entry("Long", strategy.long)
if ta.crossunder(fastMA, slowMA)
strategy.close("Long")
// Run the analysis
DT.runDeeptest()
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ METRIC EXPLANATIONS
The Deeptest table displays 23 metrics across the main row, with 23 additional metrics in the complementary row. Each metric includes detailed tooltips accessible by hovering over the value.
Main Row — Performance Metrics (Columns 0-6)
Net Profit — (Final Equity - Initial Capital) / Initial Capital × 100
— >20%: Excellent, >0%: Profitable, <0%: Loss
— Total return percentage over entire backtest period
Payoff Ratio — Average Win / Average Loss
— >1.5: Excellent, >1.0: Good, <1.0: Losses exceed wins
— Average winning trade size relative to average losing trade. Breakeven win rate = 100% / (1 + Payoff)
Sample Size — Count of closed trades
— >=30: Statistically valid, <30: Insufficient data
— Number of completed trades. Includes 95% confidence interval for win rate in tooltip
Profit Factor — Gross Profit / Gross Loss
— >=1.5: Excellent, >1.0: Profitable, <1.0: Losing
— Ratio of total winnings to total losses. Uses absolute values unlike payoff ratio
CAGR — (Final / Initial)^(365.25 / Days) - 1
— >=10%: Excellent, >0%: Positive growth
— Compound Annual Growth Rate - annualized return accounting for compounding
Expectancy — Sum of all returns / Trade count
— >0.20%: Excellent, >0%: Positive edge
— Average return per trade as percentage. Positive expectancy indicates profitable edge
Monthly Return — Net Profit / (Months in test)
— >0%: Profitable month average
— Average monthly return. Geometric monthly also shown in tooltip
Main Row — Trade Statistics (Columns 7-14)
Avg Duration — Average time in position per trade
— Mean holding period from entry to exit. Influenced by timeframe and trading style
Max CW — Longest consecutive winning streak
— Maximum consecutive wins. Expected value = ln(trades) / ln(1/winRate)
Max CL — Longest consecutive losing streak
— Maximum consecutive losses. Important for psychological risk tolerance
Win Rate — Wins / Total Trades
— Higher is better
— Percentage of profitable trades. Breakeven win rate shown in tooltip
BE Rate — Breakeven Trades / Total Trades
— Lower is better
— Percentage of trades that broke even (neither profit nor loss)
Loss Rate — Losses / Total Trades
— Lower is better
— Percentage of unprofitable trades. Together with win rate and BE rate, sums to 100%
Frequency — Trades per month
— Trading activity level. Displays intelligently (e.g., "12/mo", "1.5/wk", "3/day")
Exposure — Time in market / Total time × 100
— Lower = less risk
— Percentage of time the strategy had open positions
Main Row — Risk Metrics (Columns 15-22)
Sharpe Ratio — (Return - Rf) / StdDev × sqrt(Periods)
— >=3: Excellent, >=2: Good, >=1: Fair, <1: Poor
— Measures risk-adjusted return using total volatility. Annualized using sqrt(252) for daily
Sortino Ratio — (Return - Rf) / DownsideDev × sqrt(Periods)
— >=2: Excellent, >=1: Good, <1: Needs improvement
— Similar to Sharpe but only penalizes downside volatility. Can be higher than Sharpe
Max DD — (Peak - Trough) / Peak × 100
— <5%: Excellent, 5-15%: Moderate, 15-30%: High, >30%: Severe
— Largest peak-to-trough decline in equity. Critical for risk tolerance and position sizing
RoR — Risk of Ruin probability
— <1%: Excellent, 1-5%: Acceptable, 5-10%: Elevated, >10%: Dangerous
— Probability of losing entire trading account based on win rate and payoff ratio
R² — R-squared of equity curve vs. time
— >=0.95: Excellent, 0.90-0.95: Good, 0.80-0.90: Moderate, <0.80: Erratic
— Coefficient of determination measuring linearity of equity growth
MAR — CAGR / |Max Drawdown|
— Higher is better, negative = bad
— Calmar Ratio. Reward relative to worst-case loss. Negative if max DD exceeds CAGR
CVaR — Average of returns below VaR threshold
— Lower absolute is better
— Conditional Value at Risk (Expected Shortfall). Average loss in worst 5% of outcomes
p-value — Binomial test probability
— <0.05: Significant, 0.05-0.10: Marginal, >0.10: Likely random
— Probability that observed results are due to chance. Low p-value means statistically significant edge
Complementary Row — Extended Metrics
Compounding — (Compounded Return / Total Return) × 100
— Percentage of total profit attributable to compounding (position sizing)
Avg Win — Sum of wins / Win count
— Average profitable trade return in percentage
Avg Trade — Sum of all returns / Total trades
— Same as Expectancy (Column 5). Displayed here for convenience
Avg Loss — Sum of losses / Loss count
— Average unprofitable trade return in percentage (negative value)
Martin Ratio — CAGR / Ulcer Index
— Similar to Calmar but uses Ulcer Index instead of Max DD
Rolling Expectancy — Mean of rolling window expectancies
— Average expectancy calculated across rolling windows. Shows consistency of edge
Avg W Dur — Avg duration of winning trades
— Average time from entry to exit for winning trades only
Max Eq — Highest equity value reached
— Peak equity achieved during backtest
Min Eq — Lowest equity value reached
— Trough equity point. Important for understanding worst-case absolute loss
Buy & Hold — (Close_last / Close_first - 1) × 100
— >0%: Passive profit
— Return of simply buying and holding the asset from backtest start to end
Alpha — Strategy CAGR - Benchmark CAGR
— >0: Has skill (beats benchmark)
— Excess return above passive benchmark. Positive alpha indicates genuine value-added skill
Beta — Covariance(Strategy, Benchmark) / Variance(Benchmark)
— <1: Less volatile than market, >1: More volatile
— Systematic risk correlation with benchmark
Avg L Dur — Avg duration of losing trades
— Average time from entry to exit for losing trades only
Rolling Sharpe/Sortino — Dynamic based on win rate
— >2: Good consistency
— Rolling metric across sliding windows. Shows Sharpe if win rate >50%, Sortino if <=50%
Curr DD — Current drawdown from peak
— Lower is better
— Present drawdown percentage. Zero means at new equity high
DAR — CAGR adjusted for target DD
— Higher is better
— Drawdown-Adjusted Return. DAR^5 = CAGR if max DD = 5%
Kurtosis — Fourth moment / StdDev^4 - 3
— ~0: Normal, >0: Fat tails, <0: Thin tails
— Measures "tailedness" of return distribution (excess kurtosis)
Skewness — Third moment / StdDev^3
— >0: Positive skew (big wins), <0: Negative skew (big losses)
— Return distribution asymmetry
VaR — 5th percentile of returns
— Lower absolute is better
— Value at Risk at 95% confidence. Maximum expected loss in worst 5% of outcomes
Ulcer — sqrt(mean(drawdown^2))
— Lower is better
— Ulcer Index - root mean square of drawdowns. Penalizes both depth AND duration
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ MONTE CARLO SIMULATION
Purpose
Monte Carlo simulation tests strategy robustness by randomizing the order of trades while keeping trade returns unchanged. This simulates alternative equity curves to assess outcome variability.
Method
Extract all historical trade returns
Randomly shuffle the sequence (1000+ iterations)
Calculate cumulative equity for each shuffle
Build distribution of final outcomes
Output
The stress test table shows:
Median Outcome: 50th percentile result
5th Percentile: Worst 5% of outcomes
95th Percentile: Best 95% of outcomes
Success Rate: Percentage of simulations that were profitable
Interpretation
If 95% of simulations are profitable: Strategy is robust
If median is far from actual result: High variance/unreliability
If 5th percentile shows large loss: High tail risk
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ WALK-FORWARD ANALYSIS
Purpose
Walk-Forward Analysis (WFA) is the gold standard for detecting strategy overfitting. It simulates real-world trading by dividing historical data into rolling "training" (in-sample) and "validation" (out-of-sample) periods. A strategy that performs well on unseen data is more likely to succeed in live trading.
Method
The implementation uses a non-overlapping window approach following AmiBroker's gold standard methodology:
Segment Calculation: Total trades divided into N windows (default: 12), IS = ~75%, OOS = ~25%, Step = OOS length
Window Structure: Each window has IS (training) followed by OOS (validation). Each OOS becomes the next window's IS (rolling forward)
Metrics Calculated: CAGR, Sharpe, Sortino, MaxDD, Win Rate, Expectancy, Profit Factor, Payoff
Aggregation: IS metrics averaged across all IS periods, OOS metrics averaged across all OOS periods
Output
IS CAGR: In-sample annualized return
OOS CAGR: Out-of-sample annualized return ( THE key metric )
IS/OOS Sharpe: In/out-of-sample risk-adjusted return
Success Rate: % of OOS windows that were profitable
Interpretation
Robust: IS/OOS CAGR gap <20%, OOS Success Rate >80%
Some Overfitting: CAGR gap 20-50%, Success Rate 50-80%
Severe Overfitting: CAGR gap >50%, Success Rate <50%
Key Principles:
OOS is what matters — Only OOS predicts live performance
Consistency > Magnitude — 10% IS / 9% OOS beats 30% IS / 5% OOS
Window count — More windows = more reliable validation
Non-overlapping OOS — Prevents data leakage
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ TABLE DISPLAY
Main Table — Organized into three sections:
Performance Metrics (Cols 0-6): Net Profit, Payoff, Sample Size, Profit Factor, CAGR, Expectancy, Monthly
Trade Statistics (Cols 7-14): Avg Duration, Max CW, Max CL, Win, BE, Loss, Frequency, Exposure
Risk Metrics (Cols 15-22): Sharpe, Sortino, Max DD, RoR, R², MAR, CVaR, p-value
Color Coding
🟢 Green: Excellent performance
🟠 Orange: Acceptable performance
⚪ Gray: Neutral / Fair
🔴 Red: Poor performance
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ IMPLEMENTATION NOTES
Data Source: All metrics calculated from strategy.closedtrades , ensuring compatibility with any Pine Script strategy
Calculation Timing: All calculations occur on barstate.islastconfirmedhistory to optimize performance
Limitations: Requires at least 1 closed trade for basic metrics, 30+ trades for reliable statistical analysis
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ QUICK NOTES
➙ This library has been developed and refined over two years of real-world strategy testing. Every calculation has been validated against industry-standard quantitative finance references.
➙ The entire codebase is thoroughly documented inline. If you are curious about how a metric is calculated or want to understand the implementation details, dive into the source code -- it is written to be read and learned from.
➙ This description focuses on usage and concepts rather than exhaustively listing every exported type and function. The library source code is thoroughly documented inline -- explore it to understand implementation details and internal logic.
➙ All calculations execute on barstate.islastconfirmedhistory to minimize runtime overhead. The library is designed for efficiency without sacrificing accuracy.
➙ Beyond analysis, this library serves as a learning resource. Study the source code to understand quantitative finance concepts, Pine Script advanced techniques, and proper statistical methodology.
➙ Metrics are their own not binary good/bad indicators. A high Sharpe ratio with low sample size is misleading. A deep drawdown during a market crash may be acceptable. Study each function and metric individually -- evaluate your strategy contextually, not by threshold alone.
➙ All strategies face alpha decay over time. Instead of over-optimizing a single strategy on one timeframe and market, build a diversified portfolio across multiple markets and timeframes. Deeptest helps you validate each component so you can combine robust strategies into a trading portfolio.
➙ Screenshots shown in the documentation are solely for visual representation to demonstrate how the tables and metrics will be displayed. Please do not compare your strategy's performance with the metrics shown in these screenshots -- they are illustrative examples only, not performance targets or benchmarks.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ HOW-TO
Using Deeptest is intentionally straightforward. Just import the library and call DT.runDeeptest() at the end of your strategy code in main scope. .
//@version=6
strategy("My Strategy", overlay=true)
// Import the library
import Fractalyst/Deeptest/1 as DT
// Your strategy logic
fastMA = ta.sma(close, 10)
slowMA = ta.sma(close, 30)
if ta.crossover(fastMA, slowMA)
strategy.entry("Long", strategy.long)
if ta.crossunder(fastMA, slowMA)
strategy.close("Long")
// Run the analysis
DT.runDeeptest()
And yes... it's compatible with any TradingView Strategy! 🪄
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ CREDITS
Author: @Fractalyst
Font Library: by @fikira - @kaigouthro - @Duyck
Community: Inspired by the @PineCoders community initiative, encouraging developers to contribute open-source libraries and continuously enhance the Pine Script ecosystem for all traders.
if you find Deeptest valuable in your trading journey, feel free to use it in your strategies and give a shoutout to @Fractalyst -- Your recognition directly supports ongoing development and open-source contributions to Pine Script.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
█ DISCLAIMER
This library is provided for educational and research purposes. Past performance does not guarantee future results. Always test thoroughly and use proper risk management. The author is not responsible for any trading losses incurred through the use of this code.
CVD Flow Labels for Sessions Ranges [AMT Edition]CVD Flow Labels for Session Ranges
Description:
This script provides a session-aware Cumulative Volume Delta (CVD) analysis designed to enhance the “Session Ranges ” framework by combining price extremes with detailed volume flow dynamics. Unlike generic trend or scalping indicators, this tool focuses on identifying aggressive buying and selling pressure, distinguishing between absorption (failed auctions where aggressive flows are rejected) and acceptance (confirmed continuation of flows).
How it works:
CVD Calculation: The script calculates delta for each bar using a choice of Total, Periodic, or EMA-based cumulative methods. Delta represents the net difference between estimated buying and selling volume per bar.
Normalization: By normalizing delta relative to recent volatility, it highlights extreme flows that are statistically significant, making large shifts in market sentiment easier to spot.
Session-Specific Analysis: The indicator separates Asia, London, and New York sessions to allow context-sensitive interpretation of price and volume interactions. Each session’s extremes are monitored, and flow labels are plotted relative to these extremes.
Flow Labels: Bullish and bearish absorption (“ABS”) and acceptance (“ACC WEAK/STRONG”) labels provide immediate visual cues about whether aggressive flows are being absorbed or accepted at key price levels.
Alerts: Configurable alerts trigger when absorption or acceptance occurs, supporting active trading or strategy automation.
Originality & Usefulness:
This script is original because it integrates volume-based auction theory with session-specific market structure, rather than simply showing trend or scalping signals. By combining CVD dynamics with session extreme levels from the “Session Ranges ” script, traders can:
Identify where price is likely to be accepted or rejected.
Confirm aggressive buying or selling flows before entering trades.
Time entries near session extremes with higher probability setups.
How to use:
Apply the “Session Ranges ” to see session highs, lows, and interaction lines.
Use this CVD Flow Labels script to visualize absorption and acceptance at these session levels.
Enter trades based on alignment of session extremes and flow signals:
Absorption at a session extreme may indicate a potential reversal.
Acceptance suggests continuation in the direction of the flow.
Alerts can help manage trades without constant screen monitoring.
This tool is designed to give traders a structured, session-based view of market auctions, providing actionable insights that go beyond typical trend-following or scalping methods. It emphasizes flow analysis and statistical extremes, enabling traders to make more informed decisions grounded in market microstructure.
Cosmic Volume Analyzer [JOAT]
Cosmic Volume Analyzer - Astrophysics Edition
Overview
Cosmic Volume Analyzer is an open-source oscillator indicator that applies astrophysics-inspired concepts to volume analysis. It classifies volume into buy/sell categories, calculates volume flow, detects accumulation/distribution phases, identifies climax volume events, and uses gravitational and stellar mass analogies to visualize volume dynamics.
What This Indicator Does
The indicator calculates and displays:
Volume Classification - Categorizes each bar as CLIMAX_BUY, CLIMAX_SELL, HIGH_BUY, HIGH_SELL, NORMAL_BUY, or NORMAL_SELL
Volume Flow - Percentage showing buy vs sell pressure over a lookback period
Buy/Sell Volume - Separated volume based on candle direction
Accumulation/Distribution - Phase detection using Money Flow Multiplier
Volume Oscillator - Fast vs slow volume EMA comparison
Gravitational Pull - Volume-weighted price attraction metric
Stellar Mass Index - Volume ratio combined with price momentum
Black Hole Detection - Identifies extremely low volume periods (liquidity voids)
Supernova Events - Detects extreme volume with extreme price movement
Orbital Cycles - Sine-wave based cyclical visualization
How It Works
Volume classification uses volume ratio and candle direction:
classifyVolume(series float vol, series float close, series float open) =>
float avgVol = ta.sma(vol, 20)
float volRatio = avgVol > 0 ? vol / avgVol : 1.0
if volRatio > 1.5
if close > open
classification := "CLIMAX_BUY"
else
classification := "CLIMAX_SELL"
else if volRatio > 1.2
// HIGH_BUY or HIGH_SELL
else
// NORMAL_BUY or NORMAL_SELL
Volume flow separates buy and sell volume over a period:
calculateVolumeFlow(series float vol, series float close, simple int period) =>
float currentBuyVol = close > open ? vol : 0.0
float currentSellVol = close < open ? vol : 0.0
// Accumulate in buffers
float flow = (buyVolume - sellVolume) / totalVol * 100
Accumulation/Distribution uses the Money Flow Multiplier:
float mfm = ((close - low) - (high - close)) / (high - low)
float mfv = mfm * vol
float adLine = ta.cum(mfv)
if adLine > adEMA and ta.rising(adLine, 3)
phase := "ACCUMULATION"
else if adLine < adEMA and ta.falling(adLine, 3)
phase := "DISTRIBUTION"
Gravitational pull uses volume-weighted price distance:
gravitationalPull(series float vol, series float price, simple int period) =>
float massCenter = ta.vwma(price, period)
float distance = math.abs(price - massCenter)
float mass = vol / ta.sma(vol, period)
float gravity = distance > 0 ? mass / (distance * distance) : 0.0
Signal Generation
Signals are generated based on volume conditions:
Buy Climax: Volume exceeds 2 standard deviations above average on bullish candle
Sell Climax: Volume exceeds 2 standard deviations above average on bearish candle
Strong Buy Flow: Volume flow exceeds positive threshold (default 45%)
Strong Sell Flow: Volume flow exceeds negative threshold (default -45%)
Supernova: Volume 3x average AND price change 3x average
Black Hole: Volume 2 standard deviations below average
Dashboard Panel (Top-Right)
Volume Class - Current volume classification
Volume Flow - Buy/sell flow percentage
Buy Volume - Accumulated buy volume
Sell Volume - Accumulated sell volume
A/D Phase - ACCUMULATION/DISTRIBUTION/NEUTRAL
Volume Strength - Normalized volume strength
Gravity Pull - Current gravitational metric
Stellar Mass - Current stellar mass index
Cosmic Field - Combined cosmic field strength
Black Hole - Detection status and void strength
Signal - Current actionable status
Visual Elements
Volume Ratio Columns - Colored bars showing normalized volume
Volume Flow Line - Main oscillator showing flow direction
Flow EMA - Smoothed flow for trend reference
Volume Oscillator - Area plot showing fast/slow comparison
Gravity Field - Area plot showing gravitational pull
Orbital Cycle - Circle plots showing cyclical pattern
Stellar Mass Line - Line showing mass index
Climax Markers - Fire emoji for buy climax, snowflake for sell climax
Supernova Markers - Diamond shapes for extreme events
Black Hole Markers - X-cross for liquidity voids
A/D Phase Background - Subtle background color based on phase
Input Parameters
Volume Period (default: 20) - Period for volume calculations
Distribution Levels (default: 5) - Granularity of distribution analysis
Flow Threshold (default: 1.5) - Multiplier for flow significance
Accumulation Period (default: 14) - Period for A/D calculation
Gravitational Analysis (default: true) - Enable gravity metrics
Black Hole Detection (default: true) - Enable void detection
Stellar Mass Calculation (default: true) - Enable mass index
Orbital Cycles (default: true) - Enable cyclical visualization
Supernova Detection (default: true) - Enable extreme event detection
Suggested Use Cases
Identify accumulation phases for potential long entries
Watch for distribution phases as potential exit signals
Use climax volume as potential exhaustion indicators
Monitor volume flow for directional bias
Avoid trading during black hole (low liquidity) periods
Watch for supernova events as potential trend acceleration
Timeframe Recommendations
Best on 15m to Daily charts. Volume analysis requires sufficient trading activity for meaningful readings.
Limitations
Volume data quality varies by exchange and instrument
Buy/sell separation is based on candle direction, not actual order flow
Astrophysics concepts are analogies, not literal physics
A/D phase detection may lag during rapid transitions
Open-Source and Disclaimer
This script is published as open-source under the Mozilla Public License 2.0 for educational purposes. It does not constitute financial advice. Past performance does not guarantee future results. Always use proper risk management.
- Made with passion by officialjackofalltrades
Session Anchored OIWAP [Arjo]The Session Anchored OIWAP (Open Interest Weighted Average Price) indicator shows you a weighted average price that uses Open Interest (OI) changes during different trading sessions . It divides the day into four clear sessions: Opening Hour , Morning Session , Mid-Day Session , and Closing Session .
For each session , it calculates a weighted average price using both market price and open interest data from futures . This line updates as the session progresses and resets when a new session starts .
You can also see optional deviation bands that you visually compare to how far the market price is moving away from the session’s weighted average. This indicator also helps you watch how Open Interest changes connect with price movements during specific market hours.
Concepts
This tool works on a few simple ideas:
Session anchoring
Each session starts fresh. The indicator resets and begins a new calculation when a new time block begins. This allows users to visually study each session independently.
Open-interest weighting
Instead of treating all price moves equally, price changes linked to higher open-interest activity have more influence on the OIWAP. This gives a weighted reflection of where the market has been trading during the session.
Averaging and smoothing
The OIWAP line blends many price data points into one smooth curve, making it easier to follow than raw price movement.
Volatility display with bands
The upper and lower bands are placed at ±0.5 standard deviation from the OIWAP line. These bands simply help you see when price stretches further away than usual from the session average.
Features
Four Independent Session Calculations: Shows separate OIWAP lines for Opening Hour (default: 09:15-10:15), Morning (10:15-11:30), Mid-Day (11:30-14:00), and Closing (14:00-15:30) sessions
Open Interest Weighting: Uses absolute OI change as the weight instead of traditional volume
Customizable Session Times: You can change the time ranges for each session to match your market or what you need
Optional Deviation Bands: You can turn ±0.5 standard deviation bands on or off around each OIWAP line
Color-Coded Sessions: Each session has its own color so you can tell them apart easily
Selective Display: You can turn individual sessions and bands on or off
Data Availability Check: Shows you a notification when Open Interest data isn't available for your symbol
Adjustable Position Timeframe: You can calculate OI changes on different timeframes (Chart, Daily, 15min, 30min, 60min, 120min)
How to use
Add this indicator to a chart of any symbol that has Open Interest data ( from futures or derivatives contracts). Once you add it, you'll see colored lines showing the OIWAP for each session you enable, along with optional deviation bands.
Adjusting Settings:
Turn individual sessions on or off using the checkboxes in the " Sessions " section
Change session colors to match your chart or what looks good to you
Turn deviation bands on or off using the " Show Bands " option in the Display settings
Change session time ranges in the " Session Times " section to match your market hours or what you want to analyze
Change the Position Timeframe if you want to see OI changes calculated on a different time period
Visual Interpretation:
Each OIWAP line shows you the OI-weighted average price for that session
The deviation bands show you how much prices spread out, weighted by OI changes
You can watch how price interacts with these levels to see where significant OI activity happened
Different sessions may show different OIWAP levels, showing you how the OI-price relationship changes throughout the trading day
Note:
This indicator needs Open Interest data to work. If OI data isn't available for your symbol, you'll see a message in the center of your chart. This indicator works only with derivatives markets like futures and options in the Indian Market where OI data is publicly available.
Conclusion
The Session Anchored OIWAP indicator is designed to support structured market observation by combining price, open interest, and session anchoring into a clear visual format. It helps users study market behavior during different parts of the day without generating trading instructions or outcomes.
Disclaimer
This indicator is for educational and visual-analysis purposes only. It does not provide trading signals , financial advice, or guaranteed outcomes . You should perform your own research and consult a licensed financial professional when needed. All trading decisions are solely the responsibility of the user.
Happy Trading
Zero Lag Moving Average Convergence Divergence (ZLMACD) [EVAI]Zero Lag Moving Average Convergence Divergence (ZLMACD)
ZLMACD is a MACD-style momentum oscillator that keeps the standard MACD structure while adding a practical “zero-lag” option through ZLEMA. It is intended for traders who like the familiar MACD workflow but want an oscillator that can respond earlier during transitions without turning into an overly noisy trigger.
The indicator plots the MACD line, the signal line, and the histogram around a zero baseline. If you already understand MACD, you already understand how to read this. The difference is that you can choose whether the oscillator and signal are driven by EMA, SMA, or ZLEMA, which changes the responsiveness and smoothness of the indicator.
Default behavior
This script defaults to the preset mode “ZLEMA osc + EMA signal.” In this configuration, the fast and slow oscillator averages are computed using ZLEMA, while the signal line remains an EMA of the MACD line. The reason for this mix is simple: ZLEMA tends to reduce lag in the oscillator, while EMA on the signal line helps keep crossovers readable and avoids excessive micro-signals.
In practice, this default preset often behaves like a “faster MACD” that still feels like MACD. It can highlight momentum turns earlier than a traditional EMA MACD while keeping the signal line stable enough to use for timing and confirmation.
Custom mode and MA selection
If you switch Mode to “Custom,” the indicator will use your selected moving average types for both the oscillator and the signal line. In Custom mode, the oscillator type applies to both fast and slow averages, and the signal type applies to the smoothing of the MACD line.
If you are in the default preset mode, the custom MA dropdowns will not change the calculations. This is intentional: the preset locks the MA types so the default behavior remains consistent and reproducible across charts and users.
Reading the indicator
The histogram reflects the distance between the MACD line and the signal line. When the histogram is above zero, the MACD line is above the signal line and momentum is biased upward; when it is below zero, the MACD line is below the signal line and momentum is biased downward. Changes in histogram height help visualize strengthening versus weakening momentum, while the zero baseline provides regime context by indicating whether the fast average is above or below the slow average.
Crossovers between MACD and signal behave exactly as they do in standard MACD, but the timing and “feel” will vary depending on the MA choices. ZLEMA on the oscillator typically makes turns appear earlier; SMA typically smooths more but can be slower; EMA tends to be the balanced baseline.
Alerts
Two alert conditions are included to detect histogram polarity shifts. One triggers when the histogram switches from non-negative to negative, and the other triggers when it switches from non-positive to positive. These are useful if you want simple notifications for momentum regime flips without staring at the chart continuously.
Notes
This indicator is provided for informational and educational purposes only and is not financial advice. Always test settings per instrument and timeframe and use risk management.
Power Hour Trendlines [LuxAlgo]The Power Hour Trendlines indicator is based on Power Hours detection, and includes up to three displayed trendlines derived from the closing prices of all the bars within the last user-selected Power Hours.
Users can edit the time of Power Hours, choose how many sessions to take into account, enable or disable any trendlines, and change their colors.
🔶 USAGE
The Power Hour is defined as the last hour of the trading session and is set by default from 3:00 p.m. to 4:00 p.m. New York time. During this period, volume and volatility enter the market. Traders using higher timeframes may use this period to enter or exit positions by placing MOC (Market on Close) orders.
This tool works under the hypothesis that prices made during power hours (periods with high trading activity) are more relevant when used for the construction of trendlines.
An initial trendline is fit using linear regression; prices from power hours located above this initial fit are used for the upper trendline, while the ones below the fit are used for the lower one.
As with any trendline, traders can analyze the slope to determine the market's direction:
Positive slope: The market is trending up.
Negative slope: The market is trending down.
No slope: The market is trending sideways.
As we can see in the image, Nasdaq and Bitcoin are clearly in downtrends, gold is clearly in an uptrend, and the euro/U.S. dollar is in a sideways market over the last visible sessions.
As you can see, the trend lines may or may not be parallel to each other. The wider the area, the more volatile the data. The narrower the area, the less volatile the data. Let's look at an example.
In the image, the Dow30 and the euro/U.S. dollar have opposite behaviors. The volatility above the middle trendline is growing in the first case but shrinking in the second. In both cases, the volatility in the bottom area seems steady, so there are no big surprises there.
Traders can adjust the number of sessions for calculations, making the tool ideal for analyzing price behavior over different time frames.
As the image shows, we can clearly see how the market behaves over different time periods. XLY has been moving down over the last 10, 20, and 40 sessions, with a steeper decline over shorter periods. However, it has been moving sideways over the last 70 sessions.
One of the main uses of trendlines is to provide key support and resistance. In the image, SPY is shown with trendlines over the last 20 sessions. These lines provide excellent reference points for trading and observing price behavior in those areas, such as whether prices are accepted or rejected, which may trigger a response from other traders.
🔹 Not Allowed Timeframes
For obvious reasons, timeframes larger than 1H are not allowed. The Power Hour is defined as the last hour of the trading session. The tool will display a warning message if the timeframe is longer than 60 minutes.
🔶 SETTINGS
Power Hour (NY Time): Choose a custom Power Hour in New York time
Sessions Memory: Select how many Power Hours to take into account for calculations.
🔹 Style
Top: Enable or disable the top line and choose the line and background colors.
Middle: Enable or disable the middle line and choose the line color.
Bottom: Enable or disable the bottom line and choose the line and background colors.
Background: Enable or disable the background color for top and bottom lines.
FX Rate Bias US vs EU 2YFX Rate Bias – US vs EU (2Y)
This indicator provides a macro bias framework for FX markets by tracking the 2-year government bond yield differential between the United States and Germany.
Rather than displaying the spread as a raw calculation, the script translates interest-rate expectations into a clear directional bias, helping traders understand which currency currently holds a rate advantage.
The 2Y segment of the yield curve is highly sensitive to:
Central bank expectations
Forward guidance
Shifts in short-term monetary policy outlook
How to use
Positive spread → USD rate advantage
Negative spread → EUR rate advantage
Designed to be used as a contextual macro tool, this indicator helps align technical setups with broader monetary conditions.
It is not intended as a standalone entry or signal generator.
CME Gap Tracker [captainua]CME Gap Tracker - Advanced Gap Detection & Tracking System
Overview
This indicator provides comprehensive gap detection and tracking capabilities for both consecutive bar gaps and weekly CME trading session gaps. It automatically detects gaps, tracks their fill progress in real-time, provides detailed statistics, and includes backtesting features to validate gap trading strategies. The script is optimized for CME futures trading but works with any instrument, automatically handling ticker conversion between CME futures and spot markets.
Gap Detection Types
Consecutive Bar Gaps:
Detects gaps between any two consecutive bars on the current timeframe. Two detection modes are available:
- High/Low Mode: Detects gaps when current bar's low > previous bar's high (gap up) or current bar's high < previous bar's low (gap down). This is more sensitive and detects more gaps.
- Close/Open Mode: Detects gaps when current bar's open > previous bar's close (gap up) or current bar's open < previous bar's close (gap down). This is more conservative.
Weekly CME Gaps:
Detects gaps between weekly trading sessions, specifically designed for CME futures markets. The script automatically detects the first bar of each new week and compares the current week's open with the previous week's close/high/low. This is particularly useful for tracking weekend gaps in CME futures markets where price can gap significantly between Friday close and Monday open.
Smart Ticker Detection
The script automatically converts between CME futures tickers (e.g., BTC1!, ETH1!) and spot tickers (e.g., BTCUSDT, ETHUSDT). When viewing a CME futures chart, it can automatically detect and use the corresponding spot ticker for gap analysis, and vice versa. This allows traders to:
- View CME futures but track spot market gaps
- View spot markets but track CME futures gaps
- Manually override with custom ticker specification
The ticker validation system uses caching to prevent race conditions during initial script load, ensuring reliable ticker resolution.
Gap Filtering & Tolerance
Static Tolerance:
Set minimum and maximum gap sizes as percentages (default: show only gaps > 0.333% and < 100%). This filters out noise and focuses on significant gaps.
Dynamic Tolerance:
When enabled, tolerance is calculated dynamically based on ATR (Average True Range). The formula: Dynamic Tolerance = (ATR × ATR Multiplier / Close Price) × 100%. This adapts to market volatility - in volatile markets, only larger gaps are shown; in calm markets, smaller gaps are displayed. This is particularly useful for instruments with varying volatility.
Absolute Size Filtering:
In addition to percentage filtering, gaps can be filtered by absolute price size (e.g., show only gaps > $100). This is useful for instruments where percentage alone doesn't capture significance (e.g., high-priced stocks).
Fill Confirmation System
To reduce false gap closure signals, the script requires multiple consecutive bars to confirm gap closure. The default is 2 bars, but can be adjusted from 1-10 bars. Lower values (1) confirm faster but may produce false signals from temporary wicks. Higher values (3-5) reduce false fill signals but delay confirmation. This prevents temporary price spikes from triggering false gap closure alerts.
Gap Fill Tracking
The script tracks gap fill progress in real-time:
- Fill Percentage: How much of the gap has been filled (0-100%)
- Fill Speed: Whether fill is accelerating, decelerating, or constant
- Time to Fill: For closed gaps, how many bars it took to fill
- Fill Status: Unfilled, partially filled, or fully filled
Visual Features
Heatmap Colors:
Gap colors can be adjusted based on gap size, with larger gaps appearing more intense and smaller gaps more faded.
Adaptive Line Width:
Line thickness automatically adjusts based on gap size, making larger gaps more prominent.
Age-Based Coloring:
Gaps can be color-coded by age, with newer gaps appearing brighter and older gaps more faded.
Confluence Zones:
Areas where multiple gaps overlap are highlighted with enhanced visuals, indicating stronger support/resistance zones.
Gap Statistics
A comprehensive statistics table provides:
- Total gaps created, open, and closed
- Fill rates by direction (up vs down) and size category (small, medium, large)
- Average fill time, fastest fill, slowest fill
- Oldest gap and oldest unfilled gap
- Backtesting results: success rate, reversal rate, average move after fill
- CME gap expiration statistics: Gaps expired unfilled (for Weekly CME gaps only)
Statistics can be filtered by period (All Time, Last 100/500/1000/5000 bars) and can be reset via toggle button.
Backtesting
When enabled, the script tracks price movement after gap fills:
- Price after fill: Captures price when gap closes
- Move after fill: Percentage price movement after closure
- Success/Reversal tracking: Determines if price continued in fill direction or reversed
- Success rate: Percentage of gaps where price continued in fill direction
This data helps validate gap trading strategies and understand gap fill behavior.
Gap Re-opening Detection
When enabled, the script detects when a previously filled gap reopens (price gaps back through the filled gap zone). This is useful for identifying when support/resistance levels break and can signal trend reversals.
CME-Specific Features
Monday Opening Volume Analysis:
For Weekly CME gaps detected on Monday openings, the script tracks Monday opening volume relative to average volume. Higher Monday volume ratios indicate stronger gap significance. This ratio is integrated into gap strength calculations and can be displayed in gap labels. Gaps with Monday volume > 1.5x average receive priority score boosts.
CME Gap Expiration Tracking:
Weekly CME gaps that remain unfilled beyond a configurable threshold (default 1000 bars) are automatically marked as "expired" and tracked separately in statistics. This helps identify gaps that act as strong support/resistance levels and never fill. Expired gaps are displayed with special labeling and counted in the "Gaps Expired (CME)" statistic.
CME Gap Priority Scoring Enhancement:
The priority scoring system includes special boosts for CME gaps:
- Monday gaps: +10 points (gaps detected on Monday openings)
- High Monday volume gaps: +15 points (Monday volume ratio > 1.5x average)
- Gaps at key weekly levels: +10 points (gaps aligning with previous week's high, low, or close within 0.5% tolerance)
These enhancements help prioritize the most significant CME gaps for trading decisions.
Custom Gap Zones
Traders can manually mark custom gap zones by specifying top and bottom levels. These zones are tracked like automatically detected gaps, allowing traders to:
- Mark historical gaps that weren't detected
- Create support/resistance zones based on other analysis
- Track specific price levels of interest
Multi-Timeframe Support
The script can detect gaps on higher timeframes simultaneously. For example, when viewing a 1-hour chart, it can also detect and display gaps from the weekly timeframe. This provides multi-timeframe context for gap analysis.
Alert System
Comprehensive alert system with multiple trigger types:
- Gap Creation: Alert when new gaps are detected
- Gap Closure: Alert when gaps are fully filled
- Partial Fill: Alert when gaps reach specific fill percentages (e.g., 25%, 50%, 75%, 90%)
- Approaching Closure: Alert when gaps reach high fill levels (e.g., 90%, 95%) before closing
- Gap Re-opening: Alert when previously filled gaps reopen
Alerts can be filtered to trigger only on Mondays (useful for CME weekly gaps) or any day.
Filtering Options
Gaps can be filtered by:
- Fill Status: Show all, unfilled only, partially filled only, or fully filled only
- Fill Percentage Range: Show gaps within specific fill percentage ranges
- Gap Age: Show only gaps within specific age ranges (bars)
- Gap Expiration: Automatically remove gaps older than specified number of bars (for Weekly CME gaps, uses separate CME expiration threshold)
Performance & Safety
The script includes several safety features:
- Safe array operations to prevent index out-of-bounds errors
- Memory leak prevention through proper visual object cleanup
- Ticker validation caching to prevent race conditions
- Week boundary detection for accurate CME gap identification
- Fill confirmation system to reduce false signals
- Monday opening volume analysis for CME gap strength assessment
- CME gap expiration tracking with configurable thresholds
- Priority scoring enhancement for Monday gaps, high Monday volume, and key weekly levels
Usage Recommendations
For CME Weekly Gaps:
1. Set "Gap Detection Type" to "Weekly CME"
2. View a CME futures chart (e.g., BTC1!) or enable auto-detect spot ticker
3. Set tolerance to filter gap size (default 0.333%)
4. Enable statistics to track fill rates
5. Configure alerts for gap creation/closure
For Consecutive Bar Gaps:
1. Set "Gap Detection Type" to "Consecutive Bars"
2. Choose "High/Low" for more gaps or "Close/Open" for fewer gaps
3. Adjust tolerance based on instrument volatility
4. Enable fill confirmation (2-3 bars) for more reliable signals
5. Use filtering to focus on specific gap types
For Gap Trading Strategies:
1. Enable backtesting to validate strategy performance
2. Review statistics to understand gap fill patterns
3. Use confluence zones to identify strong support/resistance
4. Configure alerts for gap events matching your strategy
5. Use custom zones to mark important levels
Technical Details:
• Pine Script v6 | Overlay indicator
• Safe array operations with index validation
• Memory leak prevention through proper object cleanup
• Ticker validation caching for reliable ticker resolution
• Works on all timeframes and instruments
• Comprehensive edge case handling
• Week boundary detection using ta.change(weekofyear)
• Fill confirmation system with configurable bars
For detailed documentation and usage instructions, see the script comments.
[PickMyTrade] Trend strategy for LongThis strategy detects descending trend resistance using pivot-based trendlines and enters long positions when price confirms a breakout above a validated trendline. It is designed to capture bullish trend reversals with strict risk control and flexible exit management.
The system focuses on structural market behavior rather than indicators, making it suitable for traders who prefer price-action-based decision making.
USAGE
This strategy automatically builds trendlines from confirmed pivot highs. A trendline is considered valid only when price has interacted with it a user-defined number of times, ensuring that trades are taken only from well-formed market structures.
A trade is triggered when price closes above a validated descending trendline while optional session and position limits are respected.
All risk and position sizing are calculated automatically based on the selected risk amount and stop-loss distance.
HOW IT WORKS
The strategy identifies swing highs using pivot logic and connects them into descending trendlines. Each trendline must meet a minimum number of touch confirmations before becoming eligible for trading.
When price closes above a valid trendline, the strategy calculates:
Stop-loss placement below the most recent pivot low
Position size based on fixed monetary risk
Profit targets based on the selected exit method
EXIT METHODS
Three exit models are supported:
Risk–Reward Ratio
Uses a fixed multiple of the defined risk distance to set the take-profit level.
Lookback Candle Exit
Exits trades when price shows structural reversal behavior based on recent candles.
Fibonacci Targets
Uses Fibonacci extensions derived from recent swing structure to trail profits dynamically.
An optional trailing stop can also be enabled to protect open profits.
FEATURES
Automatic pivot-based trendline detection
Multi-trendline or single-trendline operation
Dynamic position sizing based on monetary risk
Pivot-based stop-loss placement
Multiple exit methodologies
Optional trailing stop
Optional trading session filter
Fully visualized trendlines, stop levels, and profit targets
SETTINGS
Trend Detection
Pivot Length for Trend
Touch Number
Validation Percentage
Optional Pivot-to-Pivot Confirmation
Risk Management
Fixed Risk Amount
Default Contract Size Option
Stop-Loss Buffer
Trailing Stop Toggle
Take-Profit
Exit Method Selection
Risk-Reward Ratio
Lookback Candle Length
Fibonacci Extension Levels
Session Filter
Enable/Disable Session Trading
Trading Session Time Window
Supertrend BUY Only - Optimized for Gold M15 TimeframeOverview
The Supertrend BUY Only - Production Optimized is a high-performance trend-following indicator specifically tuned for XAUUSD (Gold) on the 15-minute timeframe. Unlike standard Supertrend scripts, this version focuses exclusively on bullish cycles to align with long-term upward bias and uses parameters discovered through deep data analysis of over 20,000 bars of historical market data.
Key Features
Data-Optimized Parameters: Defaults are set to ATR Period 7 and Multiplier 2.1, which backtesting has shown to provide a superior balance between sensitivity and noise reduction for Gold.
Production-Ready Alerts: Includes built-in alertcondition triggers for both BUY (Trend Flip) and STOP BUY (Trend Exit), complete with dynamic messages that include price and interval.
Trailing Support Band: Uses a trailing logic that locks in support levels during upward moves, preventing the band from dropping until the trend officially reverses.
Clean Visuals: Focuses on chart clarity by only plotting the support line during active uptrends and utilizing clean shape labels for entries and exits.
How to Use
Entry (BUY): When the Supertrend line flips from Red to Green and a "BUY" label appears. This indicates bullish momentum has overcome recent volatility.
Exit (STOP BUY): When the price closes below the Green support line. The indicator will plot a red "X" and clear the green background.
Setting Alerts: * Click the Alerts icon in TradingView.
Select this indicator under "Condition."
Choose "BUY Signal" for entries and "STOP BUY / EXIT" for managing your trade or taking profit.
Technical Details
The script allows users to toggle between the TradingView (RMA) ATR calculation and the Standard (SMA) method. For production and live trading, the RMA method is recommended as it provides a smoother response to volatility spikes common in the Gold market.
Planetary Retrograde Periods█ PLANETARY RETROGRADE PERIODS
Visualize when planets appear to move backward through the zodiac. This indicator detects and displays retrograde motion for all 8 planets that exhibit apparent retrograde motion from Earth's perspective: Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, and Pluto.
Powered by the BlueprintResearch lib_ephemeris library.
█ FEATURES
• 8 Planets Supported — Mercury, Venus, Mars, Jupiter, Saturn, Uranus, Neptune, and Pluto
• Two-Phase Visualization — Distinguishes first half (speed increasing in retrograde direction) from second half (speed decreasing toward direct motion) with different transparency levels
• Future Projections — Projects upcoming retrograde periods up to 500 bars ahead on any timeframe
• Station Markers — Clear labels for Station Retrograde (℞), Midpoint (½), and Station Direct (D)
• Timezone-Aware Labels — Future date/time labels display in your selected timezone
• Alert Conditions — Set alerts for station retrograde, station direct, or any station point
• Per-Planet Colors — Customize colors for each planet individually
• Speed-Based Detection — More accurate than longitude-based methods
█ HOW TO USE
1. Select a Planet — Choose which planet to track from the dropdown (Mercury through Pluto)
2. Enable Two-Phase Display — Toggle "Show Retrograde Halves" to see first half vs. second half shading
3. Configure Future Projections — Set how many bars ahead to scan (1-500) and enable/disable date labels
4. Set Your Timezone — Choose your timezone for accurate future date/time display
5. Customize Colors — Adjust planet colors, transparency levels, and label text color to match your chart theme
6. Create Alerts — Use TradingView's alert system with the built-in conditions for station points
█ UNDERSTANDING THE DISPLAY
Background Colors:
• First Half of the Planet’s retrograde (lighter shade)
• Second Half of the Planet’s retrograde period (darker shade)
Future Projection Lines:
• ℞ (Station Retrograde) — Yellow dotted line marking when the planet will station retrograde
• ½ (Midpoint) — Shorter line in planet color marking the halfway point of the retrograde period
• D (Station Direct) — Green dotted line marking when the planet will station direct
Labels:
• Top label shows planet symbol and station type
• Bottom label shows projected date and time (optional)
█ ACCURACY
This indicator uses speed-based detection
Timing Accuracy:
• All planets (Mercury through Pluto): Within hours to ±1 day
• Future projections maintain accuracy up to 500 bars on any timeframe
• Spot tested on Daily and Weekly charts with excellent results
For Critical Applications:
Cross-reference with professional ephemeris tools such as JPL Horizons or Swiss Ephemeris for mission-critical timing.
█ TECHNICAL DETAILS
Theory: VSOP87 (Mercury through Neptune), Meeus algorithms (Pluto)
█ REFERENCES
• Meeus, Jean. "Astronomical Algorithms" (2nd Edition, 1998)
• Bretagnon & Francou. "VSOP87 Solutions" — Astronomy and Astrophysics 202 (1988)
MADZ - Moving Average Deviation Z-ScoreMADZ - Moving Average Deviation Z-Score
MADZ is a powerful valuation oscillator that measures how far the current price has deviated from a user-selected moving average, expressed in statistical terms as a Z-Score. This normalization makes it easier to identify overvalued and undervalued conditions across different assets, timeframes, and market environments.
Overview
The indicator works by:
Calculating the percentage deviation of price from a customizable moving average (SMA, EMA, WMA, VWMA, HMA, or RMA).
Applying a Z-Score transformation to this deviation over a chosen lookback period — showing how many standard deviations the current deviation is from its historical average. Smoothing the result for a clean, responsive oscillator centered around zero.
Positive values indicate price is trading above the moving average (potentially overvalued), while negative values suggest price is below (potentially undervalued). The further from zero, the greater the relative valuation extreme.
Key Features
Customizable base moving average (type and length)
Z-Score normalization for statistically meaningful readings
Final smoothing for reduced noise
Static overbought/oversold levels (default ±1.5) — line changes color when crossed (red above, green below)
Dynamic extreme bands (±3σ) — optional display of bands calculated from the oscillator’s own volatility over a user-defined period
Extreme zone highlighting — background shading activates only during truly rare valuation events
Extreme Zone Highlighting Explained
The highlighted extreme zones (background shading) are not based on the fixed static levels. Instead, they signal statistically significant outliers using dynamic bands:
Overbought extreme zone (red background): Triggered when MADZ rises above the upper dynamic band (+3 standard deviations of the MADZ line itself over the dynamic length period).
Oversold extreme zone (green background): Triggered when MADZ falls below the lower dynamic band (-3 standard deviations).
These ±3σ bands adapt to the recent behavior of the oscillator. Because they represent three standard deviations from the mean of MADZ, crossings are rare and often precede major reversals or trend accelerations — making them valuable for spotting potential turning points in valuation extremes.
How to Use
Use zero-line crosses for trend changes or mean-reversion setups.
Watch static level crossings (±1.5 default) for early overbought/oversold warnings.
Pay special attention to extreme zone shading — these highlight high-conviction valuation dislocations that may offer superior risk/reward opportunities.
Designed on the BTC chart, but can be used on other assets.
Settings
Moving Average Settings: Type, length, source
Z-Score & Smoothing: Lookback period and smoothing length
Threshold Levels: Static overbought/oversold thresholds
Display Options: Toggle dynamic bands and extreme background highlighting
This is an educational tool designed to aid in valuation analysis. The information provided is not financial advice. Always conduct your own research and consider multiple factors before making trading decisions. Trade at your own risk.
Box BO signals v1Box Breakout Direction Flip Signals is a smart price‐action tool designed to identify clean directional shifts using consolidation boxes and breakout logic.
The indicator draws dynamic high–low range boxes and generates Buy (B) and Sell (S) signals only when direction flips, avoiding repeated noise signals during trending moves.
✔ First breakout after box marks direction (Buy or Sell)
✔ Signals alternate: S → B → S → B, never repeating
✔ No signals while price simply continues in same direction
✔ Labels are spaced away from candles for clean visibility
✔ Works best on lower timeframes (1m, 3m, 5m) for scalping / intraday
🎯 How It Works
1️⃣ A consolidation zone forms automatically using candle high–low
2️⃣ Breakout above the box → Buy label → new box begins
3️⃣ Breakout below the box → Sell label → new box begins
4️⃣ Signals print only on actual directional change (flip)
5️⃣ Boxes extend dynamically until breakout occurs
ORB W/ Custom time FramesRelease Notes: Simplified ORB (Opening Range Breakout)
This indicator is a streamlined, high-performance tool designed to identify the Opening Range—one of the most widely used concepts by professional floor traders and institutional scalpers. It marks the high, low, and midpoint of the initial balance of the market, providing you with a "map" for the rest of the trading session.
Key Features
Customizable Timeframes: Define your opening range window (e.g., the first 5, 15, or 30 minutes) regardless of what timeframe you are currently viewing.
Custom Session Support: Choose between standard market hours (09:30–16:00) or define your own custom window (e.g., the London Open or the first hour of "Power Hour").
Real-Time Midpoint Calculation: Automatically plots the 50% Equilibrium level between the high and low, serving as a pivot point for intraday bias.
Dynamic Updating: During the ORB window, the lines adjust in real-time as new highs or lows are set. Once the window expires, the levels lock in place to act as support and resistance.
Clean Visuals: Utilizes a lightweight line drawing system that is easy on your GPU and keeps the chart clutter-free.
Why This is Essential for Scalping
Scalpers rely on volatility and clear "lines in the sand." The Opening Range Breakout (ORB) provides exactly that:
The "Opening Drive": If price breaks the ORB High with high volume, scalpers look for quick "long" momentum plays. Conversely, a break below the ORB Low signals a bearish trend.
The Midpoint Pivot: The 50% level (Mid) is often treated as the "Fair Value" of the morning. If price is above the mid, the bias is bullish; if below, the bias is bearish.
Stop Loss / Take Profit Anchor: The ORB High and Low act as natural areas for placing stops or targets. A failed breakout that returns inside the range often targets the opposite side of the box.
Institutional Intermarket Score PRO V3.3 (Presets)This indicator is built on an unusual, non-traditional intermarket concept and is designed to provide market context rather than trading signals.
Institutional Intermarket Score – Indicator Description
Overview
The Institutional Intermarket Score is a contextual market indicator designed to provide a macro and intermarket perspective on the current market environment.
It aggregates information from multiple user-selected correlated and inversely correlated assets to determine whether the broader market context favors risk-on, risk-off, or neutral conditions.
This indicator is not a buy or sell signal.
It does not attempt to predict short-term price movements, entries, or exits.
Its sole purpose is to help the trader understand the broader market context before making any trading decisions.
Core Concept
Markets do not move in isolation.
Institutional participants continuously monitor multiple related markets to assess risk, liquidity, and conviction before deploying capital.
This indicator replicates that process by:
Monitoring several correlated assets (assets that tend to move in the same direction)
Monitoring several inversely correlated assets (assets that typically move in the opposite direction)
Combining their behavior into a single, normalized intermarket score
The result is a context filter, not a trading system.
Asset Groups
The indicator supports up to:
5 correlated assets
5 inversely correlated assets
All assets are fully configurable by the user and can be enabled or disabled individually.
Only active assets are included in all calculations.
Market State Evaluation
Each asset is evaluated using a Price vs VWAP relationship:
Price above VWAP → bullish state
Price below VWAP → bearish state
This binary state is used consistently across all assets to maintain clarity and robustness.
Intermarket Score
----------------------
The Intermarket Score represents the average directional alignment of all active assets and is normalized between -1 and +1.
Positive values indicate a risk-on environment
Negative values indicate a risk-off environment
Values near zero indicate balance, rotation, or uncertainty
The score is smoothed to reduce noise and highlight regime persistence rather than short-term fluctuations.
Confirmation Metric (X / Y)
----------------------------------
In addition to the score, the indicator calculates a confirmation ratio:
Y = total number of active assets
X = number of assets aligned with the current regime
Alignment is evaluated relative to the current regime:
In bullish regimes, assets above VWAP confirm
In bearish regimes, assets below VWAP confirm
This metric reflects the quality and conviction of the intermarket consensus.
High confirmation indicates broad agreement across markets.
Low confirmation indicates divergence, uncertainty, or fragile conditions.
Heatmap
-----------
A compact heatmap visually displays the state of each individual asset:
Green indicates alignment with the regime
Red indicates opposition
Neutral indicates inactive assets
This allows immediate identification of:
Which markets are confirming
Which markets are diverging
Whether consensus is broad or fragmented
Intended Use
----------------
This indicator is designed to be used:
Before evaluating trade setups
As a filter, not a trigger
In combination with price action, structure, and risk management
Typical applications include:
Avoiding trades against the broader market context
Distinguishing strong trends from fragile moves
Identifying periods of institutional alignment or hesitation
What This Indicator Is Not
It is not a buy or sell indicator
It does not provide entry or exit signals
It does not predict price direction on its own
It does not guarantee profitable trades
Any trading decisions remain entirely the responsibility of the user.
Summary
The Institutional Intermarket Score provides a high-level market image based on assets selected by the user.
It reflects context, alignment, and conviction, not timing.
Used correctly, it helps traders avoid low-quality trades, understand when markets are aligned or fragmented, and make decisions with greater awareness of the broader environment.
It is a decision support tool, not a trading system.
This indicator, is still evolving and its structure will continue to develop as new insights are tested...
NY Opening Range [LuckyAlgo]
This custom ORM (Opening Range Move) indicator is designed as a tool for traders who focus not just on where a range is, but on the magnitude of the expansion following the initial morning volatility.
Here is a summary of the indicator and how it differentiates itself from standard Opening Range Breakout (ORB) tools.
Indicator Summary
The script captures the high and low of the market during the first 30 minutes of the NY session (09:30–10:00 AM EST). Once this range is set, it tracks the "Expansion Move" - the point distance from the range's boundary to the current session's high or low. It visualizes this through color-coded zones, dynamic labels at the session extremes, and a statistical table that benchmarks today's volatility against the recent past.
What specific questions does this indicator answer?
While most indicators tell you "the range is broken," this indicator answers quantitative questions vital for trade management:
1. "How far has the market stretched relative to the breakout?"
The indicator provides the exact point distance (+/-) from the range high/low. This helps you determine if the move is just beginning or if it has already extended significantly.
2. "Is the current move 'normal' or an outlier?"
By using the Stats Table, you can see if the current 40-point move on NQ is typical or if the average move over the last 10 days is actually 80 points. This prevents you from "fading" a move that still has average room to grow, or taking a "pro-trend" trade when the market is already exhausted.
3. "Where is the session extreme located?"
The inclusion of the dashed High of Day (HOD) and Low of Day (LOD) lines with attached labels tells you exactly where the "Move" calculation is peaking. If the HOD line hasn't moved for two hours, you know the bullish expansion has stalled.
4. "When is the data no longer relevant?"
Because of the 17:00 EST reset logic, the indicator answers the "end of day" question for futures traders. It stops measuring at the settlement/close of the electronic session, ensuring your charts are clean for the overnight (Globex) session or ready for the next morning.
Technical Advantage
Most scripts use a single "point in time" to reset. This script uses a Trading Window logic, which is much more robust. If a bar is missing at exactly 17:00 due to low volume or a data glitch, the indicator won't "break" or keep drawing old lines - it understands the entire window of time it is allowed to exist in.
Credit to @LuxAlgo for his initial Opening Range Breakout indicator used as a base to develop this version.
Stochastic Extreme Oscillator [MatrixQuantLabs]Stochastic Extreme Oscillator is an enhanced stochastic-based oscillator designed to highlight market extremes, momentum shifts, and potential reversal zones with improved visual clarity and signal filtering.
This indicator builds upon the classic Stochastic Oscillator by focusing on extreme zone behavior, peak & trough signals, and optional divergence detection, making it suitable for both discretionary and systematic traders.
Key Features
Extreme Zone Visualization
• Multi-level overbought (80–100) and oversold (0–20) zones with adaptive color intensity help assess the strength and risk level of market extremes at a glance.
Momentum-Aware Coloring
• The %D line dynamically changes color based on its position relative to the zero line, providing an intuitive view of bullish, neutral, and bearish momentum states.
Peak & Trough Signals
• Optional bullish and bearish signals are triggered only when %K / %D cross occurs inside extreme zones, helping filter out low-quality signals in mid-range conditions.
Regular Divergence Detection
• Built-in bullish and bearish divergence detection based on pivot structure, allowing early identification of potential trend reversals.
Clean & Focused Design
• The indicator emphasizes the %D line as the primary signal source, while %K is used internally for logic, keeping the chart uncluttered and easy to read.
Customization
• Adjustable %K / %D lengths and smoothing
• Toggle peak & trough signals on/off
• Optional divergence detection with configurable pivot sensitivity
• Designed to work across different markets and timeframes
Usage Notes
• Best used as a momentum and extreme-condition oscillator, not as a standalone trading system
• Signals are most effective when combined with trend context, price structure, or higher-timeframe analysis
• Divergence signals may appear with delay due to pivot confirmation logic
Disclaimer
This indicator is intended for educational and analytical purposes only and does not constitute financial advice. Always apply proper risk management and confirm signals with additional analysis.






















