Uptrick: Universal Z-Score ValuationOverview
The Uptrick: Universal Z-Score Valuation is a tool designed to help traders spot when the market might be overreacting—whether that’s on the upside or the downside. It does this by combining the Z-scores of multiple key indicators into a single average, letting you see how far the current market conditions have stretched away from “normal.” This average is shown as a smooth line, supported by color-coded visuals, signal markers, optional background highlights, and a live breakdown table that shows the contribution of each indicator in real time. The focus here is on spotting potential reversals, not following trends. The indicator works well across all timeframes and asset classes, from fast intraday charts like the 1-minute and 5-minute, to higher timeframes such as the 4-hour, daily, or even weekly. Its universal design makes it suitable for any market — whether you're trading crypto, stocks, forex, or commodities.
Introduction
To understand what this indicator does, let’s start with the idea of a Z-score. In simple terms, a Z-score tells you how far a number is from the average of its recent history, measured in standard deviations. If the price of an asset is two standard deviations above its mean, that means it’s statistically “rare” or extended. That doesn’t guarantee a reversal—but it suggests the move is unusual enough to pay attention.
This concept isn’t new, but what this indicator does differently is apply the Z-score to a wide set of market signals—not just price. It looks at momentum, volatility, volume, risk-adjusted performance, and even institutional price baselines. Each of those indicators is normalized using Z-scores, and then they’re combined into one average. This gives you a single, easy-to-read line that summarizes whether the entire market is behaving abnormally. Instead of reacting to one indicator, you’re reacting to a statistically balanced blend.
Purpose
The goal of this script is to catch turning points—places where the market may be topping out or bottoming after becoming overstretched. It’s built for traders who want to fade sharp moves rather than follow trends. Think of moments when price explodes upward and starts pulling away from every moving average, volume spikes, volatility rises, and RSI shoots up. This tool is meant to spot those situations—not just when price is stretched, but when multiple different indicators agree that something is overdone.
Originality and Uniqueness
Most indicators that use Z-scores only apply them to one thing—price, RSI, or maybe Bollinger Bands. This one is different because it treats each indicator as a contributor to the full picture. You decide which ones to include, and the script averages them out. This makes the tool flexible but also deeply informative.
It doesn’t rely on complex or hidden math. It uses basic Z-score formulas, applies them to well-known indicators, and shows you the result. What makes it unique is the way it brings those signals together—statistically, visually, and interactively—so you can see what’s happening in the moment with full transparency. It’s not trying to be flashy or predictive. It’s just showing you when things have gone too far, too fast.
Inputs and Parameters
This indicator includes a wide range of configurable inputs, allowing users to customize which components are included in the Z-score average, how each indicator is calculated, and how results are displayed visually. Below is a detailed explanation of each input:
General Settings
Z-Score Lookback (default: 100): Number of bars used to calculate the mean and standard deviation for Z-score normalization. Larger values smooth the Z-scores; smaller values make them more reactive.
Bar Color Mode (default: None): Determines how bars are visually colored. Options include: None: No candle coloring applied. - Heat: Smooth gradient based on the Z-score value. - Latest Signal: Applies a solid color based on the most recent buy or sell signal
Boolean - General
Plot Universal Valuation Line (default: true): If enabled, plots the average Z-score (zAvg) line in the separate pane.
Show Signals (default: true): Displays labels ("𝓤𝓹" for buy, "𝓓𝓸𝔀𝓷" for sell) when zAvg crosses above or below user-defined thresholds.
Show Z-Score Table (default: true): Displays a live table listing each enabled indicator's Z-score and the current average.
Select Indicators
These toggles enable or disable each indicator from contributing to the Z-score average:
Use VWAP Z-Score (default: true)
Use Sortino Z-Score (default: true)
Use ROC Z-Score (default: true)
Use Price Z-Score (default: true)
Use MACD Histogram Z-Score (default: false)
Use Bollinger %B Z-Score (default: false)
Use Stochastic K Z-Score (default: false)
Use Volume Z-Score (default: false)
Use ATR Z-Score (default: false)
Use RSI Z-Score (default: false)
Use Omega Z-Score (default: true)
Use Sharpe Z-Score (default: true)
Only enabled indicators are included in the average. This modular design allows traders to tailor the signal mix to their preferences.
Indicator Lengths
These inputs control how each individual indicator is calculated:
MACD Fast Length (default: 12)
MACD Slow Length (default: 26)
MACD Signal Length (default: 9)
Bollinger Basis Length (default: 20): Used to compute the Bollinger %B.
Bollinger Deviation Multiplier (default: 2.0): Standard deviation multiplier for the Bollinger Band calculation.
Stochastic Length (default: 14)
ATR Length (default: 14)
RSI Length (default: 14)
ROC Length (default: 10)
Zones
These thresholds define key signal levels for the Z-score average:
Neutral Line Level (default: 0): Baseline for the average Z-score.
Bullish Zone Level (default: -1): Optional intermediate zone suggesting early bullish conditions.
Bearish Zone Level (default: 1): Optional intermediate zone suggesting early bearish conditions.
Z = +2 Line Level (default: 2): Primary threshold for bearish signals.
Z = +3 Line Level (default: 3): Extreme bearish warning level.
Z = -2 Line Level (default: -2): Primary threshold for bullish signals.
Z = -3 Line Level (default: -3): Extreme bullish warning level.
These zone levels are used to generate signals, fill background shading, and draw horizontal lines for visual reference.
Why These Indicators Were Merged
Each indicator in this script was chosen for a specific reason. They all measure something different but complementary.
The VWAP Z-score helps you see when price has moved far from the volume-weighted average, often used by institutions.
Sortino Ratio Z-score focuses only on downside risk, which is often more relevant to traders than overall volatility.
ROC Z-score shows how fast price is changing—strong momentum may burn out quickly.
Price Z-score is the raw measure of how far current price has moved from its mean.
RSI Z-score shows whether momentum itself is stretched.
MACD Histogram Z-score captures shifts in trend strength and acceleration.
%B (Bollinger) Z-score indicates how close price is to the upper or lower volatility envelope.
Stochastic K Z-score gives a sense of how high or low price is relative to its recent range.
Volume Z-score shows when trading activity is unusually high or low.
ATR Z-score gives a read on volatility, showing if price movement is expanding or contracting.
Sharpe Z-score measures reward-to-risk performance, useful for evaluating trend quality.
Omega Z-score looks at the ratio of good returns to bad ones, offering a more nuanced view of efficiency.
By normalizing each of these using Z-scores and averaging only the ones you turn on, the script creates a flexible, balanced view of the market’s statistical stretch.
Calculations
The core formula is the standard Z-score:
Z = (current value - average) / standard deviation
Every indicator uses this formula after it’s calculated using your chosen settings. For example, RSI is first calculated as usual, then its Z-score is calculated over your selected lookback period. The script does this for every indicator you enable. Then it averages those Z-scores together to create a single value: zAvg. That value is plotted and used to generate visual cues, signals, table values, background color changes, and candle coloring.
Sequence
Each selected indicator is calculated using your custom input lengths.
The Z-score of each indicator is computed using the shared lookback period.
All active Z-scores are added up and averaged.
The resulting zAvg value is plotted as a line.
Signal conditions check if zAvg crosses user-defined thresholds (default: ±2).
If enabled, the script plots buy/sell signal labels at those crossover points.
The candle color is updated using your selected mode (heatmap or signal-based).
If extreme Z-scores are reached, background highlighting is applied.
A live table updates with each individual Z-score so you know what’s driving the signal.
Features
This script isn’t just about stats—it’s about making them usable in real time. Every feature has a clear reason to exist, and they’re all there to give you a better read on market conditions.
1. Universal Z-Score Line
This is your primary reference. It reflects the average Z-score across all selected indicators. The line updates live and is color-coded to show how far it is from neutral. The further it gets from 0, the brighter the color becomes—cyan for deeply oversold conditions, magenta for overbought. This gives you instant feedback on how statistically “hot” or “cold” the market is, without needing to read any numbers.
2. Signal Labels (“𝓤𝓹” and “𝓓𝓸𝔀𝓷”)
When the average Z-score drops below your lower bound, you’ll see a "𝓤𝓹" label below the bar, suggesting potential bullish reversal conditions. When it rises above the upper bound, a "𝓓𝓸𝔀𝓷" label is shown above the bar—indicating possible bearish exhaustion. These labels are visually clear and minimal so they don’t clutter your chart. They're based on clear crossover logic and do not repaint.
3. Real-Time Z-Score Table
The table shows each indicator's individual Z-score and the final average. It updates every bar, giving you a transparent breakdown of what’s happening under the hood. If the market is showing an extreme average score, this table helps you pinpoint which indicators are contributing the most—so you’re not just guessing where the pressure is coming from.
4. Bar Coloring Modes
You can choose from three modes:
None: Keeps your candles clean and untouched.
Heat: Applies a smooth gradient color based on Z-score intensity. As conditions become more extreme, candle color transitions from neutral to either cyan (bullish pressure) or magenta (bearish pressure).
Latest Signal: Applies hard coloring based on the most recent signal—greenish for a buy, purple for a sell. This mode is great for tracking market state at a glance without relying on a gradient.
Every part of the candle is colored—body, wick, and border—for full visibility.
5. Background Highlighting
When zAvg enters an extreme zone (typically above +2 or below -2), the background shifts color to reflect the market’s intensity. These changes aren’t overwhelming—they’re light fills that act as ambient warnings, helping you stay aware of when price might be reaching a tipping point.
6. Customizable Zone Lines and Fills
You can define what counts as neutral, overbought, and oversold using manual inputs. Horizontal lines show your thresholds, and shaded regions highlight the most extreme zones (+2 to +3 and -2 to -3). These lines give you visual structure to understand where price currently stands in relation to your personal reversal model.
7. Modular Indicator Control
You don’t have to use all the indicators. You can enable or disable any of the 12 with a simple checkbox. This means you can build your own “blend” of market context—maybe you only care about RSI, price, and volume. Or maybe you want everything on. The script adapts accordingly, only averaging what you select.
8. Fully Customizable Sensitivity and Lengths
You can adjust the Z-score lookback length globally (default 100), and tweak individual indicator lengths separately. This lets you tune the indicator’s responsiveness to suit your trading style—slower for longer swings, faster for scalping.
9. Clean Integration with Any Chart Layout
All visual elements are designed to be informative without taking over your chart. The coloring is soft but clear, the labels are readable without being huge, and you can turn off any feature you don’t need. The indicator can work as a full dashboard or as a simple line with a couple of alerts—it’s up to you.
10. Precise, Real-Time Signal Logic
The crossover logic for signals is exact and only fires when the Z-score moves across your defined boundary. No estimation, no delay. Everything is calculated based on current and previous bar data, and nothing repaints or back-adjusts.
Conclusion
The Universal Z-Score Valuation indicator is a tool for traders who want a clear, unbiased way to detect overextension. Instead of relying on a single signal, you get a composite of several market perspectives—momentum, volatility, volume, and more—all standardized into a single view. The script gives you the freedom to control the logic, the visuals, and the components. Whether you use it as a confirmation tool or a primary signal source, it’s designed to give you clarity when markets become chaotic.
Disclaimer
This indicator is for research and educational use only. It does not constitute financial advice or guarantees of performance. All trading involves risk, and users should test any strategy thoroughly before applying it to live markets. Use this tool at your own discretion.
Cari dalam skrip untuk "vwap"
multi-tf standard devs [keypoems]Multi-Timeframe Standard Deviations Levels
A visual map of “how far is too far” across any three higher time-frames.
1. What it does
This script plots dynamic price “rails” built from standard deviation (StDev)—the same math that underpins the bell curve—on up to three higher-time-frames (HTFs) at once.
• It measures the volatility of intraday open-to-close increments, reaching back as far as 5000 bars (≈ 20 years on daily data).
• Each HTF can be extended to the next session or truncated at session close for tidy dashboards.
• Lines can be mirrored so you see symmetric positive/negative bands, and optional background fills shade the “probability cone.”
Because ≈ 68 % of moves live inside ±1 StDev, ≈ 95 % inside ±2, and ≈ 99.7 % inside ±3, the plot instantly shows when price is statistically stretched or compressed.
3. Key settings
Higher Time-Frame #1-3 Turn each HTF on/off, pick the interval (anything from 1 min to 1 year), and decide whether lines should extend into the next period.
Show levels for last X days Keep your chart clean by limiting how many historical sessions are displayed (1-50).
Based on last X periods Length of the StDev sample. Long look-backs (e.g. 5 000) iron-out day-to-day noise; short look-backs make the bands flex with recent volatility.
Fib Settings Toggle each multiple, line thickness/style/colour, label size, whether to print the numeric level, the live price, the HTF label, and whether to tint the background (choose your own opacity).
4. Under-the-hood notes
StDev is calculated on (close – open) / open rather than absolute prices, making the band width scale-agnostic.
Watch for tests of ±1:
Momentum traders ride the breakout with a target at the next band.
Mean-reversion traders wait for the first stall candle and trade back to zero line or VWAP.
Bottom line: Multi-Timeframe Standard-Deviations turns raw volatility math into an intuitive “price terrain map,” helping you instantly judge whether a move is ordinary, stretched, or extreme—across the time-frames that matter to you.
Original code by fadizeidan and stats by NQStats's ProbableChris.
CPR-Based Fib S/R with Circles by Arthavidhi📌 **CPR-Based Fibonacci S/R with Circles – Description**
This indicator combines the power of **CPR (Central Pivot Range)** and **Fibonacci ratios** to plot highly probable intraday and swing Support/Resistance levels derived from the **daily price structure**.
### 🧠 **How It Works**
* It uses the **Daily High, Low, and Close** to calculate the **Pivot Point** (P) as:
`P = (High + Low + Close) / 3`
* Then it calculates the **daily range**:
`Range = High - Low`
* Using this pivot and range, it derives both **Fibonacci-based Support and Resistance levels**:
* **Support levels** at: 0.382, 0.5, 0.618, 1.0, 1.272, 1.618 below pivot
* **Resistance levels** at: 0.382, 0.5, 0.618, 1.0, 1.272, 1.618 above pivot
These are **plotted as small colored circles** on your chart, with **labels on the left** for easy identification of each Fib level (e.g., "0.382", "1.618").
---
### 📈 **How to Use It**
🔹 **Intraday or Swing Traders**:
* Use these levels to **anticipate reversals**, **breakouts**, or **targets**.
* The levels act like a **natural price magnet** — price tends to pause, bounce, or reverse near them.
🔹 **Entry/Exit Zones**:
* Combine with price action (like pin bars, engulfing, or inside bars) or volume near these levels to plan entries.
* **R1.618 and S1.618** are great for extended targets or aggressive reversal setups.
🔹 **CPR Center Line**:
* Acts as a key mean-reversion zone or midline. You can combine this with VWAP or RSI for confirmation.
---
### 🧩 **Best Practices**
* **Higher Timeframe Confluence**: Align this with HTF S/R or trendlines.
* **Use Alerts**: Combine this with price action alerting tools (manually or with separate indicators).
* **Do Not Use Alone**: For best results, combine with a strategy (e.g., Supply/Demand, VWAP bounce, Trendline breaks).
Functionally Weighted Moving AverageOVERVIEW
An anchor-able moving average that weights historical prices with mathematical curves (shaping functions) such as Smoothstep , Ease In / Out , or even a Cubic Bézier . This level of configurability lends itself to more versatile price modeling, over conventional moving averages.
SESSION ANCHORS
Aside from VWAP, conventional moving averages do not allow you to use the first bar of each session as an anchor. This can make averages less useful near the open when price is sufficiently different from yesterdays close. For example, in this screenshot the EMA (blue) lags behind the sessionally anchored FWMA (yellow) at the open, making it slower to indicate a pivot higher.
An incrementing length is what makes a moving average anchor-able. VWAP is designed to do this, indefinitely growing until a new anchor resets the average (which is why it doesn't have a length parameter). But conventional MA's are designed to have a set length (they do not increment). Combining these features, the FWMA treats the length like a maximum rather than a set length, incrementing up to it from the anchor (when enabled).
Quick aside: If you code and want to anchor a conventional MA, the length() function in my UtilityLibrary will help you do this.
Incrementing an averages length introduces near-anchor volatility. For this reason, the FWMA also includes an option to saturate the anchor with the source , making values near the anchor more resistant to change. The following screenshot illustrates how saturation affects the average near the anchor when disabled (aqua) and enabled (fuchsia).
AVERAGING MATH
While there's nothing special about the math, it's worth documenting exactly how the average is affected by the anchor.
Average = Dot Product / Sum of Weights
Dot Product
This is the sum of element-wise multiplication between the Price and Weight arrays.
Dot Product = Price1 × Weight1 + Price2 × Weight2 + Price3 × Weight3 ...
When the Price and Weight arrays are equally sized (aka. the length is no longer incrementing from the anchor), there's a 1-1 mapping between Price and Weight indices. Anchoring, however, purges historical data from the Price array, making it temporarily smaller. When this happens, a dot product is synthesized by linearly interpolating for proportional indices (rather than a 1-1 mapping) to maintain the intended shape of weights.
Synthetic Dot Product = FirstPrice × FirstWeight + ... MidPrice × MidWeight ... + LastPrice × LastWeight
Sum of Weights
Exactly what it sounds like, the sum of weights used by the dot product operation. The sum of used weights may be less than the sum of all weights when the dot product is synthesized.
Sum of Weights = Weight1 + Weight2 + Weight3 ...
CALCULATING WEIGHTS
Shaping functions are mathematical curves used for interpolation. They are what give the Functionally Weighted Moving Average its name, and define how each historical price in the look back period is weighted.
The included shaping functions are:
Linear (conventional WMA)
Smoothstep (S curve)
Ease In Out (adjustable S curve)
Ease In (first half of Ease In Out)
Ease Out (second half of Ease In Out)
Ease Out In (eases out and then back in)
Cubic Bézier (aka. any curve you want)
In the following screenshot, the only difference between the three FWMA's is the shaping function (Ease In, Ease In Out, and Ease Out) illustrating how different curves can influence the responsiveness of an average.
And here is the same example, but with anchor saturation disabled .
ADJUSTING WEIGHTS
Each function outputs a range of values between 0 and 1. While you can't expand or shrink the range, you can nudge it higher or lower using the Scalar . For example, setting the scalar to -0.2 remaps to , and +0.2 remaps to . The following screenshot illustrates how -0.2 (lightest blue) and +0.2 (darkest blue) affect the average.
Easing functions can be further adjusted with the Degree (how much the shaping function curves). There's an interactive example of this here and the following illustrates how a degrees 0, 1, and 20 (dark orange, orange, and light orange) affect the average.
This level of configurability completely changes how a moving average models price for a given length, making the FWMA extremely versatile.
INPUTS
You can configure:
Length (how many historical bars to average)
Source (the bar value to average)
Offset (horizontal offset of the plot)
Weight (the shaping function)
Scalar (how much to adjust each weight)
Degree (how much to ease in / out)
Bézier Points (controls shape of Bézier)
Divisor & Anchor parameters
Style of the plot
BUT ... WHY?
We use moving averages to anticipate trend initialization, continuation, and termination. For a given look back period (length) we want the average to represent the data as accurately and smoothly as possible. The better it does this, the better it is at modeling price.
In this screenshot, both the FWMA (yellow) and EMA (blue) have a length of 9. They are both smooth, but one of them more accurately models price.
You wouldn't necessarily want to trade with these FWMA parameters, but knowing it does a better job of modeling price allows you to confidently expand the model to larger timeframes for bigger moves. Here, both the FWMA (yellow) and EMA (blue) have a length of 195 (aka. 50% of NYSE market hours).
INSPIRATION
I predominantly trade ETF derivatives and hold the position that markets are chaotic, not random . The salient difference being that randomness is entirely unpredictable, and chaotic systems can be modeled. The kind of analysis I value requires a very good pricing model.
The term "model" sounds more intimidating than it is. Math terms do that sometimes. It's just a mathematical estimation . That's it. For example, a regression is an "average regressing" model (aka. mean reversion ), and LOWESS (Locally Weighted Scatterplot Smoothing) is a statistically rigorous local regression .
LOWESS is excellent for modeling data. Also, it's not practical for trading. It's computationally expensive and uses data to the right of the point it's averaging, which is impossible in realtime (everything to the right is in the future). But many techniques used within LOWESS are still valuable.
My goal was to create an efficient real time emulation of LOWESS. Specifically I wanted something that was weighted non-linearly, was efficient, left-side only, and data faithful. Incorporate trading paradigms (like anchoring) and you get a Functionally Weighted Moving Average.
The formulas for determining the weights in LOWESS are typically chosen just because they seem to work well. Meaning ... they can be anything, and there's no justification other than "looks about right". So having a variety of functions (aka. kernels) for the FWMA, and being able to slide the weight range higher or lower, allows you to also make it "look about right".
William Cleveland, prominent figure in statistics known for his contributions to LOWESS, preferred using a tri-cube weighting function. Using Weight = Ease Out In with the Degrees = 3 is comparable to this. Enjoy!
Intraday Trading IndicatorIndicator Overview
Moving Averages: Uses a fast EMA (9-period) and a slow EMA (21-period) to determine the trend direction.
Market Profile Approximation: Utilizes VWAP (Volume Weighted Average Price) as a simplified proxy for value area, acting as a dynamic support/resistance level.
SMC: Incorporates the concept of trend confirmation and price interaction with key levels, focusing on pullbacks to the fast EMA within a trending market.
Signals: Generates buy and sell signals when price crosses the fast EMA, filtered by the trend (fast EMA vs. slow EMA) and VWAP position, aiming for high-probability setups.
This design ensures responsiveness on short timeframes while filtering out noise, aligning with the goal of accurate signals for intraday trading.
Timeframe StrategyThis is a multi-timeframe trading strategy inspired by Ross Cameron's style, optimized for scalping and trend-following across various timeframes (1m, 5m, 15m, 1h, and 1D). The strategy integrates a comprehensive set of technical indicators, dynamic risk management, and visual tools.
Core Features
Dynamic Take Profit, Stop Loss & Trailing Stop
> Separate settings per timeframe for:
-TP% (Take Profit)
-SL% (Stop Loss)
-Trailing Stop %
-Cooldown bars
> Configurable via UI inputs.
>Smart Entry Conditions
Bullish entry: EMA9 crossover EMA20 and EMA50 > EMA200
Bearish entry: EMA9 crossunder EMA20 and EMA50 < EMA200
>Additional confirmation filters:
-Volume Filter (enabled/disabled via UI)
-Time Filter (e.g., only between 15:00–20:00 UTC)
-Spike Filter: rejects high-volatility candles
-RSI Filter: above/below 50 for trend confirmation
-ADX Filter (only applied on 1m, e.g., ADX > 15)
-Micro-Volatility Filter: minimum range percentage (1m only)
-Trend Filter (1m only): price must be above/below EMA200
>Trailing Stop Logic
-Configurable for each timeframe.
- Optional via toggle (use_trailing).
>Trade Cooldown Logic
-Prevents consecutive trades within X bars, configurable per timeframe.
>Technical Indicators Used
-EMA 9 / 20 / 50 / 200
-VWAP
-RSI (14)
-ATR (14) for volatility-based spike filtering
-Custom-calculated ADX (14) (manually implemented)
>Visual Elements
🔼/🔽 Entry signals (long/short) plotted on the chart.
📉 Table in bottom-left:
Displays current values of EMA/VWAP/volume/ATR/ADX.
> Optional "Tab info" panel in top-right (toggleable):
-Timeframe & strategy settings
-Live status of filters (volume, time, cooldown, spike, RSI, ADX, range, trend)
-Uses emoji (✅ / ❌) for quick diagnostics.
>User Customization
-Inputs per timeframe for all key parameters.
-Toggle switches for:
-Trailing stop
-Volume filter
-Info table visibility
This strategy is designed for active traders seeking a balance between momentum entry, risk control, and adaptability across timeframes. It's ideal for backtesting quick reversals or breakout setups in fast markets, especially at lower timeframes like 1m or 5m.
John's Sig PROJohn's Sig PRO is a powerful Wyckoff-style trade detection tool that identifies potential long and short setups based on pivot formations, trading range analysis, and optional confluence filters.
🔹 Core Features:
Pivot-Based Springs and Upthrusts (customizable "Loose" or "Strict" setups)
Dynamic Risk Management:
Static % Risk OR ATR-based stops
2 Risk/Reward Targets (Target 1 and Target 2)
Volume Confirmation (optional)
Dynamic Range Monitoring: Highest high/Lowest low over user-defined periods
🔹 Optional Setup Filters (for higher probability entries):
✅ EMA Filter (Price above/below EMA)
✅ RSI Oversold/Overbought Confirmation
✅ MACD Cross Confirmation
✅ VWAP Filter (Price above/below VWAP)
✅ SuperTrend Direction Confirmation
🔹 Visual Highlights:
Entry, Stoploss, Target 1, Target 2 auto-plotted with lines
Setup labels colored based on strength (Loose/Strict)
Real-time alert generation (LONG/SHORT)
🔹 How to Use:
Enable Loose Springs for more aggressive setups or keep strict validation.
Customize risk settings: ATR-based dynamic stops or static pivot % risk.
Turn on optional filters to tighten your entry criteria.
Watch for plotted signals and set alerts!
⚡ Ideal For:
Intraday Traders
Swing Traders
Wyckoff Enthusiasts
Traders wanting automated pivot-based signals + multi-filter confluence
Created with ❤️ by John.
Trade smart, not hard!
PowerHouse SwiftEdge AI v2.10 with Custom Filters & AI AnalysisPowerHouse SwiftEdge AI v2.10 with Custom Filters & AI Analysis
Overview
PowerHouse SwiftEdge AI v2.10 is an advanced TradingView Pine Script indicator designed to identify high-probability trading setups by combining pivot-based structure analysis, multi-timeframe trend detection, and adaptive AI-driven signal filtering. The script integrates Change of Character (CHoCH) and Break of Structure (BOS) signals with customizable momentum, volume, breakout, and trend filters to enhance trade precision. Additionally, it offers an optional AI Market Analysis module that predicts future price trends across multiple timeframes, providing traders with a comprehensive market outlook.
The script is highly customizable, allowing users to tailor inputs to their trading style, whether for scalping, swing trading, or long-term strategies. It is suitable for all asset classes, including stocks, forex, crypto, and commodities, and performs optimally on timeframes ranging from 1-minute to daily charts.
Key Features
Pivot-Based Signal Generation:
Identifies pivot highs and lows to detect CHoCH (reversal patterns) and BOS (continuation patterns).
Signals are plotted as "Buy" or "Sell" labels with optional "Get Ready" pre-signals to prepare traders for potential setups.
Take-profit (TP) levels are automatically calculated based on user-defined points, with optional TP box visualization.
Multi-Timeframe Trend Analysis:
Analyzes trends across seven timeframes (1M, 5M, 15M, 30M, 1H, 4H, D) using EMA and VWAP to determine bullish, bearish, or neutral conditions.
Displays a futuristic AI-Trend Matrix dashboard showing trend direction, strength, and confidence levels for quick decision-making.
Customizable Signal Filters:
Momentum Filter: Ensures signals align with significant price changes, adjusted dynamically using ATR-based volatility.
Higher Timeframe Trend Filter: Requires signals to align with the trend of a user-selected higher timeframe (e.g., 1H).
Lower Timeframe Trend Filter: Prevents signals that conflict with the trend of a user-selected lower timeframe (e.g., 5M).
Volume Filter: Optionally requires above-average volume to confirm signals.
Breakout Filter: Optionally requires price to break previous highs/lows for signal validation.
Repeated Signal Restriction: Prevents consecutive signals in the same trend direction until the trend changes on a user-defined timeframe.
AI-Driven Adaptivity:
Incorporates Cumulative Volume Delta (CVD) to assess buying/selling pressure and classify market volatility (Low, Medium, High).
Uses ATR to dynamically adjust momentum thresholds, ensuring signals adapt to current market conditions.
Optional AI Market Analysis module predicts trends across multiple timeframes by combining trend, momentum, and volatility scores.
Visual Elements:
Plots CHoCH and BOS levels as horizontal lines with distinct colors (aqua for CHoCH sell, lime for CHoCH buy, fuchsia for BOS sell, teal for BOS buy).
Draws dynamic support and resistance trendlines based on short and long-term price action, colored by trend strength.
Displays TP levels and pivot highs/lows for easy reference.
How It Works
The script combines several technical analysis concepts to create a robust trading system:
Market Structure Analysis:
Pivot highs and lows are identified using a user-defined lookback period (Pivot Length).
CHoCH occurs when price crosses below a pivot high (bearish reversal) or above a pivot low (bullish reversal).
BOS occurs when price breaks a previous pivot low (bearish continuation) or pivot high (bullish continuation).
Trend and Momentum Integration:
Trends are determined by comparing price to EMA and VWAP on multiple timeframes.
Momentum is calculated as the percentage price change, with thresholds adjusted by ATR to account for volatility.
"Get Ready" signals appear when momentum approaches the threshold, preparing traders for potential CHoCH or BOS signals.
Signal Filtering:
Filters ensure signals align with user-defined criteria (e.g., trend direction, volume, breakouts).
The Restrict Repeated Signals option prevents over-signaling by requiring a trend change on a specified timeframe before generating a new signal in the same direction.
AI Market Analysis:
The optional AI module calculates a score for each timeframe based on trend direction, momentum, and volatility (ATR compared to its SMA).
Scores are translated into predictions (▲ for bullish, ▼ for bearish, — for neutral), displayed in a dedicated table.
CVD and Volatility Context:
CVD tracks buying vs. selling pressure by accumulating volume based on price direction.
Volatility is classified using CVD magnitude, influencing the script’s visual cues and signal sensitivity.
Why This Combination?
The integration of pivot-based structure analysis, multi-timeframe trend filtering, and AI-driven adaptivity addresses common trading challenges:
Precision: CHoCH and BOS signals focus on key market turning points, reducing noise from minor price fluctuations.
Context: Multi-timeframe analysis ensures trades align with broader market trends, improving win rates.
Adaptivity: ATR and CVD adjustments make the script responsive to changing market conditions, avoiding static thresholds that fail in volatile or quiet markets.
Customization: Extensive input options allow traders to adapt the script to their preferred markets, timeframes, and risk profiles.
Predictive Insight: The AI Market Analysis module provides forward-looking trend predictions, helping traders anticipate market moves.
This combination creates a self-contained system that balances responsiveness with reliability, making it suitable for both novice and experienced traders.
How to Use
Add to Chart:
Apply the indicator to your TradingView chart for any asset and timeframe.
Recommended timeframes: 5M to 1H for scalping/day trading, 4H to D for swing trading.
Configure Inputs:
Pivot Length: Adjust (default 5) to control sensitivity to pivot highs/lows. Lower values for faster signals, higher for stronger confirmations.
Momentum Threshold: Set the minimum price change (default 0.01%) for signals. Increase for stricter conditions.
Take Profit Points: Define TP distance (default 10 points). Adjust based on asset volatility.
Signal Filters: Enable/disable filters (momentum, trend, volume, breakout) to match your strategy.
Higher/Lower Timeframe: Select timeframes for trend alignment (e.g., 1H for higher, 5M for lower).
AI Market Analysis: Enable for predictive trend insights across timeframes.
Get Ready Signals: Enable to see pre-signals for potential setups.
Interpret Signals:
Buy/Sell Labels: Act on green "Buy" or red "Sell" labels, confirming with TP levels and trend direction.
Get Ready Labels: Yellow "Get Ready BUY" or orange "Get Ready SELL" indicate potential setups; prepare but wait for confirmation.
CHoCH/BOS Lines: Use aqua/lime (CHoCH) and fuchsia/teal (BOS) lines as key support/resistance levels.
AI-Trend Matrix: Check the top-right dashboard for trend strength (%), confidence (%), and timeframe-specific trends.
AI Market Analysis Table: If enabled, view predictions (▲/▼/—) for each timeframe to anticipate market direction.
Trading Tips:
Combine signals with other indicators (e.g., RSI, MACD) for additional confirmation.
Use higher timeframe trend alignment for higher-probability trades.
Adjust TP and signal distance based on asset volatility and trading style.
Monitor the AI-Trend Matrix for trend strength; values above 50% or below -50% indicate strong directional bias.
Originality
PowerHouse SwiftEdge AI v2.10 stands out due to its unique blend of:
Adaptive Signal Generation: ATR-based momentum thresholds and CVD-driven volatility context ensure signals remain relevant across market conditions.
Multi-Timeframe Synergy: The script’s ability to filter signals based on both higher and lower timeframe trends provides a rare balance of precision and context.
AI-Powered Insights: The AI Market Analysis module offers predictive capabilities not commonly found in traditional indicators, simulating institutional-grade analysis.
Visual Clarity: The futuristic dashboard and color-coded trendlines make complex data accessible, enhancing usability for all trader levels.
Unlike standalone pivot or trend indicators, this script integrates multiple layers of analysis into a cohesive system, reducing false signals and providing actionable insights without requiring external tools or research.
Limitations
False Signals: No indicator is foolproof; signals may fail in choppy or low-volume markets. Use filters to mitigate.
Timeframe Sensitivity: Performance varies by timeframe and asset. Test settings thoroughly.
AI Predictions: The AI Market Analysis is based on historical data and simplified scoring; it’s not a guaranteed forecast.
Resource Usage: Enabling all filters and AI analysis may slow performance on lower-end devices.
Rogue ORB PRORogue ORB Pro is a precision-engineered Opening Range Breakout (ORB) indicator built for active intraday traders who need real signals, not noise.
This tool identifies high-probability breakout entries from the opening range, enhanced with optional ATR-based stop loss levels, deviation targets, cooldown filters, and a relative volume gate to filter weak setups.
🔍 Key Features:
Opening Range High/Low: Drawn from a user-defined time window and locked for the day
Deviations: Automatically plots target zones above and below the OR range (e.g. 1, 2 deviations)
Pre-Market Levels: Automatically draws pre market high and low lines at the end of pre market session
Buy/Sell Signals: Triggered on breakout of the OR High/Low with configurable breakout logic (touch or close)
ATR Stop Loss Line: Dynamically drawn at a fixed ATR distance from breakout candle, with optional SL label
Cooldown Period: Prevents back-to-back signals by enforcing a user-defined bar delay between entries, can help with overtrading
Volume Filter: Optional relative volume filter that requires breakout candles to exceed a custom volume threshold
VWAP Overlay: Visual VWAP for directional bias and confluence
Triple Confirmation Scalper v2 - Alarm CompatibleTriple Confirmation Scalper Strategy
A high-probability scalping strategy combining trend momentum, overbought/sold conditions, and volume confirmation to filter low-noise signals.
📊 Strategy Logic
Trend Direction
Dual EMA crossover (9 & 21 periods) for momentum and trend bias.
Overbought/Oversold Zones
RSI (14-period) to avoid entries at extremes.
Volume Spike Filter
OBV + 20-period volume average to confirm breakout validity.
Dynamic Risk Management
Stop-loss: Adaptive to recent price action (5-candle low/high ±1%).
Take-profit: 1.5% target (1.5:1 risk/reward).
🔍 Advanced Features
Precision VWAP (20-period, HLC3-based) for dynamic S/R levels.
Visual Aids:
EMA/VWAP bands + trend-colored background.
Volume spike alerts.
TradingView Alerts pre-configured for long/short signals.
⚙️ Default Settings
Commission: 0.1% factored into backtests.
Mode: Supports both long/short positions.
⚠️ Disclaimer
This is a technical analysis tool, not financial advice.
Past performance ≠ future results. Test thoroughly in a demo account.
Adjust parameters (e.g., EMA periods, RSI thresholds) to match your risk tolerance.
✅ TradingView Compliance Notes:
No exaggerated claims (e.g., "100% win rate").
Clear disclaimer included.
Focus on objective strategy logic (no promotional language).
VSA Tick Volume Zones0
مؤشر VSA Tick Volume مع مناطق العرض والطلب (إصدار تجريبي)
مؤشر مخصص لمنصة TradingView يعتمد على تحليل الحجم والسعر (VSA - Volume Spread Analysis)، ويقوم تلقائيًا بتحديد مناطق الطلب والعرض استنادًا إلى إشارات VSA القوية. يهدف المؤشر إلى كشف تحركات المتداولين المحترفين وتحديد نقاط الانعكاس الذكية.
---
✅ الميزات الأساسية:
1. إشارات VSA:
المؤشر يتعرف تلقائيًا على أبرز إشارات تحليل VSA:
- *Climactic Volume (CV):* حجم تداول مرتفع بشكل استثنائي يشير لنهاية الاتجاه الحالي.
- *No Demand (ND):* شموع صعودية ضعيفة الحجم، تشير إلى غياب اهتمام المشترين.
- *No Supply (NS):* شموع هبوطية ضعيفة الحجم، تشير إلى غياب اهتمام البائعين.
- *Stopping Volume (SV):* ارتفاع مفاجئ في الحجم بعد اتجاه هابط، يشير لتدخل المشترين.
- *UpThrust (UT):* اختراق كاذب للسعر نحو الأعلى مع حجم كبير وإغلاق منخفض.
- *Test (T):* شموع اختبارية بحجم منخفض للتحقق من غياب البائعين استعدادًا للصعود.
2. تلوين الشموع:
- كل إشارة تُلوَّن تلقائيًا على الشارت لتسهيل المتابعة البصرية:
- CV باللون الأحمر
- ND باللون البرتقالي
- NS باللون الأخضر
- SV باللون الأزرق
- UT باللون الأرجواني
- Test باللون السماوي
3. رسم مناطق العرض والطلب تلقائيًا:
- يتم تحديد المناطق بناءً على إشارات *UT* و*SV* و*Test*، حيث تعتبر مناطق تمركز ذكي للمؤسسات (Smart Money Zones).
🎯 الهدف من المؤشر:
يساعد هذا المؤشر:
- المتداول اليومي على اتخاذ قرارات مدروسة.
- المحلل الفني على فهم السياق المؤسساتي للسوق.
- دعم استراتيجيات الدخول والخروج بدقة أعلى من خلال الدمج بين إشارات VSA والمناطق الفعلية للعرض والطلب.
---
🧪 ملاحظات:
- المؤشر لا يعتبر توصية شراء أو بيع.
- الإشارات تحتاج إلى تأكيد من خلال حركة السعر أو مؤشرات مساعدة.
- يمكن استخدامه مع أدوات إضافية مثل RSI أو Moving Averages.
---
⚙ الاقتراحات المستقبلية:
- دمج أدوات تدفق السيولة (مثل OBV أو VWAP).
- تنبيه صوتي وإشعار عند ظهور إشارات محددة.
- تخصيص أكبر للمستخدم من حيث الألوان ونوع الإشارات.
---
للتواصل أو المساهمة في تطوير المؤشر، يرجى مراسلتي.
VSA Tick Volume Indicator with Supply and Demand Zones (Beta Version)
A custom indicator for the TradingView platform based on Volume and Price Analysis (VSA - Volume Spread Analysis), it automatically identifies supply and demand zones based on strong VSA signals. The indicator aims to uncover the movements of professional traders and identify smart reversal points.
✅ Key Features:
VSA Signals: The indicator automatically detects key VSA analysis signals:
Climactic Volume (CV): Exceptionally high trading volume indicating the end of the current trend.
No Demand (ND): Bullish candles with weak volume, indicating a lack of buyer interest.
No Supply (NS): Bearish candles with weak volume, indicating a lack of seller interest.
Stopping Volume (SV): A sudden volume spike after a downtrend, indicating buyer intervention.
UpThrust (UT): A false price breakout upwards with high volume and a low close.
Test (T): Low-volume test candles to check for the absence of sellers, signaling readiness for an upward move.
Candle Coloring:
Each signal is automatically color-coded on the chart for easy visual tracking:
CV in red
ND in orange
NS in green
SV in blue
UT in purple
Test in cyan
Automatic Supply and Demand Zone Drawing:
Zones are determined based on the UT, SV, and Test signals, which are considered smart money zones.
🎯 Purpose of the Indicator:
This indicator helps:
The day trader make informed decisions.
The technical analyst understand the market's institutional context.
Enhance entry and exit strategies with more accuracy by combining VSA signals and actual supply and demand zones.
🧪 Notes:
The indicator is not a buy or sell recommendation.
Signals need confirmation through price action or additional indicators.
Can be used alongside other tools such as RSI or Moving Averages.
⚙ Future Suggestions:
Integration of liquidity flow tools (such as OBV or VWAP).
Sound alerts and notifications when specific signals appear.
Greater customization options for users regarding colors and signal types.
For inquiries or contributions to the indicator's development, please contact me.
J Weighted Average Price📘 How to Use the OBV VWAP Reentry Signal Effectively
This indicator plots a VWAP based on OBV (On-Balance Volume), along with dynamic bands to identify overbought and oversold conditions in volume flow.
🔺 Red Triangle Up: Appears when OBV crosses back below the upper band → Potential reversal from overbought → Watch for short opportunities.
🔻 Blue Triangle Down: Appears when OBV crosses back above the lower band → Potential reversal from oversold → Watch for long opportunities.
📌 Tip: Use these signals in confluence with price action or trend confirmation to filter false signals. For example:
Enter short after a reentry from upper band and a lower high in price.
Enter long after a reentry from lower band and a bullish candle structure.
This setup helps you catch mean reversion moves based on volume flow, not just price.
Liquidity Volume Panel Liquidity Volume Panel – Precision Tool for Scalpers & Intraday Traders
This panel is designed to help traders quickly identify volume-driven moves, liquidity events, and fair-value zones. It combines classic volume analysis with enhanced tools like RVOL and VWAP deviation bands, making it ideal for scalping, momentum trading, and intraday strategies.
🔍 Included Features:
✅ Relative Volume (RVOL) Indicator
Displays current volume in relation to its 20-period average – excellent for spotting low-activity zones or high-pressure breakouts.
✅ Dynamic Volume Coloring & Spike Detection
Color-coded volume logic highlights normal, strong, and extremely high volume, with visual markers for volume spikes (>200% of average).
✅ VWAP with ±1σ & ±2σ Bands
Industry-standard deviation bands show overbought/oversold conditions and dynamic support/resistance based on volume-weighted pricing.
✅ Background Highlighting
Subtle orange background alerts you when volume surges beyond extreme levels – making liquidity clusters instantly recognizable.
Usage:
Use this panel as a decision-making tool for entries, reversals, or breakouts – especially in fast-moving markets.
Best used on lower timeframes for precision scalping.
SemaforThis is the 4 Level Semafor indicator with Daily Open Line and Average Session Range. Also on the chart is the EMA Ribbon indicator.
Credit to:
Devlucem for the Semafor indicator
Quantvue for the Average Session Range
Shusterivi for the Daily Open Line
MYNAMEISBRANDON for the EMA Ribbon
The Semafors are based on the ZigZag indicator and show higher highs/lower lows of a specified period, determined by the user and applied in settings.
The default periods I use are:
10 period (hidden on this chart)
50 period-blue dots
250 period-white dots
615 period-black dots
Just as the ZigZag indicator will recalculate so to will the semafors, as additional candles are built. The semafor indicator is never to be used as a stand alone signal. It must be combined with other indicators to be used effectively. What we look for are the semafor patterns of a large white dot followed by a 1st blue dot opposite of the white. Then a 2nd blue dot in agreement with the white dot. In theory, the 2nd blue dot is seen as confirmation of the establishment of the white semafor..
When combined with Daily Open Line, ADR (Average Sessions Range), EMA cross and VWAP anchored to your 250 semafors, your odds are greatly increased. Add to that the knowledge of basic market structure and the wisdom that comes from patience and you have a very powerful weapon.
The Daily Open...I trade the M1 chart and also draw a H4 Open Line on my chart for the smaller time frames. Price will tend to trade away from the Daily Open Line. In many cases until it reaches certain levels...Fib, Gann, ADR, etc., then runs through a pullback cycle. I like the ADR levels. The ADR can give clues when entering a consolidation phase, ie trading between the buy side and sell side 15% levels. Trading away from the Daily Open(or H4 open) along with breaking the 15% level, while in agreement with a semafor pattern is a good sign.
Add to that confluence the agreement of your MA cross and the 250 semafor Anchored VWAP and you have a solid signal to help determine your actions. This trend following layout will work on any time frame. I just really like the M1 for its precision, not for crazy back and forth all day. With the exception of some strong pull back signals, I don't enter any more trades on the M1 than on M5, 15 or 30.
This is based on and follows the teachings of Xard and his trading strategy. Just as I don't want to take anyone's credit for these indicators, I won't take credit for what I have been taught either.
The trader can obviously use their favorite MA cross indicator. But this one is visually beautiful AND displays the current time frame and 1 time frame higher on the chart...awesome!
Of note, I do run into trouble at times with the 615 period semafor. I have been told it is because TradingView has trouble with extended period indicators. As a matter of fact, I would like a much higher period for my biggest semafor. I would like it set at 1250, but that seems to be a no starter. If anyone has a solution, that would be welcomed news.
Impulse MACD enhancedThis indicator is designed to provide robust trade entry signals by combining multiple technical filters. Here’s a summary of its key components:
Impulse MACD Calculation:
Uses a Zero-Lag EMA (ZLEMA) based approach to generate a momentum indicator (with a signal line and histogram) that identifies shifts in market momentum.
Simulated Higher Timeframe (HTF) Trend Filter:
Computes an SMA over a multiplied period to simulate a higher timeframe trend. It requires the price to be in line with this broader trend before signaling an entry.
RSI Filter:
Ensures that for bullish entries the RSI is above a set threshold (indicating momentum) and for bearish entries it’s below a threshold.
ADX Filter:
Uses a manually calculated ADX to confirm that the market is in a strong trend (ADX > 30) to reduce false signals in weakly trending or sideways markets.
Volume Filter:
Compares the current volume to a 20‑bar SMA of volume, requiring volume to be significantly higher (by a user-defined percentage) to confirm the strength of the move.
VWAP Confirmation:
Uses the Volume-Weighted Average Price as an extra layer of confirmation: bullish signals require the price to be above VWAP, bearish signals below.
Optional Long-Term & Short-Term MA Filters:
These filters can be enabled to ensure the price is trading above (or below) longer-term and shorter-term moving averages, further aligning the trade with the prevailing trend.
ATR Volatility Filter:
Checks that volatility (as measured by the ATR relative to price) is below a maximum threshold, which helps avoid taking trades in overly volatile conditions.
Price Action Filter:
Ensures that for a bullish signal the current close is above the highest high over a specified lookback period (and vice versa for bearish), indicating a clear breakout.
Signal Throttling:
Signals are limited to one every 10 bars to prevent excessive trading.
When all these conditions are met, the indicator outputs an entry signal for either a bullish or bearish trade.
This multi-filter approach aims to increase win rate by reducing false signals and aligning trades with strong, confirmed trends while filtering out noise.
Delta VolDelta Volume BTC - Multi Pair
Description The Delta Volume BTC - Multi Pair indicator visualizes the balance between buying and selling volume across multiple Bitcoin exchanges. By analyzing price action within each bar, it provides insight into underlying market pressure that traditional volume indicators miss. This indicator allows traders to:
Compare volume flow across Coinbase, Binance, and Binance Perpetual markets
Identify divergences between exchanges that may signal market shifts
Detect accumulation or distribution patterns through volume imbalances
View exchanges individually or in aggregate for comprehensive analysis
Calculation Methods The indicator offers three volume delta calculation methods:
VWAP Based (default):
price_range = high - low
buy_percent = (close - low) / price_range
sell_percent = (high - close) / price_range
delta = volume * (buy_percent - sell_percent)
This method distributes volume based on where price closed within the bar's range, providing a nuanced view of buying/selling pressure.
Tick Based :
delta = volume * sign(hlc3 - previous_hlc3)
This approach assigns volume based on the direction of typical price movement between bars, capturing momentum between periods.
Simple :
delta = close > open ? volume : close < open ? -volume : 0
A straightforward method that assigns positive volume to up bars and negative volume to down bars.
When Aggregate Mode is enabled, the indicator sums the volume deltas from all selected exchanges:
aggregate_delta = coinbase_delta + binance_delta + binance_perp_delta
Features
Multi-Exchange Support : Track volume delta across Coinbase, Binance, and Binance Perpetual futures
Advanced Calculation Methods : Choose between VWAP-based, tick-based, or simple volume delta algorithms
Flexible Display Options : Visualize as histogram, columns, area, or line charts
Customizable Colors : Distinct color schemes for each exchange and direction
Smoothing Options : Apply EMA, SMA, or WMA to reduce noise
Aggregate Mode : Combine all exchanges to see total market flow
How to Use
Individual Exchange Analysis : Uncheck "Aggregate Mode" to see each exchange separately, revealing where smart money may be positioning
Divergence Detection : Watch for one exchange showing buying while others show selling
Volume Trend Confirmation : Strong price moves should be accompanied by strong delta in the same direction
Liquidity Analysis : Compare spot vs futures volume delta to identify market sentiment shifts
The Delta Volume BTC - Multi Pair indicator helps identify the "hidden" buying and selling pressure that may not be apparent from price action alone, giving you an edge in understanding market dynamics across the Bitcoin ecosystem.
Johnny's Machine Learning Moving Average (MLMA) w/ Trend Alerts📖 Overview
Johnny's Machine Learning Moving Average (MLMA) w/ Trend Alerts is a powerful adaptive moving average indicator designed to capture market trends dynamically. Unlike traditional moving averages (e.g., SMA, EMA, WMA), this indicator incorporates volatility-based trend detection, Bollinger Bands, ADX, and RSI, offering a comprehensive view of market conditions.
The MLMA is "machine learning-inspired" because it adapts dynamically to market conditions using ATR-based windowing and integrates multiple trend strength indicators (ADX, RSI, and volatility bands) to provide an intelligent moving average calculation that learns from recent price action rather than being static.
🛠 How It Works
1️⃣ Adaptive Moving Average Selection
The MLMA automatically selects one of four different moving averages:
📊 EMA (Exponential Moving Average) – Reacts quickly to price changes.
🔵 HMA (Hull Moving Average) – Smooth and fast, reducing lag.
🟡 WMA (Weighted Moving Average) – Gives recent prices more importance.
🔴 VWAP (Volume Weighted Average Price) – Accounts for volume impact.
The user can select which moving average type to use, making the indicator customizable based on their strategy.
2️⃣ Dynamic Trend Detection
ATR-Based Adaptive Window 📏
The Average True Range (ATR) determines the window size dynamically.
When volatility is high, the moving average window expands, making the MLMA more stable.
When volatility is low, the window shrinks, making the MLMA more responsive.
Trend Strength Filters 📊
ADX (Average Directional Index) > 25 → Indicates a strong trend.
RSI (Relative Strength Index) > 70 or < 30 → Identifies overbought/oversold conditions.
Price Position Relative to Upper/Lower Bands → Determines bullish vs. bearish momentum.
3️⃣ Volatility Bands & Dynamic Support/Resistance
Bollinger Bands (BB) 📉
Uses standard deviation-based bands around the MLMA to detect overbought and oversold zones.
Upper Band = Resistance, Lower Band = Support.
Helps traders identify breakout potential.
Adaptive Trend Bands 🔵🔴
The MLMA has built-in trend envelopes.
When price breaks the upper band, bullish momentum is confirmed.
When price breaks the lower band, bearish momentum is confirmed.
4️⃣ Visual Enhancements
Dynamic Gradient Fills 🌈
The trend strength (ADX-based) determines the gradient intensity.
Stronger trends = More vivid colors.
Weaker trends = Lighter colors.
Trend Reversal Arrows 🔄
🔼 Green Up Arrow: Bullish reversal signal.
🔽 Red Down Arrow: Bearish reversal signal.
Trend Table Overlay 🖥
Displays ADX, RSI, and Trend State dynamically on the chart.
📢 Trading Signals & How to Use It
1️⃣ Bullish Signals 📈
✅ Conditions for a Long (Buy) Trade:
The MLMA crosses above the lower band.
The ADX is above 25 (confirming trend strength).
RSI is above 55, indicating positive momentum.
Green trend reversal arrow appears (confirmation of a bullish reversal).
🔹 How to Trade It:
Enter a long trade when the MLMA turns bullish.
Set stop-loss below the lower Bollinger Band.
Target previous resistance levels or use the upper band as take-profit.
2️⃣ Bearish Signals 📉
✅ Conditions for a Short (Sell) Trade:
The MLMA crosses below the upper band.
The ADX is above 25 (confirming trend strength).
RSI is below 45, indicating bearish pressure.
Red trend reversal arrow appears (confirmation of a bearish reversal).
🔹 How to Trade It:
Enter a short trade when the MLMA turns bearish.
Set stop-loss above the upper Bollinger Band.
Target the lower band as take-profit.
💡 What Makes This a Machine Learning Moving Average?
📍 1️⃣ Adaptive & Self-Tuning
Unlike static moving averages that rely on fixed parameters, this MLMA automatically adjusts its sensitivity to market conditions using:
ATR-based dynamic windowing 📏 (Expands/contracts based on volatility).
Adaptive smoothing using EMA, HMA, WMA, or VWAP 📊.
Multi-indicator confirmation (ADX, RSI, Volatility Bands) 🏆.
📍 2️⃣ Intelligent Trend Confirmation
The MLMA "learns" from recent price movements instead of blindly following a fixed-length average.
It incorporates ADX & RSI trend filtering to reduce noise & false signals.
📍 3️⃣ Dynamic Color-Coding for Trend Strength
Strong trends trigger more vivid colors, mimicking confidence levels in machine learning models.
Weaker trends appear faded, suggesting uncertainty.
🎯 Why Use the MLMA?
✅ Pros
✔ Combines multiple trend indicators (MA, ADX, RSI, BB).
✔ Automatically adjusts to market conditions.
✔ Filters out weak trends, making it more reliable.
✔ Visually intuitive (gradient colors & reversal arrows).
✔ Works across all timeframes and assets.
⚠️ Cons
❌ Not a standalone strategy → Best used with volume confirmation or candlestick analysis.
❌ Can lag slightly in fast-moving markets (due to smoothing).
Enhanced Retail vs Institutional ActivityThis script highlights market activity in real-time, making it easier to infer the type of market participants driving price and volume changes.
Here’s a list of what the script analyzes:
Volume:
Current volume of the candle.
Moving average of volume over a specified number of periods.
Volume spikes: Current volume compared to a threshold multiple of the moving average.
Price Movement:
Percentage change in price between the current and previous candle.
Identifies significant price changes based on a user-defined threshold.
Institutional Activity:
High volume spikes combined with significant price movements.
Retail Activity:
Periods without volume spikes or significant price changes.
VWAP (Volume-Weighted Average Price):
The average traded price over a specified lookback period, weighted by volume, used as a benchmark.
Market Context Visualization:
Background colors to differentiate institutional (red) and retail (green) activity.
Overlays for:
-Volume bars.
-Average volume line.
-VWAP line.
In summary:
Red = Institutional activity: High volume + significant price change.
Green = Retail activity: Low volume or insignificant price change.
---------------------------------------------------------------------------------------------------------------------
Analysis Explanation:
I’m forecasting that Bitcoin will retest its November 12th low (~$85,098.75) around January 20th, 2025, where the horizontal support line intersects with the downtrend line. This conclusion is based on the following:
Trend Analysis:
The chart shows a clear downtrend with price respecting the descending trendline.
The intersection of the horizontal support and the downtrend line on January 20th indicates a confluence point where price action may gravitate.
Volume and Activity Insights:
Using the Retail vs Institutional Activity indicator, the chart highlights periods dominated by institutional (red background) or retail (green background) activity.
Current price action is in a green zone, suggesting predominantly retail participation with lower volume and insignificant price movements.
Retail vs Institutional Dynamics:
Institutional activity (red zones) aligns with significant price movements and volume spikes, often marking key turning points or trends.
The recent green retail-dominated periods suggest a lack of strong momentum, which may lead to continued price decline until institutions re-enter around the confluence area.
Volume Observations:
Volume remains relatively low during the current retail phase, indicating weak buying pressure.
A potential surge in institutional activity (red zones) near the support level could trigger a rebound or breakdown.
I expect Bitcoin’s price to drop further and test the November 12th low near $85,098.75 on January 20th, 2025. This projection is supported by the convergence of the downtrend line and horizontal support, low retail-driven volume, and historical institutional activity patterns observed using the "Retail vs Institutional Activity" indicator.
Hilega-Milega-RSI-EMA-WMA indicator designed by NKThis indicator is works on RSI, Price and volume to give leading Indicator to Buy or Sell.
This indicator works on all financial markets
Hilega-Milega-RSI-EMA-WMA indicator designed by Nitish Sir
For intraday trade, enter with 15 mins chart.
For positional trade, enter with 1-hour chart.
For Investment this system can be used with daily/weekly/monthly chart.
• RED line is for Volume.
• Green line is for the Price.
• Black line is for the RSI (9).
SELL Trade
1. When Volume (RED line) is above/crossed above Price (Green line) and Strength (Black line), then stock price will go down. This means we will SELL.
2. When there is a GAP in the RED line and the Green line till the time price will go down.
Exit criteria
Whenever Red line exit the shaded area of Oversold zone OR Red line cross over the Green and black line then we will exit.
In case of the SELL trade, after the entry we will monitor the trade in 5 min chart, if the candle is closed above the VWAP then exit.
If the price is crossed the 50 SMA then we will exit trade.
BUY Trade
1. When Volume (RED line) is below/crossed below Price (Green line) and Strength (Black line), then stock price will go up. This means we will BUY.
2. When there is a GAP in the RED line and the Green line till the time price will go down.
Exit criteria
Whenever Red line exit the shaded area of Overbought zone OR Red line cross over the Green and black line then we will exit.
In case of the Buy trade, after the entry we will monitor the trade candle is closed below the VWAP then exit.
If the price is crossed the 50 SMA then we will exit trade.
DeepSignalFilterHelpersLibrary "DeepSignalFilterHelpers"
filter_intraday_intensity(useIiiFilter)
Parameters:
useIiiFilter (bool)
filter_vwma(src, length, useVwmaFilter)
Parameters:
src (float)
length (int)
useVwmaFilter (bool)
filter_nvi(useNviFilter)
Parameters:
useNviFilter (bool)
filter_emv(length, emvThreshold, useEmvFilter, useMovingAvg)
EMV filter for filtering signals based on Ease of Movement
Parameters:
length (int) : The length of the EMV calculation
emvThreshold (float) : The EMV threshold
useEmvFilter (bool) : Whether to apply the EMV filter
useMovingAvg (bool) : Whether to use moving average as threshold
Returns: Filtered result indicating whether the signal should be used
filter_adi(length, threshold, useAdiFilter, useMovingAvg)
ADI filter for filtering signals based on Accumulation/Distribution Index
Parameters:
length (int) : The length of the ADI moving average calculation
threshold (float) : The ADI threshold
useAdiFilter (bool) : Whether to apply the ADI filter
useMovingAvg (bool) : Whether to use moving average as threshold
Returns: Filtered result indicating whether the signal should be used
filter_mfi(length, mfiThreshold, useMfiFilter, useMovingAvg)
MFI filter for filtering signals based on Money Flow Index
Parameters:
length (int) : The length of the MFI calculation
mfiThreshold (float) : The MFI threshold
useMfiFilter (bool) : Whether to apply the MFI filter
useMovingAvg (bool) : Whether to use moving average as threshold
Returns: Filtered result indicating whether the signal should be used
detect_obv_states(obvThresholdStrong, obvThresholdModerate, lookbackPeriod, obvMode)
detect_obv_states: Identify OBV states with three levels (Strong, Moderate, Weak) over a configurable period
Parameters:
obvThresholdStrong (float) : Threshold for strong OBV movements
obvThresholdModerate (float) : Threshold for moderate OBV movements
lookbackPeriod (int) : Number of periods to analyze OBV trends
obvMode (string) : OBV mode to filter ("Strong", "Moderate", "Weak")
Returns: OBV state ("Strong Up", "Moderate Up", "Weak Up", "Positive Divergence", "Negative Divergence", "Consolidation", "Weak Down", "Moderate Down", "Strong Down")
filter_obv(src, length, obvMode, threshold, useObvFilter, useMovingAvg)
filter_obv: Filter signals based on OBV states
Parameters:
src (float) : The source series (default: close)
length (int) : The length of the OBV moving average calculation
obvMode (string) : OBV mode to filter ("Strong", "Moderate", "Weak")
threshold (float) : Optional threshold for additional filtering
useObvFilter (bool) : Whether to apply the OBV filter
useMovingAvg (bool) : Whether to use moving average as threshold
Returns: Filtered result indicating whether the signal should be used
filter_cmf(length, cmfThreshold, useCmfFilter, useMovingAvg)
CMF filter for filtering signals based on Chaikin Money Flow
Parameters:
length (int) : The length of the CMF calculation
cmfThreshold (float) : The CMF threshold
useCmfFilter (bool) : Whether to apply the CMF filter
useMovingAvg (bool) : Whether to use moving average as threshold
Returns: Filtered result indicating whether the signal should be used
filter_vwap(useVwapFilter)
VWAP filter for filtering signals based on Volume-Weighted Average Price
Parameters:
useVwapFilter (bool) : Whether to apply the VWAP filter
Returns: Filtered result indicating whether the signal should be used
filter_pvt(length, pvtThreshold, usePvtFilter, useMovingAvg)
PVT filter for filtering signals based on Price Volume Trend
Parameters:
length (int) : The length of the PVT moving average calculation
pvtThreshold (float) : The PVT threshold
usePvtFilter (bool) : Whether to apply the PVT filter
useMovingAvg (bool) : Whether to use moving average as threshold
Returns: Filtered result indicating whether the signal should be used
filter_vo(shortLength, longLength, voThreshold, useVoFilter, useMovingAvg)
VO filter for filtering signals based on Volume Oscillator
Parameters:
shortLength (int) : The length of the short-term volume moving average
longLength (int) : The length of the long-term volume moving average
voThreshold (float) : The Volume Oscillator threshold
useVoFilter (bool) : Whether to apply the VO filter
useMovingAvg (bool) : Whether to use moving average as threshold
Returns: Filtered result indicating whether the signal should be used
filter_cho(shortLength, longLength, choThreshold, useChoFilter, useMovingAvg)
CHO filter for filtering signals based on Chaikin Oscillator
Parameters:
shortLength (int) : The length of the short-term ADI moving average
longLength (int) : The length of the long-term ADI moving average
choThreshold (float) : The Chaikin Oscillator threshold
useChoFilter (bool) : Whether to apply the CHO filter
useMovingAvg (bool) : Whether to use moving average as threshold
Returns: Filtered result indicating whether the signal should be used
filter_fi(length, fiThreshold, useFiFilter, useMovingAvg)
FI filter for filtering signals based on Force Index
Parameters:
length (int) : The length of the FI calculation
fiThreshold (float) : The Force Index threshold
useFiFilter (bool) : Whether to apply the FI filter
useMovingAvg (bool) : Whether to use moving average as threshold
Returns: Filtered result indicating whether the signal should be used
filter_garman_klass_volatility(length, useGkFilter)
Parameters:
length (int)
useGkFilter (bool)
filter_frama(src, length, useFramaFilter)
Parameters:
src (float)
length (int)
useFramaFilter (bool)
filter_bollinger_bands(src, length, stdDev, useBollingerFilter)
Parameters:
src (float)
length (int)
stdDev (float)
useBollingerFilter (bool)
filter_keltner_channel(src, length, atrMult, useKeltnerFilter)
Parameters:
src (float)
length (simple int)
atrMult (float)
useKeltnerFilter (bool)
regime_filter(src, threshold, useRegimeFilter)
Regime filter for filtering signals based on trend strength
Parameters:
src (float) : The source series
threshold (float) : The threshold for the filter
useRegimeFilter (bool) : Whether to apply the regime filter
Returns: Filtered result indicating whether the signal should be used
regime_filter_v2(src, threshold, useRegimeFilter)
Regime filter for filtering signals based on trend strength
Parameters:
src (float) : The source series
threshold (float) : The threshold for the filter
useRegimeFilter (bool) : Whether to apply the regime filter
Returns: Filtered result indicating whether the signal should be used
filter_adx(src, length, adxThreshold, useAdxFilter)
ADX filter for filtering signals based on ADX strength
Parameters:
src (float) : The source series
length (simple int) : The length of the ADX calculation
adxThreshold (int) : The ADX threshold
useAdxFilter (bool) : Whether to apply the ADX filter
Returns: Filtered result indicating whether the signal should be used
filter_volatility(minLength, maxLength, useVolatilityFilter)
Volatility filter for filtering signals based on volatility
Parameters:
minLength (simple int) : The minimum length for ATR calculation
maxLength (simple int) : The maximum length for ATR calculation
useVolatilityFilter (bool) : Whether to apply the volatility filter
Returns: Filtered result indicating whether the signal should be used
filter_ulcer(src, length, ulcerThreshold, useUlcerFilter)
Ulcer Index filter for filtering signals based on Ulcer Index
Parameters:
src (float) : The source series
length (int) : The length of the Ulcer Index calculation
ulcerThreshold (float) : The Ulcer Index threshold (default: average Ulcer Index)
useUlcerFilter (bool) : Whether to apply the Ulcer Index filter
Returns: Filtered result indicating whether the signal should be used
filter_stddev(src, length, stdDevThreshold, useStdDevFilter)
Standard Deviation filter for filtering signals based on Standard Deviation
Parameters:
src (float) : The source series
length (int) : The length of the Standard Deviation calculation
stdDevThreshold (float) : The Standard Deviation threshold (default: average Standard Deviation)
useStdDevFilter (bool) : Whether to apply the Standard Deviation filter
Returns: Filtered result indicating whether the signal should be used
filter_macdv(src, shortLength, longLength, signalSmoothing, macdVThreshold, useMacdVFilter)
MACD-V filter for filtering signals based on MACD-V
Parameters:
src (float) : The source series
shortLength (simple int) : The short length for MACD calculation
longLength (simple int) : The long length for MACD calculation
signalSmoothing (simple int) : The signal smoothing length for MACD
macdVThreshold (float) : The MACD-V threshold (default: average MACD-V)
useMacdVFilter (bool) : Whether to apply the MACD-V filter
Returns: Filtered result indicating whether the signal should be used
filter_atr(length, atrThreshold, useAtrFilter)
ATR filter for filtering signals based on Average True Range (ATR)
Parameters:
length (simple int) : The length of the ATR calculation
atrThreshold (float) : The ATR threshold (default: average ATR)
useAtrFilter (bool) : Whether to apply the ATR filter
Returns: Filtered result indicating whether the signal should be used
filter_candle_body_and_atr(length, bodyThreshold, atrThreshold, useFilter)
Candle Body and ATR filter for filtering signals
Parameters:
length (simple int) : The length of the ATR calculation
bodyThreshold (float) : The threshold for candle body size (relative to ATR)
atrThreshold (float) : The ATR threshold (default: average ATR)
useFilter (bool) : Whether to apply the candle body and ATR filter
Returns: Filtered result indicating whether the signal should be used
filter_atrp(length, atrpThreshold, useAtrpFilter)
ATRP filter for filtering signals based on ATR Percentage (ATRP)
Parameters:
length (simple int) : The length of the ATR calculation
atrpThreshold (float) : The ATRP threshold (default: average ATRP)
useAtrpFilter (bool) : Whether to apply the ATRP filter
Returns: Filtered result indicating whether the signal should be used
filter_jma(src, length, phase, useJmaFilter)
Parameters:
src (float)
length (simple int)
phase (float)
useJmaFilter (bool)
filter_cidi(src, rsiLength, shortMaLength, longMaLength, useCidiFilter)
Parameters:
src (float)
rsiLength (simple int)
shortMaLength (int)
longMaLength (int)
useCidiFilter (bool)
filter_rsi(src, length, rsiThreshold, useRsiFilter)
Parameters:
src (float)
length (simple int)
rsiThreshold (float)
useRsiFilter (bool)
filter_ichimoku_oscillator(length, threshold, useFilter)
Ichimoku Oscillator filter for filtering signals based on Ichimoku Oscillator
Parameters:
length (int) : The length of the Ichimoku Oscillator calculation
threshold (float) : The threshold for the filter (default: average Ichimoku Oscillator)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_cmb_composite_index(src, shortLength, longLength, threshold, useFilter)
CMB Composite Index filter for filtering signals based on CMB Composite Index
Parameters:
src (float) : The source series
shortLength (simple int) : The short length for CMB calculation
longLength (simple int) : The long length for CMB calculation
threshold (float) : The threshold for the filter (default: average CMB Composite Index)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_connors_rsi(src, rsiLength, rocLength, streakLength, threshold, useFilter)
Connors RSI filter for filtering signals based on Connors RSI
Parameters:
src (float) : The source series
rsiLength (simple int) : The length for RSI calculation
rocLength (int) : The length for ROC calculation
streakLength (simple int) : The length for streak calculation
threshold (float) : The threshold for the filter (default: average Connors RSI)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_coppock_curve(src, roc1Length, roc2Length, wmaLength, threshold, useFilter)
Coppock Curve filter for filtering signals based on Coppock Curve
Parameters:
src (float) : The source series
roc1Length (int) : The length for the first ROC calculation
roc2Length (int) : The length for the second ROC calculation
wmaLength (int) : The length for the WMA calculation
threshold (float) : The threshold for the filter (default: average Coppock Curve)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_pmo(src, pmoLength, smoothingLength, threshold, useFilter)
DecisionPoint Price Momentum Oscillator filter for filtering signals based on PMO
Parameters:
src (float) : The source series
pmoLength (simple int) : The length for PMO calculation
smoothingLength (simple int) : The smoothing length for PMO
threshold (float) : The threshold for the filter (default: average PMO Oscillator)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_macd(src, shortLength, longLength, signalSmoothing, threshold, useFilter)
MACD filter for filtering signals based on MACD
Parameters:
src (float) : The source series
shortLength (simple int) : The short length for MACD calculation
longLength (simple int) : The long length for MACD calculation
signalSmoothing (simple int) : The signal smoothing length for MACD
threshold (float) : The threshold for the filter (default: average MACD)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_macd_histogram(src, shortLength, longLength, signalSmoothing, threshold, useFilter)
MACD-Histogram filter for filtering signals based on MACD-Histogram
Parameters:
src (float) : The source series
shortLength (simple int) : The short length for MACD calculation
longLength (simple int) : The long length for MACD calculation
signalSmoothing (simple int) : The signal smoothing length for MACD
threshold (float) : The threshold for the filter (default: average MACD-Histogram)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_kst(src, r1, r2, r3, r4, sm1, sm2, sm3, sm4, signalLength, threshold, useFilter)
Pring's Know Sure Thing filter for filtering signals based on KST
Parameters:
src (float) : The source series
r1 (int) : The first ROC length
r2 (int) : The second ROC length
r3 (int) : The third ROC length
r4 (int) : The fourth ROC length
sm1 (int) : The first smoothing length
sm2 (int) : The second smoothing length
sm3 (int) : The third smoothing length
sm4 (int) : The fourth smoothing length
signalLength (int) : The signal line smoothing length
threshold (float) : The threshold for the filter (default: average KST Oscillator)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_special_k(src, r1, r2, r3, r4, sm1, sm2, sm3, sm4, threshold, useFilter)
Pring's Special K filter for filtering signals based on Special K
Parameters:
src (float) : The source series
r1 (int) : The first ROC length
r2 (int) : The second ROC length
r3 (int) : The third ROC length
r4 (int) : The fourth ROC length
sm1 (int) : The first smoothing length
sm2 (int) : The second smoothing length
sm3 (int) : The third smoothing length
sm4 (int) : The fourth smoothing length
threshold (float) : The threshold for the filter (default: average Special K)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_roc_momentum(src, rocLength, momentumLength, threshold, useFilter)
ROC and Momentum filter for filtering signals based on ROC and Momentum
Parameters:
src (float) : The source series
rocLength (int) : The length for ROC calculation
momentumLength (int) : The length for Momentum calculation
threshold (float) : The threshold for the filter (default: average ROC and Momentum)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_rrg_relative_strength(src, length, threshold, useFilter)
RRG Relative Strength filter for filtering signals based on RRG Relative Strength
Parameters:
src (float) : The source series
length (int) : The length for RRG Relative Strength calculation
threshold (float) : The threshold for the filter (default: average RRG Relative Strength)
useFilter (bool) : Whether to apply the filter
Returns: Filtered result indicating whether the signal should be used
filter_alligator(useFilter)
Parameters:
useFilter (bool)
filter_wyckoff(useFilter)
Parameters:
useFilter (bool)
filter_squeeze_momentum(bbLength, bbStdDev, kcLength, kcMult, useFilter)
Parameters:
bbLength (int)
bbStdDev (float)
kcLength (simple int)
kcMult (float)
useFilter (bool)
filter_atr_compression(length, atrThreshold, useFilter)
Parameters:
length (simple int)
atrThreshold (float)
useFilter (bool)
filter_low_volume(length, useFilter)
Parameters:
length (int)
useFilter (bool)
filter_nvi_accumulation(useFilter)
Parameters:
useFilter (bool)
filter_ma_slope(src, length, slopeThreshold, useFilter)
Parameters:
src (float)
length (int)
slopeThreshold (float)
useFilter (bool)
filter_adx_low(len, lensig, adxThreshold, useFilter)
Parameters:
len (simple int)
lensig (simple int)
adxThreshold (int)
useFilter (bool)
filter_choppiness_index(length, chopThreshold, useFilter)
Parameters:
length (int)
chopThreshold (float)
useFilter (bool)
filter_range_detection(length, useFilter)
Parameters:
length (int)
useFilter (bool)
Volume Based Price Prediction [EdgeTerminal]This indicator combines price action, volume analysis, and trend prediction to forecast potential future price movements. The indicator creates a dynamic prediction zone with confidence bands, helping you visualize possible price trajectories based on current market conditions.
Key Features
Dynamic price prediction based on volume-weighted trend analysis
Confidence bands showing potential price ranges
Volume-based candle coloring for enhanced market insight
VWAP and Moving Average overlay
Customizable prediction parameters
Real-time updates with each new bar
Technical Components:
Volume-Price Correlation: The indicator analyzes the relationship between price movements and volume, Identifies stronger trends through volume confirmation and uses Volume-Weighted Average Price (VWAP) for price equilibrium
Trend Strength Analysis: Calculates trend direction using exponential moving averages, weights trend strength by relative volume and incorporates momentum for improved accuracy
Prediction Algorithm: combines current price, trend, and volume metrics, projects future price levels using weighted factors and generates confidence bands based on price volatility
Customizable Parameters:
Moving Average Length: Controls the smoothing period for calculations
Volume Weight Factor: Adjusts how much volume influences predictions
Prediction Periods: Number of bars to project into the future
Confidence Band Width: Controls the width of prediction bands
How to use it:
Look for strong volume confirmation with green candles, watch for prediction line slope changes, use confidence bands to gauge potential volatility and compare predictions with key support/resistance levels
Some useful tips:
Start with default settings and adjust gradually
Use wider confidence bands in volatile markets
Consider prediction lines as zones rather than exact levels
Best applications of this indicator:
Trend continuation probability assessment
Potential reversal point identification
Risk management through confidence bands
Volume-based trend confirmation
CSVParser█ OVERVIEW
The library contains functions for parsing and importing complex CSV configurations (with a special simple syntax) into a special hierarchical object (of type objProps ) as follows:
Functions:
parseConfig() - reads CSV text into an objProps object.
toT() - displays the contents of an objProps object in a table form, which allows to check the CSV text for syntax errors.
getPropAr() - returns objProps.arS array for child object with `prop` key in mpObj map (or na if not found)
This library is handy in allowing users to store presets for the scripts and switch between them (see, e.g., my HTF moving averages script where users can switch between several preset configuations of 24 MA's across 5 timeframes).
█ HOW THE SCRIPT WORKS.
The script works as follows:
all values read from config text are stored as strings
Nested brackets in config text create a named nested objects of objProps0, ... , objProps9 types.
objProps objects of each level have the following fields:
- array arS for storing values without names (e.g. "12, 23" will be imported into a string array arS as )
- map mpS for storing items with names (e.g. "tf = 60, length = 21" will be imported as <"tf", "60"> and <"length", "21"> pairs into mpS )
- map mpObj for storing nested objects (e.g. "TF1(tf=60, length(21,50,100))" creates a <"TF1, objProps0 object> pair in mpObj map property of the top level object (objProps) , "tf=60" is stored as <"tf", "60"> key-value pair in mpS map property of a next level object (objProps0) and "length (...)" creates a <"length", objProps1> pair in objProps0.mpObj map while length values are stored in objProps1.arS array as strings. Every opening bracket creates a next level objProps object.
If objects or properties with duplicate names are encountered only the latest is imported
(e.g. for "TF1(length(12,22)), TF1(tf=240)" only "TF1(tf=240)" will be imported
Line breaks are not regarded as part of syntax (i.e. values are imported with line breaks, you can supply
symbols "(" , ")" , "," and "=" are special characters and cannot be used within property values (with the exception of a quoted text as a value of a property as explained below)
named properties can have quoted text as their value. In that case special characters within quotation marks are regarded as normal characters. Text between "=" and opening quotation mark as well as text following the closing quotation mark and until next property value is ignored. E.g. "quote = ignored "The quote" also ignored" will be imported as <"quote", "The quote">. Quotation marks within quotes must be excaped with "\" .
if a key names happens to be a multi-line then only first line containing non-space characters (trimmed from spaces) is taken as a key.
")," or ") ," and similar do not create an empty ("") array item while ",," does. (",)" creates an "" array item)
█ CSV CONFIGURATION SYNTAX
Unnamed values: just list them comma separated and they will be imported into arS of the object of the current level.
Named values: use "=" sign as follows: "property1=value1, property2 = value2"
Value of several objects: Use brackets after the name of the object ant list all object properties within the brackets (including its child objects if necessary). E.g. "TF1(tf =60, length(21,200), TF2(tf=240, length(50,200)"
Named and unnamed values as well as objects can go in any order. E.g. "12, tf=60, 21" will be imported as follows: "12", "21" will go to arS array and <"tf", "60"> will go to mpS maP of objProps (the top level object).
You can play around and test your config text using demo in this library, just edit your text in script settings and see how it is parsed into objProps objects.
█ USAGE RECOMMENDATIONS AND SAMPLE USE
I suggest the following approach:
- create functions for your UDT which can set properties by name.
- create enumerator functions which iterates through all the property names (supplied as a const string array) and imports their values into the object
█ SAMPLE USE
A sample use of this library can be seen in my Multi-timeframe 24 moving averages + BB+SAR+Supertrend+VWAP script where settings for the MAs across many timeframes are imported from CSV configurations (presets).
█ FULL LIST OF FUNCTIONS AND PROPERTIES
nzs(_s, nz)
Like nz() but for strings. Returns `nz` arg (default = "") if _s is na.
Parameters:
_s (string)
nz (string)
method init(this)
Initializes objProps obj (creates child maps and arrays)
Namespace types: objProps
Parameters:
this (objProps)
method toT(this, nz)
Outputs objProps to string matrices for further display using autotable().
Namespace types: objProps, objProps1, ..., objProps9
Parameters:
this (objProps/objProps1/..../objProps9)
nz (string)
Returns: A tuple - value, merge and color matrix (autotable() parameters)
method parseConfig(this, s)
Reads config text into objProps (unnamed values into arS, named into mpS, sub-levels into mpObj)
Namespace types: objProps
Parameters:
this (objProps)
s (string)
method getPropArS(this, prop)
Returns a string array of values for a given property name `prop`. Looks for a key `prop` in objProps.mpObj
if finds pair returns obj.arS, otherwise returns na. Returns a reference to the original, not a copy.
Namespace types: objProps, objProps1, ..., objProps8
Parameters:
this (objProps/objProps1/..../objProps8)
prop (string)
method getPropVal(this, prop, id)
Checks if there is an array of values for property `prop` and returns its `id`'s element or na if not found
Namespace types: objProps, objProps1, ..., objProps8
Parameters:
this (objProps/objProps1/..../objProps8) : objProps object containing array of property values in a child objProp object corresponding to propertty name.
prop (string) : (string) Name of the property
id (int) : (int) Id of the element to be returned from the array pf property values
objProps9 type
Object for storing values read from CSV relating to a particular object or property name.
Fields:
mpS (map) : (map() Stores property values as pairs
arS (array) : (string ) Array of values
objProps, objProps0, ... objProps8 types
Object for storing values read from CSV relating to a particular object or property name.
Fields:
mpS (map) : (map() Stores property values as pairs
arS (array) : (string ) Array of values
mpObj (map) : (map() Stores objProps objects containing properties's data as pairs
TCLC(TraderChitra Learning Class)-Option ChainThis indicator plots the Option chain data of the following instruments and columns..
It plots 11 rows ,
5 Rows above the input strike price
1 Row for the input strike price
5 Rows below the input strike price
Instruments :
1. NIFTY
2. BANKNIFTY
3. FINNIFTY
4. MIDCPNifty
Columns :
1. StrikePrice
2.CMP
3.Volume
4.VWAP
5.Diff (Open-Close)
Traders need to change the expiry date to check the premium of the corresponding instruments...
There are few key things,
1. Rows in yellow are marked as ATM strike price
2. Cell values in red / green indicates the prices are trading above / below the VWAP
The prices are expected to be bullish when cmp trades above VWAP and we can gauge the trend
The column Volume provides the details in which strike price more traders are actively traded..
The far month contracts can also be changed in the settings and it helps the swing/positional traders
The Strike price can be modified to check the appropriate strikes