DEMA Flow [Alpha Extract]A sophisticated trend identification system that combines Double Exponential Moving Average methodology with advanced HL median filtering and ATR-based band detection for precise trend confirmation. Utilizing dual-layer smoothing architecture and volatility-adjusted breakout zones, this indicator delivers institutional-grade flow analysis with minimal lag while maintaining exceptional noise reduction. The system's intelligent band structure with asymmetric ATR multipliers provides clear trend state classification through price position analysis relative to dynamic threshold levels.
🔶 Advanced DEMA Calculation Engine
Implements double exponential moving average methodology using cascaded EMA calculations to significantly reduce lag compared to traditional moving averages. The system applies dual smoothing through sequential EMA processing, creating a responsive yet stable trend baseline that maintains sensitivity to genuine market structure changes while filtering short-term noise.
// Core DEMA Framework
dema(src, length) =>
EMA1 = ta.ema(src, length)
EMA2 = ta.ema(EMA1, length)
DEMA_Value = 2 * EMA1 - EMA2
DEMA_Value
// Primary Calculation
DEMA = dema(close, DEMA_Length)
2H
🔶 HL Median Filter Smoothing Architecture
Features sophisticated high-low median filtering using rolling window analysis to create ultra-smooth trend baselines with outlier resistance. The system constructs dynamic arrays of recent DEMA values, sorts them for median extraction, and handles both odd and even window lengths for optimal smoothing consistency across all market conditions.
// HL Median Filter Logic
hlMedian(src, length) =>
window = array.new_float()
for i = 0 to length - 1
array.push(window, src)
array.sort(window)
// Median Extraction
lenW = array.size(window)
median = lenW % 2 == 1 ?
array.get(window, lenW / 2) :
(array.get(window, lenW/2 - 1) + array.get(window, lenW/2)) / 2
// Smooth DEMA Calculation
Smooth_DEMA = hlMedian(DEMA_Value, HL_Filter_Length)
🔶 ATR Band Construction Framework
Implements volatility-adaptive band structure using Average True Range calculations with asymmetric multiplier configuration for optimal trend identification. The system creates upper and lower threshold bands around the smoothed DEMA baseline with configurable ATR multipliers, enabling precise trend state determination through price breakout analysis.
// ATR Band Calculation
atrBands(src, atr_length, upper_mult, lower_mult) =>
ATR = ta.atr(atr_length)
Upper_Band = src + upper_mult * ATR
Lower_Band = src - lower_mult * ATR
// Band Generation
= atrBands(Smooth_DEMA, ATR_Length, Upper_ATR_Mult, Lower_ATR_Mult)
15min
🔶 Intelligent Flow Signal Engine
Generates binary trend states through band breakout detection, transitioning to bullish flow when price exceeds upper band and bearish flow when price breaches lower band. The system maintains flow state persistence until opposing band breakout occurs, providing clear trend classification without whipsaw signals during normal volatility fluctuations.
🔶 Comprehensive Visual Architecture
Provides multi-dimensional flow visualization through color-coded DEMA line, trend-synchronized candle coloring, and bar color overlay for complete chart integration. The system uses institutional color scheme with neon green for bullish flow, neon red for bearish flow, and neutral gray for undefined states with configurable band visibility.
🔶 Asymmetric Band Configuration
Features intelligent asymmetric ATR multiplier system with default upper multiplier of 2.1 and lower multiplier of 1.5, optimizing for market dynamics where upside breakouts often require stronger momentum confirmation than downside breaks. This configuration reduces false signals while maintaining sensitivity to genuine flow changes.
🔶 Dual-Layer Smoothing Methodology
Combines DEMA's inherent lag reduction with HL median filtering to create exceptional smoothing without sacrificing responsiveness. The system first applies double exponential smoothing for initial noise reduction, then applies median filtering to eliminate outliers and create ultra-clean flow baseline suitable for high-frequency and institutional trading applications.
🔶 Alert Integration System
Features comprehensive alert framework for flow state transitions with customizable notifications for bullish and bearish flow confirmations. The system provides real-time alerts on crossover events with clear directional indicators and exchange/ticker integration for multi-symbol monitoring capabilities.
🔶 Performance Optimization Framework
Utilizes efficient array management with optimized median calculation algorithms and minimal variable overhead for smooth operation across all timeframes. The system includes intelligent bar indexing for median filter initialization and streamlined flow state tracking for consistent performance during extended analysis periods.
🔶 Why Choose DEMA Flow ?
This indicator delivers sophisticated flow identification through dual-layer smoothing architecture and volatility-adaptive band methodology. By combining DEMA's reduced-lag characteristics with HL median filtering and ATR-based breakout zones, it provides institutional-grade flow analysis with exceptional noise reduction and minimal false signals. The system's asymmetric band structure and comprehensive visual integration make it essential for traders seeking systematic trend-following approaches across cryptocurrency, forex, and equity markets with clear entry/exit signals and comprehensive alert capabilities for automated trading strategies.
Поиск скриптов по запросу "algo"
VWAP Kalman FilterOverview
This indicator applies Kalman filtering techniques to Volume Weighted Average Price (VWAP) calculations, providing a statistically optimized approach to VWAP analysis. The Kalman filter reduces noise while maintaining responsiveness to genuine price movements, addressing common VWAP limitations in volatile or low-volume conditions.
Technical Implementation
Kalman Filter Mathematics
The indicator implements a state-space model for VWAP estimation:
- Prediction Step: x̂(k|k-1) = x̂(k-1|k-1) + v(k-1)
- Update Step: x̂(k|k) = x̂(k|k-1) + K(k)
- Kalman Gain: K(k) = P(k|k-1) / (P(k|k-1) + R)
Where:
- x̂ = estimated VWAP state
- K = Kalman gain (adaptive weighting factor)
- P = error covariance
- R = measurement noise
- Q = process noise
- v = optional velocity component
Core Components
Dual VWAP System
- Standard VWAP: Traditional volume-weighted calculation
- Kalman-filtered VWAP: Noise-reduced estimation with optional velocity tracking
- Real-time divergence measurement between filtered and unfiltered values
Adaptive Filtering
- Process Noise (Q): Controls adaptation to price changes (0.001-1.0)
- Measurement Noise (R): Determines smoothing intensity (0.01-5.0)
- Optional velocity tracking for momentum-based filtering
Multi-Timeframe Anchoring
- Session, Weekly, Monthly, Quarterly, and Yearly anchor periods
- Automatic Kalman state reset on anchor changes
- Maintains VWAP integrity across timeframes
Features
Visual Components
- Dual VWAP Lines: Compare filtered vs. unfiltered in real-time
- Dynamic Bands: Three-level deviation bands (1σ, 2σ, 3σ)
- Trend Coloring: Automatic color adaptation based on price position
- Cloud Visualization: Highlights divergence between standard and Kalman VWAP
- Signal Markers: Crossover and band-touch indicators
Trading Signals
- VWAP crossover detection with Kalman filtering
- Band touch alerts at multiple standard deviation levels
- Velocity-based momentum confirmation (optional)
- Divergence warnings when filtered/unfiltered values separate
Information Display
- Real-time VWAP values (both standard and filtered)
- Trend direction indicator
- Velocity/momentum reading (when enabled)
- Divergence percentage calculation
- Anchor period display
Input Parameters
VWAP Settings
- Anchor Period: Choose calculation reset period
- Band Multipliers: Customize deviation band distances
- Display Options: Toggle standard VWAP and bands
Kalman Parameters
- Length: Base period for calculations (5-200)
- Process Noise (Q: Higher values increase responsiveness
- Measurement Noise (R): Higher values increase smoothing
- Velocity Tracking: Enable momentum-based filtering
Visual Controls
- Toggle filtered/unfiltered VWAP display
- Band visibility options
- Signal markers on/off
- Cloud fill between VWAPs
- Bar coloring by trend
Use Cases
Noise Reduction
Particularly effective during:
- Low volume periods (pre-market, lunch hours)
- Volatile market conditions
- Fast-moving markets where standard VWAP whipsaws
Trend Identification
- Cleaner trend signals with reduced false crosses
- Earlier trend detection through velocity component
- Confirmation through divergence analysis
Support/Resistance
- Filtered VWAP provides more stable S/R levels
- Bands adapt to filtered values for better zone identification
- Reduced false breakout signals
Technical Advantages
1. Optimal Estimation: Mathematically optimal under Gaussian noise assumptions
2. Adaptive Response: Self-adjusting to market conditions
3. Predictive Element: Velocity component provides forward-looking insight
4. Noise Immunity: Superior noise rejection vs. simple moving average smoothing
Limitations
- Assumes linear price dynamics
- Requires parameter optimization for different instruments
- May lag during sudden volatility regime changes
- Not suitable as standalone trading system
Mathematical Background
Based on control systems theory, the Kalman filter provides recursive Bayesian estimation originally developed for aerospace applications. This implementation adapts the algorithm specifically for financial time series, maintaining VWAP's volume-weighted properties while adding statistical filtering.
Comparison with Standard VWAP
Standard VWAP Issues Addressed:
- Choppy behavior in low volume
- Whipsaws around VWAP line
- Lag in trend identification
- Noise in deviation bands
Kalman VWAP Benefits:
- Smooth yet responsive line
- Fewer false signals
- Optional momentum tracking
- Statistically optimized filtering
Alert Conditions
The indicator includes several pre-configured alert conditions:
- Bullish/Bearish VWAP crosses
- Upper/Lower band touches
- High divergence warnings
- Velocity shifts (if enabled)
---
This open-source indicator is provided as-is for educational and trading purposes. No guarantees are made regarding trading performance. Users should conduct their own testing and validation before using in live trading.
Quantura - Session High/LowIntroduction
“Quantura – Session High/Low” is a professional-grade session mapping indicator that automatically identifies and visualizes the highs, lows, and ranges of key global trading sessions — London, New York, and Asia. It helps traders understand when and where liquidity tends to accumulate, allowing for better market structure analysis and session-based strategy alignment.
Originality & Value
This indicator unifies the three most influential global sessions into a single, adaptive visualization tool. Unlike typical session indicators, it dynamically updates live session highs and lows in real time while marking session boundaries and transitions. Its multi-session management system allows for immediate recognition of overlapping liquidity zones — a crucial feature for institutional and intraday traders.
The value and originality come from:
Real-time tracking of session highs, lows, and developing ranges.
Simultaneous visualization of multiple global sessions.
Optional vertical range lines for clearer visual segmentation.
Customizable session times, colors, and time zone offset for global accuracy.
Automatically extending and updating lines as each session progresses.
Functionality & Core Logic
Detects the start and end of each trading session (London, New York, Asia) using built-in time logic and user-defined UTC offsets.
Initializes session-specific high and low variables at the start of each new session.
Continuously updates session high/low levels as new candles form.
Draws color-coded horizontal lines for each session’s high and low.
Optionally adds vertical dotted lines to visually connect session range extremes.
Locks each session’s range once it ends, preserving historical structure for review.
Parameters & Customization
New York Session: Enable/disable, customize time (default 15:30–21:30), and set color.
London Session: Enable/disable, customize time (default 09:00–16:30), and set color.
Asia Session: Enable/disable, customize time (default 02:30–08:00), and set color.
Vertical Line: Toggle dotted vertical lines connecting session high and low levels.
UTC Offset: Adjust session timing to align with your chart’s local time zone.
Visualization & Display
Each session is color-coded for quick identification (default: blue for London, red for New York, green for Asia).
Horizontal lines track evolving session highs and lows in real time.
Once a session closes, the lines remain fixed to mark historical range boundaries.
Vertical dotted lines (optional) visually connect the session’s high and low for clarity.
Supports full overlay display without interfering with other technical indicators.
Use Cases
Identify liquidity zones and range extremes formed during active trading sessions.
Observe session overlaps (London–New York) to anticipate volatility spikes.
Combine with volume or market structure tools for session-based confluence.
Track how price interacts with prior session highs/lows to detect potential reversals.
Analyze session-specific performance patterns for algorithmic or discretionary systems.
Limitations & Recommendations
The indicator is designed for intraday analysis and may not provide meaningful output on daily or higher timeframes.
Adjust session times and UTC offset based on your broker’s or exchange’s timezone.
Does not provide trading signals — it visualizes session structure only.
Combine with liquidity and volatility indicators for full contextual understanding.
Markets & Timeframes
Compatible with all asset classes — including crypto, forex, indices, and commodities — and optimized for intraday timeframes (1m–4h). Particularly useful for traders analyzing session overlaps and volatility transitions.
Author & Access
Developed 100% by Quantura. Published as a Open-source script indicator. Access is free.
Compliance Note
This description fully complies with TradingView’s Script Publishing Rules and House Rules . It provides a detailed explanation of functionality, parameters, and realistic use cases without making any performance or predictive claims.
Quantura - Liquidity Sweep & Run LevelsIntroduction
“Quantura – Liquidity Sweep & Run Levels” is a structural price-action indicator designed to automatically detect swing-based liquidity zones and visualize potential sweep and run events. It helps traders identify areas where liquidity has likely been taken (sweep) or released (run), improving precision in market structure analysis and timing of entries or exits.
Originality & Value
This tool translates institutional liquidity concepts into an automated visual framework. Instead of simply marking highs and lows, it dynamically monitors swing points, tracks their breaches, and identifies subsequent reactions. The indicator is built to highlight the liquidity dynamics that often precede reversals or continuations.
Its originality lies in:
Automatic identification and tracking of swing highs and lows.
Real-time detection of broken levels and liquidity sweeps.
Distinction between “Run” and “Sweep” modes for different market behaviors.
Persistent historical visualization of liquidity levels using clean line structures.
Configurable signal markers for bullish and bearish sweep confirmations.
Functionality & Core Logic
Detects swing highs and lows using a user-defined Swing Length parameter.
Stores and updates all swing levels dynamically with arrays for efficient memory handling.
Draws horizontal lines from each detected swing point to visualize potential liquidity zones.
Monitors when price breaks a swing level and marks that event as “broken.”
Generates signals when the market either sweeps above/below or runs away from those levels, depending on the chosen mode.
Provides optional visual signal markers (“▲” for bullish sweeps, “▼” for bearish sweeps).
Parameters & Customization
Mode: Choose between “Sweep” (detects liquidity grabs) or “Run” (detects breakout continuations).
Swing Length: Sets the sensitivity for detecting swing highs/lows. A higher value focuses on larger structures, while smaller values detect micro liquidity points.
Bullish Color / Bearish Color: Customize color themes for sweep/run lines and signal markers.
Signals: Enables or disables visual up/down markers for confirmed events.
Visualization & Display
Horizontal lines represent potential liquidity levels (unbroken swing highs/lows).
Once broken, lines automatically stop extending, marking the moment liquidity is taken.
Depending on the selected mode:
“Sweep” mode identifies false breaks or stop-hunt behavior.
“Run” mode highlights breakouts that continue the trend.
Colored arrows indicate the direction and type of liquidity reaction.
Clean, non-intrusive visualization suitable for overlaying on price charts.
Use Cases
Detect liquidity sweeps before major reversals.
Identify breakout continuations after liquidity runs.
Combine with Supply/Demand or FVG indicators for multi-layered confirmation.
Validate liquidity bias in algorithmic or discretionary strategies.
Analyze market manipulation patterns and institutional stop-hunting behavior.
Limitations & Recommendations
This indicator identifies structural behavior but does not guarantee trade direction or profitability.
Works best on liquid markets with clear swing structures (e.g., crypto, forex, indices).
Signal interpretation should be combined with confluence tools such as volume, order flow, or structure-based filters.
Excessively small swing settings may cause over-signaling in volatile markets.
Markets & Timeframes
Optimized for all major asset classes — including crypto, Forex, indices, and equities — and for intraday to higher-timeframe structural analysis (5-minute up to daily charts).
Author & Access
Developed 100% by Quantura. Published as a Open-source script indicator. Access is free.
Compliance Note
This description fully complies with TradingView’s Script Publishing Rules and House Rules . It avoids performance claims, provides transparency on methodology, and clearly describes indicator behavior and limitations.
Quantura - Fair Value GapIntroduction
“Quantura – Fair Value Gap” is a precision-engineered institutional concept indicator designed to automatically identify, visualize, and manage Fair Value Gaps (FVGs) across any market or timeframe. It enables traders to observe price inefficiencies, potential liquidity voids, and retracement areas that often act as magnets for price rebalancing.
Originality & Value
Unlike many public FVG scripts that only highlight candle gaps, this indicator integrates dynamic filters and adaptive logic to determine the strength and reliability of each gap. It merges overlapping zones intelligently and optionally extends valid imbalances forward for ongoing reference.
Its value lies in:
Dynamic statistical filtering based on gap standard deviation.
Optional volume confirmation for high-confidence FVGs.
Automatic merging of overlapping or adjacent gaps for clean visualization.
Support for both bullish and bearish imbalances.
Signal alerts when gaps are filled or rebalanced by price.
Functionality & Core Logic
Detects Fair Value Gaps by comparing candle-to-candle price displacement.
Applies a Gap Filter (standard deviation-based) to qualify valid gaps.
Optionally validates gaps formed under significant volume conditions.
Draws color-coded boxes to mark bullish (discount) and bearish (premium) inefficiencies.
Monitors each FVG until price fills the gap, at which point the box is visually closed.
Provides optional signal markers (“▲” or “▼”) when rebalancing occurs.
Parameters & Customization
Gap Filter: Sets the minimum statistical deviation required for a valid FVG. Higher values detect fewer, stronger gaps.
Volume Filter: Toggles additional validation using relative volume strength.
Volume Sensitivity: Adjusts how much above-average volume must be present to confirm a gap.
Bullish/Bearish Colors: Customize color schemes for imbalance zones.
Extend Gaps: Optionally extend open gaps forward for better confluence tracking.
Signals: Enables or disables gap-fill signal markers.
Visualization & Display
Bullish FVGs: Appear in blue-tinted boxes, indicating potential demand-side inefficiencies.
Bearish FVGs: Appear in red-tinted boxes, representing potential supply-side inefficiencies.
Overlapping zones are merged automatically to maintain clarity.
Filled gaps remain visible for historical context, allowing for post-event analysis.
Optional signal arrows display when price returns to rebalance an FVG.
Use Cases
Identify institutional inefficiencies and liquidity voids.
Detect premium and discount levels in trending markets.
Combine with market structure or order block indicators for confluence.
Track when price rebalances inefficiencies to refine entry/exit points.
Build FVG-based algorithmic strategies that rely on structural imbalance resolution.
Limitations & Recommendations
The indicator detects structural imbalances but does not predict future direction or guarantee profitability.
Volume filters may behave differently across brokers due to data-source differences.
Use alongside structure or liquidity tools for enhanced decision-making.
Extreme volatility or illiquid assets may generate temporary invalid gaps.
Markets & Timeframes
Compatible with all markets (crypto, forex, equities, indices, futures) and all timeframes. Recommended for multi-timeframe confluence analysis — e.g., detecting higher-timeframe FVGs and refining lower-timeframe entries.
Author & Access
Developed 100% by Quantura. Published as a Open-source script indicator. Access is free.
Compliance Note
This description adheres fully to TradingView’s House Rules and Script Publishing Requirements . It provides a detailed explanation of originality, core logic, limitations, and appropriate use — with no unrealistic or misleading performance claims.
Quantura - Average Intraday Candle VolumeIntroduction
“Quantura – Average Intraday Candle Volume” is a quantitative visualization tool that calculates and displays the average traded volume for each intraday time position based on a user-defined historical lookback period. It allows traders to analyze recurring intraday volume patterns, identify high-activity sessions, and detect liquidity shifts throughout the trading day.
Originality & Value
This indicator goes beyond standard volume averages by normalizing and aligning volume data according to the time of day. Instead of simply smoothing recent bars, it builds an intraday volume profile based on historical daily averages, enabling users to understand when during the day volume typically peaks or drops.
Its originality and usefulness come from:
Converting standard volume data into time-aligned intraday averages.
Visualization of historical intraday liquidity behavior, not just total daily volume.
Dynamic scaling using normalization and transparency to emphasize active and quiet periods.
Optional day-separator lines for precise intraday structure recognition.
Gradient-based coloring for better visual interpretation of volume intensity.
Functionality & Core Logic
The indicator divides each day into discrete intraday time positions (based on chart timeframe).
For each position, it stores and updates historical volume values across the selected number of days.
It calculates an average volume per time position by aggregating all stored values and dividing them by the number of valid days.
The result is plotted as a continuous histogram showing typical intraday volume distribution.
The bar colors and transparency dynamically reflect the relative intensity of volume at each point in the day.
Parameters & Customization
Number of Days for Averaging: Defines how many past days are included in the volume average calculation (default: 365).
UTC Offset: Allows synchronization of intraday cycles with local or exchange time zones.
Base Color: Sets the main color for plotted volume columns.
Color Mode: Choose between “Gradient” (transparency dynamically adjusts by intensity) or “Normal” (fixed opacity).
Day Line: Toggles dashed vertical lines marking the start of each trading day.
Visualization & Display
Volume is plotted as a series of histogram bars, each representing the average volume for a specific intraday time position.
A gradient color mode enhances readability by fading lower-intensity areas and highlighting high-volume regions.
Optional day-separator lines visually segment historical sessions for easy reference.
Works seamlessly across all chart timeframes that divide the 24-hour day into regular bar intervals.
Use Cases
Identify when trading activity typically peaks (e.g., session opens, news windows, or overlapping markets).
Compare current intraday volume to historical averages for early anomaly detection.
Enhance algorithmic or discretionary strategies that depend on volume-timing alignment.
Combine with volatility or price structure indicators to confirm market activity zones.
Evaluate session consistency across different time zones using the UTC offset parameter.
Limitations & Recommendations
The indicator requires intraday data (below 1D resolution) to function properly.
Volume behavior may vary across brokers and assets; adjust averaging period accordingly.
Does not predict price movement — it provides volume-based context for analysis.
Works best when combined with structure or momentum-based indicators.
Markets & Timeframes
Compatible with all intraday markets — including crypto, Forex, equities, and futures — and all intraday timeframes (from 1 minute to 4 hours). It is particularly valuable for analyzing assets with continuous 24-hour trading activity.
Author & Access
Developed 100% by Quantura. Published as a Open-source script indicator. Access is free.
Important
This description complies with TradingView’s Script Publishing and House Rules. It provides a clear explanation of the indicator’s originality, logic, and purpose, without any unrealistic performance or predictive claims.
AG Pro Crypto Screener & Signal Dashboard🚀 OVERVIEW
Welcome to the AG Pro Crypto Screener & Signal Dashboard, an institutional-grade scanner designed to find high-probability buy opportunities in the chaotic crypto market. This powerful tool is being offered completely free as an introduction to the precision and performance of the exclusive AG Pro series.
Tired of manually flipping through dozens of charts? This dashboard is your new command center. It simultaneously scans up to 40 crypto assets against a robust, multi-filter strategy. It filters out the noise and delivers a clean, actionable list of symbols that are showing combined signs of strength, momentum, and a confirmed uptrend.
🧠 THE CORE STRATEGY: A Multi-Filter Confluence
This screener doesn't rely on a single, weak indicator. A symbol only appears on the "Buy List" if it passes a strict, user-configurable set of confluence filters:
Bullish EMA Crossover: Confirms a new, bullish shift in short-term momentum by looking for a recent crossover of a Fast EMA over a Slow EMA (e.g., 20/50). The "Freshness" feature ensures the signal is recent.
RSI Momentum Filter: Ensures the asset has strong buying momentum. The signal is only valid if the RSI is above a specified level (e.g., > 50).
Long-Term Trend Filter: This is the most critical filter. It keeps you on the right side of the market by confirming the price is above a key long-term Moving Average (e.g., SMA 50, 100, 200). You trade with the trend, not against it.
MACD Crossover (Optional): For traders who want an extra layer of confirmation, you can enable a filter to check for a bullish MACD crossover.
Only when all selected conditions are met does the asset appear on your dashboard. This multi-layered approach is designed to find quality over quantity.
✨ KEY FEATURES
Dynamic 40-Symbol Scanner: Monitor your entire watchlist (up to 40 symbols) from a single chart.
Professional Signal Dashboard: A clean, sortable table displaying all active signals, last price, RSI value, and volume.
"Freshness" & "Trend" Icons: Instantly gauge signal quality.
Freshness: See how many bars ago the signal appeared (🔥 Hot / ❇️ Fresh / ⏳ Old).
Trend: A clear visual icon shows if the asset is in a long-term uptrend (🔼) or downtrend (🔽).
NEW Signal Alerts: Don't miss an opportunity. Set an alert to be notified only when a new symbol appears on the list. This non-intrusive system avoids constant, repetitive alerts.
Fully Customizable Strategy: You are in control.
Toggle any of the four main filters (EMA, RSI, Trend, MACD) on or off.
Adjust all indicator lengths (EMAs, RSI, MACD, and Trend MA) to fit your trading style.
Reliable "On-Close" Signaling: Includes an option to generate signals only on bar close, ensuring high-quality, non-repainting signals.
Clean UI: Adjustable table text size ("Tiny", "Small", "Normal", "Large") for perfect visibility on any setup.
💎 THE AG PRO DIFFERENCE
This free screener is just the beginning. It's a demonstration of the stable, high-performance, and results-driven philosophy that defines the AG Pro brand.
We believe in empowering traders with tools that provide a clear, statistical edge. While this screener is powerful, our private, premium AG Pro scripts (such as the AG Pro Trading Suite) offer a complete, institutional-grade solution for serious traders. These advanced tools feature predictive models, proprietary signal algorithms, and comprehensive risk management modules that are the result of years of professional development.
If you find value in this free tool, imagine what our full suite can do for your trading. We invite you to experience the next level of trading precision.
🛠️ HOW TO USE
Add the "🏆 AG Pro Crypto Screener & Signal Dashboard V3" to your chart.
Open the indicator's Settings.
Under the "Symbol List to Scan" tab, replace the default symbols with your own 40 preferred assets (e.g., "BINANCE:BTCUSDT", "BINANCE:ETHUSDT", "COINBASE:SOLUSD").
Under the "Filter Settings" tab, configure your desired strategy. You can start with the defaults or customize them.
(Recommended) Right-click the table and select "Create Alert". Choose the "NEW BUY" condition and "Once Per Bar Close" to be notified of new signals.
⚠️ DISCLAIMER
This script is provided for informational and educational purposes only. It does not constitute financial or investment advice. All trading involves significant risk, and past performance is not indicative of future results. Please conduct your own research and implement your own risk management strategy before making any trading decisions.
LevelsLevels is a powerful technical analysis tool that automatically identifies and displays key support and resistance levels on the chart. The indicator analyzes historical price data, detecting significant price levels where multiple reversals or price stops have occurred.
How the Indicator Works?
1. Identification of Reversal Points:
- The indicator tracks price extremes using an algorithm to identify local highs and lows
- A reversal point is recorded when:
- Uptrend: price reaches a new low for the last 10 bars
- Downtrend: price reaches a new high for the last 10 bars
2. Level Grouping:
- All found reversal points are analyzed and grouped into key levels
- Levels are combined if they fall within the specified percentage tolerance
3. Filtering Significant Levels:
- Only levels that have been tested the minimum number of times (set in settings) are preserved
- This ensures only statistically significant levels are displayed
How to Use the Indicator?
Trading Scenarios:
1. Bounce from Level:
- When price approaches an identified level, a bounce can be expected
- Opening positions on the bounce with protective stop-loss beyond the level
2. Level Breakout:
- Breaking through a key level may signal trend continuation
- Support level becomes resistance and vice versa
3. Consolidation near Level:
- Prolonged price presence near a level indicates its significance
- Strong movement can be expected after exiting consolidation
Advantages:
- Automatic level identification eliminates subjectivity
- Sensitivity customization for different timeframes and instruments
- Visual simplicity - only significant levels
Indicator Settings
Main Parameters:
- Show Key Levels - enable/disable level display
- Level Tolerance (%) - percentage tolerance for level grouping
- Smaller values: more levels, more precise
- Larger values: fewer levels, more significant
- Minimum Touches - minimum number of touches to form a level
Visual Settings:
- Level Color - level display color
- Level Style - line style (solid, dashed, dotted)
Limitations
- Levels are built only on available historical data
- Does not account for trading volumes
- Parameter adjustment may be required during high volatility periods
The indicator is particularly effective when combined with other analysis tools for signal confirmation.
MACD Overlay v1 [JopAlgo]Meet the MACD you can trade directly from the chart.
MACD Overlay v1 doesn’t just plot an oscillator somewhere below—
it puts value, momentum, and participation on your candles, and it refuses to fire inside chop.
When a triangle prints, it’s because energy released (expansion), not because the chart looked cute.
What it is:
An execution-ready MACD overlay with phase gating (Expansion-Only), participation gating (Weakness-Lite), and one-click Classic vs VW-MACD Compare—all adaptive, with minimal inputs.
What’s in v1 (feature set)
Overlay ribbon on price: Fast/Slow MACD value rendered as a price-level ribbon with contextual fill and optional candle tint.
Dual value model: Classic MA-MACD (EMA/SMA) and VW-MACD (Rolling VWAP fast/slow).
Compare mode: A/B Classic vs VW-MACD with a VW ghost ribbon.
Weakness-Lite (1-bar, adaptive): Gates/fades low-participation crosses using
RVOL deficit, Effort-vs-Result failure, and over-extension vs value/ATR (Strict adds wick pressure).
Expansion-Only (Impulse/Squeeze): Triangles print only when a cross coincides with a true-range burst and a histogram-slope ignition out of compression.
Signal hygiene: ±1-bar proximity around crosses, slope awareness, 2-bar debounce.
Explainable filtering: Tiny gray dots show crosses that were intentionally filtered (weak and/or no expansion).
How to use:
Use defaults: Mode Classic, Gate by Weakness ON, Expansion-Only ON, Sensitivity Auto.
Read signals fast:
Solid triangle = cross + expansion confirmed (+ not weak if gate is ON).
Faded triangle = cross + expansion but weak participation (visible only when gate is OFF).
Gray dot = there was a cross, but it was filtered (no genuine expansion or weak & gated).
Validate quickly: Flip Compare to check VW-MACD agreement. Classic + VW alignment usually improves confidence.
Why overlay > sub-pane oscillator
You see where the cross occurs: relative to value, local structure, and S/R, right on price.
The ribbon exposes regime shifts; tint hints expansion vs contraction at a glance.
Execution becomes more context-aware and less “signal-in-a-vacuum.”
Signals & visuals
Triangles (solid): MACD crossed Signal and market showed expansion out of compression; if Gate by Weakness is ON, triangle prints only with acceptable participation.
Triangles (faded): Same as above but weak (shown only when you turn the gate OFF).
Gray dots: Crosses that were filtered (no expansion and/or Weakness gate).
Ribbon: Fast vs Slow value (Classic or VW, according to Mode). Fill and candle tint reflect expansion/contraction.
Inputs
Calculation Mode: Classic | VW | Compare
VW uses Rolling VWAP fast/slow.
Compare: Classic is primary; VW shows as a ghost ribbon for A/B checks.
Gate triangles by Weakness: ON/OFF
Uses RVOL, Effort-vs-Result, extension vs value/ATR (Strict adds wick-pressure).
Sensitivity: Off / Auto / Strict (default Auto).
Expansion-Only (Impulse/Squeeze): ON/OFF
Requires compression → release: tight ribbon + flat momentum, then TR/ATR burst with hist slope flip / cross proximity.
Display: Ribbon / Candle Tint / Weakness Markers.
Advanced (optional): Evaluate Weakness only near signals, Channel (k × |MACD|), Style Preset.
No numeric thresholds to tune—all filters self-calibrate from rolling stats.
Best practices
4H crypto: Defaults are strong—Auto, Gate ON, Expansion-Only ON.
Clean trends: If you feel you miss some tidy resumptions, briefly toggle Expansion-Only OFF.
Choppy regimes: Set Sensitivity → Strict to cut more noise without adding lag.
Confirmation: Use Compare; Classic + VW alignment typically yields better follow-through.
Alerts
MACD Signal Cross Up/Down — execution-grade (use Once per bar close).
Weakness-Lite Flag — optional context alert to help audit filtered crosses.
Attribution & License
Attribution: Based on the algorithmic concept of TradingView’s built-in MACD (fast MA – slow MA, signal, histogram).
No original TradingView source code is redistributed; overlay rendering, VW-MACD, Weakness-Lite, Expansion-Only, gating visuals, and UX are new work.
License: MPL-2.0. Educational purposes only—not financial advice.
Machine Learning Moving Average [BackQuant]Machine Learning Moving Average
A powerful tool combining clustering, pseudo-machine learning, and adaptive prediction, enabling traders to understand and react to price behavior across multiple market regimes (Bullish, Neutral, Bearish). This script uses a dynamic clustering approach based on percentile thresholds and calculates an adaptive moving average, ideal for forecasting price movements with enhanced confidence levels.
What is Percentile Clustering?
Percentile clustering is a method that sorts and categorizes data into distinct groups based on its statistical distribution. In this script, the clustering process relies on the percentile values of a composite feature (based on technical indicators like RSI, CCI, ATR, etc.). By identifying key thresholds (lower and upper percentiles), the script assigns each data point (price movement) to a cluster (Bullish, Neutral, or Bearish), based on its proximity to these thresholds.
This approach mimics aspects of machine learning, where we “train” the model on past price behavior to predict future movements. The key difference is that this is not true machine learning; rather, it uses data-driven statistical techniques to "cluster" the market into patterns.
Why Percentile Clustering is Useful
Clustering price data into meaningful patterns (Bullish, Neutral, Bearish) helps traders visualize how price behavior can be grouped over time.
By leveraging past price behavior and technical indicators, percentile clustering adapts dynamically to evolving market conditions.
It helps you understand whether price behavior today aligns with past bullish or bearish trends, improving market context.
Clusters can be used to predict upcoming market conditions by identifying regimes with high confidence, improving entry/exit timing.
What This Script Does
Clustering Based on Percentiles : The script uses historical price data and various technical features to compute a "composite feature" for each bar. This feature is then sorted and clustered based on predefined percentile thresholds (e.g., 10th percentile for lower, 90th percentile for upper).
Cluster-Based Prediction : Once clustered, the script uses a weighted average, cluster momentum, or regime transition model to predict future price behavior over a specified number of bars.
Dynamic Moving Average : The script calculates a machine-learning-inspired moving average (MLMA) based on the current cluster, adjusting its behavior according to the cluster regime (Bullish, Neutral, Bearish).
Adaptive Confidence Levels : Confidence in the predicted return is calculated based on the distance between the current value and the other clusters. The further it is from the next closest cluster, the higher the confidence.
Visual Cluster Mapping : The script visually highlights different clusters on the chart with distinct colors for Bullish, Neutral, and Bearish regimes, and plots the MLMA line.
Prediction Output : It projects the predicted price based on the selected method and shows both predicted price and confidence percentage for each prediction horizon.
Trend Identification : Using the clustering output, the script colors the bars based on the current cluster to reflect whether the market is trending Bullish (green), Bearish (red), or is Neutral (gray).
How Traders Use It
Predicting Price Movements : The script provides traders with an idea of where prices might go based on past market behavior. Traders can use this forecast for short-term and long-term predictions, guiding their trades.
Clustering for Regime Analysis : Traders can identify whether the market is in a Bullish, Neutral, or Bearish regime, using that information to adjust trading strategies.
Adaptive Moving Average for Trend Following : The adaptive moving average can be used as a trend-following indicator, helping traders stay in the market when it’s aligned with the current trend (Bullish or Bearish).
Entry/Exit Strategy : By understanding the current cluster and its associated trend, traders can time entries and exits with higher precision, taking advantage of favorable conditions when the confidence in the predicted price is high.
Confidence for Risk Management : The confidence level associated with the predicted returns allows traders to manage risk better. Higher confidence levels indicate stronger market conditions, which can lead to higher position sizes.
Pseudo Machine Learning Aspect
While the script does not use conventional machine learning models (e.g., neural networks or decision trees), it mimics certain aspects of machine learning in its approach. By using clustering and the dynamic adjustment of a moving average, the model learns from historical data to adjust predictions for future price behavior. The "learning" comes from how the script uses past price data (and technical indicators) to create patterns (clusters) and predict future market movements based on those patterns.
Why This Is Important for Traders
Understanding market regimes helps to adjust trading strategies in a way that adapts to current market conditions.
Forecasting price behavior provides an additional edge, enabling traders to time entries and exits based on predicted price movements.
By leveraging the clustering technique, traders can separate noise from signal, improving the reliability of trading signals.
The combination of clustering and predictive modeling in one tool reduces the complexity for traders, allowing them to focus on actionable insights rather than manual analysis.
How to Interpret the Output
Bullish (Green) Zone : When the price behavior clusters into the Bullish zone, expect upward price movement. The MLMA line will help confirm if the trend remains upward.
Bearish (Red) Zone : When the price behavior clusters into the Bearish zone, expect downward price movement. The MLMA line will assist in tracking any downward trends.
Neutral (Gray) Zone : A neutral market condition signals indecision or range-bound behavior. The MLMA line can help track any potential breakouts or trend reversals.
Predicted Price : The projected price is shown on the chart, based on the cluster's predicted behavior. This provides a useful reference for where the price might move in the near future.
Prediction Confidence : The confidence percentage helps you gauge the reliability of the predicted price. A higher percentage indicates stronger market confidence in the forecasted move.
Tips for Use
Combining with Other Indicators : Use the output of this indicator in combination with your existing strategy (e.g., RSI, MACD, or moving averages) to enhance signal accuracy.
Position Sizing with Confidence : Increase position size when the prediction confidence is high, and decrease size when it’s low, based on the confidence interval.
Regime-Based Strategy : Consider developing a multi-strategy approach where you use this tool for Bullish or Bearish regimes and a separate strategy for Neutral markets.
Optimization : Adjust the lookback period and percentile settings to optimize the clustering algorithm based on your asset’s characteristics.
Conclusion
The Machine Learning Moving Average offers a novel approach to price prediction by leveraging percentile clustering and a dynamically adapting moving average. While not a traditional machine learning model, this tool mimics the adaptive behavior of machine learning by adjusting to evolving market conditions, helping traders predict price movements and identify trends with improved confidence and accuracy.
SA_EMA Combo + UT BotEMA Combo + UT Bot is an indicator designed to make it easier to track trend direction and momentum reversals on the same chart.
The indicator combines multiple EMA lines (50/100/150/200) with a short- and medium-term EMA cloud. This cloud visually shows whether the market is in a bullish or bearish trend through color changes.
In addition, it uses the UT Bot algorithm to generate buy and sell signals adapted to market volatility. These signals are triggered when the price crosses the ATR-based trailing stop level.
Users can choose to use Heikin Ashi candles and adjust signal sensitivity via the Key Value parameter. This allows traders to follow overall trends and potential reversal zones using a single tool.
Disclaimer: This indicator is for technical analysis purposes only and should not be considered financial advice.
Developed for Future Alpha Club.
COT Index v.2COT Index v.2 Indicator
( fix for extreme values)
📊 Overview
The COT (Commitment of Traders) Index Indicator transforms raw COT data into normalized indices ranging from 0-100, with extensions to 120 and -20 for extreme market conditions. This powerful tool helps traders analyze institutional positioning and market sentiment by tracking the net long positions of three key market participant groups.
🎯 What It Does
This indicator converts weekly CFTC Commitment of Traders data into easy-to-read oscillator format, showing:
Commercial Index (Blue Line) - Smart money/hedgers positioning
NonCommercial Index (Orange Line) - Large speculators/funds positioning
Nonreportable Index (Red Line) - Small traders positioning
📈 Key Features
Smart Scaling Algorithm
0-100 Range: Normal market conditions based on recent price action
120 Level: Extreme bullish positioning (above historical maximum)
-20 Level: Extreme bearish positioning (below historical minimum)
Dual Time Frame Analysis
Short Period (26 weeks default): For current market scaling
Historical Period (156 weeks default): For extreme condition detection
Flexible Data Sources
Futures Only reports
Futures and Options combined reports
Automatic symbol detection with manual overrides for HG and LBR
🔧 Customizable Settings
Data Configuration
Adjustable lookback periods for both current and historical analysis
Report type selection (Futures vs Futures & Options)
Display Options
Toggle individual trader categories on/off
Customizable reference lines (overbought/oversold levels)
Optional 0/100 boundary lines
Adjustable line widths and colors
Reference Levels
Upper Bound: 120 (extreme bullish)
Overbought: 80 (default)
Midline: 50 (neutral)
Oversold: 20 (default)
Lower Bound: -20 (extreme bearish)
💡 Trading Applications
Contrarian Signals
High Commercial Index + Low NonCommercial Index = Potential bullish reversal
Low Commercial Index + High NonCommercial Index = Potential bearish reversal
Market Sentiment Analysis
Track institutional vs retail positioning divergences
Identify extreme market conditions requiring attention
Monitor smart money accumulation/distribution patterns
Confirmation Tool
Use alongside technical analysis for trade confirmation
Validate breakouts with positioning data
Assess market structure changes
📊 Visual Elements
Status Table: Displays current settings and symbol information
Color-Coded Lines: Easy identification of each trader category
Reference Levels: Clear overbought/oversold boundaries
Extreme Indicators: Visual cues for unusual market conditions
⚠️ Important Notes
COT data is released weekly on Fridays (Tuesday data)
Best suited for weekly and daily timeframes
Requires symbols with available CFTC data
Works automatically for most futures contracts
🎯 Best Practices
Use in conjunction with price action analysis
Look for divergences between price and positioning
Pay special attention to extreme readings (120/-20 levels)
Consider all three indices together for complete market picture
Allow for data lag (3-day delay from CFTC)
This indicator is ideal for swing traders, position traders, and anyone interested in understanding the positioning dynamics of professional vs retail market participants.
LibVPrfLibrary "LibVPrf"
This library provides an object-oriented framework for volume
profile analysis in Pine Script®. It is built around the `VProf`
User-Defined Type (UDT), which encapsulates all data, settings,
and statistical metrics for a single profile, enabling stateful
analysis with on-demand calculations.
Key Features:
1. **Object-Oriented Design (UDT):** The library is built around
the `VProf` UDT. This object encapsulates all profile data
and provides methods for its full lifecycle management,
including creation, cloning, clearing, and merging of profiles.
2. **Volume Allocation (`AllotMode`):** Offers two methods for
allocating a bar's volume:
- **Classic:** Assigns the entire bar's volume to the close
price bucket.
- **PDF:** Distributes volume across the bar's range using a
statistical price distribution model from the `LibBrSt` library.
3. **Buy/Sell Volume Splitting (`SplitMode`):** Provides methods
for classifying volume into buying and selling pressure:
- **Classic:** Classifies volume based on the bar's color (Close vs. Open).
- **Dynamic:** A specific model that analyzes candle structure
(body vs. wicks) and a short-term trend factor to
estimate the buy/sell share at each price level.
4. **Statistical Analysis (On-Demand):** Offers a suite of
statistical metrics calculated using a "Lazy Evaluation"
pattern (computed only when requested via `get...` methods):
- **Central Tendency:** Point of Control (POC), VWAP, and Median.
- **Dispersion:** Value Area (VA) and Population Standard Deviation.
- **Shape:** Skewness and Excess Kurtosis.
- **Delta:** Cumulative Volume Delta, including its
historical high/low watermarks.
5. **Structural Analysis:** Includes a parameter-free method
(`getSegments`) to decompose a profile into its fundamental
unimodal segments, allowing for modality detection (e.g.,
identifying bimodal profiles).
6. **Dynamic Profile Management:**
- **Auto-Fitting:** Profiles set to `dynamic = true` will
automatically expand their price range to fit new data.
- **Manipulation:** The resolution, price range, and Value Area
of a dynamic profile can be changed at any time. This
triggers a resampling process that uses a **linear
interpolation model** to re-bucket existing volume.
- **Assumption:** Non-dynamic profiles are fixed and will throw
a `runtime.error` if `addBar` is called with data
outside their initial range.
7. **Bucket-Level Access:** Provides getter methods for direct
iteration and analysis of the raw buy/sell volume and price
boundaries of each individual price bucket.
---
**DISCLAIMER**
This library is provided "AS IS" and for informational and
educational purposes only. It does not constitute financial,
investment, or trading advice.
The author assumes no liability for any errors, inaccuracies,
or omissions in the code. Using this library to build
trading indicators or strategies is entirely at your own risk.
As a developer using this library, you are solely responsible
for the rigorous testing, validation, and performance of any
scripts you create based on these functions. The author shall
not be held liable for any financial losses incurred directly
or indirectly from the use of this library or any scripts
derived from it.
create(buckets, rangeUp, rangeLo, dynamic, valueArea, allot, estimator, cdfSteps, split, trendLen)
Construct a new `VProf` object with fixed bucket count & range.
Parameters:
buckets (int) : series int number of price buckets ≥ 1
rangeUp (float) : series float upper price bound (absolute)
rangeLo (float) : series float lower price bound (absolute)
dynamic (bool) : series bool Flag for dynamic adaption of profile ranges
valueArea (int) : series int Percentage of total volume to include in the Value Area (1..100)
allot (series AllotMode) : series AllotMode Allocation mode `classic` or `pdf` (default `classic`)
estimator (series PriceEst enum from AustrianTradingMachine/LibBrSt/1) : series LibBrSt.PriceEst PDF model when `model == PDF`. (deflault = 'uniform')
cdfSteps (int) : series int even #sub-intervals for Simpson rule (default 20)
split (series SplitMode) : series SplitMode Buy/Sell determination (default `classic`)
trendLen (int) : series int Look‑back bars for trend factor (default 3)
Returns: VProf freshly initialised profile
method clone(self)
Create a deep copy of the volume profile.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object to copy
Returns: VProf A new, independent copy of the profile
method clear(self)
Reset all bucket tallies while keeping configuration intact.
Namespace types: VProf
Parameters:
self (VProf) : VProf profile object
Returns: VProf cleared profile (chaining)
method merge(self, srcABuy, srcASell, srcRangeUp, srcRangeLo, srcCvd, srcCvdHi, srcCvdLo)
Merges volume data from a source profile into the current profile.
If resizing is needed, it performs a high-fidelity re-bucketing of existing
volume using a linear interpolation model inferred from neighboring buckets,
preventing aliasing artifacts and ensuring accurate volume preservation.
Namespace types: VProf
Parameters:
self (VProf) : VProf The target profile object to merge into.
srcABuy (array) : array The source profile's buy volume bucket array.
srcASell (array) : array The source profile's sell volume bucket array.
srcRangeUp (float) : series float The upper price bound of the source profile.
srcRangeLo (float) : series float The lower price bound of the source profile.
srcCvd (float) : series float The final Cumulative Volume Delta (CVD) value of the source profile.
srcCvdHi (float) : series float The historical high-water mark of the CVD from the source profile.
srcCvdLo (float) : series float The historical low-water mark of the CVD from the source profile.
Returns: VProf `self` (chaining), now containing the merged data.
method addBar(self, offset)
Add current bar’s volume to the profile (call once per realtime bar).
classic mode: allocates all volume to the close bucket and classifies
by `close >= open`. PDF mode: distributes volume across buckets by the
estimator’s CDF mass. For `split = dynamic`, the buy/sell share per
price is computed via context-driven piecewise s(u).
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object
offset (int) : series int To offset the calculated bar
Returns: VProf `self` (method chaining)
method setBuckets(self, buckets)
Sets the number of buckets for the volume profile.
Behavior depends on the `isDynamic` flag.
- If `dynamic = true`: Works on filled profiles by re-bucketing to a new resolution.
- If `dynamic = false`: Only works on empty profiles to prevent accidental changes.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object
buckets (int) : series int The new number of buckets
Returns: VProf `self` (chaining)
method setRanges(self, rangeUp, rangeLo)
Sets the price range for the volume profile.
Behavior depends on the `dynamic` flag.
- If `dynamic = true`: Works on filled profiles by re-bucketing existing volume.
- If `dynamic = false`: Only works on empty profiles to prevent accidental changes.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object
rangeUp (float) : series float The new upper price bound
rangeLo (float) : series float The new lower price bound
Returns: VProf `self` (chaining)
method setValueArea(self, valueArea)
Set the percentage of volume for the Value Area. If the value
changes, the profile is finalized again.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object
valueArea (int) : series int The new Value Area percentage (0..100)
Returns: VProf `self` (chaining)
method getBktBuyVol(self, idx)
Get Buy volume of a bucket.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object
idx (int) : series int Bucket index
Returns: series float Buy volume ≥ 0
method getBktSellVol(self, idx)
Get Sell volume of a bucket.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object
idx (int) : series int Bucket index
Returns: series float Sell volume ≥ 0
method getBktBnds(self, idx)
Get Bounds of a bucket.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object
idx (int) : series int Bucket index
Returns:
up series float The upper price bound of the bucket.
lo series float The lower price bound of the bucket.
method getPoc(self)
Get POC information.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object
Returns:
pocIndex series int The index of the Point of Control (POC) bucket.
pocPrice. series float The mid-price of the Point of Control (POC) bucket.
method getVA(self)
Get Value Area (VA) information.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object
Returns:
vaUpIndex series int The index of the upper bound bucket of the Value Area.
vaUpPrice series float The upper price bound of the Value Area.
vaLoIndex series int The index of the lower bound bucket of the Value Area.
vaLoPrice series float The lower price bound of the Value Area.
method getMedian(self)
Get the profile's median price and its bucket index. Calculates the value on-demand if stale.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object.
Returns:
medianIndex series int The index of the bucket containing the Median.
medianPrice series float The Median price of the profile.
method getVwap(self)
Get the profile's VWAP and its bucket index. Calculates the value on-demand if stale.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object.
Returns:
vwapIndex series int The index of the bucket containing the VWAP.
vwapPrice series float The Volume Weighted Average Price of the profile.
method getStdDev(self)
Get the profile's volume-weighted standard deviation. Calculates the value on-demand if stale.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object.
Returns: series float The Standard deviation of the profile.
method getSkewness(self)
Get the profile's skewness. Calculates the value on-demand if stale.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object.
Returns: series float The Skewness of the profile.
method getKurtosis(self)
Get the profile's excess kurtosis. Calculates the value on-demand if stale.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object.
Returns: series float The Kurtosis of the profile.
method getSegments(self)
Get the profile's fundamental unimodal segments. Calculates on-demand if stale.
Uses a parameter-free, pivot-based recursive algorithm.
Namespace types: VProf
Parameters:
self (VProf) : VProf The profile object.
Returns: matrix A 2-column matrix where each row is an pair.
method getCvd(self)
Cumulative Volume Delta (CVD) like metric over all buckets.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object.
Returns:
cvd series float The final Cumulative Volume Delta (Total Buy Vol - Total Sell Vol).
cvdHi series float The running high-water mark of the CVD as volume was added.
cvdLo series float The running low-water mark of the CVD as volume was added.
VProf
VProf Bucketed Buy/Sell volume profile plus meta information.
Fields:
buckets (series int) : int Number of price buckets (granularity ≥1)
rangeUp (series float) : float Upper price range (absolute)
rangeLo (series float) : float Lower price range (absolute)
dynamic (series bool) : bool Flag for dynamic adaption of profile ranges
valueArea (series int) : int Percentage of total volume to include in the Value Area (1..100)
allot (series AllotMode) : AllotMode Allocation mode `classic` or `pdf`
estimator (series PriceEst enum from AustrianTradingMachine/LibBrSt/1) : LibBrSt.PriceEst Price density model when `model == PDF`
cdfSteps (series int) : int Simpson integration resolution (even ≥2)
split (series SplitMode) : SplitMode Buy/Sell split strategy per bar
trendLen (series int) : int Look‑back length for trend factor (≥1)
maxBkt (series int) : int User-defined number of buckets (unclamped)
aBuy (array) : array Buy volume per bucket
aSell (array) : array Sell volume per bucket
cvd (series float) : float Final Cumulative Volume Delta (Total Buy Vol - Total Sell Vol).
cvdHi (series float) : float Running high-water mark of the CVD as volume was added.
cvdLo (series float) : float Running low-water mark of the CVD as volume was added.
poc (series int) : int Index of max‑volume bucket (POC). Is `na` until calculated.
vaUp (series int) : int Index of upper Value‑Area bound. Is `na` until calculated.
vaLo (series int) : int Index of lower value‑Area bound. Is `na` until calculated.
median (series float) : float Median price of the volume distribution. Is `na` until calculated.
vwap (series float) : float Profile VWAP (Volume Weighted Average Price). Is `na` until calculated.
stdDev (series float) : float Standard Deviation of volume around the VWAP. Is `na` until calculated.
skewness (series float) : float Skewness of the volume distribution. Is `na` until calculated.
kurtosis (series float) : float Excess Kurtosis of the volume distribution. Is `na` until calculated.
segments (matrix) : matrix A 2-column matrix where each row is an pair. Is `na` until calculated.
LibWghtLibrary "LibWght"
This is a library of mathematical and statistical functions
designed for quantitative analysis in Pine Script. Its core
principle is the integration of a custom weighting series
(e.g., volume) into a wide array of standard technical
analysis calculations.
Key Capabilities:
1. **Universal Weighting:** All exported functions accept a `weight`
parameter. This allows standard calculations (like moving
averages, RSI, and standard deviation) to be influenced by an
external data series, such as volume or tick count.
2. **Weighted Averages and Indicators:** Includes a comprehensive
collection of weighted functions:
- **Moving Averages:** `wSma`, `wEma`, `wWma`, `wRma` (Wilder's),
`wHma` (Hull), and `wLSma` (Least Squares / Linear Regression).
- **Oscillators & Ranges:** `wRsi`, `wAtr` (Average True Range),
`wTr` (True Range), and `wR` (High-Low Range).
3. **Volatility Decomposition:** Provides functions to decompose
total variance into distinct components for market analysis.
- **Two-Way Decomposition (`wTotVar`):** Separates variance into
**between-bar** (directional) and **within-bar** (noise)
components.
- **Three-Way Decomposition (`wLRTotVar`):** Decomposes variance
relative to a linear regression into **Trend** (explained by
the LR slope), **Residual** (mean-reversion around the
LR line), and **Within-Bar** (noise) components.
- **Local Volatility (`wLRLocTotStdDev`):** Measures the total
"noise" (within-bar + residual) around the trend line.
4. **Weighted Statistics and Regression:** Provides a robust
function for Weighted Linear Regression (`wLinReg`) and a
full suite of related statistical measures:
- **Between-Bar Stats:** `wBtwVar`, `wBtwStdDev`, `wBtwStdErr`.
- **Residual Stats:** `wResVar`, `wResStdDev`, `wResStdErr`.
5. **Fallback Mechanism:** All functions are designed for reliability.
If the total weight over the lookback period is zero (e.g., in
a no-volume period), the algorithms automatically fall back to
their unweighted, uniform-weight equivalents (e.g., `wSma`
becomes a standard `ta.sma`), preventing errors and ensuring
continuous calculation.
---
**DISCLAIMER**
This library is provided "AS IS" and for informational and
educational purposes only. It does not constitute financial,
investment, or trading advice.
The author assumes no liability for any errors, inaccuracies,
or omissions in the code. Using this library to build
trading indicators or strategies is entirely at your own risk.
As a developer using this library, you are solely responsible
for the rigorous testing, validation, and performance of any
scripts you create based on these functions. The author shall
not be held liable for any financial losses incurred directly
or indirectly from the use of this library or any scripts
derived from it.
wSma(source, weight, length)
Weighted Simple Moving Average (linear kernel).
Parameters:
source (float) : series float Data to average.
weight (float) : series float Weight series.
length (int) : series int Look-back length ≥ 1.
Returns: series float Linear-kernel weighted mean; falls back to
the arithmetic mean if Σweight = 0.
wEma(source, weight, length)
Weighted EMA (exponential kernel).
Parameters:
source (float) : series float Data to average.
weight (float) : series float Weight series.
length (simple int) : simple int Look-back length ≥ 1.
Returns: series float Exponential-kernel weighted mean; falls
back to classic EMA if Σweight = 0.
wWma(source, weight, length)
Weighted WMA (linear kernel).
Parameters:
source (float) : series float Data to average.
weight (float) : series float Weight series.
length (int) : series int Look-back length ≥ 1.
Returns: series float Linear-kernel weighted mean; falls back to
classic WMA if Σweight = 0.
wRma(source, weight, length)
Weighted RMA (Wilder kernel, α = 1/len).
Parameters:
source (float) : series float Data to average.
weight (float) : series float Weight series.
length (simple int) : simple int Look-back length ≥ 1.
Returns: series float Wilder-kernel weighted mean; falls back to
classic RMA if Σweight = 0.
wHma(source, weight, length)
Weighted HMA (linear kernel).
Parameters:
source (float) : series float Data to average.
weight (float) : series float Weight series.
length (int) : series int Look-back length ≥ 1.
Returns: series float Linear-kernel weighted mean; falls back to
classic HMA if Σweight = 0.
wRsi(source, weight, length)
Weighted Relative Strength Index.
Parameters:
source (float) : series float Price series.
weight (float) : series float Weight series.
length (simple int) : simple int Look-back length ≥ 1.
Returns: series float Weighted RSI; uniform if Σw = 0.
wAtr(tr, weight, length)
Weighted ATR (Average True Range).
Implemented as WRMA on *true range*.
Parameters:
tr (float) : series float True Range series.
weight (float) : series float Weight series.
length (simple int) : simple int Look-back length ≥ 1.
Returns: series float Weighted ATR; uniform weights if Σw = 0.
wTr(tr, weight, length)
Weighted True Range over a window.
Parameters:
tr (float) : series float True Range series.
weight (float) : series float Weight series.
length (int) : series int Look-back length ≥ 1.
Returns: series float Weighted mean of TR; uniform if Σw = 0.
wR(r, weight, length)
Weighted High-Low Range over a window.
Parameters:
r (float) : series float High-Low per bar.
weight (float) : series float Weight series.
length (int) : series int Look-back length ≥ 1.
Returns: series float Weighted mean of range; uniform if Σw = 0.
wBtwVar(source, weight, length, biased)
Weighted Between Variance (biased/unbiased).
Parameters:
source (float) : series float Data series.
weight (float) : series float Weight series.
length (int) : series int Look-back length ≥ 2.
biased (bool) : series bool true → population (biased); false → sample.
Returns:
variance series float The calculated between-bar variance (σ²btw), either biased or unbiased.
sumW series float The sum of weights over the lookback period (Σw).
sumW2 series float The sum of squared weights over the lookback period (Σw²).
wBtwStdDev(source, weight, length, biased)
Weighted Between Standard Deviation.
Parameters:
source (float) : series float Data series.
weight (float) : series float Weight series.
length (int) : series int Look-back length ≥ 2.
biased (bool) : series bool true → population (biased); false → sample.
Returns: series float σbtw uniform if Σw = 0.
wBtwStdErr(source, weight, length, biased)
Weighted Between Standard Error.
Parameters:
source (float) : series float Data series.
weight (float) : series float Weight series.
length (int) : series int Look-back length ≥ 2.
biased (bool) : series bool true → population (biased); false → sample.
Returns: series float √(σ²btw / N_eff) uniform if Σw = 0.
wTotVar(mu, sigma, weight, length, biased)
Weighted Total Variance (= between-group + within-group).
Useful when each bar represents an aggregate with its own
mean* and pre-estimated σ (e.g., second-level ranges inside a
1-minute bar). Assumes the *weight* series applies to both the
group means and their σ estimates.
Parameters:
mu (float) : series float Group means (e.g., HL2 of 1-second bars).
sigma (float) : series float Pre-estimated σ of each group (same basis).
weight (float) : series float Weight series (volume, ticks, …).
length (int) : series int Look-back length ≥ 2.
biased (bool) : series bool true → population (biased); false → sample.
Returns:
varBtw series float The between-bar variance component (σ²btw).
varWtn series float The within-bar variance component (σ²wtn).
sumW series float The sum of weights over the lookback period (Σw).
sumW2 series float The sum of squared weights over the lookback period (Σw²).
wTotStdDev(mu, sigma, weight, length, biased)
Weighted Total Standard Deviation.
Parameters:
mu (float) : series float Group means (e.g., HL2 of 1-second bars).
sigma (float) : series float Pre-estimated σ of each group (same basis).
weight (float) : series float Weight series (volume, ticks, …).
length (int) : series int Look-back length ≥ 2.
biased (bool) : series bool true → population (biased); false → sample.
Returns: series float σtot.
wTotStdErr(mu, sigma, weight, length, biased)
Weighted Total Standard Error.
SE = √( total variance / N_eff ) with the same effective sample
size logic as `wster()`.
Parameters:
mu (float) : series float Group means (e.g., HL2 of 1-second bars).
sigma (float) : series float Pre-estimated σ of each group (same basis).
weight (float) : series float Weight series (volume, ticks, …).
length (int) : series int Look-back length ≥ 2.
biased (bool) : series bool true → population (biased); false → sample.
Returns: series float √(σ²tot / N_eff).
wLinReg(source, weight, length)
Weighted Linear Regression.
Parameters:
source (float) : series float Data series.
weight (float) : series float Weight series.
length (int) : series int Look-back length ≥ 2.
Returns:
mid series float The estimated value of the regression line at the most recent bar.
slope series float The slope of the regression line.
intercept series float The intercept of the regression line.
wResVar(source, weight, midLine, slope, length, biased)
Weighted Residual Variance.
linear regression – optionally biased (population) or
unbiased (sample).
Parameters:
source (float) : series float Data series.
weight (float) : series float Weighting series (volume, etc.).
midLine (float) : series float Regression value at the last bar.
slope (float) : series float Slope per bar.
length (int) : series int Look-back length ≥ 2.
biased (bool) : series bool true → population variance (σ²_P), denominator ≈ N_eff.
false → sample variance (σ²_S), denominator ≈ N_eff - 2.
(Adjusts for 2 degrees of freedom lost to the regression).
Returns:
variance series float The calculated residual variance (σ²res), either biased or unbiased.
sumW series float The sum of weights over the lookback period (Σw).
sumW2 series float The sum of squared weights over the lookback period (Σw²).
wResStdDev(source, weight, midLine, slope, length, biased)
Weighted Residual Standard Deviation.
Parameters:
source (float) : series float Data series.
weight (float) : series float Weight series.
midLine (float) : series float Regression value at the last bar.
slope (float) : series float Slope per bar.
length (int) : series int Look-back length ≥ 2.
biased (bool) : series bool true → population (biased); false → sample.
Returns: series float σres; uniform if Σw = 0.
wResStdErr(source, weight, midLine, slope, length, biased)
Weighted Residual Standard Error.
Parameters:
source (float) : series float Data series.
weight (float) : series float Weight series.
midLine (float) : series float Regression value at the last bar.
slope (float) : series float Slope per bar.
length (int) : series int Look-back length ≥ 2.
biased (bool) : series bool true → population (biased); false → sample.
Returns: series float √(σ²res / N_eff); uniform if Σw = 0.
wLRTotVar(mu, sigma, weight, midLine, slope, length, biased)
Weighted Linear-Regression Total Variance **around the
window’s weighted mean μ**.
σ²_tot = E_w ⟶ *within-group variance*
+ Var_w ⟶ *residual variance*
+ Var_w ⟶ *trend variance*
where each bar i in the look-back window contributes
m_i = *mean* (e.g. 1-sec HL2)
σ_i = *sigma* (pre-estimated intrabar σ)
w_i = *weight* (volume, ticks, …)
ŷ_i = b₀ + b₁·x (value of the weighted LR line)
r_i = m_i − ŷ_i (orthogonal residual)
Parameters:
mu (float) : series float Per-bar mean m_i.
sigma (float) : series float Pre-estimated σ_i of each bar.
weight (float) : series float Weight series w_i (≥ 0).
midLine (float) : series float Regression value at the latest bar (ŷₙ₋₁).
slope (float) : series float Slope b₁ of the regression line.
length (int) : series int Look-back length ≥ 2.
biased (bool) : series bool true → population; false → sample.
Returns:
varRes series float The residual variance component (σ²res).
varWtn series float The within-bar variance component (σ²wtn).
varTrd series float The trend variance component (σ²trd), explained by the linear regression.
sumW series float The sum of weights over the lookback period (Σw).
sumW2 series float The sum of squared weights over the lookback period (Σw²).
wLRTotStdDev(mu, sigma, weight, midLine, slope, length, biased)
Weighted Linear-Regression Total Standard Deviation.
Parameters:
mu (float) : series float Per-bar mean m_i.
sigma (float) : series float Pre-estimated σ_i of each bar.
weight (float) : series float Weight series w_i (≥ 0).
midLine (float) : series float Regression value at the latest bar (ŷₙ₋₁).
slope (float) : series float Slope b₁ of the regression line.
length (int) : series int Look-back length ≥ 2.
biased (bool) : series bool true → population; false → sample.
Returns: series float √(σ²tot).
wLRTotStdErr(mu, sigma, weight, midLine, slope, length, biased)
Weighted Linear-Regression Total Standard Error.
SE = √( σ²_tot / N_eff ) with N_eff = Σw² / Σw² (like in wster()).
Parameters:
mu (float) : series float Per-bar mean m_i.
sigma (float) : series float Pre-estimated σ_i of each bar.
weight (float) : series float Weight series w_i (≥ 0).
midLine (float) : series float Regression value at the latest bar (ŷₙ₋₁).
slope (float) : series float Slope b₁ of the regression line.
length (int) : series int Look-back length ≥ 2.
biased (bool) : series bool true → population; false → sample.
Returns: series float √((σ²res, σ²wtn, σ²trd) / N_eff).
wLRLocTotStdDev(mu, sigma, weight, midLine, slope, length, biased)
Weighted Linear-Regression Local Total Standard Deviation.
Measures the total "noise" (within-bar + residual) around the trend.
Parameters:
mu (float) : series float Per-bar mean m_i.
sigma (float) : series float Pre-estimated σ_i of each bar.
weight (float) : series float Weight series w_i (≥ 0).
midLine (float) : series float Regression value at the latest bar (ŷₙ₋₁).
slope (float) : series float Slope b₁ of the regression line.
length (int) : series int Look-back length ≥ 2.
biased (bool) : series bool true → population; false → sample.
Returns: series float √(σ²wtn + σ²res).
wLRLocTotStdErr(mu, sigma, weight, midLine, slope, length, biased)
Weighted Linear-Regression Local Total Standard Error.
Parameters:
mu (float) : series float Per-bar mean m_i.
sigma (float) : series float Pre-estimated σ_i of each bar.
weight (float) : series float Weight series w_i (≥ 0).
midLine (float) : series float Regression value at the latest bar (ŷₙ₋₁).
slope (float) : series float Slope b₁ of the regression line.
length (int) : series int Look-back length ≥ 2.
biased (bool) : series bool true → population; false → sample.
Returns: series float √((σ²wtn + σ²res) / N_eff).
wLSma(source, weight, length)
Weighted Least Square Moving Average.
Parameters:
source (float) : series float Data series.
weight (float) : series float Weight series.
length (int) : series int Look-back length ≥ 2.
Returns: series float Least square weighted mean. Falls back
to unweighted regression if Σw = 0.
Enhanced MA Crossover Pro📝 Strategy Summary: Enhanced MA Crossover Pro
This strategy is an advanced, highly configurable moving average (MA) crossover system designed for algorithmic trading. It uses the crossover of two customizable MAs (a "Fast" MA 1 and a "Slow" MA 2) as its core entry signal, but aggressively integrates multiple technical filters, time controls, and dynamic position management to create a robust and comprehensive trading system.
💡 Core Logic
Entry Signal: A bullish crossover (MA1 > MA2) generates a Long signal, and a bearish crossover (MA1 < MA2) generates a Short signal. Users can opt to use MA crossovers from a Higher Timeframe (HTF) for the entry signal.
Confirmation/Filters: The basic MA cross signal is filtered by several optional indicators (see Filters section below) to ensure trades align with a broader trend or momentum context.
Position Management: Trades are managed with a sophisticated system of Stop Loss, Take Profit, Trailing Stops, and Breakeven stops that can be fixed, ATR-based, or dynamically adjusted.
Risk Management: Daily limits are enforced for maximum profit/loss and maximum trades per day.
⚙️ Key Features and Customization
1. Moving Averages
Primary MAs (MA1 & MA2): Highly configurable lengths (default 8 & 20) and types: EMA, WMA, SMA, or SMMA/RMA.
Higher Timeframe (HTF) MAs: Optional MAs calculated on a user-defined resolution (e.g., "60" for 1-hour) for use as an entry signal or as a trend confirmation filter.
2. Multi-Filter System
The entry signal can be filtered by the following optional conditions:
SMA Filter: Price must be above a 200-period SMA for long trades, and below it for short trades.
VWAP Filter: Price must be above VWAP for long trades, and below it for short trades.
RSI Filter: Long trades are blocked if RSI is overbought (default 70); short trades are blocked if RSI is oversold (default 30).
MACD Filter: Requires the MACD Line to be above the Signal Line for long trades (and vice versa for short trades).
HTF Confirmation: Requires the HTF MA1 to be above HTF MA2 for long entries (and vice versa).
3. Dynamic Stop and Target Management (S/L & T/P)
The strategy provides extensive control over exits:
Stop Loss Methods:
Fixed: Fixed tick amount.
ATR: Based on a multiple of the Average True Range (ATR).
Capped ATR: ATR stop limited by a maximum fixed tick amount.
Exit on Close Cross MA: Position is closed if the price crosses back over the chosen MA (MA1 or MA2).
Breakeven Stop: A stop can be moved to the entry price once a trigger distance (fixed ticks or Adaptive Breakeven based on ATR%) is reached.
Trailing Stop: Can be fixed or ATR-based, with an optional feature to auto-tighten the trailing multiplier after the breakeven condition is met.
Profit Target: Can be a fixed tick amount or a dynamic target based on an ATR multiplier.
4. Time and Session Control
Trading Session: Trades are only taken between defined Start/End Hours and Minutes (e.g., 9:30 to 16:00).
Forced Close: All open positions are closed near the end of the session (e.g., 15:45).
Trading Days: Allows specific days of the week to be enabled or disabled for trading.
5. Risk and Position Limits
Daily Profit/Loss Limits: The strategy tracks daily realized and unrealized PnL in ticks and will close all positions and block new entries if the user-defined maximum profit or maximum loss is hit.
Max Trades Per Day: Limits the number of executed trades in a single day.
🎨 Outputs and Alerts
Plots: Plots the MA1, MA2, SMA, VWAP, and HTF MAs (if enabled) on the chart.
Shapes: Plots visual markers (BUY/SELL labels) on the bar where the MA crossover occurs.
Trailing Stop: Plots the dynamic trailing stop level when a position is open.
Alerts: Generates JSON-formatted alerts for entry ({"action":"buy", "price":...}) and exit ({"action":"exit", "position":"long", "price":...}).
Camarilla Pivot Plays (Lite) [BruzX]█ OVERVIEW
This indicator implements the Camarilla Pivot Points levels and a system for suggesting particular plays. It only 3rd, 4th, and 6th levels, as these are the only ones used by the system. It also optionally shows the Central Pivot Range, which is in fact between S2 and R2. In total, there are 12 possible plays, grouped into two groups of six. The algorithm evaluates in real-time which plays fulfil their precondition and shows the candidate plays. The user must then decide if and when to take the play.
█ CREDITS
The Camarilla pivot plays are defined in a strategy developed by Thor Young, and the whole system is explained in his book "A Complete Day Trading System". This description is self-sufficient for effective use.
█ FEATURES
Display the 3rd, 4th and 6th Camarilla pivot levels
Works for stocks, futures, indices, forex and crypto
Automatically switches between RTH and ETH data based on criteria defined by the system.
Option to force RTH/ETH data and force a close price to be used in the calculation.
Preconditions for the plays can be toggled on/off
Works correctly on both RTH and ETH charts
Well-documented options tooltips
Well-documented and high-quality open-source code for those who are interested
█ HOW TO USE
The defaults work well; at a minimum, just add the indicator and watch the plays being called. For US futures, you will probably want to chat the "Timezone for sessions" to New York and the regular session times to 09:30 - 16:00. The following diagram shows its key features.
By default, the indicator draws plays 1 days back; this can be changed up to 20 days. The labels can be shifted left/right using the "label offset" option to avoid overlapping with other labels in this indicator or those of another indicator.
An information box at the top-right of the chart shows:
The data currently in use for the main pivots. This can switch in the pre-market if the H/L range exceeds the previous day's H/L, and if it does, you will see that switch at the time that it happens
Whether the current day's pivots are in a higher or lower range compared to the previous day's.
The width of the pivots compared to the previous day
The current candidate plays fulfilling preconditions. You then need to watch the price action to decide whether to take the play.
The resistance pivots are all drawn in the same colour (red by default), as are the support pivots (green by default). You can change the resistance and support colours, but it is not possible to have different colours for different levels of the same kind.
█ CONCEPTS
The indicator is focused around daily Camarilla pivots and evaluates the preconditions for 12 possible plays: 6 when in a higher range, 6 when in a lower range. The plays are labelled by two letters—the first indicates the range, the second indicates the play—as shown in this diagram:
The pivots can be calculated using only RTH (Regular Trading Hours) data, or ETH (Extended Trading Hours) data, which includes the pre-market and post-market. The indicator implements logic to automatically choose the correct data, based on the rules defined by the strategy. This is user-overridable. With the default options, ETH will be used when the H/L range in the previous day's post-market or current day's pre-market exceeds that of the previous day's regular market. In auto mode, the chosen pivots are considered the main pivots for that day and are the ones used for play evaluation. The "other" pivots can also be shown—"other" here meaning using ETH data when the main pivots use RTH data, and vice versa.
The plays must fulfil a set of preconditions. There are preconditions for valid region and range, price sweeps into levels, correct pivot width, opening position, price action, and whether neutral range plays and premarket plays are enabled. When all the preconditions are fulfilled, the play will be shown as a candidate.
█ NOTE FOR FUTURES
Futures don't officially have a pre-market or post-market like equities. Let's take ES on CME as an example. It trades from 18:00 ET Sunday to 17:00 Friday (ET), with a daily pause between 17:00 and 18:00 ET. However, most of the trading activity is done between 09:30 and 16:00, which you can tell from the volume spikes at those times, and this coincides with NYSE/NASDAQ regular hours. So we define a pseudo-pre-market from 18:00 the previous day to 09:30 on the current day, then a pseudo-regular market from 08:30 to 16:00, then a pseudo-post-market from 16:00 to 17:00. The indicator then works exactly the same as with equities—all the options behave the same, just with different session times defined for the pre-, regular, and post-market, with "RTH" meaning just the regular market and "ETH" meaning all three.
█ LIMITATIONS
The pivots are very close to those shown in DAS Trader Pro. They are not to-the-cent exact, but within a few cents. The reasons are:
TradingView provides free real-time data from CBOE One, not full exchange data (you can pay for this though, and it's not expensive), and
the close/high/low are taken from the intraday timeframe you are currently viewing, not daily data—which are very close, but often not exactly the same. For example, the high on the daily timeframe may differ slightly from the daily high you'll see on an intraday timeframe.
Despite these caveats, occasionally large spikes will be seem in one platform and not the other (even with paid data), or the spikes will reach significantly difference prices. Where these spikes create the daily high or low, this can cause significantly different pivots levels. The more traded the stock is, the less the difference tends to be. Highly traded stocks are usually within a few cents (but even they occasionally have large differences in spikes). There is nothing that can be done about this.
The 6th Camarilla level does not have a standard definition and may not match the level shown on other platforms. It does match the definition used by DAS Trader Pro.
Replay mode for stocks does not work correctly. This is due to some important Pine Script variables provided by the TradingView platform and used by the script not being assigned correct values in replay mode. Futures do not use these variables, so they should work in replay mode.
The indicator is an intraday indicator (despite also being able to show weekly and monthly pivots on an intraday chart). It deactivates on a daily timeframe and higher. Sub-minute timeframes are also not supported.
The indicator was developed and tested for US/European stocks, US futures and EURUSD forex and BTCUSD. It should work as intended for stocks and futures in different countries, and for all forex and crypto, but this is tested as much as the security it was developed for.
█ DISCLAIMER
This indicator is provided for information only and should not be used in isolation without a good understand of the system and without considering other factors. You should not take trades using real money based solely on what this indicator says. Any trades you take are entirely at your own risk.
Halt-Risk Guard (5-min / 10%) — TTP Safe🛑 Halt-Risk Guard (5-min / 10%) — TTP Safe
Stay clear of halts, invalidations, and over-extended moves.
🔍 Overview
The Halt-Risk Guard helps traders avoid sudden invalidations by monitoring price velocity over the past X minutes (default: 5 min) and flagging when moves exceed a configurable threshold (default: 10%).
Originally built to meet Trade The Pool (TTP) risk-management rules — where even non-halted 10% moves can void trades — this tool provides a clear, visual warning system and optional entry blocker.
⚙️ Key Features
✅ Halt-Risk Detection – Calculates both reference-based and swing-based (high↔low) percentage change over the chosen lookback period.
✅ TTP Safe Mode – “Swing mode” captures extreme volatility spikes that may invalidate trades even when the market stays open.
✅ Entry Blocker (optional) – Automatically greys candles and dims the background during risky conditions to prevent impulsive entries.
✅ Customisable Positioning – Move the on-chart info box to any corner of your chart (Top Left / Top Right / Bottom Left / Bottom Right).
✅ Clean Alerts –
⚠️ At/Above Threshold
✅ Back to Safe
⛔ Entry Blocker Active
✅ Visual Table Display – Compact dashboard shows current % move, lookback window, and threshold with intuitive green/red status.
✅ Strategy-Ready Output – A hidden 0/1 plot lets you block or filter trades in automated systems.
⚡ How It Works
Monitors the selected symbol using your chosen computation timeframe (recommended 1-minute).
Evaluates either:
REF mode: Close-to-close change over the lookback window.
SWING mode: High-to-low range within the same window.
If the move ≥ Threshold %, the script highlights a halt-risk condition and optionally activates the entry blocker.
🎨 Recommended Settings
Lookback: 5 minutes
Threshold: 10 %
Swing mode: ON (TTP-safe)
Computation timeframe: 1 minute
Entry blocker: ON
Dim background: ON
🧠 Use Cases
TTP and other prop-firm evaluations enforcing price-movement limits.
Volatility-based scalping systems to avoid chasing extended candles.
Strategy filters for algorithmic entries (e.g. pause trading during halt-risk windows).
⚠️ Disclaimer
This tool provides visual and alert-based guidance only. It does not guarantee compliance with any specific firm’s rules or eliminate trading risk. Always verify thresholds and rules with your broker or evaluation provider.
Uptrick: Volume Weighted BandsIntroduction
This indicator, Uptrick: Volume Weighted Bands, overlays dynamic, volume-informed trend channels directly on the chart. By fusing price and volume data through volume-weighted and exponential moving averages, the script forms a core trend line with adaptive bandwidth controlled by volatility. It is designed to help traders identify trend direction, breakout entries, and extended conditions that may warrant take-profits or pullback re-entries.
Overview
The Volume Weighted Bands system is built around a trend line calculated by averaging a Volume Weighted Moving Average (VWMA) and an Exponential Moving Average (EMA), both over a configurable lookback period. This hybrid trend baseline is then smoothed further and expanded into dynamic upper and lower bands using an Average True Range (ATR) multiplier. These bands adapt with market volatility and shift color based on prevailing price action, helping traders quickly identify bullish, bearish, or neutral conditions.
Originality and Unique Features
This script introduces originality by blending both price and volume in the core trend calculation, a technique that is more responsive than traditional moving average bands. Its multi-mode visualization (cloud, single-band, or line-only), combined with selective buy/sell signals, makes it flexible for discretionary and algorithmic strategies alike. Optional modules for take-profit signals based on z-score deviation and RSI slope, as well as buy-back detection logic with cooldown filters, offer practical tools for managing trades beyond simple entries.
Explanation of Inputs
Every user input in this script is included to give the trader control over behavior and visual presentation:
Trend Length (len): Defines the lookback window for both the VWMA and EMA, controlling the sensitivity of the core trend baseline. A lower value makes the bands more reactive, while a higher value smooths out short-term noise.
Extra Smoothing (smoothLen): Applies an additional EMA to the blended VWMA/EMA average. This second-level smoothing ensures the central trend line reacts gradually to shifts in price.
Band Width (ATR Multiplier) (bandMult): Multiplies the ATR to create the width of the upper and lower bands around the trend line. Larger values widen the bands, capturing more volatility, while smaller values narrow them.
ATR Length (atrLen): Sets the length of the ATR used in calculating band width and signal offsets. Longer values produce smoother band boundaries.
Show Buy/Sell Signals (showSignals): Toggles the primary crossover/crossunder entry signals, which are labeled when the close crosses the upper or lower band.
Visual Mode (visualMode): Allows selection between three display modes:
--> Cloud: Shows both bands and the central trend line with a shaded background.
--> Single Band: Displays only the active (upper or lower) band depending on trend state, with gradient fill to price.
--> Line Only: Shows only the trend line for a minimal visual profile.
Take Profit Signals (enableTP): Enables a z-score-based profit-taking signal system. Signals occur when price deviates significantly from the trend line and RSI confirms exhaustion.
TP Z-Score Threshold (tpThreshold): Sets the z-score deviation required to trigger a take-profit signal. Higher values reduce the frequency of signals, focusing on more extreme moves.
Re-Entries (enableBuyBack): Enables logic to signal when price reverts into the band after an initial breakout, suggesting a possible re-entry or pullback setup.
Buy Back Cooldown (bars) (buyBackCooldown): Defines a minimum bar count before a new buy-back signal is allowed, preventing rapid retriggering in choppy conditions.
Buy Offset and Sell Offset: Hidden inputs used to vertically adjust the placement of the Buy ("𝓤𝓹") and Sell ("𝓓𝓸𝔀𝓷") labels relative to the bands. These use ATR units to maintain proportionality across different instruments and timeframes.
Take-Profit Signal Module
The take-profit module uses a z-score of the distance between price and the trend line to detect extended conditions. In bullish trends, a signal appears when price is well above the band and RSI indicates exhaustion; the opposite applies for bearish conditions. A boolean flag is used to prevent retriggering until RSI resets. These signals are plotted with minimalist “X” markers near recent highs or lows, based on whether the market is extended upward or downward.
Re-Entry Logic
The re-entry system identifies instances where price momentarily dips or spikes into the opposite band but closes back inside, implying a continuation of the prevailing trend. This module can be particularly useful for traders managing entries after brief pullbacks. A built-in cooldown period helps filter out noise and prevents signal overloading during fast markets. Visual markers are shown as upward or downward arrows near the relevant candle wicks.
How to Use This Indicator
The basic usage of this indicator follows a directional, signal-driven approach. When a buy signal appears, it suggests entering a long position. The recommended stop loss placement is below the lower band, allowing for some breathing space to accommodate natural volatility. As the position progresses, take partial profits—typically 10% to 15% of the position—each time a take-profit signal (marked with an "X") is shown on the chart.
An optional feature is the buy-back signal, which can be used to re-enter after partial exits or missed entries. Utilizing this can help reduce losses during false breakouts or trend reversals by scaling in more gradually. However, it also means that in strong, clean trends, the full position may not be captured from the start, potentially reducing the total return. It is up to the trader to decide whether to enter fully on the initial signal or incrementally using buy-backs.
When a sell signal appears, the strategy advises fully exiting any long positions and immediately switching to a short position. The short trade follows the same logic: place your stop loss above the upper band with some margin, and again, take partial profits at each take-profit signal.
Visual Presentation and Signal Labels
All signals are plotted with clean, minimal labels that avoid clutter, and are color-coded using a custom palette designed to remain clear across light and dark chart themes. Bullish trends are marked in teal and bearish trends in magenta. Candles and wicks are also colored accordingly to align price action with the detected trend state. Buy and sell entries are marked with "𝓤𝓹" and "𝓓𝓸𝔀𝓷" labels.
Summary
In summary, the Uptrick: Volume Weighted Bands indicator provides a versatile, visually adaptive trend and volatility tool that can serve multiple styles of trading. Through its integration of price, volume, and volatility, along with modular take-profit and buy-back signaling, it aims to provide actionable structure across a range of market conditions.
Disclaimer
This indicator is for educational purposes only. Trading involves risk, and past performance does not guarantee future results. Always test strategies before applying them in live markets.
21 SMA over 200 SMA Bullish Cross Highlighter21 SMA Over 200 SMA — Momentum Cross for BTC Scalpers
A precise and lightweight indicator designed to highlight when short-term momentum aligns with the broader Bitcoin trend.
It visualizes when the 21-period Simple Moving Average (SMA) crosses above the 200-period SMA, often signaling the beginning of a sustained directional move — especially effective on the 1-minute BTC chart during trending market conditions.
Core Concept
When the 21 SMA crosses above the 200 SMA on Bitcoin during an active uptrend, the probability increases that price will continue rising as short-term traders and algorithms join the move.
This indicator helps you identify that momentum shift in real time and react before the breakout gains full traction.
Features
Clear visual label for every bullish cross (21↑200)
Optional bearish cross labels (21↓200)
Optimized for 1m, 5m, and 15m BTC charts
Lightweight and efficient — ideal for multi-chart scalping layouts
Built-in alert conditions for manual alert setup
Excellent synergy with VRVP (Visible Range Volume Profile) for confirming volume-based breakout zones
Suggested Use
Focus on the 1-minute Bitcoin chart for early signals.
When a bullish cross appears, use VRVP to locate high-volume nodes or breakout levels for precise entries.
Confirm alignment on 5m or 15m charts before executing.
Combine with RSI, Stoch RSI, or volume analysis to refine timing and manage risk.
Trading Insight
The 21/200 SMA relationship has long been a trusted tool for trend identification.
When both averages slope upward and the cross occurs above a strong VRVP volume zone, it often marks the start of a new impulsive leg in BTC ideal for short-term scalps or the first confirmation of a broader trend continuation.
Created for disciplined BTC scalpers who value structured setups, clarity, and confirmation through data rather than noise.
Dynamic Fractal Flow [Alpha Extract]An advanced momentum oscillator that combines fractal market structure analysis with adaptive volatility weighting and multi-derivative calculus to identify high-probability trend reversals and continuation patterns. Utilizing sophisticated noise filtering through choppiness indexing and efficiency ratio analysis, this indicator delivers entries that adapt to changing market regimes while reducing false signals during consolidation via multi-layer confirmation centered on acceleration analysis, statistical band context, and dynamic omega weighting—without any divergence detection.
🔶 Fractal-Based Market Structure Detection
Employs Williams Fractal methodology to identify pivotal market highs and lows, calculating normalized price position within the established fractal range to generate oscillator signals based on structural positioning. The system tracks fractal points dynamically and computes relative positioning with ATR fallback protection, ensuring continuous signal generation even during extended trending periods without fractal formation.
🔶 Dynamic Omega Weighting System
Implements an adaptive weighting algorithm that adjusts signal emphasis based on real-time volatility conditions and volume strength, calculating dynamic omega coefficients ranging from 0.3 to 0.9. The system applies heavier weighting to recent price action during high-conviction moves while reducing sensitivity during low-volume environments, mitigating lag inherent in fixed-period calculations through volatility normalization and volume-strength integration.
🔶 Cascading Robustness Filtering
Features up to five stages of progressive EMA smoothing with user-adjustable robustness steps, each layer systematically filtering microstructure noise while preserving essential trend information. Smoothing periods scale with the chosen fractal length and robustness steps using a fixed smoothing multiplier for consistent, predictable behavior.
🔶 Adaptive Noise Suppression Engine
Integrates dual-component noise filtering combining Choppiness Index calculation with Kaufman’s Efficiency Ratio to detect ranging versus trending market conditions. The system applies dynamic damping that maintains full signal strength during trending environments while suppressing signals during choppy consolidation, aligning output with the prevailing regime.
🔶 Acceleration and Jerk Analysis Framework
Calculates second-derivative acceleration and third-derivative jerk to identify explosive momentum shifts before they fully materialize on traditional indicators. Detects bullish acceleration when both acceleration and jerk turn positive in negative oscillator territory, and bearish acceleration when both turn negative in positive territory, providing early entry signals for high-velocity trend initiation phases.
🔶 Multi-Layer Signal Generation Architecture
Combines three primary signal types with hierarchical validation: acceleration signals, band crossover entries, and threshold momentum signals. Each signal category includes momentum confirmation, trend-state validation, and statistical band context; signals are further conditioned by band squeeze detection to avoid low-probability entries during compression phases. Divergence is intentionally excluded for a purely structure- and momentum-driven approach.
🔶 Dynamic Statistical Band System
Utilizes Bollinger-style standard deviation bands with configurable multiplier and length to create adaptive threshold zones that expand during volatile periods and contract during consolidation. Includes band squeeze detection to identify compression phases that typically precede expansion, with signal suppression during squeezes to prevent premature entries.
🔶 Gradient Color Visualization System
Features color gradient mapping that dynamically adjusts line intensity based on signal strength, transitioning from neutral gray to progressively intense bullish or bearish colors as conviction increases. Includes gradient fills between the signal line and zero with transparency scaling based on oscillator intensity for immediate visual confirmation of trend strength and directional bias.
All analysis provided by Alpha Extract is for educational and informational purposes only. The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations.
Balanced Delta Volume Profile (Zeiierman)█ Overview
Balanced Delta Volume Profile (Zeiierman) builds a vertical, price-by-price profile that blends total participation with balance quality. Instead of plotting raw volume alone, it weights each price bin by:
how balanced buyers vs. sellers were,
how compressed price was inside that bin,
how often price revisited it.
The result spotlights fair value and acceptance zones while still revealing momentum/imbalance areas—ideal for reading rotation vs. trend, continuation vs. exhaustion, and the prices that truly matter.
Highlights
Balanced score that fuses delta symmetry, price compression, and hit frequency.
Optional heat spectrum for instant read of participation density and balance strength.
POC-like auto highlight of the dominant price level within the lookback window.
Works across timeframes for session profiling, swing context, or regime shifts.
█ How It Works
⚪ Profile Construction
The script scans a fixed History Length and divides the full high–low span into Bin Count price bins. For every bar in the window, its volume is proportionally distributed across the bins it overlaps, so wide-range bars contribute across multiple bins, while narrow bars concentrate where they traded most. This yields per-bin totals for:
Total Volume (participation)
Positive / Negative Volume (up vs. down bar contribution)
Hit Count (how often price touched the bin)
Average Price Range (mean bar range inside the bin; a proxy for compression)
⚪ Delta & Direction
For each bin, delta symmetry is measured via the ratio of |pos − neg| to total volume. Bins with balanced two-sided flow score higher than one-sided, runaway bins. This curbs the tendency of raw volume profiles to over-reward impulsive bursts.
⚪ Balance Score
Each price bin gets a balance score that multiplies three normalized components:
Delta Balance: rewards bins where buy/sell pressure is symmetrical (configurable via Volume Momentum Weight).
Price Compression: rewards bins where average bar range is relatively small (configurable via Price Momentum Weight).
Durability: rewards bins revisited often (configurable via Hits Weight).
A Min Hits Filter removes flimsy, single-touch bins from dominating the score. The profile can display pure totals or Average Mode (Vol/Hit) to compare bins fairly when hit counts differ.
⚪ Display & Heat Spectrum
The final plotted bar length per bin is the display volume (total or average) weighted by the balance score and normalized to 100.
POC-like Highlight: The 100% bin is outlined (and labeled) when Highlight Max Volume Bin is ON.
Heat Spectrum (optional): A background gradient scales with normalized bar length and balance hue.
Balance Hue: Interpolates between Balance Low/High Colors so high-balance bins visually pop as “accepted value.”
█ How to Use
The profile is effectively a map of price acceptance:
High, bright bars = strong participation at balanced prices → fair value/rotation zones.
Thin, muted bars = poor acceptance → imbalance or transition areas.
POC-style level = most influential price in the lookback window.
⚪ Find Fair Value & Acceptance
Thick, high-balance bins mark value. Expect rotation: price often revisits or oscillates around these areas. They’re prime zones for mean-reversion fades, scale-ins, and risk-defined trades against the edges.
⚪ Identify Imbalance & Funnels
Low-balance, low-hit bins often act like air pockets—price can move through them quickly. These zones are helpful for continuation trades into thin areas or for timing breakout pulls back into acceptance.
⚪ POC Dynamics
When price leaves the POC and returns, watch for re-acceptance (price comes back into the POC or high-balance zone and stays there.) vs. rejection (trend continuation away from value). The auto-highlight makes this quick to judge.
█ Settings
History Length – Bars scanned for the profile. Longer = broader context, slower to adapt.
Bin Count – Vertical resolution of bins between the window’s min and max price.
Display Shift – Offsets the rendering rightward for clarity.
Average Mode (Vol/Hit) – ON uses average volume per visit; OFF uses total volume.
Volume Momentum Weight – Emphasizes two-way flow; higher values favor balanced bins over one-sided deltas.
Price Momentum Weight – Emphasizes compression; higher values favor narrow-range, coiling price action.
Hits Weight – Rewards bins revisited often; higher values favor durable acceptance.
Min Hits Filter – Minimum visits a bin needs to qualify for the balance score.
Show Heat Spectrum – Background gradient for quick read of density and balance.
Highlight Max Volume Bin – Outline + raw volume label for the dominant bin.
Max Volume Color – Color used for that highlight.
Balance Low/High Colors – Gradient endpoints for balance hue across the profile.
-----------------
Disclaimer
The content provided in my scripts, indicators, ideas, algorithms, and systems is for educational and informational purposes only. It does not constitute financial advice, investment recommendations, or a solicitation to buy or sell any financial instruments. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
Vandan V2Vandan V2 is an automated trend-following strategy for NASDAQ E-mini Futures (NQ1!).
It uses multi-timeframe momentum and volatility filters to identify high-probability entries.
Includes dynamic risk management and trailing logic optimized for intraday trading.
Scissors&Knifes V3.1✂️ The Scissors (PAG Chop V4 Engine)
🧠 Core idea
Scissors measure market compression and breakout readiness.
They use a modified Choppiness Index that looks at the relationship between:
True Range volatility (ATR × period length)
The total high–low range over the same window.
The smaller the ratio (sum of TR vs range), the more directional and impulsive the market is.
The higher the ratio, the more “sideways” the market trades.
This version smooths the result over PAG_SMOOTHLEN bars and applies several color bands that correspond to volatility states.
🎨 Color code meaning
Range State Color Interpretation
≤ 30 Strong Red #8B0000 Momentum exhaustion on downside, sellers dominating — about to reverse or already strong down-trend.
30 – 38 Brick Red #A52A2A Fading downside pressure; often the “bleeding edge” of a bearish climax.
38 – 55 Transparent black (α≈100) Neutral chop zone — indecision, range-building.
55 – 61.8 Yellow (optional) #DAA520 Early compression pocket where volatility starts contracting; the calm before a trend.
61.8 – 70 Bright Green #556B2F Energy release phase: volatility breaking out upward.
≥ 70 Strong Green #355E3B Sustained bullish drive, often continuation leg of a trend.
🪶 Secret nuance:
The transition bands (38–45 and 45–55) are treated as fully transparent to mark “dead zones.”
When PAG Chop sits here, all label activity pauses — the system resets its cluster memory so the next colored print begins a new “cluster”, letting you clearly see where fresh directional momentum starts.
🧩 Cluster logic
Every time a colored (non-transparent) reading appears, it belongs to a “color cluster.”
Grey labels (= count 1) mark the genesis of a new cluster, and following counts 2, 3, 4 … represent the internal continuity of that trend state.
You can optionally hide the first N grey or count 2 labels to reduce clutter on the initial stabilization bars.
✂️ Label meaning
Each label shows:
Emoji ✂️
Current count (e.g. ✂️ = 3 means 3 timeframes are simultaneously firing)
Optional list of the timeframes that contribute.
So a high count (e.g. 8–10) means many lower TFs are synchronizing volatility breakout — a multiframe alignment, often just before an acceleration burst.
🔪 The Knife (Mr Blonde V4 Engine)
🧠 Core idea
Mr Blonde converts the slope of a long EMA into an angle-of-attack metric — literally the “tilt” of market momentum.
It computes the EMA gradient relative to price span and rescales it into degrees (-5 ° to +5 °).
The steeper the angle, the stronger the directional push.
🎨 Color code meaning
Angle range Color Interpretation
≥ +5 ° Transparent (Black 1) Fully over-extended up move — wait for reset.
+3.57 – +5 ° Dark Red Strong upward slope, momentum apex.
+2.14 – +3.57 ° Orange Medium upward slope, trend acceleration zone.
+0.71 – +2.14 ° Light Orange Mild upward bias, pre-momentum phase.
0 to -0.71 ° Yellow Neutral transition.
-0.71 – -2.14 ° Olive Green Soft bearish slope.
-2.14 – -3.57 ° Olive Drab Building bearish momentum.
-3.57 – -5 ° Hunter Green Strong downward angle, aggressive push.
≤ -5 ° Transparent (Black 2) Oversold/over-tilted — likely exhaustion.
🪶 Secret nuance:
Mr Blonde uses a “span normalization” factor that divides EMA slope by the dynamic range of highs and lows.
This lets it compare angles fairly across assets with different volatility profiles (e.g. BTC vs ES) — it’s one of the rare EMA-angle implementations that self-scales properly.
🗡 Label meaning
Emoji 🔪
Count = how many TFs share the same momentum angle bias.
When many TFs show the same slope polarity (e.g. knife = 8), you’re in a deep momentum cascade — a “knife trend.”
💫 Yellow knife
The yellow state marks neutrality or slope flattening.
If you enable yellow visibility (mb_show_yellow), you can see where momentum cools off — often the earliest reversal hint.
⚙️ Shared mechanics between ✂️ and 🔪
Multi-timeframe sweep
The script cycles through 1 m → 10 m by default, running both engines once per TF.
Each returning true adds +1 to the count.
So:
sc_hits = count of timeframes where PAG fires + 1
knife_hits = count of timeframes where MB fires + 1
That “+1 shift” means there’s always at least 1, letting count = 1 represent the local TF itself.
Cluster limiter
If Limit max labels per cluster is on, you cap how many total symbols (both ✂️ & 🔪, including trails) can appear within one color phase — avoiding chart spam during extended trends.
Trails
Each printed label seeds a short-lived “trail” sequence — faded copies extending N bars forward.
Trails visualize the linger effect of the last signal, useful for visually connecting bursts in momentum.
Grey or count = 1 labels can have shorter or longer trails depending on your overrides (*_trail_bars_grey).
They’re purely visual and do not affect alerting.
Alerts
Alerts fire independently of whether you hide labels — unless you enable “respect filters”.
This guarantees you never miss a structural signal even if you suppress visuals for clarity.
🌈 Interpreting Both Together
Scenario Interpretation
✂️ = low (1–2) + 🔪 rising (red/orange) Market just leaving chop, early thrust stage.
✂️ = high (≥ 5) + 🔪 green Fully aligned breakout continuation — trend in progress.
✂️ = yellow cluster + 🔪 yellow Volatility squeeze, energy buildup — next expansion near.
✂️ = green cluster → 🔪 turns red Cross-state conflict; likely transition or correction.
✂️ = grey + 🔪 grey Reset condition — both engines cooling; stand aside.
💡 Hidden edge:
Scissors signal potential, Knife measures kinetic force.
The perfect storm is when ✂️ goes from yellow→green one bar before 🔪 shifts from orange→green — it catches the birth of directional flow while volatility is still tight.
🧭 Reading the labels intuitively
Grey ✂️/🔪 = 1 → embryonic state, may fizzle or bloom.
✂️/🔪 = 2 or 3 → expansion taking hold.
✂️/🔪 ≥ 4 (mid black) → strong synchronized drive across TFs.
Transparent gap → cluster reset; prepare for new phase.
Trail lines → echo of previous cluster strength.
Final secret tip 🗝
Because both engines are mathematically uncorrelated (volatility vs EMA angle), when they agree in color polarity on multiple TFs, you have one of the cleanest probabilistic trend windows possible.
If you ever see ✂️ = 6 + 🔪 = 6 both pointing the same way — that’s a “knife-through-the-scissors” moment: volatility expansion and directional slope synchronized — those are the bars where institutional algorithms tend to add size.






















