Pivot and Wick Boxes with Break Signals v2█ OVERVIEW
The "Pivot and Wick Boxes with Break Signals v2" is an advanced Pine Script® technical analysis tool that identifies pivot points (highs and lows) on the chart and draws customizable boxes based on the wicks of pivot candles. It is ideal for traders using price action strategies, helping to identify key support and resistance levels and potential breakout trading opportunities. With flexible settings, a volume filter, and label grouping, the indicator ensures clarity and precision on the chart.
█ CONCEPTS
The indicator modifies how zones are drawn, displaying boxes on the latest candle rather than extending from the zones based on pivot candle wicks. This approach prevents visual clutter on the chart, allowing simultaneous use of other indicators without sacrificing clarity.
Why are wicks important?Wicks of pivot candles indicate significant market reactions in key areas. Depending on the context, they may signal rejection, testing, or absorption of support or resistance levels. Long wicks often appear where large players are active, and the marked zones are frequently retested. The indicator enables quick identification and observation of their impact on future price movements.
█ FEATURES
Pivot Detection: Identifies pivot points (highs and lows) based on a user-defined lookback period (Pivot Length), with options to display boxes for high and low pivot candle wicks separately.
Customizable Boxes: Draws boxes based on pivot candle wicks with adjustable border colors, background gradients, border styles (solid, dashed, dotted), and border widths.
Breakout Signals: Generates buy (green upward triangle) and sell (red downward triangle) signals when the price breaks through a pivot and the candle closes on the opposite side, indicating potential trend continuation. If the price approaches a pivot zone but fails to break it, this may suggest a potential trend reversal or the end of a correction.
Volume Filter: Optional volume-based signal filter that requires breakouts to have a volume exceeding a user-defined multiplier of the average volume over a specified period. Note: the volume filter will not work on markets where volume data is unavailable.
Label Grouping: Automatically groups overlapping pivot labels to avoid chart clutter, displaying only key price levels.
█ HOW TO USE
Add to Chart: Apply the indicator to your TradingView chart via the Pine Editor or Indicators menu.
Configure Settings:
Pivot Settings: Adjust Pivot Length to change the sensitivity of pivot detection—the value represents the number of candles, which equals the delay in displaying the pivot. Larger values generate fewer pivots, but they are generally more significant. Set Max High Pivot Boxes and Max Low Pivot Boxes to control the number of displayed boxes.
Signal Settings: Enable Use Volume Filter for Signals to require higher volume for breakouts, and adjust Average Volume Multiplier and Average Volume Period. A volume multiplier of 1 means the filter allows pivots with a volume equal to or greater than the average volume over the specified period.
Box Styling: Configure border colors, background gradients, line thickness, and border styles for high and low pivot boxes.
Interpreting Signals:
Buy Signal: A green triangle below the bar indicates a breakout above a high pivot box, suggesting potential continuation of an uptrend.
Sell Signal: A red triangle above the bar indicates a breakout below a low pivot box, suggesting potential continuation of a downtrend.
Non-Breakout Zones: If the price approaches a pivot zone but fails to break it, it may indicate a potential trend reversal or the end of a correction (e.g., price rejection at a resistance level in a downtrend or a support level in an uptrend).
Overlapping Zones: If pivot zones overlap, it indicates the level has been tested multiple times, suggesting its significance in the market.
Use signals in conjunction with other technical analysis tools for confirmation.
Monitoring Levels: Use labeled pivot levels as potential support and resistance zones for trade planning.
█ APPLICATIONS
Price Action Trading: Use pivot levels as support and resistance zones. For example, in an uptrend, you can look for buying opportunities near low pivot zones (support), where price often bounces after testing the wick of a pivot candle. Combining with other indicators, such as Fibonacci levels, enhances the significance of pivot zones—if they align with Fibonacci levels and are accompanied by high volume, the zone is considered stronger.
Breakout Strategies: Trade based on breakout signals from key pivot zones. A buy signal after a breakout from a high pivot with confirmed volume may indicate continued upward movement. Using the indicator with other tools, such as moving averages or RSI, can help confirm the strength of the breakout.
Practical Approach:
The more frequently a zone is tested in a short period, the higher the risk of a breakout, as supply or demand may be exhausted.
The longer a zone holds without breaking, the more significant it becomes for the market, both psychologically and technically.
As the saying goes: “A zone is strong until it breaks—when it does, a strong move often follows.”
How to observe?
Strong bounces from a zone indicate that demand or supply remains active.
Weaker bounces or price lingering near the level may suggest the market is preparing for a breakout.
█ NOTES
Test the indicator across different timeframes and markets (stocks, forex, crypto) to optimize settings for your trading style.
The volume filter will not work on markets where volume data is unavailable. In such cases, disable the volume filter in the settings.
For best results, use on high-liquidity markets when the volume filter is enabled.
ค้นหาในสคริปต์สำหรับ "zone"
Lyapunov Market Instability (LMI)Lyapunov Market Instability (LMI)
What is Lyapunov Market Instability?
Lyapunov Market Instability (LMI) is a revolutionary indicator that brings chaos theory from theoretical physics into practical trading. By calculating Lyapunov exponents—a measure of how rapidly nearby trajectories diverge in phase space—LMI quantifies market sensitivity to initial conditions. This isn't another oscillator or trend indicator; it's a mathematical lens that reveals whether markets are in chaotic (trending) or stable (ranging) regimes.
Inspired by the meditative color field paintings of Mark Rothko, this indicator transforms complex chaos mathematics into an intuitive visual experience. The elegant simplicity of the visualization belies the sophisticated theory underneath—just as Rothko's seemingly simple color blocks contain profound depth.
Theoretical Foundation (Chaos Theory & Lyapunov Exponents)
In dynamical systems, the Lyapunov exponent (λ) measures the rate of separation of infinitesimally close trajectories:
λ > 0: System is chaotic—small changes lead to dramatically different outcomes (butterfly effect)
λ < 0: System is stable—trajectories converge, perturbations die out
λ ≈ 0: Edge of chaos—transition between regimes
Phase Space Reconstruction
Using Takens' embedding theorem , we reconstruct market dynamics in higher dimensions:
Time-delay embedding: Create vectors from price at different lags
Nearest neighbor search: Find historically similar market states
Trajectory evolution: Track how these similar states diverged over time
Divergence rate: Calculate average exponential separation
Market Application
Chaotic markets (λ > threshold): Strong trends emerge, momentum dominates, use breakout strategies
Stable markets (λ < threshold): Mean reversion dominates, fade extremes, range-bound strategies work
Transition zones: Market regime about to change, reduce position size, wait for confirmation
How LMI Works
1. Phase Space Construction
Each point in time is embedded as a vector using historical prices at specific delays (τ). This reveals the market's hidden attractor structure.
2. Lyapunov Calculation
For each current state, we:
- Find similar historical states within epsilon (ε) distance
- Track how these initially similar states evolved
- Measure exponential divergence rate
- Average across multiple trajectories for robustness
3. Signal Generation
Chaos signals: When λ crosses above threshold, market enters trending regime
Stability signals: When λ crosses below threshold, market enters ranging regime
Divergence detection: Price/Lyapunov divergences signal potential reversals
4. Rothko Visualization
Color fields: Background zones represent market states with Rothko-inspired palettes
Glowing line: Lyapunov exponent with intensity reflecting market state
Minimalist design: Focus on essential information without clutter
Inputs:
📐 Lyapunov Parameters
Embedding Dimension (default: 3)
Dimensions for phase space reconstruction
2-3: Simple dynamics (crypto/forex) - captures basic momentum patterns
4-5: Complex dynamics (stocks/indices) - captures intricate market structures
Higher dimensions need exponentially more data but reveal deeper patterns
Time Delay τ (default: 1)
Lag between phase space coordinates
1: High-frequency (1m-15m charts) - captures rapid market shifts
2-3: Medium frequency (1H-4H) - balances noise and signal
4-5: Low frequency (Daily+) - focuses on major regime changes
Match to your timeframe's natural cycle
Initial Separation ε (default: 0.001)
Neighborhood size for finding similar states
0.0001-0.0005: Highly liquid markets (major forex pairs)
0.0005-0.002: Normal markets (large-cap stocks)
0.002-0.01: Volatile markets (crypto, small-caps)
Smaller = more sensitive to chaos onset
Evolution Steps (default: 10)
How far to track trajectory divergence
5-10: Fast signals for scalping - quick regime detection
10-20: Balanced for day trading - reliable signals
20-30: Slow signals for swing trading - major regime shifts only
Nearest Neighbors (default: 5)
Phase space points for averaging
3-4: Noisy/fast markets - adapts quickly
5-6: Balanced (recommended) - smooth yet responsive
7-10: Smooth/slow markets - very stable signals
📊 Signal Parameters
Chaos Threshold (default: 0.05)
Lyapunov value above which market is chaotic
0.01-0.03: Sensitive - more chaos signals, earlier detection
0.05: Balanced - optimal for most markets
0.1-0.2: Conservative - only strong trends trigger
Stability Threshold (default: -0.05)
Lyapunov value below which market is stable
-0.01 to -0.03: Sensitive - quick stability detection
-0.05: Balanced - reliable ranging signals
-0.1 to -0.2: Conservative - only deep stability
Signal Smoothing (default: 3)
EMA period for noise reduction
1-2: Raw signals for experienced traders
3-5: Balanced - recommended for most
6-10: Very smooth for position traders
🎨 Rothko Visualization
Rothko Classic: Deep reds for chaos, midnight blues for stability
Orange/Red: Warm sunset tones throughout
Blue/Black: Cool, meditative ocean depths
Purple/Grey: Subtle, sophisticated palette
Visual Options:
Market Zones : Background fields showing regime areas
Transitions: Arrows marking regime changes
Divergences: Labels for price/Lyapunov divergences
Dashboard: Real-time state and trading signals
Guide: Educational panel explaining the theory
Visual Logic & Interpretation
Main Elements
Lyapunov Line: The heart of the indicator
Above chaos threshold: Market is trending, follow momentum
Below stability threshold: Market is ranging, fade extremes
Between thresholds: Transition zone, reduce risk
Background Zones: Rothko-inspired color fields
Red zone: Chaotic regime (trending)
Gray zone: Transition (uncertain)
Blue zone: Stable regime (ranging)
Transition Markers:
Up triangle: Entering chaos - start trend following
Down triangle: Entering stability - start mean reversion
Divergence Signals:
Bullish: Price makes low but Lyapunov rising (stability breaking down)
Bearish: Price makes high but Lyapunov falling (chaos dissipating)
Dashboard Information
Market State: Current regime (Chaotic/Stable/Transitioning)
Trading Bias: Specific strategy recommendation
Lyapunov λ: Raw value for precision
Signal Strength: Confidence in current regime
Last Change: Bars since last regime shift
Action: Clear trading directive
Trading Strategies
In Chaotic Regime (λ > threshold)
Follow trends aggressively: Breakouts have high success rate
Use momentum strategies: Moving average crossovers work well
Wider stops: Expect larger swings
Pyramid into winners: Trends tend to persist
In Stable Regime (λ < threshold)
Fade extremes: Mean reversion dominates
Use oscillators: RSI, Stochastic work well
Tighter stops: Smaller expected moves
Scale out at targets: Trends don't persist
In Transition Zone
Reduce position size: Uncertainty is high
Wait for confirmation: Let regime establish
Use options: Volatility strategies may work
Monitor closely: Quick changes possible
Advanced Techniques
- Multi-Timeframe Analysis
- Higher timeframe LMI for regime context
- Lower timeframe for entry timing
- Alignment = highest probability trades
- Divergence Trading
- Most powerful at regime boundaries
- Combine with support/resistance
- Use for early reversal detection
- Volatility Correlation
- Chaos often precedes volatility expansion
- Stability often precedes volatility contraction
- Use for options strategies
Originality & Innovation
LMI represents a genuine breakthrough in applying chaos theory to markets:
True Lyapunov Calculation: Not a simplified proxy but actual phase space reconstruction and divergence measurement
Rothko Aesthetic: Transforms complex math into meditative visual experience
Regime Detection: Identifies market state changes before price makes them obvious
Practical Application: Clear, actionable signals from theoretical physics
This is not a combination of existing indicators or a visual makeover of standard tools. It's a fundamental rethinking of how we measure and visualize market dynamics.
Best Practices
Start with defaults: Parameters are optimized for broad market conditions
Match to your timeframe: Adjust tau and evolution steps
Confirm with price action: LMI shows regime, not direction
Use appropriate strategies: Chaos = trend, Stability = reversion
Respect transitions: Reduce risk during regime changes
Alerts Available
Chaos Entry: Market entering chaotic regime - prepare for trends
Stability Entry: Market entering stable regime - prepare for ranges
Bullish Divergence: Potential bottom forming
Bearish Divergence: Potential top forming
Chart Information
Script Name: Lyapunov Market Instability (LMI) Recommended Use: All markets, all timeframes Best Performance: Liquid markets with clear regimes
Academic References
Takens, F. (1981). "Detecting strange attractors in turbulence"
Wolf, A. et al. (1985). "Determining Lyapunov exponents from a time series"
Rosenstein, M. et al. (1993). "A practical method for calculating largest Lyapunov exponents"
Note: After completing this indicator, I discovered @loxx's 2022 "Lyapunov Hodrick-Prescott Oscillator w/ DSL". While both explore Lyapunov exponents, they represent independent implementations with different methodologies and applications. This indicator uses phase space reconstruction for regime detection, while his combines Lyapunov concepts with HP filtering.
Disclaimer
This indicator is for research and educational purposes only. It does not constitute financial advice or provide direct buy/sell signals. Chaos theory reveals market character, not future prices. Always use proper risk management and combine with your own analysis. Past performance does not guarantee future results.
See markets through the lens of chaos. Trade the regime, not the noise.
Bringing theoretical physics to practical trading through the meditative aesthetics of Mark Rothko
Trade with insight. Trade with anticipation.
— Dskyz , for DAFE Trading Systems
Dynamic Liquidity Depth [BigBeluga]
Dynamic Liquidity Depth
A liquidity mapping engine that reveals hidden zones of market vulnerability. This tool simulates where potential large concentrations of stop-losses may exist — above recent highs (sell-side) and below recent lows (buy-side) — by analyzing real price behavior and directional volume. The result is a dynamic two-sided volume profile that highlights where price is most likely to gravitate during liquidation events, reversals, or engineered stop hunts.
🔵 KEY FEATURES
Two-Sided Liquidity Profiles:
Plots two separate profiles on the chart — one above price for potential sell-side liquidity , and one below price for potential buy-side liquidity . Each profile reflects the volume distribution across binned zones derived from historical highs and lows.
Real Stop Zone Simulation:
Each profile is offset from the current high or low using an ATR-based buffer. This simulates where traders might cluster their stop-losses above swing highs (short stops) or below swing lows (long stops).
Directional Volume Analysis:
Buy-side volume is accumulated only from bullish candles (close > open), while sell-side volume is accumulated only from bearish candles (close < open). This directional filtering enhances accuracy by capturing genuine pressure zones.
Dynamic Volume Heatmap:
Each liquidity bin is rendered as a horizontal box with a color gradient based on volume intensity:
- Low activity bins are shaded lightly.
- High-volume zones appear more vividly in red (sell) or lime (buy).
- The maximum volume bin in each profile is emphasized with a brighter fill and a volume label.
Extended POC Zones:
The Point of Control (PoC) — the bin with the most volume — is extended backwards across the entire lookback period to mark critical resistance (sell-side) or support (buy-side) levels.
Total Volume Summary Labels:
At the center of each profile, a summary label displays Total Buy Liquidity and Total Sell Liquidity volume.
This metric helps assess directional imbalance — when buy liquidity is dominant, the market may favor upward continuation, and vice versa.
Customizable Profile Granularity:
You can fine-tune both Resolution (Bins) and Offset Distance to adjust how far profiles are displaced from price and how many levels are calculated within the ATR range.
🔵 HOW IT WORKS
The indicator calculates an ATR-based buffer above highs and below lows to define the top and bottom of the liquidity zones.
Using a user-defined lookback period, it scans historical candles and divides the buffered zones into bins.
Each bin checks if bullish (or bearish) candles pass through it based on price wicks and body.
Volume from valid candles is summed into the corresponding bin.
When volume exists in a bin, a horizontal box is drawn with a width scaled by relative volume strength.
The bin with the highest volume is highlighted and optionally extended backward as a zone of importance.
Total buy/sell liquidity is displayed with a summary label at the side of the profile.
🔵 USAGE/b]
Identify Stop Hunt Zones: High-volume clusters near swing highs/lows are likely liquidation zones targeted during fakeouts.
Fade or Follow Reactions: Price hitting a high-volume bin may reverse (fade opportunity) or break with strength (confirmation breakout).
Layer with Other Tools: Combine with market structure, order blocks, or trend filters to validate entries near liquidity.
Adjust Offset for Sensitivity: Use higher offset to simulate wider stop placement; use lower for tighter scalping zones.
🔵 CONCLUSION
Dynamic Liquidity Depth transforms raw price and volume into a spatial map of liquidity. By revealing areas where stop orders are likely hidden, it gives traders insight into price manipulation zones, potential reversal levels, and breakout traps. Whether you're hunting for traps or trading with the flow, this tool equips you to navigate liquidity with precision.
Optimus trader Optimus Trader
Indicator Description:
The Optimus Trader indicator is designed for technical traders looking for entry and exit points in financial markets. It combines signals based on volume, moving averages, VWAP (Volume Weighted Average Price), as well as the recognition of candlestick patterns such as Pin Bar and Inside Bars. This indicator helps identify opportune moments to buy or sell based on trends, volumes, and recent liquidity zones.
Parameters and Features:
1. Simple Moving Average (MA) and VWAP:
- Optimus Trader uses a 50-period simple moving average to determine the underlying trend. It also includes VWAP for precise price analysis based on traded volumes.
- These two indicators help identify whether the market is in an uptrend or downtrend, enhancing the reliability of buy and sell signals.
2. Volume :
- To avoid false signals, a volume threshold is set using a 20-period moving average, adjusted to 1.2 times the average volume. This filters signals by considering only high-volume periods, indicating heightened market interest.
3. Candlestick Pattern Recognition:
- Pin Bar: This sought-after candlestick pattern is detected for both bullish and bearish setups. A bullish or bearish *Pin Bar* often signals a possible reversal or continuation.
- *Inside Bar*: This price compression pattern is also detected, indicating a zone of indecision before a potential movement.
4. Trend:
- An uptrend is confirmed when the price is above the MA and VWAP, while a downtrend is identified when the price is below both indicators.
5. Liquidity Zones:
- Optimus Trader includes an approximate liquidity zone detection feature. By identifying recent support and resistance levels, the indicator detects if the price is near these zones. This feature strengthens the relevance of buy or sell signals.
6. Buy and Sell Signals:
- Buy: A buy signal is generated when the indicator detects a bullish *Pin Bar* or *Inside Bar* in an uptrend with high volume, and the price is close to a liquidity zone.
- Sell: A sell signal is generated when a bearish *Pin Bar* or *Inside Bar* is detected in a downtrend with high volume, and the price is near a liquidity zone.
Signal Display:
The signals are visible directly on the chart:
- A "BUY" label in green is displayed below the bar for buy signals.
- A "SELL" label in red is displayed above the bar for sell signals.
Summary:
This indicator is intended for traders seeking precise entry and exit points by integrating trend analysis, volume, and candlestick patterns. With liquidity zones, *Optimus Trader* helps minimize false signals, providing clear and accurate alerts.
---
This description can be directly added to TradingView to help users quickly understand the features and logic of this indicator.
Bitcoin Economics Adaptive MultipleBEAM (Bitcoin Economics Adaptive Multiple) is an indicator that assesses the valuation of Bitcoin by dividing the current price of Bitcoin by a moving average of past prices. Its purpose is to provide insights into whether Bitcoin is under or overvalued at any given time. The thresholds for the buy and sell zones in BEAM are adjustable, allowing users to customize the indicator based on their preferences and trading strategies.
BEAM categorizes Bitcoin's valuation into two distinct zones: the green buy zone and the red sell zone.
Green Buy Zone:
The green buy zone in BEAM indicates that Bitcoin is potentially undervalued. Traders and investors may interpret this zone as a favorable buying opportunity. The threshold for the buy zone can be adjusted to suit individual preferences or trading strategies.
Red Sell Zone:
The red sell zone in BEAM suggests that Bitcoin is potentially overvalued. Traders and investors may consider selling their Bitcoin holdings during this zone to secure profits or manage risk. The threshold for the sell zone is adjustable, allowing users to adapt the indicator based on their trading preferences.
Methodology:
BEAM calculates the indicator value using the following formula:
beam = math.log(close / ta.sma(close, math.min(count, 1400))) / 2.5
The calculation involves taking the natural logarithm of the ratio between the current price of Bitcoin and a simple moving average of past prices. The moving average period used is a minimum of the specified count or 1400, providing a suitable historical reference for valuation assessment.
The resulting value of BEAM provides a standardized measure that can be compared across different time periods. By adjusting the thresholds for the buy and sell zones, users can customize BEAM to their preferred levels of undervaluation and overvaluation.
Utility:
BEAM serves as a tool for investors in the Bitcoin market, offering insights into Bitcoin's valuation and potential buying or selling opportunities. By monitoring BEAM, market participants can gauge whether Bitcoin is potentially undervalued or overvalued, helping them make informed decisions regarding their Bitcoin positions.
It is important to note that BEAM should be used in conjunction with other technical and fundamental analysis tools to validate signals and avoid relying solely on this indicator for trading decisions. Additionally, traders and investors are encouraged to adjust the threshold values based on their specific trading strategies, risk tolerance, and market conditions.
Credit: The BEAM (Bitcoin Economics Adaptive Multiple) indicator was originally developed by BitcoinEcon
Mars Signals - Ultimate Institutional Suite v3.0(Joker)Comprehensive Trading Manual
Mars Signals – Ultimate Institutional Suite v3.0 (Joker)
## Chapter 1 – Philosophy & System Architecture
This script is not a simple “buy/sell” indicator.
Mars Signals – UIS v3.0 (Joker) is designed as an institutional-style analytical assistant that layers several methodologies into a single, coherent framework.
The system is built on four core pillars:
1. Smart Money Concepts (SMC)
- Detection of Order Blocks (professional demand/supply zones).
- Detection of Fair Value Gaps (FVGs) (price imbalances).
2. Smart DCA Strategy
- Combination of RSI and Bollinger Bands
- Identifies statistically discounted zones for scaling into spot positions or exiting shorts.
3. Volume Profile (Visible Range Simulation)
- Distribution of volume by price, not by time.
- Identification of POC (Point of Control) and high-/low-volume areas.
4. Wyckoff Helper – Spring
- Detection of bear traps, liquidity grabs, and sharp bullish reversals.
All four pillars feed into a Confluence Engine (Scoring System).
The final output is presented in the Dashboard, with a clear, human-readable signal:
- STRONG LONG 🚀
- WEAK LONG ↗
- NEUTRAL / WAIT
- WEAK SHORT ↘
- STRONG SHORT 🩸
This allows the trader to see *how many* and *which* layers of the system support a bullish or bearish bias at any given time.
## Chapter 2 – Settings Overview
### 2.1 General & Dashboard Group
- Show Dashboard Panel (`show_dash`)
Turns the dashboard table in the corner of the chart ON/OFF.
- Show Signal Recommendation (`show_rec`)
- If enabled, the textual signal (STRONG LONG, WEAK SHORT, etc.) is displayed.
- If disabled, you only see feature status (ON/OFF) and the current price.
- Dashboard Position (`dash_pos`)
Determines where the dashboard appears on the chart:
- `Top Right`
- `Bottom Right`
- `Top Left`
### 2.2 Smart Money (SMC) Group
- Enable SMC Strategy (`show_smc`)
Globally enables or disables the Order Block and FVG logic.
- Order Block Pivot Lookback (`ob_period`)
Main parameter for detecting key pivot highs/lows (swing points).
- Default value: 5
- Concept:
A bar is considered a pivot low if its low is lower than the lows of the previous 5 and the next 5 bars.
Similarly, a pivot high has a high higher than the previous 5 and the next 5 bars.
These pivots are used as anchors for Order Blocks.
- Increasing `ob_period`:
- Fewer levels.
- But levels tend to be more significant and reliable.
- In highly volatile markets (major news, war events, FOMC, etc.),
using values 7–10 is recommended to filter out weak levels.
- Show Fair Value Gaps (`show_fvg`)
Enables/disables the drawing of FVG zones (imbalances).
- Bullish OB Color (`c_ob_bull`)
- Color of Bullish Order Blocks (Demand Zones).
- Default: semi-transparent green (transparency ≈ 80).
- Bearish OB Color (`c_ob_bear`)
- Color of Bearish Order Blocks (Supply Zones).
- Default: semi-transparent red.
- Bullish FVG Color (`c_fvg_bull`)
- Color of Bullish FVG (upward imbalance), typically yellow.
- Bearish FVG Color (`c_fvg_bear`)
- Color of Bearish FVG (downward imbalance), typically purple.
### 2.3 Smart DCA Strategy Group
- Enable DCA Zones (`show_dca`)
Enables the Smart DCA logic and visual labels.
- RSI Length (`rsi_len`)
Lookback period for RSI (default: 14).
- Shorter → more sensitive, more noise.
- Longer → fewer signals, higher reliability.
- Bollinger Bands Length (`bb_len`)
Moving average period for Bollinger Bands (default: 20).
- BB Multiplier (`bb_mult`)
Standard deviation multiplier for Bollinger Bands (default: 2.0).
- For extremely volatile markets, values like 2.5–3.0 can be used so that only extreme deviations trigger a DCA signal.
### 2.4 Volume Profile (Visible Range Sim) Group
- Show Volume Profile (`show_vp`)
Enables the simulated Volume Profile bars on the right side of the chart.
- Volume Lookback Bars (`vp_lookback`)
Number of bars used to compute the Volume Profile (default: 150).
- Higher values → broader historical context, heavier computation.
- Row Count (`vp_rows`)
Number of vertical price segments (rows) to divide the total price range into (default: 30).
- Width (%) (`vp_width`)
Relative width of each volume bar as a percentage.
In the code, bar widths are scaled relative to the row with the maximum volume.
> Technical note: Volume Profile calculations are executed only on the last bar (`barstate.islast`) to keep the script performant even on higher timeframes.
### 2.5 Wyckoff Helper Group
- Show Wyckoff Events (`show_wyc`)
Enables detection and plotting of Wyckoff Spring events.
- Volume MA Length (`vol_ma_len`)
Length of the moving average on volume.
A bar is considered to have Ultra Volume if its volume is more than 2× the volume MA.
## Chapter 3 – Smart Money Strategy (Order Blocks & FVG)
### 3.1 What Is an Order Block?
An Order Block (OB) represents the footprint of large institutional orders:
- Bullish Order Block (Demand Zone)
The last selling region (bearish candle/cluster) before a strong upward move.
- Bearish Order Block (Supply Zone)
The last buying region (bullish candle/cluster) before a strong downward move.
Institutions and large players place heavy orders in these regions. Typical price behavior:
- Price moves away from the zone.
- Later returns to the same zone to fill unfilled orders.
- Then continues the larger trend.
In the script:
- If `pl` (pivot low) forms → a Bullish OB is created.
- If `ph` (pivot high) forms → a Bearish OB is created.
The box is drawn:
- From `bar_index ` to `bar_index`.
- Between `low ` and `high `.
- `extend=extend.right` extends the OB into the future, so it acts as a dynamic support/resistance zone.
- Only the last 4 OB boxes are kept to avoid clutter.
### 3.2 Order Block Color Guide
- Semi-transparent Green (`c_ob_bull`)
- Represents a Bullish Order Block (Demand Zone).
- Interpretation: a price region with a high probability of bullish reaction.
- Semi-transparent Red (`c_ob_bear`)
- Represents a Bearish Order Block (Supply Zone).
- Interpretation: a price region with a high probability of bearish reaction.
Overlap (Multiple OBs in the Same Area)
When two or more Order Blocks overlap:
- The shared area appears visually denser/stronger.
- This suggests higher order density.
- Such zones can be treated as high-priority levels for entries, exits, and stop-loss placement.
### 3.3 Demand/Supply Logic in the Scoring Engine
is_in_demand = low <= ta.lowest(low, 20)
is_in_supply = high >= ta.highest(high, 20)
- If current price is near the lowest lows of the last 20 bars, it is considered in a Demand Zone → positive impact on score.
- If current price is near the highest highs of the last 20 bars, it is considered in a Supply Zone → negative impact on score.
This logic complements Order Blocks and helps the Dashboard distinguish whether:
- Market is currently in a statistically cheap (long-friendly) area, or
- In a statistically expensive (short-friendly) area.
### 3.4 Fair Value Gaps (FVG)
#### Concept
When the market moves aggressively:
- Some price levels are skipped and never traded.
- A gap between wicks/shadows of consecutive candles appears.
- These regions are called Fair Value Gaps (FVGs) or Imbalances.
The market generally “dislikes” imbalance and often:
- Returns to these zones in the future.
- Fills the gap (rebalance).
- Then resumes its dominant direction.
#### Implementation in the Code
Bullish FVG (Yellow)
fvg_bull_cond = show_smc and show_fvg and low > high and close > high
if fvg_bull_cond
box.new(bar_index , high , bar_index, low, ...)
Core condition:
`low > high ` → the current low is above the high of two bars ago; the space between them is an untraded gap.
Bearish FVG (Purple)
fvg_bear_cond = show_smc and show_fvg and high < low and close < low
if fvg_bear_cond
box.new(bar_index , low , bar_index, high, ...)
Core condition:
`high < low ` → the current high is below the low of two bars ago; again a price gap exists.
#### FVG Color Guide
- Transparent Yellow (`c_fvg_bull`) – Bullish FVG
Often acts like a magnet for price:
- Price tends to retrace into this zone,
- Fill the imbalance,
- And then continue higher.
- Transparent Purple (`c_fvg_bear`) – Bearish FVG
Price tends to:
- Retrace upward into the purple area,
- Fill the imbalance,
- And then resume downward movement.
#### Trading with FVGs
- FVGs are *not* standalone entry signals.
They are best used as:
- Targets (take-profit zones), or
- Reaction areas where you expect a pause or reversal.
Examples:
- If you are long, a bearish FVG above is often an excellent take-profit zone.
- If you are short, a bullish FVG below is often a good cover/exit zone.
### 3.5 Core SMC Trading Templates
#### Reversal Long
1. Price trades down into a green Order Block (Demand Zone).
2. A bullish confirmation candle (Close > Open) forms inside or just above the OB.
3. If this zone is close to or aligned with a bullish FVG (yellow), the signal is reinforced.
4. Entry:
- At the close of the confirmation candle, or
- Using a limit order near the upper boundary of the OB.
5. Stop-loss:
- Slightly below the OB.
- If the OB is broken decisively and price consolidates below it, the zone loses validity.
6. Targets:
- The next FVG,
- Or the next red Order Block (Supply Zone) above.
#### Reversal Short
The mirror scenario:
- Price rallies into a red Order Block (Supply).
- A bearish confirmation candle forms (Close < Open).
- FVG/premium structure above can act as a confluence.
- Stop-loss goes above the OB.
- Targets: lower FVGs or subsequent green OBs below.
## Chapter 4 – Smart DCA Strategy (RSI + Bollinger Bands)
### 4.1 Smart DCA Concept
- Classic DCA = buying at fixed time intervals regardless of price.
- Smart DCA = scaling in only when:
- Price is statistically cheaper than usual, and
- The market is in a clear oversold condition.
Code logic:
rsi_val = ta.rsi(close, rsi_len)
= ta.bb(close, bb_len, bb_mult)
dca_buy = show_dca and rsi_val < 30 and close < bb_lower
dca_sell = show_dca and rsi_val > 70 and close > bb_upper
Conditions:
- DCA Buy – Smart Scale-In Zone
- RSI < 30 → oversold.
- Close < lower Bollinger Band → price has broken below its typical volatility envelope.
- DCA Sell – Overbought/Distribution Zone
- RSI > 70 → overbought.
- Close > upper Bollinger Band → price is extended far above the mean.
### 4.2 Visual Representation on the Chart
- Green “DCA” Label Below Candle
- Shape: `labelup`.
- Color: lime background, white text.
- Meaning: statistically attractive level for laddered spot entries or short exits.
- Red “SELL” Label Above Candle
- Warning that the market is in an extended, overbought condition.
- Suitable for profit-taking on longs or considering short entries (with proper confluence and risk management).
- Light Green Background (`bgcolor`)
- When `dca_buy` is true, the candle background turns very light green (high transparency).
- This helps visually identify DCA Zones across the chart at a glance.
### 4.3 Practical Use in Trading
#### Spot Trading
Used to build a better average entry price:
- Every time a DCA label appears, allocate a fixed portion of capital (e.g., 2–5%).
- Combining DCA signals with:
- Green OBs (Demand Zones), and/or
- The Volume Profile POC
makes the zone structurally more important.
#### Futures Trading
- Longs
- Use DCA Buy signals as low-risk zones for opening or adding to longs when:
- Price is inside a green OB, or
- The Dashboard already leans LONG.
- Shorts
- Use DCA Sell signals as:
- Exit zones for longs, or
- Areas to initiate shorts with stops above structural highs.
## Chapter 5 – Volume Profile (Visible Range Simulation)
### 5.1 Concept
Traditional volume (histogram under the chart) shows volume over time.
Volume Profile shows volume by price level:
- At which prices has the highest trading activity occurred?
- Where did buyers and sellers agree the most (High Volume Nodes – HVNs)?
- Where did price move quickly due to low participation (Low Volume Nodes – LVNs)?
### 5.2 Implementation in the Script
Executed only when `show_vp` is enabled and on the last bar:
1. The last `vp_lookback` bars (default 150) are processed.
2. The minimum low and maximum high over this window define the price range.
3. This price range is divided into `vp_rows` segments (e.g., 30 rows).
4. For each row:
- All bars are scanned.
- If the mid-price `(high + low ) / 2` falls inside a row, that bar’s volume is added to the row total.
5. The row with the greatest volume is stored as `max_vol_idx` (the POC row).
6. For each row, a volume box is drawn on the right side of the chart.
### 5.3 Color Scheme
- Semi-transparent Orange
- The row with the maximum volume – the Point of Control (POC).
- Represents the strongest support/resistance level from a volume perspective.
- Semi-transparent Blue
- Other volume rows.
- The taller the bar → the higher the volume → the stronger the interest at that price band.
### 5.4 Trading Applications
- If price is above POC and retraces back into it:
→ POC often acts as support, suitable for long setups.
- If price is below POC and rallies into it:
→ POC often acts as resistance, suitable for short setups or profit-taking.
HVNs (Tall Blue Bars)
- Represent areas of equilibrium where the market has spent time and traded heavily.
- Price tends to consolidate here before choosing a direction.
LVNs (Short or Nearly Empty Bars)
- Represent low participation zones.
- Price often moves quickly through these areas – useful for targeting fast moves.
## Chapter 6 – Wyckoff Helper – Spring
### 6.1 Spring Concept
In the Wyckoff framework:
- A Spring is a false break of support.
- The market briefly trades below a well-defined support level, triggers stop losses,
then sharply reverses upward as institutional buyers absorb liquidity.
This movement:
- Clears out weak hands (retail sellers).
- Provides large players with liquidity to enter long positions.
- Often initiates a new uptrend.
### 6.2 Code Logic
Conditions for a Spring:
1. The current low is lower than the lowest low of the previous 50 bars
→ apparent break of a long-standing support.
2. The bar closes bullish (Close > Open)
→ the breakdown was rejected.
3. Volume is significantly elevated:
→ `volume > 2 × volume_MA` (Ultra Volume).
When all conditions are met and `show_wyc` is enabled:
- A pink diamond is plotted below the bar,
- With the label “Spring” – one of the strongest long signals in this system.
### 6.3 Trading Use
- After a valid Spring, markets frequently enter a meaningful bullish phase.
- The highest quality setups occur when:
- The Spring forms inside a green Order Block, and
- Near or on the Volume Profile POC.
Entries:
- At the close of the Spring bar, or
- On the first pullback into the mid-range of the Spring candle.
Stop-loss:
- Slightly below the Spring’s lowest point (wick low plus a small buffer).
## Chapter 7 – Confluence Engine & Dashboard
### 7.1 Scoring Logic
For each bar, the script:
1. Resets `score` to 0.
2. Adjusts the score based on different signals.
SMC Contribution
if show_smc
if is_in_demand
score += 1
if is_in_supply
score -= 1
- Being in Demand → `+1`
- Being in Supply → `-1`
DCA Contribution
if show_dca
if dca_buy
score += 2
if dca_sell
score -= 2
- DCA Buy → `+2` (strong, statistically driven long signal)
- DCA Sell → `-2`
Wyckoff Spring Contribution
if show_wyc
if wyc_spring
score += 2
- Spring → `+2` (entry of strong money)
### 7.2 Mapping Score to Dashboard Signal
- score ≥ 2 → STRONG LONG 🚀
Multiple bullish conditions aligned.
- score = 1 → WEAK LONG ↗
Some bullish bias, but only one layer clearly positive.
- score = 0 → NEUTRAL / WAIT
Rough balance between buying and selling forces; staying flat is usually preferable.
- score = -1 → WEAK SHORT ↘
Mild bearish bias, suited for cautious or short-term plays.
- score ≤ -2 → STRONG SHORT 🩸
Convergence of several bearish signals.
### 7.3 Dashboard Structure
The dashboard is a two-column table:
- Row 0
- Column 0: `"Mars Signals"` – black background, white text.
- Column 1: `"UIS v3.0"` – black background, yellow text.
- Row 1
- Column 0: `"Price:"` (light grey background).
- Column 1: current closing price (`close`) with a semi-transparent blue background.
- Row 2
- Column 0: `"SMC:"`
- Column 1:
- `"ON"` (green) if `show_smc = true`
- `"OFF"` (grey) otherwise.
- Row 3
- Column 0: `"DCA:"`
- Column 1:
- `"ON"` (green) if `show_dca = true`
- `"OFF"` (grey) otherwise.
- Row 4
- Column 0: `"Signal:"`
- Column 1: signal text (`status_txt`) with background color `status_col`
(green, red, teal, maroon, etc.)
- If `show_rec = false`, these cells are cleared.
## Chapter 8 – Visual Legend (Colors, Shapes & Actions)
For quick reading inside TradingView, the visual elements are described line by line instead of a table.
Chart Element: Green Box
Color / Shape: Transparent green rectangle
Core Meaning: Bullish Order Block (Demand Zone)
Suggested Trader Response: Look for longs, Smart DCA adds, closing or reducing shorts.
Chart Element: Red Box
Color / Shape: Transparent red rectangle
Core Meaning: Bearish Order Block (Supply Zone)
Suggested Trader Response: Look for shorts, or take profit on existing longs.
Chart Element: Yellow Area
Color / Shape: Transparent yellow zone
Core Meaning: Bullish FVG / upside imbalance
Suggested Trader Response: Short take-profit zone or expected rebalance area.
Chart Element: Purple Area
Color / Shape: Transparent purple zone
Core Meaning: Bearish FVG / downside imbalance
Suggested Trader Response: Long take-profit zone or temporary supply region.
Chart Element: Green "DCA" Label
Color / Shape: Green label with white text, plotted below the candle
Core Meaning: Smart ladder-in buy zone, DCA buy opportunity
Suggested Trader Response: Spot DCA entry, partial short exit.
Chart Element: Red "SELL" Label
Color / Shape: Red label with white text, plotted above the candle
Core Meaning: Overbought / distribution zone
Suggested Trader Response: Take profit on longs, consider initiating shorts.
Chart Element: Light Green Background (bgcolor)
Color / Shape: Very transparent light-green background behind bars
Core Meaning: Active DCA Buy zone
Suggested Trader Response: Treat as a discount zone on the chart.
Chart Element: Orange Bar on Right
Color / Shape: Transparent orange horizontal bar in the volume profile
Core Meaning: POC – price with highest traded volume
Suggested Trader Response: Strong support or resistance; key reference level.
Chart Element: Blue Bars on Right
Color / Shape: Transparent blue horizontal bars in the volume profile
Core Meaning: Other volume levels, showing high-volume and low-volume nodes
Suggested Trader Response: Use to identify balance zones (HVN) and fast-move corridors (LVN).
Chart Element: Pink "Spring" Diamond
Color / Shape: Pink diamond with white text below the candle
Core Meaning: Wyckoff Spring – liquidity grab and potential major bullish reversal
Suggested Trader Response: One of the strongest long signals in the suite; look for high-quality long setups with tight risk.
Chart Element: STRONG LONG in Dashboard
Color / Shape: Green background, white text in the Signal row
Core Meaning: Multiple bullish layers in confluence
Suggested Trader Response: Consider initiating or increasing longs with strict risk management.
Chart Element: STRONG SHORT in Dashboard
Color / Shape: Red background, white text in the Signal row
Core Meaning: Multiple bearish layers in confluence
Suggested Trader Response: Consider initiating or increasing shorts with a logical, well-placed stop.
## Chapter 9 – Timeframe-Based Trading Playbook
### 9.1 Timeframe Selection
- Scalping
- Timeframes: 1M, 5M, 15M
- Objective: fast intraday moves (minutes to a few hours).
- Recommendation: focus on SMC + Wyckoff.
Smart DCA on very low timeframes may introduce excessive noise.
- Day Trading
- Timeframes: 15M, 1H, 4H
- Provides a good balance between signal quality and frequency.
- Recommendation: use the full stack – SMC + DCA + Volume Profile + Wyckoff + Dashboard.
- Swing Trading & Position Investing
- Timeframes: Daily, Weekly
- Emphasis on Smart DCA + Volume Profile.
- SMC and Wyckoff are used mainly to fine-tune swing entries within larger trends.
### 9.2 Scenario A – Scalping Long
Example: 5-Minute Chart
1. Price is declining into a green OB (Bullish Demand).
2. A candle with a long lower wick and bullish close (Pin Bar / Rejection) forms inside the OB.
3. A Spring diamond appears below the same candle → very strong confluence.
4. The Dashboard shows at least WEAK LONG ↗, ideally STRONG LONG 🚀.
5. Entry:
- On the close of the confirmation candle, or
- On the first pullback into the mid-range of that candle.
6. Stop-loss:
- Slightly below the OB.
7. Targets:
- Nearby bearish FVG above, and/or
- The next red OB.
### 9.3 Scenario B – Day-Trading Short
Recommended Timeframes: 1H or 4H
1. The market completes a strong impulsive move upward.
2. Price enters a red Order Block (Supply).
3. In the same zone, a purple FVG appears or remains unfilled.
4. On a lower timeframe (e.g., 15M), RSI enters overbought territory and a DCA Sell signal appears.
5. The main timeframe Dashboard (1H) shows WEAK SHORT ↘ or STRONG SHORT 🩸.
Trade Plan
- Open a short near the upper boundary of the red OB.
- Place the stop above the OB or above the last swing high.
- Targets:
- A yellow FVG lower on the chart, and/or
- The next green OB (Demand) below.
### 9.4 Scenario C – Swing / Investment with Smart DCA
Timeframes: Daily / Weekly
1. On the daily or weekly chart, each time a green “DCA” label appears:
- Allocate a fixed fraction of your capital (e.g., 3–5%) to that asset.
2. Check whether this DCA zone aligns with the orange POC of the Volume Profile:
- If yes → the quality of the entry zone is significantly higher.
3. If the DCA signal sits inside a daily green OB, the probability of a medium-term bottom increases.
4. Always build the position laddered, never all-in at a single price.
Exits for investors:
- Near weekly red OBs or large purple FVG zones.
- Ideally via partial profit-taking rather than closing 100% at once.
### 9.5 Case Study 1 – BTCUSDT (15-Minute)
- Context: Price has sold off down towards 65,000 USD.
- A green OB had previously formed at that level.
- Near the lower boundary of this OB, a partially filled yellow FVG is present.
- As price returns to this region, a Spring appears.
- The Dashboard shifts from NEUTRAL / WAIT to WEAK LONG ↗.
Plan
- Enter a long near the OB low.
- Place stop below the Spring low.
- First target: a purple FVG around 66,200.
- Second (optional) target: the first red OB above that level.
### 9.6 Case Study 2 – Meme Coin (PEPE – 4H)
- After a strong pump, price enters a corrective phase.
- On the 4H chart, RSI drops below 30; price breaks below the lower Bollinger Band → a DCA label prints.
- The Volume Profile shows the POC at approximately the same level.
- The Dashboard displays STRONG LONG 🚀.
Plan
- Execute laddered buys in the combined DCA + POC zone.
- Place a protective stop below the last significant swing low.
- Target: an expected 20–30% upside move towards the next red OB or purple FVG.
## Chapter 10 – Risk Management, Psychology & Advanced Tuning
### 10.1 Risk Management
No signal, regardless of its strength, replaces risk control.
Recommendations:
- In futures, do not expose more than 1–3% of account equity to risk per trade.
- Adjust leverage to the volatility of the instrument (lower leverage for highly volatile altcoins).
- Place stop-losses in zones where the idea is clearly invalidated:
- Below/above the relevant Order Block or Spring, not randomly in the middle of the structure.
### 10.2 Market-Specific Parameter Tuning
- Calmer Markets (e.g., major FX pairs)
- `ob_period`: 3–5.
- `bb_mult`: 2.0 is usually sufficient.
- Highly Volatile Markets (Crypto, news-driven assets)
- `ob_period`: 7–10 to highlight only the most robust OBs.
- `bb_mult`: 2.5–3.0 so that only extreme deviations trigger DCA.
- `vol_ma_len`: increase (e.g., to ~30) so that Spring triggers only on truly exceptional
volume spikes.
### 10.3 Trading Psychology
- STRONG LONG 🚀 does not mean “risk-free”.
It means the probability of a successful long, given the model’s logic, is higher than average.
- Treat Mars Signals as a confirmation and context system, not a full replacement for your own decision-making.
- Example of disciplined thinking:
- The Dashboard prints STRONG LONG,
- But price is simultaneously testing a multi-month macro resistance or a major negative news event is imminent,
- In such cases, trade smaller, widen stops appropriately, or skip the trade.
## Chapter 11 – Technical Notes & FAQ
### 11.1 Does the Script Repaint?
- Order Blocks and Springs are based on completed pivot structures and confirmed candles.
- Until a pivot is confirmed, an OB does not exist; after confirmation, behavior is stable under classic SMC assumptions.
- The script is designed to be structurally consistent rather than repainting signals arbitrarily.
### 11.2 Computational Load of Volume Profile
- On the last bar, the script processes up to `vp_lookback` bars × `vp_rows` rows.
- On very low timeframes with heavy zooming, this can become demanding.
- If you experience performance issues:
- Reduce `vp_lookback` or `vp_rows`, or
- Temporarily disable Volume Profile (`show_vp = false`).
### 11.3 Multi-Timeframe Behavior
- This version of the script is not internally multi-timeframe.
All logic (OB, DCA, Spring, Volume Profile) is computed on the active timeframe only.
- Practical workflow:
- Analyze overall structure and key zones on higher timeframes (4H / Daily).
- Use lower timeframes (15M / 1H) with the same tool for timing entries and exits.
## Conclusion
Mars Signals – Ultimate Institutional Suite v3.0 (Joker) is a multi-layer trading framework that unifies:
- Price structure (Order Blocks & FVG),
- Statistical behavior (Smart DCA via RSI + Bollinger),
- Volume distribution by price (Volume Profile with POC, HVN, LVN),
- Liquidity events (Wyckoff Spring),
into a single, coherent system driven by a transparent Confluence Scoring Engine.
The final output is presented in clear, actionable language:
> STRONG LONG / WEAK LONG / NEUTRAL / WEAK SHORT / STRONG SHORT
The system is designed to support professional decision-making, not to replace it.
Used together with strict risk management and disciplined execution,
Mars Signals – UIS v3.0 (Joker) can serve as a central reference manual and operational guide
for your trading workflow, from scalping to swing and investment positioning.
Aladin Pair Trading System v1Aladin Pair Trading System v1
What is This Indicator?
The Aladin Pair Trading System is a sophisticated tool designed to help traders identify profitable opportunities by comparing two related stocks that historically move together. Think of it as finding when one twin is running ahead or lagging behind the other - these moments often present trading opportunities as they tend to return to moving together.
Who Should Use This?
Beginners: Learn about statistical arbitrage and pair trading
Intermediate Traders: Execute mean-reversion strategies with confidence
Advanced Traders: Fine-tune parameters for optimal pair relationships
Portfolio Managers: Implement market-neutral strategies
💡 What is Pair Trading?
Imagine two ice cream shops next to each other. They usually have similar customer traffic because they're in the same area. If one day Shop A is packed while Shop B is empty, you might expect this imbalance to correct itself soon.
Pair trading works the same way:
You find two stocks that normally move together (like TCS and Infosys)
When one stock moves too far from the other, you trade expecting them to realign
You buy the lagging stock and sell the leading stock
When they come back together, you profit from both sides
Key Features
1. Z-Score Analysis
What it is: A statistical measure showing how far the price relationship has deviated from normal
What it means:
Z-Score near 0 = Normal relationship
Z-Score at +2 = Stock A is expensive relative to Stock B (Sell A, Buy B)
Z-Score at -2 = Stock A is cheap relative to Stock B (Buy A, Sell B)
2. Multiple Timeframe Analysis
Long-term Z-Score (300 bars): Shows the big picture trend
Short-term Z-Score (100 bars): Shows recent movements
Signal Z-Score (20 bars): Generates quick trading signals
3. Statistical Validation
The indicator checks if the pair is suitable for trading:
Correlation (must be > 0.7): Confirms the stocks move together
1.0 = Perfect positive correlation
0.7 = Strong correlation
Below 0.7 = Warning: pair may not be reliable
ADF P-Value (should be < 0.05): Tests if the relationship is stable
Low value = Good for pair trading
High value = Relationship may be random
Cointegration: Confirms long-term equilibrium relationship
YES = Pair tends to revert to mean
NO = Pair may drift apart permanently
Visual Elements Explained
Chart Zones (Color-Coded Areas)
Yellow Zone (-1.5 to +1.5)
Normal Zone: Relationship is stable
Action: Wait for better opportunities
Blue Zone (±1.5 to ±2.0)
Entry Zone: Deviation is significant
Action: Prepare for potential trades
Green/Red Zone (±2.0 to ±3.0)
Opportunity Zone: Strong deviation
Action: High-probability trade setups
Beyond ±3.0
Risk Limit: Extreme deviation
Action: Either maximum opportunity or structural break
Signal Arrows
Green Arrow Up (Buy A + Sell B):
Stock A is undervalued relative to B
Buy Stock A, Short Stock B
Red Arrow Down (Sell A + Buy B):
Stock A is overvalued relative to B
Sell Stock A, Buy Stock B
Settings Guide
Symbol Inputs
Pair Symbol (Symbol B): Choose the second stock to compare
Default: NSE:INFY (Infosys)
Example pairs: TCS/INFY, HDFCBANK/ICICIBANK, RELIANCE/ONGC
Z-Score Parameters
Long Z-Score Period (300): Historical context
Short Z-Score Period (100): Recent trend
Signal Period (20): Trading signals
Z-Score Threshold (2.0): Entry trigger level
Higher = Fewer but stronger signals
Lower = More frequent signals
Statistical Parameters
Correlation Period (240): How many bars to check correlation
Hurst Exponent Period (50): Measures mean-reversion tendency
Probability Lookback (100): Historical probability calculations
Trading Parameters
Entry Threshold (0.0): Minimum Z-score for entry
Risk Threshold (1.5): Warning level
Risk Limit (3.0): Maximum deviation to trade
How to Use (Step-by-Step)
Step 1: Choose Your Pair
Add the indicator to your chart (this becomes Stock A)
In settings, select Stock B (the comparison stock)
Choose stocks from the same sector for best results
Step 2: Verify Pair Quality
Check the Statistics Table (top-right corner):
✅ Correlation > 0.70 (Green = Good)
✅ ADF P-value < 0.05 (Green = Good)
✅ Cointegrated = YES (Green = Good)
If all three are green, the pair is suitable for trading!
Step 3: Wait for Signals
BUY SIGNAL (Green Arrow Up)
Z-Score crosses above -2.0
Action: Buy Stock A, Sell Stock B
Exit: When Z-Score returns to 0
SELL SIGNAL (Red Arrow Down)
Z-Score crosses below +2.0
Action: Sell Stock A, Buy Stock B
Exit: When Z-Score returns to 0
Step 4: Risk Management
Yellow Zone: Monitor only
Blue Zone: Prepare for entry
Green/Red Zone: Active trading zone
Beyond ±3.0: Maximum risk - use caution
⚠️ Important Warnings
Not All Pairs Work: Always check the statistics table first
Market Conditions Matter: Correlation can break during market stress
Use Stop Losses: Set stops at Z-Score ±3.5 or beyond
Position Sizing: Trade both legs with appropriate hedge ratios
Transaction Costs: Factor in brokerage and slippage for both stocks
Example Trade
Scenario: TCS vs INFOSYS
Correlation: 0.85 ✅
Z-Score: -2.3 (TCS is cheap vs INFY)
Action to be taken:
Buy 1lot of TCS Future
Sell 1lot of INFOSYS Future
Expected Outcome:
As Z-Score moves toward 0, TCS outperforms INFOSYS
Close both positions when Z-Score crosses 0
Profit from the convergence
Best Practices
Test Before Trading: Use paper trading first
Sector Focus: Choose pairs from the same industry
Monitor Statistics: Check correlation daily
Avoid News Events: Don't trade pairs during earnings/major news
Size Appropriately: Start small, scale with experience
Be Patient: Wait for high-quality setups (±2.0 or beyond)
What Makes This Indicator Unique?
Multi-timeframe Z-Score analysis: Three different perspectives
Statistical validation: Built-in correlation and cointegration tests
Visual risk zones: Easy-to-understand color-coded areas
Real-time statistics: Live pair quality monitoring
Beginner-friendly: Clear signals with educational zones
Technical Background
The indicator uses:
Engle-Granger Cointegration Test: Validates pair relationship
ADF (Augmented Dickey-Fuller) Test: Tests stationarity
Pearson Correlation: Measures linear relationship
Z-Score Normalization: Standardizes deviations
Log Returns: Handles price differences properly
Support & Community
For questions, suggestions, or to share your pair trading experiences:
Comment below the indicator
Share your successful pair combinations
Report any issues for quick fixes
Disclaimer
This indicator is for educational and informational purposes only. It does not constitute financial advice. Pair trading involves risk, including the risk of loss.
Always:
Do your own research
Understand the risks
Trade with money you can afford to lose
Consider consulting a financial advisor
📌 Quick Reference Card
Z-ScoreInterpretationAction-3.0 to -2.0A very cheap vs BStrong Buy A, Sell B-2.0 to -1.5A cheap vs BBuy A, Sell B-1.5 to +1.5Normal rangeHold/Wait+1.5 to +2.0A expensive vs BSell A, Buy B+2.0 to +3.0A very expensive vs BStrong Sell A, Buy B
Good Pair Statistics:
Correlation: > 0.70
ADF P-value: < 0.05
Cointegration: YES
Version: 1.0
Last Updated: 10th October 2025
Compatible: TradingView Pine Script v6
Happy Trading!
Machine Learning: Support and Resistance [YinYangAlgorithms]Overview:
Support and Resistance is normally based upon Pivot Points and Highest Highs and Lowest Lows. Many times coders even incorporate Volume, RSI and other factors into the equation. However there may be a downside to doing a pure technical approach based on historical levels. We live in a time where Machine Learning is becoming more and more used; thus we have decided to create a Machine Learning Support and Resistance Projection based Indicator. Rather than using traditional Support and Resistance calculations using historical data, we have taken a rather different approach. This Indicator instead attempts to Predict and Project where Support and Resistance locations will be based on a Machine Learning Model using a form of KNN (k-Nearest Neighbors).
Since this indicator creates a Projection of where it deems Support and Resistance will be, it has the ability to move its Support and Resistance before the price even gets to it if it believes it will surpass its projections. This may create a more accurate placement of Support and Resistance as they’re not based on historical levels.
This Indicator does not Repaint.
How it works:
This Indicator makes its projections based on the source you provide (by default close) of the previous bar and submits the source, RSI and EMA to our Projection Function to get its projection of the current bar.
The Projection function essentially calculates potential movement after finding the differences between the source the MA from the current bar, previous bar and average over the span of Machine Learning Length.
Potential movement is defined as:
Average Difference + Average(Machine Learning Average, Average Last Distance)
Average Difference: (Absolute value of Current Source - Current MA) - (Absolute value of Machine Learning Average - Machine Learning MA)
Average Last Distance: Average(Current Source - Current MA, Previous Source - Previous MA)
It then predicts the next bars directional movement (bullish or bearish bar) using several factors:
Previous Source > Previous MA
Current Source - Current MA > Average Source - Average MA
Current RSI > Previous RSI
Current RSI > 30 and Previous RSI <= 30
Current RSI < 70 and Previous RSI >= 70
This helps us to predict the direction the next bar may move.
We then calculate a multiplier that we apply to our Potential Movement value to get our final result which is our Current Bars Close Projection.
Our multiplier is calculated using:
(Current RSI > 30 and Previous RSI <= 30) OR (Current RSI < 70 and Previous RSI >= 70)
Current Source - Current MA > Previous Source - Previous MA
We then create an array and fill it with the previous X projections (Machine Learning Length) and send it to another function. This function, if told to, will sort the data accordingly and then output the KNN average of the length given.
We calculate and plot various KNN lengths to create different Zones:
Strong Support: Length of 2 but sort the data Ascending (low to high)
Strong Resistance: Length of 2 but sort the data Descending (high to low)
Support: Length of Machine Length Length / 10 or Min of 2 sorted by Ascending
Resistance: Length of Machine Length Length / 10 or Min of 2 sorted by Descending
There are also 4 other plots you may be wondering what they are, there is your AVG, VWMA, Long Term Memory and Current Projection.
By default your Current Projection is disabled in settings but you can enable it if you are curious to see how the projections for each close are calculated. It is, however, not a crucial point of interest (white line).
The average is simply the average value of the Machine Learning Data (purple line).
The VWMA is a VWMA calculation applied to our Data over a length specified in settings (by default 1)(blue line). The VWMA is crucial when combined with the Avg as they can cross over and under each other. These crosses represent potential Bullish and Bearish zones.
Lastly, but certainly not least, we have the Long Term Memory (maroon line). The Long Term Memory can be displayed either as an ‘Average’, ‘Hard Line’ or ‘None’. The Long Term Average is only updated every Machine Learning Length Bar Index’s and is populated with the average of the Machine Learning Data. For Instance, if Machine Learning Length is set to 100, the Long Term Memory is only updated every 100 bars, and since its length is the same as the Machine Learning Length, that means its data is composed of 10,000 bars worth of data. The Long Term Memory may be very beneficial for determining where Support and Resistance lie over the Long Term within a Machine Learning Algorithm. When set to ‘Average’ it plots the connection lines diagonally, and although they may be more visually appealing, they’re less useful when it comes to actually seeing support and resistance as generally speaking, support and resistance lie on the horizontal. When set to ‘Hard Line’ the Long Term Memory is connected with hard lines and holds the price value until the next time it is updated. This makes it much more useful for potentially identifying Support and Resistance.
Tutorial:
Here is an overview of what the Indicator looks like, now let's start to dissect it.
In the example above we can see how all of the lines between the Major Support and Resistance zones may act as BOTH Support and Resistance depending on which side the price is currently on. In the circle on the left, we can see how it can fluctuate between the two. If you look at the circle on the right, we can see how the Average line acts as a strong support before it fails to maintain it. Generally speaking, most Support and Resistance locations may potentially fail to hold after 3 tests, as the Average did in this example.
As you can see, the Support and Resistance doesn’t wait to be tested before adjusting, which is why there are 2 lines which create their zones. The inner line is the Support/Resistance and the outer line is the Strong Support/Resistance. The Yellow Circle shows the inner line was able to calculate the moving resistance correctly and then adjusted accordingly as it was projecting the price to keep increasing. However, if you look at the White Circle, you can see that since there was first a crash, and then parabolic movement, that the inner zone could not move and predict the resistance as well as the outer zone could.
We consider the price to be ‘Overvalued’ when it is above the VWMA (blue line) and ‘Undervalued’ when it is below the VWMA. It is considered ‘fair’ price when it is within the VWMA to Average zone (between the blue and purple lines). If you look at the example above, you’ll notice where the two yellow circles are, it is not only considered ‘Overvalued’, but it then proceeds to ride the inner resistance line upwards. This is common when the market is overly bullish and vice versa when it is bearish. Please keep in mind, although it is common, it doesn’t mean a correction can’t happen.
In this example above we look at the last bull run that may have started due to the halving. This bull run was very bullish as you can see in the example above. The price was constantly sitting within the Resistance Zone and the VWMA that was very close to it was constantly acting as a Support. Naturally, due to the Algorithm used in this Indicator, as the momentum starts to slow down, the VWMA (blue line) will start to space out more and more from the Resistance Zone. This doesn’t mean the momentum is gone, it just means it may be slowing down.
Unfortunately we have to study the Bear Market with a different perspective than the Bull Market. However, there are still some similarities within the two. If you refer to the example above and the previous example, you can clearly see that the Bull Market loves to stay with the Resistance Zone and use the VWMA as a Support. However, the Bear Market does not. This is a normal occurrence, however we can see from the example above you may see a correction / horizontal movement when the Outer Support Line is touched. If you look at all 3 yellow circles, the Outer Support Line was touched, then either a small correction or horizontal consolidation occurred.
We will conclude our Tutorial here, hopefully you’ll be able to benefit from a moving Support and Resistance calculated with Machine Learning that projects its locations, rather than using traditional calculations.
Settings:
Source: This source is the base for all our calculations
Machine Learning Length: How much projection data are we storing and using to make calculations.
Smoothing Length: We need to smooth calculations such as RSI, EMA and VWMA. What length are we smoothing it with?
VWMA ML Projection Length: How far into our Machine Learning data should we average for our VWMA. Please note the 'Smoothing Length' is still applied here after getting the Projection Average.
Long Term Memory: Long term memory has the same storage length but is only updated once per Machine Learning Length. For instance, if Machine Learning Length is 100, it will save the Average of our data once every 100 bars. This means its memory is an average of 10,000 bars of Machine Learning. 'Average' connects its values diagonally whereas 'Hard Line' holds its value until it changes.
Use Average Last Distance In Potential Movement: This can help accuracy but generally also displaces the Support and Resistance by projecting it further.
Show Current Projection: Projections occur for each bar, and our Machine Learning utilizes these projections by storing and evaluating them. This toggle will display the Current Projection Line which is used to create all our Projections.
If you have any questions, comments, ideas or concerns please don't hesitate to contact us.
HAPPY TRADING!
Reverse Cutlers Relative Strength Index On ChartIntroduction
The Reverse Cutlers Relative Strength Index (RCRSI) OC is an indicator which tells the user what price is required to give a particular Cutlers Relative Strength Index ( RSI ) value, or cross its Moving Average (MA) signal line.
Overview
Background & Credits:
The relative strength index ( RSI ) is a momentum indicator used in technical analysis that was originally developed by J. Welles Wilder Jr. and introduced in his seminal 1978 book, “New Concepts in Technical Trading Systems.”.
Cutler created a variation of the RSI known as “Cutlers RSI” using a different formulation to avoid an inherent accuracy problem which arises when using Wilders method of smoothing.
Further developments in the use, and more nuanced interpretations of the RSI have been developed by Cardwell, and also by well-known chartered market technician, Constance Brown C.M.T., in her acclaimed book "Technical Analysis for the Trading Professional” 1999 where she described the idea of bull and bear market ranges for RSI , and while she did not actually reveal the formulas, she introduced the concept of “reverse engineering” the RSI to give price level outputs.
Renowned financial software developer, co-author of academic books on finance, and scientific fellow to the Department of Finance and Insurance at the Technological Educational Institute of Crete, Giorgos Siligardos PHD . brought a new perspective to Wilder’s RSI when he published his excellent and well-received articles "Reverse Engineering RSI " and "Reverse Engineering RSI II " in the June 2003, and August 2003 issues of Stocks & Commodities magazine, where he described his methods of reverse engineering Wilders RSI .
Several excellent Implementations of the Reverse Wilders Relative Strength Index have been published here on Tradingview and elsewhere.
My utmost respect, and all due credits to authors of related prior works.
Introduction
It is worth noting that while the general RSI formula, and the logic dictating the UpMove and DownMove data series has remained the same as the Wilders original formulation, it has been interpreted in a different way by using a different method of averaging the upward, and downward moves.
Cutler recognized the issue of data length dependency when using wilders smoothing method of calculating RSI which means that wilders standard RSI will have a potential initialization error which reduces with every new data point calculated meaning early results should be regarded as unreliable until enough calculation iterations have occurred for convergence.
Hence Cutler proposed using Simple Moving Averaging for gain and loss data which this Indicator is based on.
Having "Reverse engineered" prices for any oscillator makes the planning, and execution of strategies around that oscillator far simpler, more timely and effective.
Introducing the Reverse Cutlers RSI which consists of plotted lines on a scale of 0 to 100, and an optional infobox.
The RSI scale is divided into zones:
• Scale high (100)
• Bull critical zone (80 - 100)
• Bull control zone (62 - 80)
• Scale midline (50)
• Bear control zone (20 - 38)
• Bear critical zone (0 - 20)
• Scale low (0)
The RSI plots which graphically display output closing price levels where Cutlers RSI value will crossover:
• RSI (eq) (previous RSI value)
• RSI MA signal line
• RSI Test price
• Alert level high
• Alert level low
The info box displays output closing price levels where Cutlers RSI value will crossover:
• Its previous value. ( RSI )
• Bull critical zone.
• Bull control zone.
• Mid-Line.
• Bear control zone.
• Bear critical zone.
• RSI MA signal line
• Alert level High
• Alert level low
And also displays the resultant RSI for a user defined closing price:
• Test price RSI
The infobox outputs can be shown for the current bar close, or the next bar close.
The user can easily select which information they want in the infobox from the setttings
Importantly:
All info box price levels for the current bar are calculated immediately upon the current bar closing and a new bar opening, they will not change until the current bar closes.
All info box price levels for the next bar are projections which are continually recalculated as the current price changes, and therefore fluctuate as the current price changes.
Understanding the Relative Strength Index
At its simplest the RSI is a measure of how quickly traders are bidding the price of an asset up or down.
It does this by calculating the difference in magnitude of price gains and losses over a specific lookback period to evaluate market conditions.
The RSI is displayed as an oscillator (a line graph that can move between two extremes) and outputs a value limited between 0 and 100.
It is typically accompanied by a moving average signal line.
Traditional interpretations
Overbought and oversold:
An RSI value of 70 or above indicates that an asset is becoming overbought (overvalued condition), and may be may be ready for a trend reversal or corrective pullback in price.
An RSI value of 30 or below indicates that an asset is becoming oversold (undervalued condition), and may be may be primed for a trend reversal or corrective pullback in price.
Midline Crossovers:
When the RSI crosses above its midline ( RSI > 50%) a bullish bias signal is generated. (only take long trades)
When the RSI crosses below its midline ( RSI < 50%) a bearish bias signal is generated. (only take short trades)
Bullish and bearish moving average signal Line crossovers:
When the RSI line crosses above its signal line, a bullish buy signal is generated
When the RSI line crosses below its signal line, a bearish sell signal is generated.
Swing Failures and classic rejection patterns:
If the RSI makes a lower high, and then follows with a downside move below the previous low, a Top Swing Failure has occurred.
If the RSI makes a higher low, and then follows with an upside move above the previous high, a Bottom Swing Failure has occurred.
Examples of classic swing rejection patterns
Bullish swing rejection pattern:
The RSI moves into oversold zone (below 30%).
The RSI rejects back out of the oversold zone (above 30%)
The RSI forms another dip without crossing back into oversold zone.
The RSI then continues the bounce to break up above the previous high.
Bearish swing rejection pattern:
The RSI moves into overbought zone (above 70%).
The RSI rejects back out of the overbought zone (below 70%)
The RSI forms another peak without crossing back into overbought zone.
The RSI then continues to break down below the previous low.
Divergences:
A regular bullish RSI divergence is when the price makes lower lows in a downtrend and the RSI indicator makes higher lows.
A regular bearish RSI divergence is when the price makes higher highs in an uptrend and the RSI indicator makes lower highs.
A hidden bullish RSI divergence is when the price makes higher lows in an uptrend and the RSI indicator makes lower lows.
A hidden bearish RSI divergence is when the price makes lower highs in a downtrend and the RSI indicator makes higher highs.
Regular divergences can signal a reversal of the trending direction.
Hidden divergences can signal a continuation in the direction of the trend.
Chart Patterns:
RSI regularly forms classic chart patterns that may not show on the underlying price chart, such as ascending and descending triangles & wedges , double tops, bottoms and trend lines etc.
Support and Resistance:
It is very often easier to define support or resistance levels on the RSI itself rather than the price chart.
Modern interpretations in trending markets:
Modern interpretations of the RSI stress the context of the greater trend when using RSI signals such as crossovers, overbought/oversold conditions, divergences and patterns.
Constance Brown, CMT , was one of the first who promoted the idea that an oversold reading on the RSI in an uptrend is likely much higher than 30%, and that an overbought reading on the RSI during a downtrend is much lower than the 70% level.
In an uptrend or bull market, the RSI tends to remain in the 40 to 90 range, with the 40-50 zone acting as support.
During a downtrend or bear market, the RSI tends to stay between the 10 to 60 range, with the 50-60 zone acting as resistance.
For ease of executing more modern and nuanced interpretations of RSI it is very useful to break the RSI scale into bull and bear control and critical zones.
These ranges will vary depending on the RSI settings and the strength of the specific market’s underlying trend.
Limitations of the RSI
Like most technical indicators, its signals are most reliable when they conform to the long-term trend.
True trend reversal signals are rare, and can be difficult to separate from false signals.
False signals or “fake-outs”, e.g. a bullish crossover, followed by a sudden decline in price, are common.
Since the indicator displays momentum, it can stay overbought or oversold for a long time when an asset has significant sustained momentum in either direction.
Data Length Dependency when using wilders smoothing method of calculating RSI means that wilders standard RSI will have a potential initialization error which reduces with every new data point calculated meaning early results should be regarded as unreliable until calculation iterations have occurred for convergence.
Reverse Cutlers Relative Strength IndexIntroduction
The Reverse Cutlers Relative Strength Index (RCRSI) is an indicator which tells the user what price is required to give a particular Cutlers Relative Strength Index (RSI) value, or cross its Moving Average (MA) signal line.
Overview
Background & Credits:
The relative strength index (RSI) is a momentum indicator used in technical analysis that was originally developed by J. Welles Wilder Jr. and introduced in his seminal 1978 book, “New Concepts in Technical Trading Systems.”.
Cutler created a variation of the RSI known as “Cutlers RSI” using a different formulation to avoid an inherent accuracy problem which arises when using Wilders method of smoothing.
Further developments in the use, and more nuanced interpretations of the RSI have been developed by Cardwell, and also by well-known chartered market technician, Constance Brown C.M.T., in her acclaimed book "Technical Analysis for the Trading Professional” 1999 where she described the idea of bull and bear market ranges for RSI, and while she did not actually reveal the formulas, she introduced the concept of “reverse engineering” the RSI to give price level outputs.
Renowned financial software developer, co-author of academic books on finance, and scientific fellow to the Department of Finance and Insurance at the Technological Educational Institute of Crete, Giorgos Siligardos PHD. brought a new perspective to Wilder’s RSI when he published his excellent and well-received articles "Reverse Engineering RSI " and "Reverse Engineering RSI II " in the June 2003, and August 2003 issues of Stocks & Commodities magazine, where he described his methods of reverse engineering Wilders RSI.
Several excellent Implementations of the Reverse Wilders Relative Strength Index have been published here on Tradingview and elsewhere.
My utmost respect, and all due credits to authors of related prior works.
Introduction
It is worth noting that while the general RSI formula, and the logic dictating the UpMove and DownMove data series as described above has remained the same as the Wilders original formulation, it has been interpreted in a different way by using a different method of averaging the upward, and downward moves.
Cutler recognized the issue of data length dependency when using wilders smoothing method of calculating RSI which means that wilders standard RSI will have a potential initialization error which reduces with every new data point calculated meaning early results should be regarded as unreliable until enough calculation iterations have occurred for convergence.
Hence Cutler proposed using Simple Moving Averaging for gain and loss data which this Indicator is based on.
Having "Reverse engineered" prices for any oscillator makes the planning, and execution of strategies around that oscillator far simpler, more timely and effective.
Introducing the Reverse Cutlers RSI which consists of plotted lines on a scale of 0 to 100, and an optional infobox.
The RSI scale is divided into zones:
• Scale high (100)
• Bull critical zone (80 - 100)
• Bull control zone (62 - 80)
• Scale midline (50)
• Bear critical zone (20 - 38)
• Bear control zone (0 - 20)
• Scale low (0)
The RSI plots are:
• Cutlers RSI
• RSI MA signal line
• Test price RSI
• Alert level high
• Alert level low
The info box displays output closing price levels where Cutlers RSI value will crossover:
• Its previous value. (RSI )
• Bull critical zone.
• Bull control zone.
• Mid-Line.
• Bear control zone.
• Bear critical zone.
• RSI MA signal line
• Alert level High
• Alert level low
And also displays the resultant RSI for a user defined closing price:
• Test price RSI
The infobox outputs can be shown for the current bar close, or the next bar close.
The user can easily select which information they want in the infobox from the setttings
Importantly:
All info box price levels for the current bar are calculated immediately upon the current bar closing and a new bar opening, they will not change until the current bar closes.
All info box price levels for the next bar are projections which are continually recalculated as the current price changes, and therefore fluctuate as the current price changes.
Understanding the Relative Strength Index
At its simplest the RSI is a measure of how quickly traders are bidding the price of an asset up or down.
It does this by calculating the difference in magnitude of price gains and losses over a specific lookback period to evaluate market conditions.
The RSI is displayed as an oscillator (a line graph that can move between two extremes) and outputs a value limited between 0 and 100.
It is typically accompanied by a moving average signal line.
Traditional interpretations
Overbought and oversold:
An RSI value of 70 or above indicates that an asset is becoming overbought (overvalued condition), and may be may be ready for a trend reversal or corrective pullback in price.
An RSI value of 30 or below indicates that an asset is becoming oversold (undervalued condition), and may be may be primed for a trend reversal or corrective pullback in price.
Midline Crossovers:
When the RSI crosses above its midline (RSI > 50%) a bullish bias signal is generated. (only take long trades)
When the RSI crosses below its midline (RSI < 50%) a bearish bias signal is generated. (only take short trades)
Bullish and bearish moving average signal Line crossovers:
When the RSI line crosses above its signal line, a bullish buy signal is generated
When the RSI line crosses below its signal line, a bearish sell signal is generated.
Swing Failures and classic rejection patterns:
If the RSI makes a lower high, and then follows with a downside move below the previous low, a Top Swing Failure has occurred.
If the RSI makes a higher low, and then follows with an upside move above the previous high, a Bottom Swing Failure has occurred.
Examples of classic swing rejection patterns
Bullish swing rejection pattern:
The RSI moves into oversold zone (below 30%).
The RSI rejects back out of the oversold zone (above 30%)
The RSI forms another dip without crossing back into oversold zone.
The RSI then continues the bounce to break up above the previous high.
Bearish swing rejection pattern:
The RSI moves into overbought zone (above 70%).
The RSI rejects back out of the overbought zone (below 70%)
The RSI forms another peak without crossing back into overbought zone.
The RSI then continues to break down below the previous low.
Divergences:
A regular bullish RSI divergence is when the price makes lower lows in a downtrend and the RSI indicator makes higher lows.
A regular bearish RSI divergence is when the price makes higher highs in an uptrend and the RSI indicator makes lower highs.
A hidden bullish RSI divergence is when the price makes higher lows in an uptrend and the RSI indicator makes lower lows.
A hidden bearish RSI divergence is when the price makes lower highs in a downtrend and the RSI indicator makes higher highs.
Regular divergences can signal a reversal of the trending direction.
Hidden divergences can signal a continuation in the direction of the trend.
Chart Patterns:
RSI regularly forms classic chart patterns that may not show on the underlying price chart, such as ascending and descending triangles & wedges, double tops, bottoms and trend lines etc.
Support and Resistance:
It is very often easier to define support or resistance levels on the RSI itself rather than the price chart.
Modern interpretations in trending markets:
Modern interpretations of the RSI stress the context of the greater trend when using RSI signals such as crossovers, overbought/oversold conditions, divergences and patterns.
Constance Brown, CMT, was one of the first who promoted the idea that an oversold reading on the RSI in an uptrend is likely much higher than 30%, and that an overbought reading on the RSI during a downtrend is much lower than the 70% level.
In an uptrend or bull market, the RSI tends to remain in the 40 to 90 range, with the 40-50 zone acting as support.
During a downtrend or bear market, the RSI tends to stay between the 10 to 60 range, with the 50-60 zone acting as resistance.
For ease of executing more modern and nuanced interpretations of RSI it is very useful to break the RSI scale into bull and bear control and critical zones.
These ranges will vary depending on the RSI settings and the strength of the specific market’s underlying trend.
Limitations of the RSI
Like most technical indicators, its signals are most reliable when they conform to the long-term trend.
True trend reversal signals are rare, and can be difficult to separate from false signals.
False signals or “fake-outs”, e.g. a bullish crossover, followed by a sudden decline in price, are common.
Since the indicator displays momentum, it can stay overbought or oversold for a long time when an asset has significant sustained momentum in either direction.
Data Length Dependency when using wilders smoothing method of calculating RSI means that wilders standard RSI will have a potential initialization error which reduces with every new data point calculated meaning early results should be regarded as unreliable until calculation iterations have occurred for convergence.
Multicolor Bollinger Bands - Market PhasesHi everyone
Hope you're all doing well 😘
Today I feel gracious and decided to give to the community. And giving not only an indicator but also a trading method
This trading method shows how a convergence based on moving averages is tremendous
Multicolour Bollinger Bands indicator that indicates market phases.
It plots on the price chart, thanks to different color zones between the bands, a breakdown of the different phases that the price operates during a trend.
The different zones are identified as follows:
- red color zone: trend is bearish, price is below the 200 periods moving average
- orange color zone: price operate a technical rebound below the 200 periods moving average
- yellow color zone: (phase 1 which indicate a new bearish cycle)
- light green zone: (phase 2 which indicate a new bullish cycle)
- dark green zone: trend is bullish, price is above the 200 periods moving average
- grey color zone: calm phase of price
- dark blue color zone: price is consolidating in either bullish or bearish trend
- light blue zones: price will revert to a new opposite trend (either long or short new trend)
By identifying clearly the different market phases with the multicolor Bollinger bands, the market entries by either a the beginning of a new trend or just after a rebound or a consolidating phase is easier to spot on.
Trade well and trade safe
Dave
Elite S&D [By:CienF]Elite Supply & Demand
Description
Elite Supply & Demand is not just another zone indicator; it is a complete institutional trading system designed to identify high-probability imbalances in the market. Unlike standard indicators that flood the chart with weak zones, this script applies rigorous Price Action rules to filter, score, and validate only the most significant areas of interest.
The core philosophy of this tool is "Anormality". Institutional activity leaves a footprint in the form of explosive volatility relative to the recent context. This indicator detects these footprints, measures their intensity, and validates them against market structure.
Key Features
🔥 Dynamic Quality Scoring (The "Elite" Feature) The indicator doesn't just draw boxes; it rates them. It calculates a Volumetric Ratio comparing the explosive move against the historical average at the moment of creation.
Contextual Intelligence: It continues to track the initial move. If the momentum continues after a small pause, the score updates in real-time.
Visual Grades:
🔥 Fire: High Anormality (Institutional Imbalance).
⚡ Lightning: Moderate Anormality (Decent strength).
No Icon: Standard move.
🏗️ Advanced Structure Validation Includes a unique "Eventual Break" filter.
Latent Zones: You can choose to hide zones that haven't broken structure yet.
Auto-Validation: The zone remains invisible/transparent until price breaks a recent High/Low or Fractal Pivot. Once the break occurs, the zone "activates" on your chart.
🧠 Smart Mitigation Logic
No Zombie Zones: Once a zone is mitigated (touched), it is strictly processed. It can either turn gray (History Mode) or be removed instantly.
Priority Handling: Mitigated zones are never re-colored or re-validated, keeping your chart clean and accurate.
🚀 Performance Optimization
Date Lookback: Includes a "Days Back" filter to prevent the script from calculating thousands of historical candles, ensuring smooth performance even on lower timeframes (1m, 5m).
🔔 Integrated Alerts
Creation: Get notified immediately when a potential zone forms.
Validation: Get notified specifically when a latent zone breaks structure and becomes active.
How It Works ( The Logic)
Phase 1: The Base (Indecision): Identifies candles with small bodies (≤ 50% of range) representing equilibrium/accumulation.
Phase 2: The Explosion (Imbalance): Looks for a strong breakout candle (≥ 60% body) that moves away from the base.
Phase 3: The Follow-up: Verifies that the move continues. It allows for "Smart Pauses" (single indecision candles) within the trend but invalidates the zone if a reversal occurs immediately.
Phase 4: Structure Check: Verifies if the move broke the Recent Range (High/Low) or Fractal Pivots.
Settings & Configuration
1. Base & Exit Rules
Max % Body: Threshold to define an indecision candle (Default: 50%).
Explosive Min: Minimum strength required for the exit candle.
2. Structure Validation
Structure Type: Choose between Recent Range (more fluid) or Fractal Pivots (stricter).
Filter Eventual Break: Highly Recommended. If checked, zones appear only after they prove their strength by breaking structure.
3. Scoring (Quality)
High Quality Ratio: The multiplier required to earn the 🔥 icon (e.g., 2.0x larger than average).
Allow Pause: Allows the algorithm to capture larger moves even if there is a single small candle in the middle of the explosive leg.
4. Performance
Days Back: Limits how far back the indicator draws. Reduce this number on low timeframes to speed up loading.
Usage Recommendations
For Trend Trading: Look for "Follow-up" zones. If you see a 🔥 zone forming in the direction of the higher timeframe trend, it is a high-probability entry.
For Reversals: Use the "Filter Eventual Break" feature. Wait for the indicator to reveal a zone that has broken a major structure point.
Stop Loss Placement: The indicator draws the zone covering the entire "Base" (wicks included). A safe stop is typically just beyond the distal line (33% recommended) of the box.
🔔 How to Set Up Alerts
Since this indicator uses the dynamic alert() function to send detailed messages (Entry Price, Stop Zone, Type), you must configure it correctly:
Add the indicator to your chart and adjust the settings to your preference.
Click the "Create Alert" button (Clock Icon) on the right toolbar or press Alt + A.
Condition: Select "Elite S&D " from the dropdown menu.
Trigger (CRITICAL): You must select "Any alert() function call".
Note: Do not select "Crossing" or other standard conditions, or the alerts will not trigger.
Expiration: Select "Open-ended" (if you have a Premium plan) or set a future date.
Alert Actions: Choose where you want to receive the alert (Notify on App, Show Popup, Send Email, etc.).
Message: You can leave this default. The script automatically generates a detailed message with the Ticker, Timeframe, Zone Type, and Coordinates.
Click Create.
Disclaimer: This tool is designed to assist in technical analysis and does not constitute financial advice. Always use proper risk management.
Inside SwingsOverview
The Inside Swings indicator identifies and visualizes "inside swing" patterns in price action. These patterns occur when price creates a series of pivots that form overlapping ranges, indicating potential consolidation or reversal zones.
What are Inside Swings?
Inside swings are specific pivot patterns where:
- HLHL Pattern: High-Low-High-Low sequence where the first high is higher than the second high, and the first low is lower than the second low
- LHLH Pattern: Low-High-Low-High sequence where the first low is lower than the second low, and the first high is higher than the second high
Here an Example
These patterns create overlapping price ranges that often act as:
- Support/Resistance zones
- Consolidation areas
- Potential reversal points
- Breakout levels
Levels From the Created Range
Input Parameters
Core Settings
- Pivot Lookback Length (default: 5): Number of bars on each side to confirm a pivot high/low
- Max Boxes (default: 100): Maximum number of patterns to display on chart
Extension Settings
- Extend Lines: Enable/disable line extensions - this extends the Extremes of the Swings to where a new Swing Started or Extended Right for the Latest Inside Swings
- Show High 1 Line: Display first high/low extension line
- Show High 2 Line: Display second high/low extension line
- Show Low 1 Line: Display first low/high extension line
- Show Low 2 Line: Display second low/high extension line
Visual Customization
Box Colors
- HLHL Box Color: Color for HLHL pattern boxes (default: green)
- HLHL Border Color: Border color for HLHL boxes
- LHLH Box Color: Color for LHLH pattern boxes (default: red)
- LHLH Border Color: Border color for LHLH boxes
Line Colors
- HLHL Line Color: Extension line color for HLHL patterns
- LHLH Line Color: Extension line color for LHLH patterns
- Line Width: Thickness of extension lines (1-5)
Pattern Detection Logic
HLHL Pattern (Bullish Inside Swing)
Condition: High1 > High2 AND Low1 < Low2
Sequence: High → Low → High → Low
Visual: Two overlapping boxes with first range encompassing second
Detection Criteria:
1. Last 4 pivots form High-Low-High-Low sequence
2. Fourth pivot (first high) > Second pivot (second high)
3. Third pivot (first low) < Last pivot (second low)
LHLH Pattern (Bearish Inside Swing)
Condition: Low1 < Low2 AND High1 > High2
Sequence: Low → High → Low → High
Visual: Two overlapping boxes with first range encompassing second
Detection Criteria:
1. Last 4 pivots form Low-High-Low-High sequence
2. Fourth pivot (first low) < Second pivot (second low)
3. Third pivot (first high) > Last pivot (second high)
Visual Elements
Boxes
- Box 1: Spans from first pivot to last pivot (larger range)
- Box 2: Spans from third pivot to last pivot (smaller range)
- Overlap: The intersection of both boxes represents the inside swing zone
Extension Lines
- High 1 Line: Horizontal line at first high/low level
- High 2 Line: Horizontal line at second high/low level
- Low 1 Line: Horizontal line at first low/high level
- Low 2 Line: Horizontal line at second low/high level
Line Extension Behavior
- Historical Patterns: Lines extend until the next pattern starts
- Latest Pattern: Lines extend to the right edge of chart
- Dynamic Updates: All lines are redrawn on each bar for accuracy
Trading Applications
Support/Resistance Levels
Inside swing levels often act as:
- Dynamic support/resistance
- Breakout confirmation levels
- Reversal entry points
Pattern Interpretation
- HLHL Patterns: Potential bullish continuation or reversal
- LHLH Patterns: Potential bearish continuation or reversal
- Overlap Zone: Key area for price interaction
Entry Strategies
1. Breakout Strategy: Enter on break above/below inside swing levels
2. Reversal Strategy: Enter on bounce from inside swing levels
3. Range Trading: Trade between inside swing levels
Technical Implementation
Data Structures
type InsideSwing
int startBar // First pivot bar
int endBar // Last pivot bar
string patternType // "HLHL" or "LHLH"
float high1 // First high/low
float low1 // First low/high
float high2 // Second high/low
float low2 // Second low/high
box box1 // First box
box box2 // Second box
line high1Line // High 1 extension line
line high2Line // High 2 extension line
line low1Line // Low 1 extension line
line low2Line // Low 2 extension line
bool isLatest // Latest pattern flag
Memory Management
- Pattern Storage: Array-based storage with automatic cleanup
- Pivot Tracking: Maintains last 4 pivots for pattern detection
- Resource Cleanup: Automatically removes oldest patterns when limit exceeded
Performance Optimization
- Duplicate Prevention: Checks for existing patterns before creation
- Efficient Redraw: Only redraws lines when necessary
- Memory Limits: Configurable maximum pattern count
Usage Tips
Best Practices
1. Combine with Volume: Use volume confirmation for breakouts
2. Multiple Timeframes: Check higher timeframes for context
3. Risk Management: Set stops beyond inside swing levels
4. Pattern Validation: Wait for confirmation before entering
Common Scenarios
- Consolidation Breakouts: Inside swings often precede significant moves
- Reversal Zones: Failed breakouts at inside swing levels
- Trend Continuation: Inside swings in trending markets
Limitations
- Lagging Indicator: Patterns form after completion
- False Signals: Not all inside swings lead to significant moves
- Market Dependent: Effectiveness varies by market conditions
Customization Options
Visual Adjustments
- Modify colors for different market conditions
- Adjust line widths for visibility
- Enable/disable specific elements
Detection Sensitivity
- Increase pivot length for smoother patterns
- Decrease for more sensitive detection
- Balance between noise and signal
Display Management
- Control maximum pattern count
- Adjust cleanup frequency
- Manage memory usage
Conclusion
The Inside Swings indicator provides a systematic approach to identifying consolidation and potential reversal zones in price action. By visualizing overlapping pivot ranges
The indicator's strength lies in its ability to:
- Identify key price levels automatically
- Provide visual context for market structure
- Offer flexible customization options
- Maintain performance through efficient memory management
[blackcat] L2 Trend LinearityOVERVIEW
The L2 Trend Linearity indicator is a sophisticated market analysis tool designed to help traders identify and visualize market trend linearity by analyzing price action relative to dynamic support and resistance zones. This powerful Pine Script indicator utilizes the Arnaud Legoux Moving Average (ALMA) algorithm to calculate weighted price calculations and generate dynamic support/resistance zones that adapt to changing market conditions. By visualizing market zones through colored candles and histograms, the indicator provides clear visual cues about market momentum and potential trading opportunities. The script generates buy/sell signals based on zone crossovers, making it an invaluable tool for both technical analysis and automated trading strategies. Whether you're a day trader, swing trader, or algorithmic trader, this indicator can help you identify market regimes, support/resistance levels, and potential entry/exit points with greater precision.
FEATURES
Dynamic Support/Resistance Zones: Calculates dynamic support (bear market zone) and resistance (bull market zone) using weighted price calculations and ALMA smoothing
Visual Market Representation: Color-coded candles and histograms provide immediate visual feedback about market conditions
Smart Signal Generation: Automatic buy/sell signals generated from zone crossovers with clear visual indicators
Customizable Parameters: Four different ALMA smoothing parameters for various timeframes and trading styles
Multi-Timeframe Compatibility: Works across different timeframes from 1-minute to weekly charts
Real-time Analysis: Provides instant feedback on market momentum and trend direction
Clear Visual Cues: Green candles indicate bullish momentum, red candles indicate bearish momentum, and white candles indicate neutral conditions
Histogram Visualization: Blue histogram shows bear market zone (below support), aqua histogram shows bull market zone (above resistance)
Signal Labels: "B" labels mark buy signals (price crosses above resistance), "S" labels mark sell signals (price crosses below support)
Overlay Functionality: Works as an overlay indicator without cluttering the chart with unnecessary elements
Highly Customizable: All parameters can be adjusted to suit different trading strategies and market conditions
HOW TO USE
Add the Indicator to Your Chart
Open TradingView and navigate to your desired trading instrument
Click on "Indicators" in the top menu and select "New"
Search for "L2 Trend Linearity" or paste the Pine Script code
Click "Add to Chart" to apply the indicator
Configure the Parameters
ALMA Length Short: Set the short-term smoothing parameter (default: 3). Lower values provide more responsive signals but may generate more false signals
ALMA Length Medium: Set the medium-term smoothing parameter (default: 5). This provides a balance between responsiveness and stability
ALMA Length Long: Set the long-term smoothing parameter (default: 13). Higher values provide more stable signals but with less responsiveness
ALMA Length Very Long: Set the very long-term smoothing parameter (default: 21). This provides the most stable support/resistance levels
Understand the Visual Elements
Green Candles: Indicate bullish momentum when price is above the bear market zone (support)
Red Candles: Indicate bearish momentum when price is below the bull market zone (resistance)
White Candles: Indicate neutral market conditions when price is between support and resistance zones
Blue Histogram: Shows bear market zone when price is below support level
Aqua Histogram: Shows bull market zone when price is above resistance level
"B" Labels: Mark buy signals when price crosses above resistance
"S" Labels: Mark sell signals when price crosses below support
Identify Market Regimes
Bullish Regime: Price consistently above resistance zone with green candles and aqua histogram
Bearish Regime: Price consistently below support zone with red candles and blue histogram
Neutral Regime: Price oscillating between support and resistance zones with white candles
Generate Trading Signals
Buy Signals: Look for price crossing above the bull market zone (resistance) with confirmation from green candles
Sell Signals: Look for price crossing below the bear market zone (support) with confirmation from red candles
Confirmation: Always wait for confirmation from candle color changes before entering trades
Optimize for Different Timeframes
Scalping: Use shorter ALMA lengths (3-5) for 1-5 minute charts
Day Trading: Use medium ALMA lengths (5-13) for 15-60 minute charts
Swing Trading: Use longer ALMA lengths (13-21) for 1-4 hour charts
Position Trading: Use very long ALMA lengths (21+) for daily and weekly charts
LIMITATIONS
Whipsaw Markets: The indicator may generate false signals in choppy, sideways markets where price oscillates rapidly between support and resistance
Lagging Nature: Like all moving average-based indicators, there is inherent lag in the calculations, which may result in delayed signals
Not a Standalone Tool: This indicator should be used in conjunction with other technical analysis tools and risk management strategies
Market Structure Dependency: Performance may vary depending on market structure and volatility conditions
Parameter Sensitivity: Different markets may require different parameter settings for optimal performance
No Volume Integration: The indicator does not incorporate volume data, which could provide additional confirmation signals
Limited Backtesting: Pine Script limitations may restrict comprehensive backtesting capabilities
Not Suitable for All Instruments: May perform differently on stocks, forex, crypto, and futures markets
Requires Confirmation: Signals should always be confirmed with other indicators or price action analysis
Not Predictive: The indicator identifies current market conditions but does not predict future price movements
NOTES
ALMA Algorithm: The indicator uses the Arnaud Legoux Moving Average (ALMA) algorithm, which is known for its excellent smoothing capabilities and reduced lag compared to traditional moving averages
Weighted Price Calculations: The bear market zone uses (2low + close) / 3, while the bull market zone uses (high + 2close) / 3, providing more weight to recent price action
Dynamic Zones: The support and resistance zones are dynamic and adapt to changing market conditions, making them more responsive than static levels
Color Psychology: The color scheme follows traditional trading psychology - green for bullish, red for bearish, and white for neutral
Signal Timing: The signals are generated on the close of each bar, ensuring they are based on complete price action
Label Positioning: Buy signals appear below the bar (red "B" label), while sell signals appear above the bar (green "S" label)
Multiple Timeframes: The indicator can be applied to multiple timeframes simultaneously for comprehensive analysis
Risk Management: Always use proper risk management techniques when trading based on indicator signals
Market Context: Consider the overall market context and trend direction when interpreting signals
Confirmation: Look for confirmation from other indicators or price action patterns before entering trades
Practice: Test the indicator on historical data before using it in live trading
Customization: Feel free to experiment with different parameter combinations to find what works best for your trading style
THANKS
Special thanks to the TradingView community and the Pine Script developers for creating such a powerful and flexible platform for technical analysis. This indicator builds upon the foundation of the ALMA algorithm and various moving average techniques developed by technical analysis pioneers. The concept of dynamic support and resistance zones has been refined over decades of market analysis, and this script represents a modern implementation of these timeless principles. We acknowledge the contributions of all traders and developers who have contributed to the evolution of technical analysis and continue to push the boundaries of what's possible with algorithmic trading tools.
TOTAL3ES/ETH Mean ReversionTOTAL3ES/ETH Mean Reversion Indicator
Overview
The TOTAL3ES/ETH Mean Reversion indicator is a specialized tool designed exclusively for analyzing the ratio between TOTAL3 excluding stablecoins (TOTAL3ES) and Ethereum's market capitalization. This ratio provides crucial insights into the relative performance and valuation cycles between altcoins and ETH, making it an essential tool for cryptocurrency portfolio allocation and market timing decisions.
What This Indicator Measures
This indicator tracks the market cap ratio of all altcoins (excluding ETH and stablecoins) to Ethereum's market cap. When the ratio is:
Above 1.0 (Parity): Altcoins have a larger combined market cap than ETH
Below 1.0 (Parity): ETH's market cap exceeds the combined altcoin market cap
Key Features
Historical Context
Historical Range: 0.64 (July 2017 low) to 3.49 (all-time high)
Midpoint: 2.065 - the mathematical center of the historical range
Parity Line: 1.0 - the psychological level where altcoins = ETH market cap
Mean Reversion Zones
The indicator identifies extreme valuation zones based on historical data:
Upper Extreme Zone (~2.92 at 80% threshold): Suggests altcoins may be overvalued relative to ETH
Lower Extreme Zone (~1.21 at 80% threshold): Suggests altcoins may be undervalued relative to ETH
Visual Elements
Color-coded zones: Red shading for bearish reversion areas, green for bullish reversion areas
Multiple reference lines: Parity, midpoint, and historical extremes
Information table: Real-time metrics including current ratio, range position, and reversion pressure
Customizable display: Toggle zones, lines, and adjust transparency
How to Use This Indicator
Market Cycle Analysis
Extreme High Zone (Red): When ratio enters this zone, consider potential ETH outperformance
Extreme Low Zone (Green): When ratio enters this zone, consider potential altcoin season
Parity Crossovers: Monitor when ratio crosses above/below 1.0 for sentiment shifts
Portfolio Allocation Signals
High Ratio Values: May indicate overextended altcoin valuations relative to ETH
Low Ratio Values: May suggest undervalued altcoins relative to ETH
Midpoint Reversions: Historical tendency to revert toward the 2.065 midpoint
Alert Conditions
The indicator includes built-in alerts for:
Entering extreme high/low zones
Parity crossovers (above/below 1.0)
Mean reversion signals
Input Parameters
Display Settings
Show Reversion Zones: Toggle colored extreme zones on/off
Show Midpoint: Display the historical midpoint line
Show Parity Line: Show the 1.0 parity reference line
Zone Transparency: Adjust shaded area opacity (70-95%)
Calculation Settings
Reversion Strength Period: Moving average period for reversion calculations (10-50)
Extreme Threshold: Percentage of historical range defining extreme zones (0.5-1.0)
Information Table Metrics
The bottom-right table displays:
Current Ratio: Live TOTAL3ES/ETH value
Range Position: Current position within historical range (%)
From Parity: Distance from 1.0 parity level (%)
Reversion Pressure: Intensity of mean reversion forces (%)
Zone: Current market zone classification
Historical Range: Reference boundaries (0.64 - 3.49)
Midpoint: Historical center value
Important Notes
Chart Compatibility
Exclusively designed for CRYPTOCAP:TOTAL3ES/CRYPTOCAP:ETH
Built-in validation ensures proper chart usage
Will display error message if applied to incorrect charts
Trading Considerations
This is an analytical tool, not trading advice
Mean reversion is a tendency, not a guarantee
Consider multiple timeframes and confirmations
Factor in overall market conditions and trends
Risk Disclaimer
Past performance does not guarantee future results. Cryptocurrency markets are highly volatile and unpredictable. Always conduct your own research and consider your risk tolerance before making investment decisions.
Ideal Use Cases
Portfolio rebalancing between ETH and altcoins
Market cycle timing for position adjustments
Sentiment analysis of crypto market phases
Long-term allocation strategies based on historical patterns
Risk management through extreme zone identification
This indicator serves as a quantitative framework for understanding the cyclical relationship between Ethereum and the broader altcoin market, helping traders and investors make more informed allocation decisions based on historical valuation patterns.ons
- Factor in overall market conditions and trends
### Risk Disclaimer
Past performance does not guarantee future results. Cryptocurrency markets are highly volatile and unpredictable. Always conduct your own research and consider your risk tolerance before making investment decisions.
FVG LevelsFVG Levels Indicator Description
The FVG Levels indicator dynamically identifies and displays key price zones that may represent fair value gaps and order block areas, helping traders to visually pinpoint potential support and resistance levels directly on the chart.
Key Features
Order Block Identification:
The indicator detects bullish and bearish order blocks by analyzing specific candle patterns. For bullish zones, it checks if a candle two bars ago was bullish (close greater than open) coupled with a subsequent gap condition. Similarly, bearish zones are identified when bearish candle conditions are met with an appropriate gap.
Dynamic Zone Calculation:
It computes critical levels such as the highest highs, lowest lows, highest lows, and lowest highs over a series of recent bars. These levels define the boundaries of potential buy and sell zones and adjust dynamically as new price data comes in.
Visual Representation:
Buy zones are plotted in lime and sell zones in yellow, with the indicator filling the areas between the high and low lines to create clear, shaded bands. This visual aid helps in quickly recognizing zones of potential price reaction.
Chart Overlay:
Designed to work as an overlay, the indicator integrates directly onto your price chart, allowing for seamless correlation between price action and identified zones.
How It Works
Bullish Zones:
When a bullish candle (with the candle's close above its open) is detected along with a significant gap, the indicator marks the upper and lower boundaries of the bullish order block. It further refines these levels by tracking the lowest low and highest high over recent bars to enhance the zone's definition.
Bearish Zones:
In a similar manner, the indicator calculates bearish order blocks by confirming bearish candle conditions and corresponding gap criteria. It then updates the bearish zone levels and computes the highest high and lowest low to establish clear sell zone boundaries.
Usage
Traders can use the FVG Levels indicator to:
Identify potential entry and exit points by observing where price may reverse or consolidate.
Recognize fair value gaps or imbalances that often act as magnet points for price action.
Enhance risk management by using the dynamically calculated zones to set stop-losses or take-profits.
New York Midnight Indicator█ OVERVIEW
This script provides a visual tool for traders to track the New York Midnight (NY Midnight), a significant time marker for those who rely on New York’s financial markets. The script calculates the exact moment of midnight in New York and places a vertical line on the chart at this time, helping traders identify when a new trading day begins according to the New York time zone. The indicator also marks the midnight point with a lime-colored downward triangle to enhance visibility on the chart. It is specifically useful for traders who want to synchronize their strategies with New York’s trading hours, especially in global markets.
The script is flexible, allowing traders to adjust the UTC offset to accommodate different time zones. This is critical for those trading in different regions but still using New York as the main time reference.
█ CONCEPTS
New York Midnight: For many traders, especially those following the Forex and US stock markets, midnight in New York signifies the start of a new trading day. This point is essential for technical analysis as it often aligns with daily opening ranges, trend shifts, and volume spikes.
UTC Offset: The script includes a user-input parameter (utcOffset) to adjust the calculated time for New York midnight, ensuring that it accounts for time zone differences. This allows it to be used effectively regardless of the user’s local time zone, offering flexibility to global traders.
█ METHODOLOGY
UTC Offset Adjustment: The script starts by asking the trader to input their UTC offset (e.g., UTC -5 for New York without daylight saving time). This offset is added to the current chart time to align it with New York’s local time.
Current Hour Calculation: Once the UTC offset is applied, the script calculates the New York Hour by taking the chart’s current hour and adjusting it with the offset. This ensures that the displayed hour matches New York’s local time, regardless of the trader's location.
Vertical Line at Midnight: When the current New York hour equals 00:00 (midnight), the script plots a black vertical line on the chart. This line serves as a visual reference for the exact moment when New York's trading day begins, allowing traders to align their strategies accordingly.
Downward Triangle Plot: In addition to the vertical line, the script also adds a lime-colored downward triangle at the same bar location to further highlight the midnight point. This is useful for traders who prefer shape markers to visualize significant time events.
█ HOW TO USE
Identifying Daily Resets: The script makes it easy for traders to track when New York’s trading day resets. This is especially useful in Forex markets, where daily cycles and time zone-based volatility play an important role in price movement and volume spikes.
Time Zone Flexibility: By adjusting the UTC offset parameter, traders across the globe can synchronize their charts with New York time. This is critical for international traders who want to execute trades based on New York market patterns but reside in different time zones.
Strategic Time Marking: The vertical line and shape markers at midnight allow traders to quickly see when a new trading day starts, helping them identify patterns like the daily range, key support/resistance levels, or even potential reversals around this time.
Session-Based Analysis: Traders who work with session-based strategies (e.g., trading the Asian, European, or US sessions) can use this marker to better time their entries or exits relative to the start of the New York session.
█ METHOD VARIANTS
This script can be modified or extended in various ways to better suit specific trading strategies:
Highlighting Other Session Starts: It could be adapted to plot lines for other key session starts (e.g., London open, Tokyo open).
Multiple Time Zones: For traders who monitor several markets, the script could be extended to display midnight markers for multiple time zones.
Custom Line Styles: Users could modify the line color, thickness, or style to better match their chart aesthetic or preferences.
BTC - Power Law OscillatorDescription:
The BTC - Power Law Oscillator is a technical analysis tool designed to help traders and investors identify potential overbought and oversold conditions in the Bitcoin market. This oscillator is based on a power law model that approximates Bitcoin's historical price trajectory, providing a framework for understanding deviations from this trajectory over time.
Key Features:
Exponential Model: The oscillator uses an exponential model that represents Bitcoin's price growth over time since its inception on January 3, 2009. This model is mathematically expressed as:
price=exp(5.71×ln(days since inception)−38.16)
This captures the long-term growth trend of Bitcoin, allowing for the analysis of deviations from this model.
Deviation Analysis: The Power Law Oscillator measures the percentage deviation of Bitcoin's closing price from the model price. This deviation is expressed as a percentage to illustrate how far the current price is from the expected model trajectory.
Normalization: The oscillator values are normalized to a 0-100 range. A quadratic transformation is applied to enhance sensitivity to higher values, allowing for better visualization and interpretation of extreme conditions.
Bands and Zones:
Upper Band (50): Indicates the 20% threshold. Values above this band suggest overbought conditions, where Bitcoin's price may be significantly above the expected trajectory.
Lower Band (15): Indicates the 5% threshold. Values below this band suggest oversold conditions, where Bitcoin's price may be significantly below the expected trajectory.
Top Zone: The area above the upper band is shaded red, highlighting potential sell or caution areas.
Bottom Zone: The area below the lower band is shaded green, highlighting potential buy or accumulation areas.
Benefits:
Trend Analysis: Helps identify long-term trends and potential reversals by analyzing price deviations from a theoretical model based on historical growth.
Market Timing: Assists in market timing decisions by indicating overbought and oversold conditions with visual bands and zones.
Enhanced Sensitivity: The quadratic normalization enhances sensitivity to changes in the oscillator, providing clearer signals for traders.
Usage Tips:
Complementary Tool: Use this oscillator in conjunction with other technical indicators and fundamental analysis for more comprehensive market insights.
Risk Management: Always employ sound risk management strategies when trading, as no single indicator can guarantee accurate predictions.
Market Context: Consider the broader market context, as Bitcoin's volatility can lead to significant short-term fluctuations.
The BTC - Power Law Oscillator provides a unique perspective on Bitcoin's price movements by leveraging a mathematical model to understand historical growth trends and deviations. Use this tool to gain deeper insights into market dynamics and enhance your trading strategy.
Wave Consolidation [LuxAlgo]The Wave Consolidation indicator uses market profiles to highlight consolidation zones based on upward and downward moves determined when a Higher-High or Lower-Low is created.
Users can control the amount of consolidation zones to display and the sensitivity of the swing point detection used to return those zones.
🔶 USAGE
These zones are intended as areas of interest to traders where price has seen historical interactions, which can be interpreted as support and resistance. By identifying these areas of interest before the price returns to them, traders are able to anticipate and prepare for various scenarios and respond dynamically to the behavior of the market, as seen below.
Rejection: A quick move away from the zone may indicate that the area is either overvalued or undervalued, leading to a fast movement in the opposite direction.
Breakthrough: Moving beyond a zone could indicate acceptance at that specific price, potentially signaling a shift in momentum or the start of a new trend. In a strong major trend, zones created from smaller trends could be used as price targets for taking profit and managing risk.
Consolidation: Holding these zones might suggest a market in balance at these levels, this could lead to opportunities for range-bound trading.
Below is an example of the Rejection and Consolidation scenarios described above.
Note: By analyzing the tests and retests of these zones, traders can also gain further insight into where participants are interacting in the market.
🔶 DETAILS
The full process for acquiring and managing these zones is described in the sub-sections below.
🔹 Creation
By only considering market movements creating a higher-high or lower-low, we can identify meaningful, directional, moves which can then be used to calculate zones.
Once a move is identified, the script calculates a volume profile spanning the length of the given move.
The width of the zones is determined starting from the POC of the profile and expanding outwards until the value of the profile's row falls below the profile's average.
Note: By increasing the "Multiplier" Input, Users can increase the threshold the script uses to determine zone width in multiples of Standard Deviations above the Average.
While this area is similar to a VP Value Area, it is not intended to replicate a value zone. The calculation is not concerned with capturing any % of the total profile's volume within the zone and only analyzes based on a fixed inclusion threshold.
🔹 Management
To keep clutter to a minimum, If a new zone overlaps a recently created zone, the zones are grouped as one. This is especially helpful in areas where prices are ranging, creating multiple zones in a very similar area.
Zones before management:
Zones after management:
🔹 Deletion
Just because a zone is crossed, does not make it immediately unimportant!
Once a Zone is mitigated (crossed in the opposite direction of its bias) it is reduced to a single dotted line representing the outer threshold for the zone. These lines are important to watch, as the price will often retest a break. For this reason, they will stay on the chart until the next swing point is detected when they will finally be deleted for good.
Below is an example of activity around a broken zone before it is deleted.
Below is the same example 2bBars later , once the new swing is confirmed, the dotted lines are deleted and new zones are created.
Notice how the newly formed resistance zone is in the same area where we noticed sellers previously.
🔶 SETTINGS
🔹 Structure
Display Structure: Determines if swing structures are displayed.
Structure Length: Sets Length for structure identification.
🔹 Zones
Volume-Based Calculations: Opt to use a "Volume" based Profile Calculation instead of the default "Price Action" based Calculation.
Display Count: Sets the specific number of bullish and bearish zones to display on the chart.
Multiplier: Sets the multiplier to use for the value cut-off for determining zone boundaries.
🔹 Style
Display Average Lines: Toggles on/off the average (mid) lines for the zones.
ICT KillZones Hunt [TradingFinder] 4 Sessions + OB + FVG + Alert🔵 Introduction
🟣 ICT
The "ICT" style is a subset of "Price Action" technical analysis. The primary goal of the ICT trading strategy is to merge "Price Action" with the "Smart Money" concept to pinpoint optimal trade entry points.
However, this approach's strength extends beyond merely finding entry points. It also helps traders gain a deeper understanding of price behavior and adapt their trading strategies to the market structure.
The most important concepts of "ICT" :
Order Block
Fair Value Gap(FVG)
Liquidity
🟣 Session
Financial markets are divided into several time periods, each featuring distinct characteristics and levels of activity. These periods, known as sessions, are active at different times during the day.
The primary active sessions in financial markets include :
Asian Session
European Session
New York Session
Based on the UTC time zone, the schedule for these key sessions is :
Asian Session: 23:00 to 06:00
European Session: 07:00 to 16:30
New York Session: 13:00 to 22:00
Note
To avoid session overlap and minimize interference during kill zones, the session times have been modified as follows :
Asian Session: 23:00 to 06:00
European Session: 07:00 to 14:25
New York Session: 14:30 to 22:55
🟣 KillZone
Kill zones are periods within a session where trader activity spikes. During these times, trading volume surges, and price movements become more pronounced.
The major kill zones, according to the UTC time zone, are as follows :
Asian Kill Zone: 23:00 to 03:55
European Kill Zone: 07:00 to 09:55
New York Morning Kill Zone: 14:30 to 16:55
New York Evening Kill Zone: 19:30 to 20:55
🔵 How to Use
🟣 Order Block
Order blocks are a distinct category of "Supply and Demand" zones, formed when a series of orders are grouped together. These blocks are often created by banks or other significant market participants.
Banks typically execute large orders in blocks during their trading sessions. If they were to enter the market with small quantities, substantial price movements would occur before the orders were fully executed, reducing potential profit.
To mitigate this, they divide their orders into smaller, more manageable positions. Traders should seek "buy" opportunities in "demand order blocks" and "sell" opportunities in "supply order blocks."
🟣 Fair Value Gap (FVG)
To pinpoint the "Fair Value Gap" on the chart, meticulous candle-by-candle analysis is essential. Pay close attention to candles with significant bodies, examining each candle alongside the one preceding it.
The candles flanking this central candle should exhibit elongated shadows, with bodies that do not intersect the body of the central candle. The span between the shadows of the first and third candles is referred to as the FVG range.
Note :
The origin of all Order Blocks and FVGs starts from inside a kill zone and extends up to the end of the same session.
🟣 Kill Zone Hunt
Following this strategy, after the conclusion of the kill zone and the stabilization of its high and low lines, if the price touches either of these lines within the same session and encounters a robust rejection, it presents an opportunity to enter a trade.
🔵 Setting
🟣 Global Setting
Show All Order Block :
If it is turned off, only the last Order Block will be displayed.
Show All FVG :
If it is turned off, only the last FVG will be displayed.
Show More Info Session :
If it is turned on, more information about kill zones (Trade Volume, Time, Number of Candles) will be displayed.
🟣 Logic Parameter
Pivot Period of Order Blocks Detector :
Enter the desired pivot period to identify the Order Block.
Order Block Validity Period (Bar) :
You can specify the maximum time the Order Block remains valid based on the number of candles from the origin.
Mitigation Level Order Block :
Determining the basic level of a block order. When the price hits the basic level, the order block due to mitigation.
🟣 Order Blocks Display
Demand Order Block :
Show or not show and specify color.
Supply order Block :
Show or not show and specify color.
🟣 Order Block Refinement
Refine Demand OB :
Enable or disable the refinement feature. Mode selection.
Refine Supply OB :
Enable or disable the refinement feature. Mode selection.
🟣 FVG
FVG Validity Period (Bar) :
You can specify the maximum time the FVG remains valid based on the number of candles from the origin.
Mitigation Level FVG :
Determining the basic level of a FVG. When the price hits the basic level, the FVG due to mitigation.
Show Demand FVG :
Show or not show and specify color.
Show Supply FVG :
Show or not show and specify color.
FVG Filter :
Enable or disable filtering of FVGs. Select filter mode.
🟣 Session
Show More Info Session Color
Asia Session, London Sesseion, New York am Session & New York pm Session :
Show or not show session and kill zones. Change the display color.
🟣 Alert
Send Alert When Touched Session high & Low :
On / Off
Alert Demand OB Mitigation :
On / Off
Alert Supply OB Mitigation :
On / Off
Alert Demand FVG Mitigation :
On / Off
Alert Supply FVG Mitigation :
On / Off
Message Frequency :
This string parameter defines the announcement frequency. Choices include: "All" (activates the alert every time the function is called), "Once Per Bar" (activates the alert only on the first call within the bar), and "Once Per Bar Close" (the alert is activated only by a call at the last script execution of the real-time bar upon closing). The default setting is "Once per Bar".
Show Alert Time by Time Zone :
The date, hour, and minute you receive in alert messages can be based on any time zone you choose. For example, if you want New York time, you should enter "UTC-4". This input is set to the time zone "UTC" by default.
Display More Info :
Displays information about the price range of the order blocks (Zone Price) and the date, hour, and minute under "Display More Info". If you do not want this information to appear in the received message along with the alert, you should set it to "Off".
AI Momentum [YinYang]Overview:
AI Momentum is a kernel function based momentum Indicator. It uses Rational Quadratics to help smooth out the Moving Averages, this may give them a more accurate result. This Indicator has 2 main uses, first it displays ‘Zones’ that help you visualize the potential movement areas and when the price is out of bounds (Overvalued or Undervalued). Secondly it creates signals that display the momentum of the current trend.
The Zones are composed of the Highest Highs and Lowest lows turned into a Rational Quadratic over varying lengths. These create our Rational High and Low zones. There is however a second zone. The second zone is composed of the avg of the Inner High and Inner Low zones (yellow line) and the Rational Quadratic of the current Close. This helps to create a second zone that is within the High and Low bounds that may represent momentum changes within these zones. When the Rationalized Close crosses above the High and Low Zone Average it may signify a bullish momentum change and vice versa when it crosses below.
There are 3 different signals created to display momentum:
Bullish and Bearish Momentum. These signals display when there is current bullish or bearish momentum happening within the trend. When the momentum changes there will likely be a lull where there are neither Bullish or Bearish momentum signals. These signals may be useful to help visualize when the momentum has started and stopped for both the bulls and the bears. Bullish Momentum is calculated by checking if the Rational Quadratic Close > Rational Quadratic of the Highest OHLC4 smoothed over a VWMA. The Bearish Momentum is calculated by checking the opposite.
Overly Bullish and Bearish Momentum. These signals occur when the bar has Bullish or Bearish Momentum and also has an Rationalized RSI greater or less than a certain level. Bullish is >= 57 and Bearish is <= 43. There is also the option to ‘Factor Volume’ into these signals. This means, the Overly Bullish and Bearish Signals will only occur when the Rationalized Volume > VWMA Rationalized Volume as well as the previously mentioned factors above. This can be useful for removing ‘clutter’ as volume may dictate when these momentum changes will occur, but it can also remove some of the useful signals and you may miss the swing too if the volume just was low. Overly Bullish and Bearish Momentum may dictate when a momentum change will occur. Remember, they are OVERLY Bullish and Bearish, meaning there is a chance a correction may occur around these signals.
Bull and Bear Crosses. These signals occur when the Rationalized Close crosses the Gaussian Close that is 2 bars back. These signals may show when there is a strong change in momentum, but be careful as more often than not they’re predicting that the momentum may change in the opposite direction.
Tutorial:
As we can see in the example above, generally what happens is we get the regular Bullish or Bearish momentum, followed by the Rationalized Close crossing the Zone average and finally the Overly Bullish or Bearish signals. This is normally the order of operations but isn’t always how it happens as sometimes momentum changes don’t make it that far; also the Rationalized Close and Zone Average don’t follow any of the same math as the Signals which can result in differing appearances. The Bull and Bear Crosses are also quite sporadic in appearance and don’t generally follow any sort of order of operations. However, they may occur as a Predictor between Bullish and Bearish momentum, signifying the beginning of the momentum change.
The Bull and Bear crosses may be a Predictor of momentum change. They generally happen when there is no Bullish or Bearish momentum happening; and this helps to add strength to their prediction. When they occur during momentum (orange circle) there is a less likely chance that it will happen, and may instead signify the exact opposite; it may help predict a large spike in momentum in the direction of the Bullish or Bearish momentum. In the case of the orange circle, there is currently Bearish Momentum and therefore the Bull Cross may help predict a large momentum movement is about to occur in favor of the Bears.
We have disabled signals here to properly display and talk about the zones. As you can see, Rationalizing the Highest Highs and Lowest Lows over 2 different lengths creates inner and outer bounds that help to predict where parabolic movement and momentum may move to. Our Inner and Outer zones are great for seeing potential Support and Resistance locations.
The secondary zone, which can cross over and change from Green to Red is also a very important zone. Let's zoom in and talk about it specifically.
The Middle Zone Crosses may help deduce where parabolic movement and strong momentum changes may occur. Generally what may happen is when the cross occurs, you will see parabolic movement to the High / Low zones. This may be the Inner zone but can sometimes be the outer zone too. The hard part is sometimes it can be a Fakeout, like displayed with the Blue Circle. The Cross doesn’t mean it may move to the opposing side, sometimes it may just be predicting Parabolic movement in a general sense.
When we turn the Momentum Signals back on, we can see where the Fakeout occurred that it not only almost hit the Inner Low Zone but it also exhibited 2 Overly Bearish Signals. Remember, Overly bearish signals mean a momentum change in favor of the Bulls may occur soon and overly Bullish signals mean a momentum change in favor of the Bears may occur soon.
You may be wondering, well what does “may occur soon” mean and how do we tell?
The purpose of the momentum signals is not only to let you know when Momentum has occurred and when it is still prevalent. It also matters A LOT when it has STOPPED!
In this example above, we look at when the Overly Bullish and Bearish Momentum has STOPPED. As you can see, when the Overly Bullish or Bearish Momentum stopped may be a strong predictor of potential momentum change in the opposing direction.
We will conclude our Tutorial here, hopefully this Indicator has been helpful for showing you where momentum is occurring and help predict how far it may move. We have been dabbling with and are planning on releasing a Strategy based on this Indicator shortly.
Settings:
1. Momentum:
Show Signals: Sometimes it can be difficult to visualize the zones with signals enabled.
Factor Volume: Factor Volume only applies to Overly Bullish and Bearish Signals. It's when the Volume is > VWMA Volume over the Smoothing Length.
Zone Inside Length: The Zone Inside is the Inner zone of the High and Low. This is the length used to create it.
Zone Outside Length: The Zone Outside is the Outer zone of the High and Low. This is the length used to create it.
Smoothing length: Smoothing length is the length used to smooth out our Bullish and Bearish signals, along with our Overly Bullish and Overly Bearish Signals.
2. Kernel Settings:
Lookback Window: The number of bars used for the estimation. This is a sliding value that represents the most recent historical bars. Recommended range: 3-50.
Relative Weighting: Relative weighting of time frames. As this value approaches zero, the longer time frames will exert more influence on the estimation. As this value approaches infinity, the behavior of the Rational Quadratic Kernel will become identical to the Gaussian kernel. Recommended range: 0.25-25.
Start Regression at Bar: Bar index on which to start regression. The first bars of a chart are often highly volatile, and omission of these initial bars often leads to a better overall fit. Recommended range: 5-25.
If you have any questions, comments, ideas or concerns please don't hesitate to contact us.
HAPPY TRADING!
YinYang Bar ForecastOverview:
YinYang Bar Forecast is a prediction indicator. It predicts the movement for High, Low, Open and Close for up to 13 bars into the future. We created this Indicator as we felt the TradingView community could benefit from a bar forecast as there wasn’t any currently available.
Our YinYang Bar Forecast is something we plan on continuously working on to better improve it, but at its current state it is still very useful and decently accurate. It features many calculations to derive what it thinks the future bars will hold. Let’s discuss some of the logic behind it:
Each bar has its High, Low, Open and Close calculated individually for highest accuracy. Within these calculations we first check which bar it is we are calculating and base our span back length that we are getting our data from based on the bar index we are generating. This helps us get a Moving Average for this bar index.
We take this MA and we apply our Custom Volume Filter calculation on it, which is essentially us dividing the current bars volume over the average volume in the last ‘Filtered Length’ (Setting) length. We take this decimal and multiply it on our MA and smooth it out with a VWMA.
We take the new Volume Filtered MA and apply a RSI Filter calculation on it. RSI Filter is where we take the difference between the high and low of this bar and we multiply it with an RSI calculation using our Volume Filtered MA. We take the result of that multiplication and either add or subtract it from the Volume Filtered MA based on if close > open. This makes our RSI Filtered MA.
Next, we do an EMA Strength Calculation which is where we check if close > ema(close, ‘EMA Averaged Length’) (Setting). Based on this condition we assign a multiplier that is applied to our RSI Filtered MA. We divide by how many bars we are predicting and add a bit to each predictive bar so that the further we go into the future the stronger the strength is.
Next we check RSI and RSI MA levels and apply multiplications based on its RSI levels and if it is greater than or less than the MA. Also it is affected by if the RSI is <= 30 and >= 70.
Finally we check the MFI and MFI MA levels and like RSI we apply multiplications based on its MFI levels and if it is greater than or less than the MA. It is also affected by if the MFI is <= 30 and >= 70.
Please note the way we calculate this may change in the future, this is just currently what we deemed works best for forecasting the future bars. Also note this script uses MA calculations out of scope for efficiency but there is potential for inconsistencies.
Innately it’s main use is the projection it provides. It only draws the bars for realtime bars and not historical ones, so the best way to backtest it is with TradingView’s Replay Tool.
Well, enough of the logic behind it, let's get to understanding how to use it:
Tutorial:
So unfortunately we aren’t able to plot legit bars/candles into the future so we’ve had to do a bit of a work around using lines and fills. As you can see here we have 4 Lines and 3 Zones:
Lines:
Green: Represents the High
Orange: Represents the Open
Teal: Represents the Close
Red: Represents the Low
Zones:
High Zone: This zone is from either Open or Close to the High and is ALWAYS filled with Green.
Open/Close Zone: This zone is from the Open to the Close and is filled with either Green or Red based on if it's greater than the previous bar (real or forecasted).
Low Zone: This zone is from either Open or Close to the Low and is ALWAYS filled with Red.
As you can see generally the Forecasted bars are generally within strong pivot locations and are a good estimation of what will likely go on. Please note, the WHOLE structure of the prediction can change based on the current bars movements and the way it affects the calculations.
Let's look 1 bar back from the current bar just so we can see what it used to Forecast:
As you can see it has changed quite a bit from the previous bar, but if you look close, we drew horizontal lines around where its projecting the next bar to be (our current realtime bar), if we go back to the live chart:
Its projections were pretty close for the high and low. Generally, right now at least, it does a much better job at predicting the high and low than it does the open and close, however we will do our best to fine tune that in future updates.
Remember, this indicator is not meant to base your trades on, but rather give you a Forecast towards the general direction of the next few bars. Somewhat like weather, the farther the bar (or day for weather), the harder it is to predict. For this reason we recommend you focusing on the first few bars as they are more accurate, but review the further ones as they may help show the trend and the way that pair will move.
We will conclude this tutorial here, hopefully this Predictive Indicator can be of some help and use to you. If you have any questions, comments, ideas or concerns please let us know.
Settings:
Forecast Length: How many bars should we predict into the Future? Max 13
Each Bar Length Multiplier: For each new Forecast bar, how many more bars are averaged? Min 2
VWMA Averaged Length: All Forecast bars are put into a VWMA, what length should we use?
EMA Averaged Length: All Forecast bars are put into a EMA, what length should we use?
Filtered Length: What length should we use for Filtered Volume and RSI?
EMA Strength Length: What length should we use for the EMA Strength
HAPPY TRADING!
EMA Market Structure [BOSWaves]// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// Join our channel for more free tools: t.me
// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © BOSWaves
//@version=6
indicator("EMA Market Structure ", overlay=true, max_lines_count=500, max_labels_count=500, max_boxes_count=500)
// ============================================================================
// Inputs
// ============================================================================
// Ema settings
emaLength = input.int(50, "EMA Length", minval=1, tooltip="Period for the Exponential Moving Average calculation")
emaSource = input.source(close, "EMA Source", tooltip="Price source for EMA calculation (close, open, high, low, etc.)")
colorSmooth = input.int(3, "Color Smoothing", minval=1, group="EMA Style", tooltip="Smoothing period for the EMA color gradient transition")
showEmaGlow = input.bool(true, "EMA Glow Effect", group="EMA Style", tooltip="Display glowing halo effect around the EMA line for enhanced visibility")
// Structure settings
swingLength = input.int(5, "Swing Detection Length", minval=2, group="Structure", tooltip="Number of bars to the left and right to identify swing highs and lows")
swingCooloff = input.int(10, "Swing Marker Cooloff (Bars)", minval=1, group="Structure", tooltip="Minimum number of bars between consecutive swing point markers to reduce visual clutter")
showSwingLines = input.bool(true, "Show Structure Lines", group="Structure", tooltip="Display lines connecting swing highs and swing lows")
showSwingZones = input.bool(true, "Show Structure Zones", group="Structure", tooltip="Display shaded zones between consecutive swing points")
showBOS = input.bool(true, "Show Break of Structure", group="Structure", tooltip="Display BOS labels and stop loss levels when price breaks structure")
bosCooloff = input.int(15, "BOS Cooloff (Bars)", minval=5, maxval=50, group="Structure", tooltip="Minimum number of bars required between consecutive BOS signals to avoid signal spam")
slExtension = input.int(20, "SL Line Extension (Bars)", minval=5, maxval=100, group="Structure", tooltip="Number of bars to extend the stop loss line into the future for visibility")
slBuffer = input.float(0.1, "SL Buffer %", minval=0, maxval=2, step=0.05, group="Structure", tooltip="Additional buffer percentage to add to stop loss level for safety margin")
// Background settings
showBG = input.bool(true, "Show Trend Background", group="EMA Style", tooltip="Display background color based on EMA trend direction")
bgBullColor = input.color(color.new(#00ff88, 96), "Bullish BG", group="EMA Style", tooltip="Background color when EMA is in bullish trend")
bgBearColor = input.color(color.new(#ff3366, 96), "Bearish BG", group="EMA Style", tooltip="Background color when EMA is in bearish trend")
// ============================================================================
// Ema trend filter with gradient color
// ============================================================================
ema = ta.ema(emaSource, emaLength)
// Calculate EMA acceleration for gradient color
emaChange = ema - ema
emaAccel = ta.ema(emaChange, colorSmooth)
// Manual tanh function for normalization
tanh(x) =>
ex = math.exp(2 * x)
(ex - 1) / (ex + 1)
accelNorm = tanh(emaAccel / (ta.atr(14) * 0.01))
// Map normalized accel to hue (60 = green, 120 = yellow/red)
hueRaw = 60 + accelNorm * 60
hue = na(hueRaw ) ? hueRaw : (hueRaw + hueRaw ) / 2
sat = 1.0
val = 1.0
// HSV to RGB conversion
hsv_to_rgb(h, s, v) =>
c = v * s
x = c * (1 - math.abs((h / 60) % 2 - 1))
m = v - c
r = 0.0
g = 0.0
b = 0.0
if (h < 60)
r := c
g := x
b := 0
else if (h < 120)
r := x
g := c
b := 0
else if (h < 180)
r := 0
g := c
b := x
else if (h < 240)
r := 0
g := x
b := c
else if (h < 300)
r := x
g := 0
b := c
else
r := c
g := 0
b := x
color.rgb(int((r + m) * 255), int((g + m) * 255), int((b + m) * 255))
emaColor = hsv_to_rgb(hue, sat, val)
emaTrend = ema > ema ? 1 : ema < ema ? -1 : 0
// EMA with enhanced glow effect using fills
glowOffset = ta.atr(14) * 0.25
emaGlow8 = plot(showEmaGlow ? ema + glowOffset * 8 : na, "EMA Glow 8", color.new(emaColor, 100), 1, display=display.none)
emaGlow7 = plot(showEmaGlow ? ema + glowOffset * 7 : na, "EMA Glow 7", color.new(emaColor, 100), 1, display=display.none)
emaGlow6 = plot(showEmaGlow ? ema + glowOffset * 6 : na, "EMA Glow 6", color.new(emaColor, 100), 1, display=display.none)
emaGlow5 = plot(showEmaGlow ? ema + glowOffset * 5 : na, "EMA Glow 5", color.new(emaColor, 100), 1, display=display.none)
emaGlow4 = plot(showEmaGlow ? ema + glowOffset * 4 : na, "EMA Glow 4", color.new(emaColor, 100), 1, display=display.none)
emaGlow3 = plot(showEmaGlow ? ema + glowOffset * 3 : na, "EMA Glow 3", color.new(emaColor, 100), 1, display=display.none)
emaGlow2 = plot(showEmaGlow ? ema + glowOffset * 2 : na, "EMA Glow 2", color.new(emaColor, 100), 1, display=display.none)
emaGlow1 = plot(showEmaGlow ? ema + glowOffset * 1 : na, "EMA Glow 1", color.new(emaColor, 100), 1, display=display.none)
emaCore = plot(ema, "EMA Core", emaColor, 3)
emaGlow1b = plot(showEmaGlow ? ema - glowOffset * 1 : na, "EMA Glow 1b", color.new(emaColor, 100), 1, display=display.none)
emaGlow2b = plot(showEmaGlow ? ema - glowOffset * 2 : na, "EMA Glow 2b", color.new(emaColor, 100), 1, display=display.none)
emaGlow3b = plot(showEmaGlow ? ema - glowOffset * 3 : na, "EMA Glow 3b", color.new(emaColor, 100), 1, display=display.none)
emaGlow4b = plot(showEmaGlow ? ema - glowOffset * 4 : na, "EMA Glow 4b", color.new(emaColor, 100), 1, display=display.none)
emaGlow5b = plot(showEmaGlow ? ema - glowOffset * 5 : na, "EMA Glow 5b", color.new(emaColor, 100), 1, display=display.none)
emaGlow6b = plot(showEmaGlow ? ema - glowOffset * 6 : na, "EMA Glow 6b", color.new(emaColor, 100), 1, display=display.none)
emaGlow7b = plot(showEmaGlow ? ema - glowOffset * 7 : na, "EMA Glow 7b", color.new(emaColor, 100), 1, display=display.none)
emaGlow8b = plot(showEmaGlow ? ema - glowOffset * 8 : na, "EMA Glow 8b", color.new(emaColor, 100), 1, display=display.none)
// Create glow layers with fills (from outermost to innermost)
fill(emaGlow8, emaGlow7, showEmaGlow ? color.new(emaColor, 97) : na)
fill(emaGlow7, emaGlow6, showEmaGlow ? color.new(emaColor, 95) : na)
fill(emaGlow6, emaGlow5, showEmaGlow ? color.new(emaColor, 93) : na)
fill(emaGlow5, emaGlow4, showEmaGlow ? color.new(emaColor, 90) : na)
fill(emaGlow4, emaGlow3, showEmaGlow ? color.new(emaColor, 87) : na)
fill(emaGlow3, emaGlow2, showEmaGlow ? color.new(emaColor, 83) : na)
fill(emaGlow2, emaGlow1, showEmaGlow ? color.new(emaColor, 78) : na)
fill(emaGlow1, emaCore, showEmaGlow ? color.new(emaColor, 70) : na)
fill(emaCore, emaGlow1b, showEmaGlow ? color.new(emaColor, 70) : na)
fill(emaGlow1b, emaGlow2b, showEmaGlow ? color.new(emaColor, 78) : na)
fill(emaGlow2b, emaGlow3b, showEmaGlow ? color.new(emaColor, 83) : na)
fill(emaGlow3b, emaGlow4b, showEmaGlow ? color.new(emaColor, 87) : na)
fill(emaGlow4b, emaGlow5b, showEmaGlow ? color.new(emaColor, 90) : na)
fill(emaGlow5b, emaGlow6b, showEmaGlow ? color.new(emaColor, 93) : na)
fill(emaGlow6b, emaGlow7b, showEmaGlow ? color.new(emaColor, 95) : na)
fill(emaGlow7b, emaGlow8b, showEmaGlow ? color.new(emaColor, 97) : na)
// ============================================================================
// Swing high/low detection
// ============================================================================
// Swing High/Low Detection
swingHigh = ta.pivothigh(high, swingLength, swingLength)
swingLow = ta.pivotlow(low, swingLength, swingLength)
// Cooloff tracking
var int lastSwingHighPlot = na
var int lastSwingLowPlot = na
// Check if cooloff period has passed
canPlotHigh = na(lastSwingHighPlot) or (bar_index - lastSwingHighPlot) >= swingCooloff
canPlotLow = na(lastSwingLowPlot) or (bar_index - lastSwingLowPlot) >= swingCooloff
// Store swing points
var float lastSwingHigh = na
var int lastSwingHighBar = na
var float lastSwingLow = na
var int lastSwingLowBar = na
// Track previous swing for BOS detection
var float prevSwingHigh = na
var float prevSwingLow = na
// Update swing highs with cooloff
if not na(swingHigh) and canPlotHigh
prevSwingHigh := lastSwingHigh
lastSwingHigh := swingHigh
lastSwingHighBar := bar_index - swingLength
lastSwingHighPlot := bar_index
// Update swing lows with cooloff
if not na(swingLow) and canPlotLow
prevSwingLow := lastSwingLow
lastSwingLow := swingLow
lastSwingLowBar := bar_index - swingLength
lastSwingLowPlot := bar_index
// ============================================================================
// Structure lines & zones
// ============================================================================
var line swingHighLine = na
var line swingLowLine = na
var box swingHighZone = na
var box swingLowZone = na
if showSwingLines
// Draw line connecting swing highs with zones
if not na(swingHigh) and canPlotHigh and not na(prevSwingHigh)
if not na(lastSwingHighBar)
line.delete(swingHighLine)
swingHighLine := line.new(lastSwingHighBar, lastSwingHigh, bar_index - swingLength, swingHigh, color=color.new(#ff3366, 0), width=2, style=line.style_solid)
// Create resistance zone
if showSwingZones
box.delete(swingHighZone)
zoneTop = math.max(lastSwingHigh, swingHigh)
zoneBottom = math.min(lastSwingHigh, swingHigh)
swingHighZone := box.new(lastSwingHighBar, zoneTop, bar_index - swingLength, zoneBottom, border_color=color.new(#ff3366, 80), bgcolor=color.new(#ff3366, 92))
// Draw line connecting swing lows with zones
if not na(swingLow) and canPlotLow and not na(prevSwingLow)
if not na(lastSwingLowBar)
line.delete(swingLowLine)
swingLowLine := line.new(lastSwingLowBar, lastSwingLow, bar_index - swingLength, swingLow, color=color.new(#00ff88, 0), width=2, style=line.style_solid)
// Create support zone
if showSwingZones
box.delete(swingLowZone)
zoneTop = math.max(lastSwingLow, swingLow)
zoneBottom = math.min(lastSwingLow, swingLow)
swingLowZone := box.new(lastSwingLowBar, zoneTop, bar_index - swingLength, zoneBottom, border_color=color.new(#00ff88, 80), bgcolor=color.new(#00ff88, 92))
// ============================================================================
// Break of structure (bos)
// ============================================================================
// Track last BOS bar for cooloff
var int lastBullishBOS = na
var int lastBearishBOS = na
// Check if cooloff period has passed
canPlotBullishBOS = na(lastBullishBOS) or (bar_index - lastBullishBOS) >= bosCooloff
canPlotBearishBOS = na(lastBearishBOS) or (bar_index - lastBearishBOS) >= bosCooloff
// Bullish BOS: Price breaks above previous swing high while EMA is bullish
bullishBOS = showBOS and canPlotBullishBOS and emaTrend == 1 and not na(prevSwingHigh) and close > prevSwingHigh and close <= prevSwingHigh
// Bearish BOS: Price breaks below previous swing low while EMA is bearish
bearishBOS = showBOS and canPlotBearishBOS and emaTrend == -1 and not na(prevSwingLow) and close < prevSwingLow and close >= prevSwingLow
// Update last BOS bars
if bullishBOS
lastBullishBOS := bar_index
if bearishBOS
lastBearishBOS := bar_index
// Plot BOS with enhanced visuals and SL at the candle wick
if bullishBOS
// Calculate SL at the low of the current candle (bottom of wick) with buffer
slLevel = low * (1 - slBuffer/100)
// BOS Label with shadow effect
label.new(bar_index, low, "BOS", style=label.style_label_up, color=color.new(#00ff88, 0), textcolor=color.black, size=size.normal, tooltip="Bullish Break of Structure\nSL: " + str.tostring(slLevel))
// Main SL line at candle low
line.new(bar_index, slLevel, bar_index + slExtension, slLevel, color=color.new(#00ff88, 0), width=2, style=line.style_dashed, extend=extend.none)
// SL zone box for visual emphasis
box.new(bar_index, slLevel + (slLevel * 0.002), bar_index + slExtension, slLevel - (slLevel * 0.002), border_color=color.new(#00ff88, 60), bgcolor=color.new(#00ff88, 85))
// S/R label
label.new(bar_index + slExtension, slLevel, "S/R", style=label.style_label_left, color=color.new(#00ff88, 0), textcolor=color.black, size=size.tiny)
if bearishBOS
// Calculate SL at the high of the current candle (top of wick) with buffer
slLevel = high * (1 + slBuffer/100)
// BOS Label with shadow effect
label.new(bar_index, high, "BOS", style=label.style_label_down, color=color.new(#ff3366, 0), textcolor=color.white, size=size.normal, tooltip="Bearish Break of Structure\nSL: " + str.tostring(slLevel))
// Main SL line at candle high
line.new(bar_index, slLevel, bar_index + slExtension, slLevel, color=color.new(#ff3366, 0), width=2, style=line.style_dashed, extend=extend.none)
// SL zone box for visual emphasis
box.new(bar_index, slLevel + (slLevel * 0.002), bar_index + slExtension, slLevel - (slLevel * 0.002), border_color=color.new(#ff3366, 60), bgcolor=color.new(#ff3366, 85))
// S/R label
label.new(bar_index + slExtension, slLevel, "S/R", style=label.style_label_left, color=color.new(#ff3366, 0), textcolor=color.white, size=size.tiny)
// ============================================================================
// Dynamic background zones
// ============================================================================
bgcolor(showBG and emaTrend == 1 ? bgBullColor : showBG and emaTrend == -1 ? bgBearColor : na)
// ============================================================================
// Alerts
// ============================================================================
alertcondition(bullishBOS, "Bullish BOS", "Bullish Break of Structure detected!")
alertcondition(bearishBOS, "Bearish BOS", "Bearish Break of Structure detected!")
alertcondition(emaTrend == 1 and emaTrend != 1, "EMA Bullish", "EMA turned bullish")
alertcondition(emaTrend == -1 and emaTrend != -1, "EMA Bearish", "EMA turned bearish")
// ╔════════════════════════════════╗
// ║ Download at ║
// ╚════════════════════════════════╝
// ███████╗██╗███╗ ███╗██████╗ ██╗ ███████╗
// ██╔════╝██║████╗ ████║██╔══██╗██║ ██╔════╝
// ███████╗██║██╔████╔██║██████╔╝██║ █████╗
// ╚════██║██║██║╚██╔╝██║██╔═══╝ ██║ ██╔══╝
// ███████║██║██║ ╚═╝ ██║██║ ███████╗███████╗
// ╚══════╝╚═╝╚═╝ ╚═╝╚═╝ ╚══════╝╚══════╝
// ███████╗ ██████╗ ██████╗ ███████╗██╗ ██╗
// ██╔════╝██╔═══██╗██╔══██╗██╔════╝╚██╗██╔╝
// █████╗ ██║ ██║██████╔╝█████╗ ╚███╔╝
// ██╔══╝ ██║ ██║██╔══██╗██╔══╝ ██╔██╗
// ██║ ╚██████╔╝██║ ██║███████╗██╔╝ ██╗
// ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝
// ████████╗ ██████╗ ██████╗ ██╗ ███████╗
// ╚══██╔══╝██╔═══██╗██╔═══██╗██║ ██╔════╝
// ██║ ██║ ██║██║ ██║██║ ███████╗
// ██║ ██║ ██║██║ ██║██║ ╚════██║
// ██║ ╚██████╔╝╚██████╔╝███████╗███████║
// ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝╚══════╝
// ==========================================================================================






















