VWAP Supply & Demand Zones PRO**Overview:**
This script represents a major evolution of the original "VWAP Supply and Demand Zones" indicator. Initially created to explore price interaction with VWAP, it has now matured into a robust and feature-rich tool for identifying high-probability zones of institutional buying and selling pressure. The update introduces volume and momentum validation, dynamic zone management, alert logic, and a visual dashboard (HUD) — all designed for improved precision and clarity. The structural improvements, anti-repainting logic, and significant added utility warranted releasing this as a new script rather than a minor update.
---
### What It Does:
This indicator dynamically detects **supply and demand zones** using VWAP-based logic combined with **volume** and **momentum confirmation**. When price crosses VWAP with strength, it identifies the potential zone of excess demand (below VWAP) or supply (above VWAP), marking it visually with colored regions on the chart.
Each zone is extended for a user-defined duration, monitored for touch interactions (tests), and tracked for possible breaks. The script helps traders interpret price behavior around these institutional zones as either **reversal** opportunities or **continuation** confirmation depending on context and strategy preference.
---
### How It Works:
* **VWAP Basis**: Zones are anchored at VWAP at the time of a significant cross.
* **Volume & Momentum Filters**: Crosses are only considered valid if backed by above-average volume and notable price momentum.
* **Zone Drawing**: Validated supply and demand zones are drawn as boxes on the chart. Each is extended forward for a customizable number of bars.
* **Touch Counting**: Zones track the number of price touches. Alerts are issued after a user-defined number of tests.
* **Break Detection**: If price closes significantly beyond a zone boundary, the zone is marked as broken and visually dimmed.
* **Visual Dashboard (HUD)**: A compact real-time HUD displays VWAP value, active zone counts, and current market bias.
---
### How to Use It:
**Reversal Trading:**
* Look for price **rejecting** a zone after touching it.
* Use rejection candles or secondary indicators (e.g., RSI divergence) to confirm.
* These setups may offer low-risk entries when price respects the zone.
**Continuation Trading:**
* A **break of a zone** suggests strong directional bias.
* Use confirmed zone breaks to enter in the direction of momentum.
* Ideal in trending environments, especially with high volume and ATR movement.
---
### Key Inputs:
* **VWAP Length**: Moving VWAP period (default: 20)
* **Zone Width %**: Percentage size of zone buffer (default: 0.5%)
* **Min Touches**: How many times price must test a zone before alerts trigger
* **Zone Extension**: How far into the future zones are projected
* **Volume & ATR Filters**: Ensure only strong, valid crossovers create zones
---
### Alerts:
You can enable alerts for:
* **New zone creation**
* **Zone tests (after minimum touch count)**
* **Zone breaks**
* **VWAP crosses**
* **Active presence inside a zone (entry conditions)**
These alerts help automate market monitoring, making it suitable for discretionary or systematic workflows.
---
### Why It's a New Script:
This is not a cosmetic update. The internal logic, signal generation, filtering methodology, visual engine, and UX framework have been entirely rebuilt from the ground up. The result is a highly adaptive, precision-oriented tool — appropriate for intraday scalpers and swing traders alike. It goes far beyond the original in terms of functionality and reliability, justifying a fresh release.
---
### Suitable Markets and Timeframes:
* Works across all liquid markets (crypto, equities, futures, forex)
* Best used on timeframes where volume data is stable (5m and above recommended)
* Recalibrate inputs for optimal detection across instruments
指標和策略
Cheat Setup//@version=5
indicator("Cheat Setup", overlay=true)
// === User inputs ===
adr_period = input.int(20, title="ADR Window (days)")
lookback = input.int(100, title="Historical Lookback (bars)")
sensitivity = input.float(1.5, minval=0.5, step=0.1, title="Sensitivity (Multiplier of Avg ADR%)")
show_threshold_lines = input.bool(true, title="Show ADR% / Threshold Lines")
// === ADR% Calculation ===
// ADR% = (20-day high - 20-day low) / 20-day low × 100
adr_percent = (ta.highest(high, adr_period) - ta.lowest(low, adr_period)) / ta.lowest(low, adr_period) * 100
// Average ADR% over lookback period
avg_adr_percent = ta.sma(adr_percent, lookback)
// Adaptive threshold
adaptive_threshold = avg_adr_percent * sensitivity
// Detection condition
cheat_setup_signal = adr_percent > adaptive_threshold
// === Plotting ===
bgcolor(cheat_setup_signal ? color.new(color.green, 80) : na, title="Cheat Setup Background")
// Optional: Visual aid lines
plot(show_threshold_lines ? adr_percent : na, title="ADR(20)%", color=color.orange)
plot(show_threshold_lines ? avg_adr_percent : na, title="Average ADR%", color=color.gray)
plot(show_threshold_lines ? adaptive_threshold : na, title="Adaptive Threshold", color=color.red)
// ## What This Script Is For
// This script helps detect potential breakout zones — often called a "Cheat Setup" — before they happen.
// It's useful for identifying periods where a stock's volatility starts expanding after consolidation, which often leads to a breakout.
// ## What Is a Cheat Setup?
// A Cheat Setup is a technical setup where:
// > The price has been consolidating within a narrow range.
// > When volatility suddenly increases, it may indicate a breakout is about to occur.
// This script alerts you when that volatility expansion begins, using an adaptive threshold.
// ## How the Script Works (Step by Step)
// 1. Calculates ADR%:
// Measures how much the price has moved over the past N days (default: 20),
// using the formula: (20-day high - 20-day low) ÷ 20-day low × 100
// 2. Calculates the average ADR% over a longer lookback period (default: 100 bars).
// 3. Sets an adaptive threshold:
// The average ADR% multiplied by a user-defined sensitivity factor (e.g. 1.5×).
// 4. Triggers a cheat setup signal if the current ADR% exceeds the threshold.
// 5. Displays a green background on the chart during the signal to visually highlight the cheat area.
// 6. Optionally draws 3 reference lines:
// - Current ADR% (orange line)
// - Average ADR% (gray line)
// - Adaptive threshold (red line)
// ## How to Use the Script
// 1. Apply the script on a TradingView chart (daily timeframe is recommended).
// 2. Select a stock (e.g. AAPL, TSLA, 0700, 9988).
// 3. Monitor for periods when the background turns green.
// 4. These green zones signal that volatility has increased — the stock may be preparing for a breakout.
// ## What to Do When You See a Green Background
// - Add the stock to your watchlist.
// - Wait for confirmation — such as a breakout above the recent consolidation range.
// - Use other indicators like RSI, volume, or moving averages to filter signals.
// - Avoid chasing; instead, use the green zone as early warning and plan your entry.
// ## Recommended Parameter Settings
// Parameter | Purpose
// ---------------------- | ---------------------------------------------------------------
// `adr_period` | Number of days to calculate ADR%, e.g. 20
// `lookback` | Number of bars to average ADR%, e.g. 100
// `sensitivity` | Multiplier for adaptive threshold. 1.5 = moderate, 2.0 = strict
// `show_threshold_lines` | Toggle visibility of the ADR%, average, and threshold lines
// If the signal appears too frequently, increase the `sensitivity`. If too few, lower it slightly.
// ## Summary
// This script identifies stocks that are showing early signs of a breakout based on abnormal volatility expansion.
// It's especially useful for traders who want to get ahead of the move — before a breakout occurs — rather than reacting to it afterward.
// If you'd like, I can extend this script to also include:
// - Volume filters
// - Consolidation zone detection
// - Alert setup
// - Breakout confirmation (e.g. close > recent high)
// Let me know if you want to take it further.
Auto-Trend Finder (Pivot + ADX)Inspired in part by LuxAlgo Trendlines with Breaks. Extended and enhanced for directional clarity and pivot-based precision.
🔍 What It Does
The Auto-Trend Finder (Pivot + ADX) is a smart trend-detection toolkit that combines:
Pivot-based swing detection (HH, HL, LH, LL)
ADX-filtered trendline projections
Custom slope estimation using ATR, Standard Deviation, Linear Regression, or a blended approach
Candlestick pattern detection for added confirmation (e.g., hammer, engulfing, shooting star)
📈 How It Works
1. Swing Detection
Uses ta.pivothigh / ta.pivotlow to mark major price turning points.
Labels pivots as Higher High (HH), Lower High (LH), Lower Low (LL), or Higher Low (HL).
Optionally overlays basic candle pattern names for visual context.
2. Trendline Logic
Connects successive pivot highs/lows with real-time trendlines.
Draws separate Uptrend and Downtrend lines with distinct colors.
3. Extended Projections
Projects extended dashed lines from the last pivot using slope formulas:
ATR-based (volatility)
Stdev-based (dispersion)
Linear Regression (trend best-fit)
Or a Combined slope using user-defined weights.
Color changes dynamically on breakout to visually signal momentum shifts.
4. ADX Trend Strength Filter
Optional ADX filter disables trendline updates unless directional strength exceeds a threshold (e.g. 20+).
Helps remove noise in sideways markets.
⚠️ Important Notes
Backpainting Warning: This script includes a backpainting setting (backpaint) that may cause lines to appear "reliably predictive" in historical data. Backpainting does not repaint once the pivot is confirmed, but it still reflects a post-fact state. Use this feature cautiously in live trading decisions.
Reused Code Attribution: Extended trendline concept and breakout color logic were inspired by publicly available open-source versions of LuxAlgo's trendline logic. Credit is given in the script comments and here as required.
🛠️ How to Use It
Adjust Pivot Length for swing detection sensitivity.
Toggle ADX filtering on or off to avoid choppy signals.
Choose your preferred Slope Calculation Method.
Use candlestick labels as potential entry signals near trendline retests or breaks.
✅ Why This Is More Than a Mashup
This tool integrates several separate technical methods into one cohesive, customizable framework:
It’s not just combining indicators, it’s engineering synergy between them.
The slope and ADX filtering mechanics dynamically adjust to trend strength.
Candlestick confirmation and labeling give visual, real-time trade confidence.
It enhances open-source logic by adding modular slope options, ADX gating, pattern labeling, and user control.
"Know the structure. Follow the strength. Trade with clarity. Auto-Trend Finder is your edge in the chaos."
1-Min Scalping Strategy with Trailing Stop (1 Contract)This is a 1 min scalp strategy specifically written for NQ futures with consistency in mind and stop losses with trailing stops. Happy trading. *** Not an investment advice***
Volume Momentum [BackQuant]Volume Momentum
The Volume Momentum indicator is designed to help traders identify shifts in market momentum based on volume data. By analyzing the relative volume momentum, this indicator provides insights into whether the market is gaining strength (uptrend) or losing momentum (downtrend). The strategy uses a combination of percentile-based volume normalization, weighted moving averages (WMA), and exponential moving averages (EMA) to assess volume trends.
The system focuses on the relationship between price and volume, utilizing normalized volume data to highlight key market changes. This approach allows traders to focus on volume-driven price movements, helping them to capture momentum shifts early.
Key Features
1. Volume Normalization and Percentile Calculation:
The signed volume (positive when the close is higher than the open, negative when the close is lower) is normalized against the rolling average volume. This normalized volume is then subjected to a percentile interpolation, allowing for a robust statistical measure of how the current volume compares to historical data. The percentile level is customizable, with 50 representing the median.
2. Weighted and Smoothed Moving Averages for Trend Detection:
The normalized volume is smoothed using weighted moving averages (WMA) and exponential moving averages (EMA). These smoothing techniques help eliminate noise, providing a clearer view of the underlying momentum. The WMA filters out short-term fluctuations, while the EMA ensures that the most recent data points have a higher weight, making the system more responsive to current market conditions.
3. Trend Reversal Detection:
The indicator detects momentum shifts by evaluating whether the volume momentum crosses above or below zero. A positive volume momentum indicates a potential uptrend, while a negative momentum suggests a possible downtrend. These trend reversals are identified through crossover and crossunder conditions, triggering alerts when significant changes occur.
4. Dynamic Trend Background and Bar Coloring:
The script offers customizable background coloring based on the trend direction. When volume momentum is positive, the background is colored green, indicating a bullish trend. When volume momentum is negative, the background is colored red, signaling a bearish trend. Additionally, the bars themselves can be colored based on the trend, further helping traders quickly visualize market momentum.
5. Alerts for Momentum Shifts:
The system provides real-time alerts for traders to monitor when volume momentum crosses a critical threshold (zero), signaling a trend reversal. The alerts notify traders when the market momentum turns bullish or bearish, assisting them in making timely decisions.
6. Customizable Parameters for Flexible Usage:
Users can fine-tune the behavior of the indicator by adjusting various parameters:
Volume Rolling Mean: The period used to calculate the average volume for normalization.
Percentile Interpolation Length: Defines the range over which the percentile is calculated.
Percentile Level: Determines the percentile threshold (e.g., 50 for the median).
WMA and Smoothing Periods: Control the smoothing and response time of the indicator.
7. Trend Background Visualization and Trend-Based Bar Coloring:
The background fill is shaded according to whether the volume momentum is positive or negative, providing a visual cue to indicate market strength. Additionally, bars can be color-coded to highlight the trend, making it easier to see the trend’s direction without needing to analyze numerical data manually.
8. Note on Mean-Reversion Strategy:
If you take the inverse of the signals, this indicator can be adapted for a mean-reversion strategy. Instead of following the trend, the strategy would involve buying assets that are underperforming and selling assets that are overperforming, based on volume momentum. However, it’s important to note that this approach may not work effectively on highly correlated assets, as their price movements may be too similar, reducing the effectiveness of the mean-reversion strategy.
Final Thoughts
The Volume Momentum indicator offers a comprehensive approach to analyzing volume-based momentum shifts in the market. By using volume normalization, percentile interpolation, and smoothed moving averages, this system helps identify the strength and direction of market trends. Whether used for trend-following or adapted for mean-reversion, this tool provides traders with actionable insights into the market’s volume-driven movements, improving decision-making and portfolio management.
Supply & Demand Zones - [RealFact]Supply & Demand Zones -
This indicator automatically detects potential Supply and Demand Zones based on price action characteristics such as imbalance, engulfing patterns, and structural shifts. It’s designed to help traders identify key areas of interest where price is likely to react.
🔍 Features:
• Auto-detection of Demand (support) and Supply (resistance) zones
• Adjustable zone length
• Color-coded: Green for Demand zones, Red for Supply zones
🧠 Ideal For:
• Price Action Traders
• Order Block and Smart Money Strategy Users
• Those trading using FVG or structural break models
⚠️ Note:
This tool is intended for visual aid and market context analysis, not as a direct buy/sell signal. Always use it alongside your trading system and risk management plan.
✅ Created by
PriceLevels GBHOW-TO: Goldbach Price Levels – Identify Algorithmic Key Zones
This open-source indicator highlights specific price levels ending with numbers like 03, 11, 29, 35, 65, and 71.
These values are often observed at key reversal or hesitation points and may align with algorithmic behavior patterns in the market.
What it does:
– Automatically scans and marks horizontal price levels containing these number endings
– You can toggle visibility for each number type
– Each level can have a custom color and line thickness
– Labels show price values at the end of each line
– Label color and transparency are fully customizable to match dark or light chart styles
This tool is designed to help traders visually spot recurring patterns that might otherwise go unnoticed.
It’s ideal for discretionary traders who want to study market structure through static price references.
This script is open-source and published for educational use.
For feedback or improvements, feel free to reach out via private message on TradingView.
Sigmoid Trend Confidence Oscillator (STCO)Overview:
The Sigmoid Trend Confidence Oscillator (STCO) is a multi-length momentum indicator that combines Rate of Change (ROC) and Momentum (MOM) signals across short, medium, and long-term periods. It applies a sigmoid function to normalize and smooth these signals, producing a clear oscillator that reflects the confidence level in the current trend.
Key Features:
Combines ROC and MOM from three user-defined timeframes
Applies sigmoid normalization to scale values between -1 and +1
Customizable weighting presets to emphasize different length horizons
Optional smoothing using various moving average types (SMA, EMA, VWMA, WMA, HMA, RMA, TEMA, DEMA, FRAMA, TRIMA)
Threshold-based trend states indicating bullish, bearish, or neutral conditions
Optional candle coloring based on trend state for easy visualization
Clear plots including oscillator line, histogram, zero line, and threshold lines
How to Use:
Adjust weighting presets to fit your trading horizon and style
Enable smoothing to reduce noise on lower timeframes
Enable candle coloring for quick visual cues on price chart
Disclaimer
Disclaimer: This indicator is provided for educational and informational purposes only and does not constitute investment advice. Trading involves risk and may result in financial loss. Always perform your own research and consult with a qualified financial advisor before making any trading decisions.
Bilateral Filter For Loop [BackQuant]Bilateral Filter For Loop
The Bilateral Filter For Loop is an advanced technical indicator designed to filter out market noise and smooth out price data, thus improving the identification of underlying market trends. It employs a bilateral filter, which is a sophisticated non-linear filter commonly used in image processing and price time series analysis. By considering both spatial and range differences between price points, this filter is highly effective at preserving significant trends while reducing random fluctuations, ultimately making it suitable for dynamic trend-following strategies.
Please take the time to read the following:
Key Features
1. Bilateral Filter Calculation:
The bilateral filter is the core of this indicator and works by applying a weight to each data point based on two factors: spatial distance and price range difference. This dual weighting process allows the filter to preserve important price movements while reducing the impact of less relevant fluctuations. The filter uses two primary parameters:
Spatial Sigma (σ_d): This parameter adjusts the weight applied based on the distance of each price point from the current price. A larger spatial sigma means more smoothing, as further away values will contribute more heavily to the result.
Range Sigma (σ_r): This parameter controls how much weight is applied based on the difference in price values. Larger price differences result in smaller weights, while similar price values result in larger weights, thereby preserving the trend while filtering out noise.
The output of this filter is a smoothed version of the original price series, which eliminates short-term fluctuations, helping traders focus on longer-term trends. The bilateral filter is applied over a rolling window, adjusting the level of smoothing dynamically based on both the distance between values and their relative price movements.
2. For Loop Calculation for Trend Scoring:
A for-loop is used to calculate the trend score based on the filtered price data. The loop compares the current value to previous values within the specified window, scoring the trend as follows:
+1 for upward movement (when the filtered value is greater than the previous value).
-1 for downward movement (when the filtered value is less than the previous value).
The cumulative result of this loop gives a continuous trend score, which serves as a directional indicator for the market's momentum. By summing the scores over the window period, the loop provides an aggregate value that reflects the overall trend strength. This score helps determine whether the market is experiencing a strong uptrend, downtrend, or sideways movement.
3. Long and Short Conditions:
Once the trend score has been calculated, it is compared against predefined threshold levels:
A long signal is generated when the trend score exceeds the upper threshold, indicating that the market is in a strong uptrend.
A short signal is generated when the trend score crosses below the lower threshold, signaling a potential downtrend or trend reversal.
These conditions provide clear signals for potential entry points, and the color-coding helps traders quickly identify market direction:
Long signals are displayed in green.
Short signals are displayed in red.
These signals are designed to provide high-confidence entries for trend-following strategies, helping traders capture profitable movements in the market.
4. Trend Background and Bar Coloring:
The script offers customizable visual settings to enhance the clarity of the trend signals. Traders can choose to:
Color the bars based on the trend direction: Bars are colored green for long signals and red for short signals.
Change the background color to provide additional context: The background will be shaded green for a bullish trend and red for a bearish trend. This visual feedback helps traders to stay aligned with the prevailing market sentiment.
These features offer a quick visual reference for understanding the market's direction, making it easier for traders to identify when to enter or exit positions.
5. Threshold Lines for Visual Feedback:
Threshold lines are plotted on the chart to represent the predefined long and short levels. These lines act as clear markers for when the market reaches a critical threshold, triggering a potential buy (long) or sell (short) signal. By showing these threshold lines on the chart, traders can quickly gauge the strength of the market and assess whether the trend is strong enough to warrant action.
These thresholds can be adjusted based on the trader's preferences, allowing them to fine-tune the indicator for different market conditions or asset behaviors.
6. Customizable Parameters for Flexibility:
The indicator offers several parameters that can be adjusted to suit individual trading preferences:
Window Period (Bilateral Filter): The window size determines how many past price values are used to calculate the bilateral filter. A larger window increases smoothing, while a smaller window results in more responsive, but noisier, data.
Spatial Sigma (σ_d) and Range Sigma (σ_r): These values control how sensitive the filter is to price changes and the distance between data points. Fine-tuning these parameters allows traders to adjust the degree of noise reduction applied to the price series.
Threshold Levels: The upper and lower thresholds determine when the trend score crosses into long or short territory. These levels can be customized to better match the trader's risk tolerance or asset characteristics.
Visual Settings: Traders can customize the appearance of the chart, including the line width of trend signals, bar colors, and background shading, to make the indicator more readable and aligned with their charting style.
7. Alerts for Trend Reversals:
The indicator includes alert conditions for real-time notifications when the market crosses the defined thresholds. Traders can set alerts to be notified when:
The trend score crosses the long threshold, signaling an uptrend.
The trend score crosses the short threshold, signaling a downtrend.
These alerts provide timely information, allowing traders to take immediate action when the market shows a significant change in direction.
Final Thoughts
The Bilateral Filter For Loop indicator is a robust tool for trend-following traders who wish to reduce market noise and focus on the underlying trend. By applying the bilateral filter and calculating trend scores, this indicator helps traders identify strong uptrends and downtrends, providing reliable entry signals with minimal market noise. The customizable parameters, visual feedback, and alerting system make it a versatile tool for traders seeking to improve their timing and capture profitable market movements.
Thus following all of the key points here are some sample backtests on the 1D Chart
Disclaimer: Backtests are based off past results, and are not indicative of the future.
INDEX:BTCUSD
INDEX:ETHUSD
CRYPTO:SOLUSD
Avions Ultimate indicator70% wr backtest it yourself. works best on bitcoin 30m timeframe works the best for me
Babil34 Comparative Average PanelBabil34 Comparative Average Panel is an advanced moving averages dashboard that allows you to add and compare up to 5 EMAs, 5 DEMAs, and 5 SMAs simultaneously.
You can independently set the period, source, and timeframe for each average. With its colorful table and optional labels, you can easily observe the differences, trend changes, and crossovers between all averages at a glance.
It is suitable for both short-term and long-term strategies and lets you monitor multiple averages side by side.
Key Features:
Support for up to 5 independent EMAs, 5 DEMAs, and 5 SMAs
Multi-timeframe and multi-source selection
Clean, colorful table visualization
Toggleable labels and table for flexibility
Compatible with all markets and timeframes
Enhanced visual and technical analysis
This panel is specifically designed for traders who want to compare different types and periods of moving averages at a glance.
OBHOW-TO: Advanced Order Block & Liquidity Mapping Tool
This script combines order block detection using 3- and 5-bar fractal structures with dynamic and static liquidity zones, plus optional time-based label calculations.
Key features:
– Fractal-based detection of bullish and bearish order blocks
– Automatic removal of broken OBs to keep charts clean
– Optional FVG validation for higher-quality OBs
– Custom time label logic for bar/session analysis
– Configurable visuals: line styles, widths, label placement, and time offsets
The logic for liquidity detection is adapted from the open-source LiquidityFinderLibrary by TFlab. This version adds custom cleanup behavior and visual enhancements to improve usability.
This script is published as open-source and intended for educational and analytical use only. No performance guarantees are implied.
If you have questions or suggestions, feel free to message me privately on TradingView.
Market Zone Analyzer[BullByte]Understanding the Market Zone Analyzer
---
1. Purpose of the Indicator
The Market Zone Analyzer is a Pine Script™ (version 6) indicator designed to streamline market analysis on TradingView. Rather than scanning multiple separate tools, it unifies four core dimensions—trend strength, momentum, price action, and market activity—into a single, consolidated view. By doing so, it helps traders:
• Save time by avoiding manual cross-referencing of disparate signals.
• Reduce decision-making errors that can arise from juggling multiple indicators.
• Gain a clear, reliable read on whether the market is in a bullish, bearish, or sideways phase, so they can more confidently decide to enter, exit, or hold a position.
---
2. Why a Trader Should Use It
• Unified View: Combines all essential market dimensions into one easy-to-read score and dashboard, eliminating the need to piece together signals manually.
• Adaptability: Automatically adjusts its internal weighting for trend, momentum, and price action based on current volatility. Whether markets are choppy or calm, the indicator remains relevant.
• Ease of Interpretation: Outputs a simple “BULLISH,” “BEARISH,” or “SIDEWAYS” label, supplemented by an intuitive on-chart dashboard and an oscillator plot that visually highlights market direction.
• Reliability Features: Built-in smoothing of the net score and hysteresis logic (requiring consecutive confirmations before flips) minimize false signals during noisy or range-bound phases.
---
3. Why These Specific Indicators?
This script relies on a curated set of well-established technical tools, each chosen for its particular strength in measuring one of the four core dimensions:
1. Trend Strength:
• ADX/DMI (Average Directional Index / Directional Movement Index): Measures how strong a trend is, and whether the +DI line is above the –DI line (bullish) or vice versa (bearish).
• Moving Average Slope (Fast MA vs. Slow MA): Compares a shorter-period SMA to a longer-period SMA; if the fast MA sits above the slow MA, it confirms an uptrend, and vice versa for a downtrend.
• Ichimoku Cloud Differential (Senkou A vs. Senkou B): Provides a forward-looking view of trend direction; Senkou A above Senkou B signals bullishness, and the opposite signals bearishness.
2. Momentum:
• Relative Strength Index (RSI): Identifies overbought (above its dynamically calculated upper bound) or oversold (below its lower bound) conditions; changes in RSI often precede price reversals.
• Stochastic %K: Highlights shifts in short-term momentum by comparing closing price to the recent high/low range; values above its upper band signal bullish momentum, below its lower band signal bearish momentum.
• MACD Histogram: Measures the difference between the MACD line and its signal line; a positive histogram indicates upward momentum, a negative histogram indicates downward momentum.
3. Price Action:
• Highest High / Lowest Low (HH/LL) Range: Over a defined lookback period, this captures breakout or breakdown levels. A closing price near the recent highs (with a positive MA slope) yields a bullish score, and near the lows (with a negative MA slope) yields a bearish score.
• Heikin-Ashi Doji Detection: Uses Heikin-Ashi candles to identify indecision or continuation patterns. A small Heikin-Ashi body (doji) relative to recent volatility is scored as neutral; a larger body in the direction of the MA slope is scored bullish or bearish.
• Candle Range Measurement: Compares each candle’s high-low range against its own dynamic band (average range ± standard deviation). Large candles aligning with the prevailing trend score bullish or bearish accordingly; unusually small candles can indicate exhaustion or consolidation.
4. Market Activity:
• Bollinger Bands Width (BBW): Measures the distance between BB upper and lower bands; wide bands indicate high volatility, narrow bands indicate low volatility.
• Average True Range (ATR): Quantifies average price movement (volatility). A sudden spike in ATR suggests a volatile environment, while a contraction suggests calm.
• Keltner Channels Width (KCW): Similar to BBW but uses ATR around an EMA. Provides a second layer of volatility context, confirming or contrasting BBW readings.
• Volume (with Moving Average): Compares current volume to its moving average ± standard deviation. High volume validates strong moves; low volume signals potential lack of conviction.
By combining these tools, the indicator captures trend direction, momentum strength, price-action nuances, and overall market energy, yielding a more balanced and comprehensive assessment than any single tool alone.
---
4. What Makes This Indicator Stand Out
• Multi-Dimensional Analysis: Rather than relying on a lone oscillator or moving average crossover, it simultaneously evaluates trend, momentum, price action, and activity.
• Dynamic Weighting: The relative importance of trend, momentum, and price action adjusts automatically based on real-time volatility (Market Activity State). For example, in highly volatile conditions, trend and momentum signals carry more weight; in calm markets, price action signals are prioritized.
• Stability Mechanisms:
• Smoothing: The net score is passed through a short moving average, filtering out noise, especially on lower timeframes.
• Hysteresis: Both Market Activity State and the final bullish/bearish/sideways zone require two consecutive confirmations before flipping, reducing whipsaw.
• Visual Interpretation: A fully customizable on-chart dashboard displays each sub-indicator’s value, regime, score, and comment, all color-coded. The oscillator plot changes color to reflect the current market zone (green for bullish, red for bearish, gray for sideways) and shows horizontal threshold lines at +2, 0, and –2.
---
5. Recommended Timeframes
• Short-Term (5 min, 15 min): Day traders and scalpers can benefit from rapid signals, but should enable smoothing (and possibly disable hysteresis) to reduce false whipsaws.
• Medium-Term (1 h, 4 h): Swing traders find a balance between responsiveness and reliability. Less smoothing is required here, and the default parameters (e.g., ADX length = 14, RSI length = 14) perform well.
• Long-Term (Daily, Weekly): Position traders tracking major trends can disable smoothing for immediate raw readings, since higher-timeframe noise is minimal. Adjust lookback lengths (e.g., increase adxLength, rsiLength) if desired for slower signals.
Tip: If you keep smoothing off, stick to timeframes of 1 h or higher to avoid excessive signal “chatter.”
---
6. How Scoring Works
A. Individual Indicator Scores
Each sub-indicator is assigned one of three discrete scores:
• +1 if it indicates a bullish condition (e.g., RSI above its dynamically calculated upper bound).
• 0 if it is neutral (e.g., RSI between upper and lower bounds).
• –1 if it indicates a bearish condition (e.g., RSI below its dynamically calculated lower bound).
Examples of individual score assignments:
• ADX/DMI:
• +1 if ADX ≥ adxThreshold and +DI > –DI (strong bullish trend)
• –1 if ADX ≥ adxThreshold and –DI > +DI (strong bearish trend)
• 0 if ADX < adxThreshold (trend strength below threshold)
• RSI:
• +1 if RSI > RSI_upperBound
• –1 if RSI < RSI_lowerBound
• 0 otherwise
• ATR (as part of Market Activity):
• +1 if ATR > (ATR_MA + stdev(ATR))
• –1 if ATR < (ATR_MA – stdev(ATR))
• 0 otherwise
Each of the four main categories shares this same +1/0/–1 logic across their sub-components.
B. Category Scores
Once each sub-indicator reports +1, 0, or –1, these are summed within their categories as follows:
• Trend Score = (ADX score) + (MA slope score) + (Ichimoku differential score)
• Momentum Score = (RSI score) + (Stochastic %K score) + (MACD histogram score)
• Price Action Score = (Highest-High/Lowest-Low score) + (Heikin-Ashi doji score) + (Candle range score)
• Market Activity Raw Score = (BBW score) + (ATR score) + (KC width score) + (Volume score)
Each category’s summed value can range between –3 and +3 (for Trend, Momentum, and Price Action), and between –4 and +4 for Market Activity raw.
C. Market Activity State and Dynamic Weight Adjustments
Rather than contributing directly to the netScore like the other three categories, Market Activity determines how much weight to assign to Trend, Momentum, and Price Action:
1. Compute Market Activity Raw Score by summing BBW, ATR, KCW, and Volume individual scores (each +1/0/–1).
2. Bucket into High, Medium, or Low Activity:
• High if raw Score ≥ 2 (volatile market).
• Low if raw Score ≤ –2 (calm market).
• Medium otherwise.
3. Apply Hysteresis (if enabled): The state only flips after two consecutive bars register the same high/low/medium label.
4. Set Category Weights:
• High Activity: Trend = 50 %, Momentum = 35 %, Price Action = 15 %.
• Low Activity: Trend = 25 %, Momentum = 20 %, Price Action = 55 %.
• Medium Activity: Use the trader’s base weight inputs (e.g., Trend = 40 %, Momentum = 30 %, Price Action = 30 % by default).
D. Calculating the Net Score
5. Normalize Base Weights (so that the sum of Trend + Momentum + Price Action always equals 100 %).
6. Determine Current Weights based on the Market Activity State (High/Medium/Low).
7. Compute Each Category’s Contribution: Multiply (categoryScore) × (currentWeight).
8. Sum Contributions to get the raw netScore (a floating-point value that can exceed ±3 when scores are strong).
9. Smooth the netScore over two bars (if smoothing is enabled) to reduce noise.
10. Apply Hysteresis to the Final Zone:
• If the smoothed netScore ≥ +2, the bar is classified as “Bullish.”
• If the smoothed netScore ≤ –2, the bar is classified as “Bearish.”
• Otherwise, it is “Sideways.”
• To prevent rapid flips, the script requires two consecutive bars in the new zone before officially changing the displayed zone (if hysteresis is on).
E. Thresholds for Zone Classification
• BULLISH: netScore ≥ +2
• BEARISH: netScore ≤ –2
• SIDEWAYS: –2 < netScore < +2
---
7. Role of Volatility (Market Activity State) in Scoring
Volatility acts as a dynamic switch that shifts which category carries the most influence:
1. High Activity (Volatile):
• Detected when at least two sub-scores out of BBW, ATR, KCW, and Volume equal +1.
• The script sets Trend weight = 50 % and Momentum weight = 35 %. Price Action weight is minimized at 15 %.
• Rationale: In volatile markets, strong trending moves and momentum surges dominate, so those signals are more reliable than nuanced candle patterns.
2. Low Activity (Calm):
• Detected when at least two sub-scores out of BBW, ATR, KCW, and Volume equal –1.
• The script sets Price Action weight = 55 %, Trend = 25 %, and Momentum = 20 %.
• Rationale: In quiet, sideways markets, subtle price-action signals (breakouts, doji patterns, small-range candles) are often the best early indicators of a new move.
3. Medium Activity (Balanced):
• Raw Score between –1 and +1 from the four volatility metrics.
• Uses whatever base weights the trader has specified (e.g., Trend = 40 %, Momentum = 30 %, Price Action = 30 %).
Because volatility can fluctuate rapidly, the script employs hysteresis on Market Activity State: a new High or Low state must occur on two consecutive bars before weights actually shift. This avoids constant back-and-forth weight changes and provides more stability.
---
8. Scoring Example (Hypothetical Scenario)
• Symbol: Bitcoin on a 1-hour chart.
• Market Activity: Raw volatility sub-scores show BBW (+1), ATR (+1), KCW (0), Volume (+1) → Total raw Score = +3 → High Activity.
• Weights Selected: Trend = 50 %, Momentum = 35 %, Price Action = 15 %.
• Trend Signals:
• ADX strong and +DI > –DI → +1
• Fast MA above Slow MA → +1
• Ichimoku Senkou A > Senkou B → +1
→ Trend Score = +3
• Momentum Signals:
• RSI above upper bound → +1
• MACD histogram positive → +1
• Stochastic %K within neutral zone → 0
→ Momentum Score = +2
• Price Action Signals:
• Highest High/Lowest Low check yields 0 (close not near extremes)
• Heikin-Ashi doji reading is neutral → 0
• Candle range slightly above upper bound but trend is strong, so → +1
→ Price Action Score = +1
• Compute Net Score (before smoothing):
• Trend contribution = 3 × 0.50 = 1.50
• Momentum contribution = 2 × 0.35 = 0.70
• Price Action contribution = 1 × 0.15 = 0.15
• Raw netScore = 1.50 + 0.70 + 0.15 = 2.35
• Since 2.35 ≥ +2 and hysteresis is met, the final zone is “Bullish.”
Although the netScore lands at 2.35 (Bullish), smoothing might bring it slightly below 2.00 on the first bar (e.g., 1.90), in which case the script would wait for a second consecutive reading above +2 before officially classifying the zone as Bullish (if hysteresis is enabled).
---
9. Correlation Between Categories
The four categories—Trend Strength, Momentum, Price Action, and Market Activity—often reinforce or offset one another. The script takes advantage of these natural correlations:
• Bullish Alignment: If ADX is strong and pointed upward, fast MA is above slow MA, and Ichimoku is positive, that usually coincides with RSI climbing above its upper bound and the MACD histogram turning positive. In such cases, both Trend and Momentum categories generate +1 or +2. Because the Market Activity State is likely High (given the accompanying volatility), Trend and Momentum weights are at their peak, so the netScore quickly crosses into Bullish territory.
• Sideways/Consolidation: During a low-volatility, sideways phase, ADX may fall below its threshold, MAs may flatten, and RSI might hover in the neutral band. However, subtle price-action signals (like a small breakout candle or a Heikin-Ashi candle with a slight bias) can still produce a +1 in the Price Action category. If Market Activity is Low, Price Action’s weight (55 %) can carry enough influence—even if Trend and Momentum are neutral—to push the netScore out of “Sideways” into a mild bullish or bearish bias.
• Opposing Signals: When Trend is bullish but Momentum turns negative (for example, price continues up but RSI rolls over), the two scores can partially cancel. Market Activity may remain Medium, in which case the netScore lingers near zero (Sideways). The trader can then wait for either a clearer momentum shift or a fresh price-action breakout before committing.
By dynamically recognizing these correlations and adjusting weights, the indicator ensures that:
• When Trend and Momentum align (and volatility supports it), the netScore leaps strongly into Bullish or Bearish.
• When Trend is neutral but Price Action shows an early move in a low-volatility environment, Price Action’s extra weight in the Low Activity State can still produce actionable signals.
---
10. Market Activity State & Its Role (Detailed)
The Market Activity State is not a direct category score—it is an overarching context setter for how heavily to trust Trend, Momentum, or Price Action. Here’s how it is derived and applied:
1. Calculate Four Volatility Sub-Scores:
• BBW: Compare the current band width to its own moving average ± standard deviation. If BBW > (BBW_MA + stdev), assign +1 (high volatility); if BBW < (BBW_MA × 0.5), assign –1 (low volatility); else 0.
• ATR: Compare ATR to its moving average ± standard deviation. A spike above the upper threshold is +1; a contraction below the lower threshold is –1; otherwise 0.
• KCW: Same logic as ATR but around the KCW mean.
• Volume: Compare current volume to its volume MA ± standard deviation. Above the upper threshold is +1; below the lower threshold is –1; else 0.
2. Sum Sub-Scores → Raw Market Activity Score: Range between –4 and +4.
3. Assign Market Activity State:
• High Activity: Raw Score ≥ +2 (at least two volatility metrics are strongly spiking).
• Low Activity: Raw Score ≤ –2 (at least two metrics signal unusually low volatility or thin volume).
• Medium Activity: Raw Score is between –1 and +1 inclusive.
4. Hysteresis for Stability:
• If hysteresis is enabled, a new state only takes hold after two consecutive bars confirm the same High, Medium, or Low label.
• This prevents the Market Activity State from bouncing around when volatility is on the fence.
5. Set Category Weights Based on Activity State:
• High Activity: Trend = 50 %, Momentum = 35 %, Price Action = 15 %.
• Low Activity: Trend = 25 %, Momentum = 20 %, Price Action = 55 %.
• Medium Activity: Use trader’s base weights (e.g., Trend = 40 %, Momentum = 30 %, Price Action = 30 %).
6. Impact on netScore: Because category scores (–3 to +3) multiply by these weights, High Activity amplifies the effect of strong Trend and Momentum scores; Low Activity amplifies the effect of Price Action.
7. Market Context Tooltip: The dashboard includes a tooltip summarizing the current state—e.g., “High activity, trend and momentum prioritized,” “Low activity, price action prioritized,” or “Balanced market, all categories considered.”
---
11. Category Weights: Base vs. Dynamic
Traders begin by specifying base weights for Trend Strength, Momentum, and Price Action that sum to 100 %. These apply only when volatility is in the Medium band. Once volatility shifts:
• High Volatility Overrides:
• Trend jumps from its base (e.g., 40 %) to 50 %.
• Momentum jumps from its base (e.g., 30 %) to 35 %.
• Price Action is reduced to 15 %.
Example: If base weights were Trend = 40 %, Momentum = 30 %, Price Action = 30 %, then in High Activity they become 50/35/15. A Trend score of +3 now contributes 3 × 0.50 = +1.50 to netScore; a Momentum +2 contributes 2 × 0.35 = +0.70. In total, Trend + Momentum can easily push netScore above the +2 threshold on its own.
• Low Volatility Overrides:
• Price Action leaps from its base (30 %) to 55 %.
• Trend falls to 25 %, Momentum falls to 20 %.
Why? When markets are quiet, subtle candle breakouts, doji patterns, and small-range expansions tend to foreshadow the next swing more effectively than raw trend readings. A Price Action score of +3 in this state contributes 3 × 0.55 = +1.65, which can carry the netScore toward +2—even if Trend and Momentum are neutral or only mildly positive.
Because these weight shifts happen only after two consecutive bars confirm a High or Low state (if hysteresis is on), the indicator avoids constantly flipping its emphasis during borderline volatility phases.
---
12. Dominant Category Explained
Within the dashboard, a label such as “Trend Dominant,” “Momentum Dominant,” or “Price Action Dominant” appears when one category’s absolute weighted contribution to netScore is the largest. Concretely:
• Compute each category’s weighted contribution = (raw category score) × (current weight).
• Compare the absolute values of those three contributions.
• The category with the highest absolute value is flagged as Dominant for that bar.
Why It Matters:
• Momentum Dominant: Indicates that the combined force of RSI, Stochastic, and MACD (after weighting) is pushing netScore farther than either Trend or Price Action. In practice, it means that short-term sentiment and speed of change are the primary drivers right now, so traders should watch for continued momentum signals before committing to a trade.
• Trend Dominant: Means ADX, MA slope, and Ichimoku (once weighted) outweigh the other categories. This suggests a strong directional move is in place; trend-following entries or confirming pullbacks are likely to succeed.
• Price Action Dominant: Occurs when breakout/breakdown patterns, Heikin-Ashi candle readings, and range expansions (after weighting) are the most influential. This often happens in calmer markets, where subtle shifts in candle structure can foreshadow bigger moves.
By explicitly calling out which category is carrying the most weight at any moment, the dashboard gives traders immediate insight into why the netScore is tilting toward bullish, bearish, or sideways.
---
13. Oscillator Plot: How to Read It
The “Net Score” oscillator sits below the dashboard and visually displays the smoothed netScore as a line graph. Key features:
1. Value Range: In normal conditions it oscillates roughly between –3 and +3, but extreme confluences can push it outside that range.
2. Horizontal Threshold Lines:
• +2 Line (Bullish threshold)
• 0 Line (Neutral midline)
• –2 Line (Bearish threshold)
3. Zone Coloring:
• Green Background (Bullish Zone): When netScore ≥ +2.
• Red Background (Bearish Zone): When netScore ≤ –2.
• Gray Background (Sideways Zone): When –2 < netScore < +2.
4. Dynamic Line Color:
• The plotted netScore line itself is colored green in a Bullish Zone, red in a Bearish Zone, or gray in a Sideways Zone, creating an immediate visual cue.
Interpretation Tips:
• Crossing Above +2: Signals a strong enough combined trend/momentum/price-action reading to classify as Bullish. Many traders wait for a clear crossing plus a confirmation candle before entering a long position.
• Crossing Below –2: Indicates a strong Bearish signal. Traders may consider short or exit strategies.
• Rising Slope, Even Below +2: If netScore climbs steadily from neutral toward +2, it demonstrates building bullish momentum.
• Divergence: If price makes a higher high but the oscillator fails to reach a new high, it can warn of weakening momentum and a potential reversal.
---
14. Comments and Their Necessity
Every sub-indicator (ADX, MA slope, Ichimoku, RSI, Stochastic, MACD, HH/LL, Heikin-Ashi, Candle Range, BBW, ATR, KCW, Volume) generates a short comment that appears in the detailed dashboard. Examples:
• “Strong bullish trend” or “Strong bearish trend” for ADX/DMI
• “Fast MA above slow MA” or “Fast MA below slow MA” for MA slope
• “RSI above dynamic threshold” or “RSI below dynamic threshold” for RSI
• “MACD histogram positive” or “MACD histogram negative” for MACD Hist
• “Price near highs” or “Price near lows” for HH/LL checks
• “Bullish Heikin Ashi” or “Bearish Heikin Ashi” for HA Doji scoring
• “Large range, trend confirmed” or “Small range, trend contradicted” for Candle Range
Additionally, the top-row comment for each category is:
• Trend: “Highly Bullish,” “Highly Bearish,” or “Neutral Trend.”
• Momentum: “Strong Momentum,” “Weak Momentum,” or “Neutral Momentum.”
• Price Action: “Bullish Action,” “Bearish Action,” or “Neutral Action.”
• Market Activity: “Volatile Market,” “Calm Market,” or “Stable Market.”
Reasons for These Comments:
• Transparency: Shows exactly how each sub-indicator contributed to its category score.
• Education: Helps traders learn why a category is labeled bullish, bearish, or neutral, building intuition over time.
• Customization: If, for example, the RSI comment says “RSI neutral” despite an impending trend shift, a trader might choose to adjust RSI length or thresholds.
In the detailed dashboard, hovering over each comment cell also reveals a tooltip with additional context (e.g., “Fast MA above slow MA” or “Senkou A above Senkou B”), helping traders understand the precise rule behind that +1, 0, or –1 assignment.
---
15. Real-Life Example (Consolidated)
• Instrument & Timeframe: Bitcoin (BTCUSD), 1-hour chart.
• Current Market Activity: BBW and ATR both spike (+1 each), KCW is moderately high (+1), but volume is only neutral (0) → Raw Market Activity Score = +2 → State = High Activity (after two bars, if hysteresis is on).
• Category Weights Applied: Trend = 50 %, Momentum = 35 %, Price Action = 15 %.
• Trend Sub-Scores:
1. ADX = 25 (above threshold 20) with +DI > –DI → +1.
2. Fast MA (20-period) sits above Slow MA (50-period) → +1.
3. Ichimoku: Senkou A > Senkou B → +1.
→ Trend Score = +3.
• Momentum Sub-Scores:
4. RSI = 75 (above its moving average +1 stdev) → +1.
5. MACD histogram = +0.15 → +1.
6. Stochastic %K = 50 (mid-range) → 0.
→ Momentum Score = +2.
• Price Action Sub-Scores:
7. Price is not within 1 % of the 20-period high/low and slope = positive → 0.
8. Heikin-Ashi body is slightly larger than stdev over last 5 bars with haClose > haOpen → +1.
9. Candle range is just above its dynamic upper bound but trend is already captured, so → +1.
→ Price Action Score = +2.
• Calculate netScore (before smoothing):
• Trend contribution = 3 × 0.50 = 1.50
• Momentum contribution = 2 × 0.35 = 0.70
• Price Action contribution = 2 × 0.15 = 0.30
• Raw netScore = 1.50 + 0.70 + 0.30 = 2.50 → Immediately classified as Bullish.
• Oscillator & Dashboard Output:
• The oscillator line crosses above +2 and turns green.
• Dashboard displays:
• Trend Regime “BULLISH,” Trend Score = 3, Comment = “Highly Bullish.”
• Momentum Regime “BULLISH,” Momentum Score = 2, Comment = “Strong Momentum.”
• Price Action Regime “BULLISH,” Price Action Score = 2, Comment = “Bullish Action.”
• Market Activity State “High,” Comment = “Volatile Market.”
• Weights: Trend 50 %, Momentum 35 %, Price Action 15 %.
• Dominant Category: Trend (because 1.50 > 0.70 > 0.30).
• Overall Score: 2.50, posCount = (three +1s in Trend) + (two +1s in Momentum) + (two +1s in Price Action) = 7 bullish signals, negCount = 0.
• Final Zone = “BULLISH.”
• The trader sees that both Trend and Momentum are reinforcing each other under high volatility. They might wait one more candle for confirmation but already have strong evidence to consider a long.
---
• .
---
Disclaimer
This indicator is strictly a technical analysis tool and does not constitute financial advice. All trading involves risk, including potential loss of capital. Past performance is not indicative of future results. Traders should:
• Always backtest the “Market Zone Analyzer ” on their chosen symbols and timeframes before committing real capital.
• Combine this tool with sound risk management, position sizing, and, if possible, fundamental analysis.
• Understand that no indicator is foolproof; always be prepared for unexpected market moves.
Goodluck
-BullByte!
---
Mariam Market DashboardMariam Market Dashboard – A Quick Guide
Purpose:
Shows if the market is trending, volatile, or stuck so you can decide when to trade or wait.
How to Use
Add the indicator to your chart. Adjust basic settings like EMA, RSI, ATR lengths, and timezone if needed. Use it before entering any trade to confirm market conditions.
What Each Metric Means (with general ranges)
Session: Identifies which market session is active (New York, London, Tokyo).
Trend: Shows current market direction. “Up” means price above EMA and VWAP, “Down” means price below. Use this to confirm bullish or bearish bias.
HTF Trend: Confirms trend on a higher timeframe for stronger signals.
ATR (Average True Range): Measures market volatility or price movement speed.
Low ATR (e.g., below 0.5% of price) means quiet or slow market; high ATR (above 1% of price) means volatile or fast-moving market, good for active trades.
Strong Bar: A candlestick closing near its high (above 75% of range) indicates strong buying momentum; closing near its low indicates strong selling momentum.
Higher Volume: Volume higher than average (typically 10-20% above normal) means more market activity and stronger moves.
Volume / Avg Volume: Ratio above 1.2 (120%) shows volume is significantly higher than usual, signaling strong interest.
RVol % (Relative Volume %): Above 100% means volume is hotter than normal, increasing chances of strong moves; below 50% means low activity and possible indecision.
Delta: Difference between buying and selling volume (if available). A positive delta means buyers dominate; negative means sellers dominate.
ADX (Average Directional Index): Measures trend strength:
Below 20 means weak or no trend;
Above 25 means strong trend;
Between 20-25 is moderate trend.
RSI (Relative Strength Index): Momentum oscillator:
Below 30 = oversold (potential buy);
Above 70 = overbought (potential sell);
Between 40-60 means neutral momentum.
MACD: Confirms momentum direction:
Positive MACD histogram bars indicate bullish momentum;
Negative bars indicate bearish momentum.
Choppiness Index: Measures how much the market is ranging versus trending:
Above 60 = very choppy/sideways market;
Below 40 = trending market.
Consolidation: When true, price is stuck in a narrow range, signaling indecision. Avoid breakout trades during this.
Quick Trading Reminder
Trade only when the trend is clear and volume is above average. Avoid trading in low volume or choppy markets.
AD Pro//@version=5
indicator("AD Pro", overlay=true)
// === Inputs
atrLen = input.int(14, "ATR Length")
factor = input.float(0.7, "Factor")
slMultiplier = input.float(2.0, "SL Multiplier")
// Volatility Filter Input
atrFilterStrength = input.float(1.0, "Volatility Threshold (x Avg ATR)", step=0.1, minval=0.1)
// Min % Price Change Filter
enableMinMove = input.bool(true, "Enable Min % Price Change Filter")
lookbackBars = input.int(20, "Lookback Bars")
minMovePct = input.float(0.005, "Min % Price Change", step=0.001, minval=0)
// TP Buy colors
tp1BuyColor = input.color(color.lime, "TP1 Buy Color")
tp2BuyColor = input.color(color.green, "TP2 Buy Color")
tp3BuyColor = input.color(color.teal, "TP3 Buy Color")
// TP Sell colors
tp1SellColor = input.color(color.fuchsia, "TP1 Sell Color")
tp2SellColor = input.color(color.red, "TP2 Sell Color")
tp3SellColor = input.color(color.maroon, "TP3 Sell Color")
// SL colors
slBuyColor = input.color(color.blue, "SL Buy Color")
slSellColor = input.color(color.blue, "SL Sell Color")
// === Indicator Calculations
atr = ta.atr(atrLen)
avgATR = ta.sma(atr, 50)
atrCondition = atr > avgATR * atrFilterStrength
priceChange = math.abs(close - close ) / close
priceMoveOK = priceChange > minMovePct
priceChangeCondition = not enableMinMove or priceMoveOK
volatilityOK = atrCondition and priceChangeCondition
// === UT Bot Logic
src = close
var float trailPrice = na
var bool dirLong = true
longStop = src - factor * atr
shortStop = src + factor * atr
if na(trailPrice)
trailPrice := longStop
dirLong := true
else
if dirLong
trailPrice := math.max(trailPrice, longStop)
dirLong := src > trailPrice
else
trailPrice := math.min(trailPrice, shortStop)
dirLong := src > trailPrice
rawBuy = dirLong and not dirLong
rawSell = not dirLong and dirLong
// Apply Volatility Filter
buySignal = rawBuy and volatilityOK
sellSignal = rawSell and volatilityOK
// === Entry & Label Storage
var float entryPrice = na
var bool lastSignalIsBuy = na
var label tp1Lbl = na
var label tp2Lbl = na
var label tp3Lbl = na
var label slLbl = na
var line tp1Line = na
var line tp2Line = na
var line tp3Line = na
var line slLine = na
if buySignal or sellSignal
if not na(tp1Lbl)
label.delete(tp1Lbl)
if not na(tp2Lbl)
label.delete(tp2Lbl)
if not na(tp3Lbl)
label.delete(tp3Lbl)
if not na(slLbl)
label.delete(slLbl)
if not na(tp1Line)
line.delete(tp1Line)
if not na(tp2Line)
line.delete(tp2Line)
if not na(tp3Line)
line.delete(tp3Line)
if not na(slLine)
line.delete(slLine)
entryPrice := close
lastSignalIsBuy := buySignal
tp1 = entryPrice + (buySignal ? 1 : -1) * atr
tp2 = entryPrice + (buySignal ? 2 : -2) * atr
tp3 = entryPrice + (buySignal ? 3 : -3) * atr
sl = entryPrice - (buySignal ? 1 : -1) * factor * atr * slMultiplier
tp1Lbl := label.new(bar_index, tp1, "TP1 " + str.tostring(tp1, format.mintick),
style=label.style_label_right,
color=buySignal ? tp1BuyColor : tp1SellColor,
textcolor=color.black)
tp2Lbl := label.new(bar_index, tp2, "TP2 " + str.tostring(tp2, format.mintick),
style=label.style_label_right,
color=buySignal ? tp2BuyColor : tp2SellColor,
textcolor=color.white)
tp3Lbl := label.new(bar_index, tp3, "TP3 " + str.tostring(tp3, format.mintick),
style=label.style_label_right,
color=buySignal ? tp3BuyColor : tp3SellColor,
textcolor=color.white)
slLbl := label.new(bar_index, sl, "SL " + str.tostring(sl, format.mintick),
style=label.style_label_right,
color=buySignal ? slBuyColor : slSellColor,
textcolor=color.white)
tp1Line := line.new(bar_index, tp1, bar_index + 1, tp1,
color=buySignal ? tp1BuyColor : tp1SellColor, style=line.style_dashed)
tp2Line := line.new(bar_index, tp2, bar_index + 1, tp2,
color=buySignal ? tp2BuyColor : tp2SellColor, style=line.style_dashed)
tp3Line := line.new(bar_index, tp3, bar_index + 1, tp3,
color=buySignal ? tp3BuyColor : tp3SellColor, style=line.style_dashed)
slLine := line.new(bar_index, sl, bar_index + 1, sl,
color=buySignal ? slBuyColor : slSellColor, style=line.style_dashed)
// === Plot Signals
plotshape(buySignal, title="Buy", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignal, title="Sell", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// === Alerts
alertcondition(buySignal, title="Buy Alert", message="Buy Signal!")
alertcondition(sellSignal, title="Sell Alert", message="Sell Signal!")
RONALD SMA BUY and SELL Indicator//@version=6
indicator('RONALD SMA BUY and SELL Indicator', overlay=true, max_labels_count=500)
// 1. Instellingen met standaardwaarden
fastLength = input.int(3, 'Fast SMA Lengte', minval=1, tooltip='Kortere periode voor snellere SMA')
slowLength = input.int(40, 'Slow SMA Lengte', minval=1, tooltip='Langere periode voor tragere SMA')
signalColor = input.color(color.yellow, 'Signaalkleur', tooltip='Kleur voor alle signalen')
// 2. SMA berekeningen
fastSMA = ta.sma(close, fastLength)
slowSMA = ta.sma(close, slowLength)
// 3. Plot SMA lijnen
plot(fastSMA, 'Fast SMA', color.new(color.blue, 0), 2)
plot(slowSMA, 'Slow SMA', color.new(color.red, 0), 2)
// 4. Signaal detectie
bullish = ta.crossover(fastSMA, slowSMA)
bearish = ta.crossunder(fastSMA, slowSMA)
// 5. Geavanceerde label positioning
yPosBuy = low - (ta.tr(true) * 0.5)
yPosSell = high + (ta.tr(true) * 0.5)
// 6. Dynamische labels met vingers
if bullish
label.new(
bar_index, yPosBuy,
text='BUY', color=signalColor,
style=label.style_label_up, textcolor=color.white,
yloc=yloc.price, size=size.normal)
if bearish
label.new(
bar_index, yPosSell,
text='SELL', color=signalColor,
style=label.style_label_down, textcolor=color.white,
yloc=yloc.price, size=size.normal)
// 7. Alternatieve plotshapes (optioneel)
plotshape(bullish, style=shape.triangleup, location=location.belowbar, color=signalColor, size=size.small)
plotshape(bearish, style=shape.triangledown, location=location.abovebar, color=signalColor, size=size.small)
useTrendFilter = input(true, "Gebruik Trendfilter")
trendLength = input(50, "Trend SMA Lengte")
trendSMA = ta.sma(close, trendLength)
Price Imbalance Flow Tracker📊 PIFT: Price Imbalance Flow Tracker
At first glance, PIFT might look like a standard Bollinger Band overlay slapped on a few moving averages…
It’s not.
Every part of this system is custom-tuned:
- The envelopes aren’t based on standard deviation—they’re built from smoothed price structure using average candle range.
- There’s no central mean reversion assumption—bands don’t just expand and contract randomly; they flip in and out of dominance based on trend control.
- The MA lengths (25/50/100) are deliberately chosen to sync with RIFT’s RSI layers, following a proprietary ratio rooted in how momentum and structure align over time.
- It may resemble Bollinger Bands from a distance, but this is a bespoke trend envelope engine, built for clarity, control, and confluence—not statistical noise.
A precision envelope engine for price action that mirrors RIFT’s RSI logic—because momentum and structure should speak the same language. PIFT tracks trend dominance directly on the price chart using layered moving average envelopes and dynamic fill logic.
Together with my other indicator called RIFT (Relative Imbalance Flow Tracker), it forms a two-part confluence system:
- RIFT shows who’s winning the momentum battle.
- PIFT shows who’s controlling price structure.
- Use them side by side to spot false moves, real breakouts, and trend exhaustion with confidence.
🧠 How It Works
PIFT plots three WMA-based moving averages:
🔹 25 WMA = fast reaction line
🔸 50 WMA = medium-term trend
🟣 100 WMA = long-term structural flow
Each MA gets a fixed-width envelope based on average candle range (not percent of price), so bands stay visually consistent across timeframes.
Then the script checks envelope dominance:
- If the fast band extends beyond the others → it glows.
- If not → it fades out to reduce clutter.
🎨 Color Logic
🔴 Upper Band (Red) = Overextended uptrend
🟢 Lower Band (Green) = Oversold or trending support zone
🔍 How to Read It
🔴 Red envelope dominates but price slows? = Uptrend stalling
🟢 Green envelope dominates + candles cluster near band? = Watch for bounce
✅ Fast band flips dominance = Potential breakout or reversal
⚙️ Why It’s Useful
- See when price is actually leading, not just floating between MAs
- Avoid choppy MA crosses and use envelope shape and fills to understand context
- Watch for volatility compression before major shifts
- Use with RIFT to spot momentum/price mismatches and false moves
🔗 Works Best With: RIFT
- PIFT is the price-side partner to RIFT. When both show dominance in the same direction, confidence increases.
- When one flips but the other doesn't? You're looking at either early momentum divergence (RIFT) or a structural fakeout (PIFT). Either way: you’re ahead of the candles.
Trending Indicator: Price % of Pivots# Price % of Pivots Indicator
## Overview
A trend-following indicator that measures current price position relative to recent pivot highs and lows as percentages, providing normalized trend analysis across all timeframes and instruments.
## Key Features
- **Real-time trend table** with live signal updates (Strong Bullish/Bearish, Leaning Bullish/Bearish, Neutral)
- **Dual percentage tracking**: Price % of high pivot and low pivot % of current price
- **Universal compatibility** - works on any timeframe and asset class
- **Faster than some other trend indicators** - catches trend changes earlier with less lag
## Trading Signals
- **Bullish bias**: When price % of high pivot > low pivot % of price
- **Bearish bias**: When low pivot % of price > price % of high pivot
- **Customizable thresholds** (default 99%) with alert system
- **Color-coded backgrounds** for immediate visual confirmation
## Configuration
- Adjustable pivot lookback period (5-100 bars)
- Customizable left/right bars for pivot confirmation
- Threshold settings from 50-110% with 0.5% increments
- Full color customization for all elements
## Advantages
- **Speed**: More responsive than traditional ATR-based indicators
- **Clarity**: Clean percentage-based display with professional info table
- **Alerts**: Multiple conditions for automated and manual trading
- **Versatility**: Effective for day trading, swing trading, and multi-timeframe analysis
Perfect for traders seeking a fast, reliable trend indicator that works consistently across all markets and timeframes.
Breakout Entry Signals//@version=5
indicator("Breakout Entry Signals", overlay=true)
length = input.int(20, title="Breakout Period")
highestHigh = ta.highest(high, length)
lowestLow = ta.lowest(low, length)
longCondition = close > highestHigh
shortCondition = close < lowestLow
plotshape(longCondition, location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(shortCondition, location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
CPR-NIFTY-BUY-SELL-BY APRThis indicator will enable the Novice traders to find the write entry and exit for nifty option / spot trading.
Traders can use it carefully when the more option towards the expected direction. Take the entry after signal and hold it until you find the red candle close below the previous green candle for buy vice versa for sell trade.
if any updates or suggestion kindly send mail to jsbaskaran1@gmail.com
Market State [wundaba]General market overview indicator
Add your own symbols
Credits to Luon MC for the idea
AD Pro//@version=5
indicator("AD Pro", overlay=true)
// === Inputs
atrLen = input.int(14, "ATR Length")
factor = input.float(0.7, "Factor")
slMultiplier = input.float(2.0, "SL Multiplier")
// Volatility Filter Input
atrFilterStrength = input.float(1.0, "Volatility Threshold (x Avg ATR)", step=0.1, minval=0.1)
// Min % Price Change Filter
enableMinMove = input.bool(true, "Enable Min % Price Change Filter")
lookbackBars = input.int(20, "Lookback Bars")
minMovePct = input.float(0.005, "Min % Price Change", step=0.001, minval=0)
// TP Buy colors
tp1BuyColor = input.color(color.lime, "TP1 Buy Color")
tp2BuyColor = input.color(color.green, "TP2 Buy Color")
tp3BuyColor = input.color(color.teal, "TP3 Buy Color")
// TP Sell colors
tp1SellColor = input.color(color.fuchsia, "TP1 Sell Color")
tp2SellColor = input.color(color.red, "TP2 Sell Color")
tp3SellColor = input.color(color.maroon, "TP3 Sell Color")
// SL colors
slBuyColor = input.color(color.blue, "SL Buy Color")
slSellColor = input.color(color.blue, "SL Sell Color")
// === Indicator Calculations
atr = ta.atr(atrLen)
avgATR = ta.sma(atr, 50)
atrCondition = atr > avgATR * atrFilterStrength
priceChange = math.abs(close - close ) / close
priceMoveOK = priceChange > minMovePct
priceChangeCondition = not enableMinMove or priceMoveOK
volatilityOK = atrCondition and priceChangeCondition
// === UT Bot Logic
src = close
var float trailPrice = na
var bool dirLong = true
longStop = src - factor * atr
shortStop = src + factor * atr
if na(trailPrice)
trailPrice := longStop
dirLong := true
else
if dirLong
trailPrice := math.max(trailPrice, longStop)
dirLong := src > trailPrice
else
trailPrice := math.min(trailPrice, shortStop)
dirLong := src > trailPrice
rawBuy = dirLong and not dirLong
rawSell = not dirLong and dirLong
// Apply Volatility Filter
buySignal = rawBuy and volatilityOK
sellSignal = rawSell and volatilityOK
// === Entry & Label Storage
var float entryPrice = na
var bool lastSignalIsBuy = na
var label tp1Lbl = na
var label tp2Lbl = na
var label tp3Lbl = na
var label slLbl = na
var line tp1Line = na
var line tp2Line = na
var line tp3Line = na
var line slLine = na
if buySignal or sellSignal
if not na(tp1Lbl)
label.delete(tp1Lbl)
if not na(tp2Lbl)
label.delete(tp2Lbl)
if not na(tp3Lbl)
label.delete(tp3Lbl)
if not na(slLbl)
label.delete(slLbl)
if not na(tp1Line)
line.delete(tp1Line)
if not na(tp2Line)
line.delete(tp2Line)
if not na(tp3Line)
line.delete(tp3Line)
if not na(slLine)
line.delete(slLine)
entryPrice := close
lastSignalIsBuy := buySignal
tp1 = entryPrice + (buySignal ? 1 : -1) * atr
tp2 = entryPrice + (buySignal ? 2 : -2) * atr
tp3 = entryPrice + (buySignal ? 3 : -3) * atr
sl = entryPrice - (buySignal ? 1 : -1) * factor * atr * slMultiplier
tp1Lbl := label.new(bar_index, tp1, "TP1 " + str.tostring(tp1, format.mintick),
style=label.style_label_right,
color=buySignal ? tp1BuyColor : tp1SellColor,
textcolor=color.black)
tp2Lbl := label.new(bar_index, tp2, "TP2 " + str.tostring(tp2, format.mintick),
style=label.style_label_right,
color=buySignal ? tp2BuyColor : tp2SellColor,
textcolor=color.white)
tp3Lbl := label.new(bar_index, tp3, "TP3 " + str.tostring(tp3, format.mintick),
style=label.style_label_right,
color=buySignal ? tp3BuyColor : tp3SellColor,
textcolor=color.white)
slLbl := label.new(bar_index, sl, "SL " + str.tostring(sl, format.mintick),
style=label.style_label_right,
color=buySignal ? slBuyColor : slSellColor,
textcolor=color.white)
tp1Line := line.new(bar_index, tp1, bar_index + 1, tp1,
color=buySignal ? tp1BuyColor : tp1SellColor, style=line.style_dashed)
tp2Line := line.new(bar_index, tp2, bar_index + 1, tp2,
color=buySignal ? tp2BuyColor : tp2SellColor, style=line.style_dashed)
tp3Line := line.new(bar_index, tp3, bar_index + 1, tp3,
color=buySignal ? tp3BuyColor : tp3SellColor, style=line.style_dashed)
slLine := line.new(bar_index, sl, bar_index + 1, sl,
color=buySignal ? slBuyColor : slSellColor, style=line.style_dashed)
// === Plot Signals
plotshape(buySignal, title="Buy", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(sellSignal, title="Sell", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")
// === Alerts
alertcondition(buySignal, title="Buy Alert", message="Buy Signal!")
alertcondition(sellSignal, title="Sell Alert", message="Sell Signal!")
Pionex Signal Bot (Single Position)Pionex Signal Bot (Single Position) Script - Created by Jon (Pionex)
Basic code functionality for Pionex users to get started with Signal Bot