Opening Range and Market BoundariesOpening Range and Market Boundaries
This versatile and insightful indicator combines two powerful concepts frequently used by professional traders: Opening Range Analysis and Market Boundaries derived from previous high/low levels. It is specifically designed to support intraday trading strategies and helps you identify key price zones for entries, exits, and breakout confirmations.
🔍 Features & Utility
1. Opening Range Box
What it does:
Highlights the high and low of the first candle after market open (9:15 AM IST) with a shaded box. This box spans the full trading session, from 9:15 AM to 3:30 PM, representing the key price range where the initial balance is formed.
Timeframe Compatibility:
The Opening Range box is optimized for 1-minute to 1-hour charts. It is most effective on lower timeframes (1m, 5m, 15m, 30m) where intraday price movements and breakout patterns can be clearly observed.
Usage Tips:
Breakouts above or below the Opening Range box can signal potential directional bias for the rest of the trading day.
Price consolidating within the range may indicate a choppy or range-bound session.
Works well with volume and momentum indicators for confirmation.
2. Market Boundaries
What it does:
Plots horizontal lines at:
Previous Day High/Low
Previous Week High/Low
Previous Month High/Low
Why it matters:
These levels act as natural support and resistance zones, and are commonly watched by institutional traders, making them crucial for:
Spotting reversals or breakouts
Planning stop-loss and target zones
Avoiding trades around high-rejection areas
Customization Options:
Toggle ON/OFF for Daily, Weekly, and Monthly levels.
Independent colors and line thickness for each level, enabling you to distinguish between different timeframes easily.
🛠️ How to Use Effectively
Use during market open:
Switch to a 5-minute or 15-minute chart during the first few candles of the session. Observe the Opening Range box formation and plan trades based on breakout direction.
Confluence Trading:
Look for price action near previous session highs/lows in confluence with the Opening Range box edges. These intersections often become high-probability zones for breakouts or reversals.
Session Preparation:
Before the market opens, analyze where the price is relative to past high/low boundaries. If it's near a weekly/monthly level, be cautious — those areas can cause whipsaws or false breakouts.
Avoid low-volume breakouts:
Use this indicator in conjunction with volume tools or price action confirmation to validate the strength of a move outside the Opening Range or Market Boundaries.
📌 Summary
This indicator is designed for intraday traders, scalpers, and swing traders who want a reliable structure to guide their decisions. It visually marks the opening balance of the market and essential higher timeframe boundaries, helping you trade with discipline and precision.
Cerca negli script per "high low"
[TTM] ICT Sessions & Ranges🌟 Overview 🌟
The ICT Sessions & Ranges Indicator helps traders identify key intraday price levels by marking custom session highs/lows and opening ranges.
It helps traders spot potential liquidity grabs, reversals, and breakout zones by tracking price behavior around these key areas
🌟 Session Highs & Lows – Liquidity Zones 🌟
Session highs and lows often attract price due to stop orders resting above or below them. These levels are frequently targeted during high-volatility moves.
🔹 Asia Session
- Usually ranges in low volatility.
- Highs/lows often get swept during early London.
- Price may raid these levels, then reverse.
🔹 London Session
- First major volatility of the day.
- Highs/lows often tested or swept in New York.
- Commonly forms the day’s true high or low.
🌟 Opening Range Concepts 🌟
The Opening Range is the first 15, 30, or 60 minutes of a session (e.g., New York).
The high (ORH) and low (ORL) define the market’s initial balance and key reaction levels.
🔹 Breakout Trade
- Price breaks ORH/ORL with momentum.
- Signals directional intent.
- Traders enter on the breakout, with stops inside the range.
🔹 Liquidity Raid
- Price briefly breaks ORH/ORL to trigger stops.
- Reverses after the sweep.
- Look for structure shift and entry near FVG or OB.
🌟 Customizable Settings 🌟
The indicator includes 3 configurable ranges , each with:
Start & End Time – Set any custom time window.
Display Type – Choose Box (highlight range) or Lines (mark high/low).
Color Settings – Set custom colors for boxes and lines.
🌟 Default Settings 🌟
Range 1 : 19:00–00:00 (Asia Session)
Range 2 : 01:45–05:15 (London Session)
Range 3 : 09:30–10:00 (NY Opening Range – 30m)
SMT SwiftEdge PowerhouseSMT SwiftEdge Powerhouse: Precision Trading with Divergence, Liquidity Grabs, and OTE Zones
The SMT SwiftEdge Powerhouse is a powerful trading tool designed to help traders identify high-probability entry points during the most active market sessions—London and New York. By combining Smart Money Technique (SMT) Divergence, Liquidity Grabs, and Optimal Trade Entry (OTE) Zones, this script provides a unique and cohesive strategy for capturing market reversals with precision. Whether you're a scalper or a swing trader, this indicator offers clear visual signals to enhance your trading decisions on any timeframe.
What Does This Script Do?
This script integrates three key concepts to identify potential trading opportunities:
SMT Divergence:
SMT Divergence compares the price action of two correlated assets (e.g., Nasdaq and S&P 500 futures) to detect hidden market reversals. When one asset makes a higher high while the other makes a lower high (bearish divergence), or one makes a lower low while the other makes a higher low (bullish divergence), it signals a potential reversal. This technique leverages institutional "smart money" behavior to anticipate market shifts.
Liquidity Grabs:
Liquidity Grabs occur when price breaks above recent highs or below recent lows on higher timeframes (5m and 15m), often triggering stop-loss orders from retail traders. These breakouts are identified using pivot points and confirm institutional activity, setting the stage for a reversal. The script focuses on liquidity grabs during the London and New York sessions for maximum market activity.
Optimal Trade Entry (OTE) Zones:
OTE Zones are Fibonacci-based retracement areas (e.g., 61.8%) calculated after a liquidity grab. These zones highlight where price is likely to retrace before continuing in the direction of the reversal, offering a high-probability entry point. The script adjusts the width of these zones using the Average True Range (ATR) to adapt to market volatility.
By combining these components, the script identifies when institutional activity (liquidity grabs) aligns with market reversals (SMT divergence) and pinpoints precise entry points (OTE zones) during high-liquidity sessions.
Why Combine These Components?
The integration of SMT Divergence, Liquidity Grabs, and OTE Zones creates a robust trading system for several reasons:
Synergy of Institutional Signals: SMT Divergence and Liquidity Grabs both reflect "smart money" behavior—divergence shows hidden reversals, while liquidity grabs confirm institutional intent to trap retail traders. Together, they provide a strong foundation for identifying high-probability setups.
Session-Based Precision: Focusing on the London and New York sessions ensures signals occur during periods of high volatility and liquidity, increasing their reliability.
Precision Entries with OTE: After confirming a setup with divergence and liquidity grabs, OTE zones provide a clear entry area, reducing guesswork and improving trade accuracy.
Adaptability: The script works on any timeframe, with adjustable settings for signal sensitivity, session times, and Fibonacci levels, making it versatile for different trading styles.
This combination makes the script unique by aligning institutional insights with actionable entry points, tailored to the most active market hours.
How to Use the Script
Setup:
Add the script to your chart (works on any timeframe, e.g., 1m, 5m, 15m).
Configure the settings in the indicator's inputs:
Session Settings: Adjust the start/end times for London and New York sessions (default: London 8-11 UTC, New York 13-16 UTC). You can disable session restrictions if desired.
Asset Settings: Set the primary and secondary assets for SMT Divergence (default: NQ1! and ES1!). Ensure the assets are correlated.
Signal Settings: Adjust the lookback period, ATR period, and signal sensitivity (Low/Medium/High) to control the frequency of signals.
OTE Settings: Choose the Fibonacci level for OTE zones (default: 61.8%).
Visual Settings: Enable/disable OTE zones, SMT labels, and debug labels for troubleshooting.
Interpreting Signals:
Blue Circles: Indicate a liquidity grab (price breaking a 5m or 15m pivot high/low), marking the start of a potential setup.
Blue OTE Zones: Appear after a liquidity grab, showing the retracement area (e.g., 61.8% Fibonacci level) where price is likely to enter for a reversal trade. The label "OTE Trigger 5m/15m" confirms the direction (Short/Long) and session.
Green/Red Entry Boxes: Mark precise entry points when price enters the OTE zone and confirms the SMT Divergence. Green boxes indicate a long entry, red boxes a short entry.
Trading Example:
On a 1m chart, a blue circle appears when price breaks a 5m pivot high during the London session.
A blue OTE zone forms, showing a retracement area (e.g., 61.8% Fibonacci level) with the label "OTE Trigger 5m/15m (Short, London)".
Price retraces into the OTE zone, and a red "Short Entry" box appears, confirming a bearish SMT Divergence.
Enter a short trade at the red box, with a stop-loss above the OTE zone and a take-profit at the next support level.
Originality and Utility
The SMT SwiftEdge Powerhouse stands out by merging SMT Divergence, Liquidity Grabs, and OTE Zones into a single, session-focused indicator. Unlike traditional indicators that focus on one aspect of price action, this script combines institutional reversal signals with precise entry zones, tailored to the most active market hours. Its adaptability across timeframes, customizable settings, and clear visual cues make it a versatile tool for traders seeking to capitalize on smart money movements with confidence.
Tips for Best Results
Use on correlated assets like NQ1! (Nasdaq futures) and ES1! (S&P 500 futures) for accurate SMT Divergence.
Test on lower timeframes (1m, 5m) for scalping or higher timeframes (15m, 1H) for swing trading.
Adjust the "Signal Sensitivity" to "High" for more signals or "Low" for fewer, high-quality setups.
Enable "Show Debug Labels" if signals are not appearing as expected, to troubleshoot pivot points and liquidity grabs.
Daily LevelsOverview:
The Daily Levels indicator plots key price levels from the previous trading day, including the high, low, median (pivot), and projected extensions. These levels help traders identify potential support/resistance zones and anticipate breakout or reversal opportunities.
Key Features:
✅ Previous Day High & Low – Visualizes the prior day’s high and low as dynamic support/resistance levels.
✅ Median (Pivot) Line – Calculates the midpoint between the previous day’s high and low, acting as a key intraday reference.
✅ Projected Levels – Extends the high/low range symmetrically above and below the median, highlighting potential breakout zones.
✅ Customizable Display – Toggle visibility, adjust colors, and modify line styles (solid, dotted, dashed).
✅ Price Labels – Clear on-chart labels showing exact price values for quick reference.
✅ Built-in Alerts – Get notified when price crosses any of the key levels.
How to Use:
Trend Identification: If price holds above the median, the bias is bullish; below suggests bearish momentum.
Breakout Trading: Watch for moves beyond the projected levels for potential continuation.
Mean Reversion: Fade moves toward the previous day’s high/low if the median holds as support/resistance.
Ideal For:
Day Traders – Intraday support/resistance levels.
Swing Traders – Context for multi-day trends.
Breakout/Reversal Strategies – Clear levels for trade triggers.
Settings Recommendations:
High/Low Lines: Use semi-transparent colors (e.g., green/red) for clarity.
Projections: Helpful for anticipating extended moves (e.g., teal for upper, orange for lower).
Alerts: Enable notifications for key crosses (e.g., median or high/low breaks).
SMC+The "SMC+" indicator is a comprehensive tool designed to overlay key Smart Money Concepts (SMC) levels, support/resistance zones, order blocks (OB), fair value gaps (FVG), and trap detection on your TradingView chart. It aims to assist traders in identifying potential areas of interest based on price action, swing structures, and volume dynamics across multiple timeframes. This indicator is fully customizable, allowing users to adjust lookback periods, colors, opacity, and sensitivity to suit their trading style.
Key Components and Functionality
1. Key Levels (Support and Resistance)
This section plots horizontal lines representing support and resistance levels based on highs and lows over three distinct lookback periods, plus daily nearest levels.
Short-Term Lookback Period (Default: 20 bars)
Plots the highest high (short_high) and lowest low (short_low) over the specified period.
Visualized as dotted lines with customizable colors (Short-Term Resistance Color, Short-Term Support Color) and opacity (Short-Term Resistance Opacity, Short-Term Support Opacity).
Adjustment Tip: Increase the lookback (e.g., to 30-50) for less frequent but stronger levels on higher timeframes, or decrease (e.g., to 10-15) for scalping on lower timeframes.
Long-Term Lookback Period (Default: 50 bars)
Plots broader support (long_low) and resistance (long_high) levels using a solid line style.
Customizable via Long-Term Resistance Color, Long-Term Support Color, and their respective opacity settings.
Adjustment Tip: Extend to 100-200 bars for swing trading or major trend analysis on daily/weekly charts.
Extra-Long Lookback Period (Default: 100 bars)
Identifies significant historical highs (extra_long_high) and lows (extra_long_low) with dashed lines.
Configurable with Extra-Long Resistance Color, Extra-Long Support Color, and opacity settings.
Adjustment Tip: Use 200-500 bars for monthly charts to capture macro-level key zones.
Daily Nearest Resistance and Support Levels
Dynamically calculates the nearest resistance (daily_res_level) and support (daily_sup_level) based on the current day’s price action relative to historical highs and lows.
Displayed with Daily Resistance Color and Daily Support Color (with opacity options).
Adjustment Tip: Works best on intraday charts (e.g., 15m, 1h) to track daily pivots; combine with volume profile for confirmation.
How It Works: These levels update dynamically as new highs/lows form, providing a visual guide to potential reversal or breakout zones.
2. SMC Inputs (Smart Money Concepts)
This section identifies swing structures, order blocks, fair value gaps, and entry signals based on SMC principles.
SMC Swing Lookback Period (Default: 12 bars)
Defines the period for detecting swing highs (smc_swing_high) and lows (smc_swing_low).
Adjustment Tip: Increase to 20-30 for smoother swings on higher timeframes; reduce to 5-10 for faster signals on lower timeframes.
Minimum Swing Size (%) (Default: 0.5%)
Filters out minor price movements to focus on significant swings.
Adjustment Tip: Raise to 1-2% for volatile markets (e.g., crypto) to avoid noise; lower to 0.2-0.3% for forex pairs with tight ranges.
Order Block Sensitivity (Default: 1.0)
Scales the size of detected order blocks (OBs) for bullish reversal (smc_ob_bull), bearish reversal (smc_ob_bear), and continuation (smc_cont_ob).
Visuals include customizable colors, opacity, border thickness, and blinking effects (e.g., SMC Bullish Reversal OB Color, SMC Bearish Reversal OB Blink Thickness).
Adjustment Tip: Increase to 1.5-2.0 for wider OBs in choppy markets; keep at 1.0 for precision in trending conditions.
Minimum FVG Size (%) (Default: 0.3%)
Sets the minimum gap size for Fair Value Gaps (fvg_high, fvg_low), displayed as boxes with Fair Value Gap Color and FVG Opacity.
Adjustment Tip: Increase to 0.5-1% for larger, more reliable gaps; decrease to 0.1-0.2% for scalping smaller inefficiencies.
How It Works:
Bullish Reversal OB: Detects a bearish candle followed by a bullish break, marking a potential demand zone.
Bearish Reversal OB: Identifies a bullish candle followed by a bearish break, marking a supply zone.
Continuation OB: Spots strong bullish momentum after a prior high, indicating a continuation zone.
FVG: Highlights bullish gaps where price may retrace to fill.
Entry Signals: Plots triangles (SMC Long Entry) when price retests an OB with a liquidity sweep or break of structure (BOS).
3. Trap Inputs
This section detects potential bull and bear traps based on price action, volume, and key level rejections.
Min Down Move for Bear Trap (%) (Default: 1.0%)
Sets the minimum drop required after a bearish OB to qualify as a trap.
Visualized with Bear Trap Color, Bear Trap Opacity, and blinking borders.
Adjustment Tip: Increase to 2-3% for stronger traps in trending markets; lower to 0.5% for ranging conditions.
Min Up Move for Bull Trap (%) (Default: 1.0%)
Sets the minimum rise required after a bullish OB to flag a trap.
Customizable with Bull Trap Color, Bull Trap Border Thickness, etc.
Adjustment Tip: Adjust similarly to bear traps based on market volatility.
Volume Lookback for Traps (Default: 5 bars)
Compares current volume to a moving average (avg_volume) to filter low-volume traps.
Adjustment Tip: Increase to 10-20 for confirmation on higher timeframes; reduce to 3 for intraday sensitivity.
How It Works:
Bear Trap: Triggers when price drops significantly after a bearish OB but reverses up with low volume or support rejection.
Bull Trap: Activates when price rises after a bullish OB but fails with low volume or resistance rejection.
Boxes highlight trap zones, resetting when price breaks out.
4. Visual Customization
Line Width (Default: 2)
Adjusts thickness of support/resistance lines.
Tip: Increase to 3-4 for visibility on cluttered charts.
Blink On (Default: Close)
Sets whether OB/FVG borders blink based on Open or Close price interaction.
Tip: Use "Open" for intraday precision; "Close" for confirmed reactions.
Colors and Opacity: Each element (OBs, FVGs, traps, key levels) has customizable colors, opacity (0-100), border thickness (1-5 or 1-7), and blink effects for dynamic visualization.
How to Use SMC+
Setup: Apply the indicator to any chart and adjust inputs based on your timeframe and market.
Key Levels: Watch for price reactions at short, long, extra-long, or daily levels for potential reversals or breakouts.
SMC Signals: Look for entry signals (triangles) near OBs or FVGs, confirmed by liquidity sweeps or BOS.
Traps: Avoid false breakouts by monitoring trap boxes, especially near key levels with low volume.
Notes:
This indicator is a visual aid and does not guarantee trading success. Combine it with other analysis tools and risk management strategies.
Performance may vary across markets and timeframes; test settings thoroughly before use.
For optimal results, experiment with lookback periods and sensitivity settings to match your trading style.
The default settings are optimal for 1 minute and 10 second time frames for small cap low float stocks.
Continuation OB are Blue.
Bullish Reversal OB color is Green
Bearish Reversal OB color is Red
FVG color is purple
Bear Trap OB is red with a green border and often appears with a Bearish Reversal OB signaling caution to a short position.
Bull trap OB is green with a Red border signaling caution to a long position.
All active OB area are highlighted and solid in color while other non active OB area are dimmed.
My personal favorite setups are when we have an active bullish reversal with an active FVG along with an active Continuation OB.
Another personal favorite is the Bearish reversal OB signaling an end to a recent uptrend.
The Trap OB detection are also a unique and Original helpful source of information.
The OB have a white boarder by default that are colored black giving a simulated blinking effect when price is acting in that zone.
The Trap OB border are colored with respect to direction of intended trap, all of which can be customized to personal style.
All vaild OB zones are shown compact in size ,a unique and original view until its no longer valid.
Chonky ATR Levels 2.0Show ATR based high/low projections.
Choose a custom ATR calculation in the indicator's settings.
The default is a 20day RMA based ATR.
----------How projections are calculated----------
To project the ATR High, the ATR value is added to the low of the current candle that matches the ATR's timeframe.
To project the ATR Low, the ATR value is subtracted from the high of the current candle that matches the ATR's timeframe.
Example:
If a 20day RMA ATR is used:
- the ATR High will be the current day's low + the ATR value.
- the ATR Low will be the current day's high - the ATR value.
*However*, if the price action exceeds either ATR projection, the opposite ATR level will be fixed to the extreme of the period.
See the AUDUSD screenshot above for an example.
The ATR Low was exceeded, so the ATR High projection is capped at the high of day.
If the ATR High is exceeded, the ATR Low would be capped at the low of day.
Liquidity Heatmap SwiftEdgeDescription
Liquidity Heatmap with Buy/Sell Side (Blue/Red) is a technical analysis tool designed to help traders identify potential liquidity zones in the market by combining swing high/low detection with volume analysis, visualized as a heatmap overlay on the chart. This script highlights areas where significant buying or selling pressure may exist, often acting as support or resistance levels, and provides a clear visual representation of these zones using color-coded heatmap boxes and labeled bubbles.
What It Does
The script identifies key price levels (swing highs and lows) where liquidity is likely to be concentrated, such as stop-loss clusters or pending orders. These levels are then grouped into a heatmap, with blue zones representing potential buy-side liquidity (below the current price) and red zones indicating sell-side liquidity (above the current price). Each zone is marked with a bubble showing the estimated liquidity amount, derived from volume data, to help traders gauge the strength of the level.
How It Works
The script combines three main components to create a comprehensive liquidity visualization:
Swing Highs and Lows Detection:
The script uses the ta.pivothigh and ta.pivotlow functions to identify swing highs and lows over a user-defined lookback period (Swing Length). These levels often represent areas where price has reversed, indicating potential liquidity zones where stop-losses or pending orders may be placed.
Volume Analysis:
Volume data at each swing high/low is captured and averaged over a specified period (Volume Average Length). This volume is then scaled using a multiplier (Volume Multiplier for Liquidity) to estimate the liquidity amount at each level, displayed in thousands (e.g., "10K") on the chart via labeled bubbles.
Heatmap Visualization:
The identified levels are grouped into price bins to form a heatmap. The price range is divided into a user-defined number of bins (Number of Heatmap Bins), and each bin is drawn as a colored box (blue for buy-side, red for sell-side). The transparency of the heatmap boxes can be adjusted (Heatmap Transparency) to ensure they do not obscure the price action.
Why Combine These Components?
The combination of swing highs/lows, volume analysis, and a heatmap provides a powerful way to visualize liquidity in the market. Swing highs and lows are natural points where liquidity tends to accumulate, as they often coincide with areas where traders place stop-losses or pending orders. By incorporating volume data, the script quantifies the potential strength of these levels, giving traders insight into the magnitude of liquidity present. The heatmap visualization then aggregates these levels into a clear, color-coded overlay, making it easy to see where buy-side and sell-side liquidity is concentrated without cluttering the chart.
This mashup is particularly useful because it bridges price action (swing levels), market activity (volume), and visual clarity (heatmap), offering a holistic view of potential support and resistance zones that might influence price movements.
How to Use It
Add the Indicator to Your Chart:
Apply the script to your chart by adding it from the Pine Script library. It will overlay directly on your price chart.
Interpret the Heatmap:
Blue Zones (Buy-Side Liquidity): These appear below the current price and indicate levels where buying pressure or stop-losses from short positions may be located.
Red Zones (Sell-Side Liquidity): These appear above the current price and indicate levels where selling pressure or stop-losses from long positions may be located.
The intensity of the color is controlled by the Heatmap Transparency setting—lower values make the zones more opaque, while higher values make them more transparent.
Analyze the Bubbles:
Each liquidity zone is marked with a bubble showing the estimated liquidity amount in thousands (e.g., "10K"). The size of the bubble is scaled by the Bubble Size Multiplier, with larger bubbles indicating higher liquidity.
Adjust Settings for Your Needs:
Liquidity Settings:
Swing Length: Controls the lookback period for detecting swing highs and lows. A smaller value (e.g., 10) is better for shorter timeframes like 1-minute charts, while a larger value (e.g., 50) suits higher timeframes.
Liquidity Threshold: Defines how close two levels must be to be considered the same, preventing duplicate zones.
Volume Average Length: Sets the period for averaging volume data at swing points.
Volume Multiplier for Liquidity: Scales the volume to estimate liquidity amounts shown in the bubbles.
Lookback Period (Hours): Limits how far back the script looks for liquidity zones.
Use Price Window Filter: If enabled, only shows zones within a price range defined by Liquidity Window (Points per Side).
Heatmap Settings:
Number of Heatmap Bins: Determines how many price bins the heatmap is divided into. More bins create a finer resolution but may clutter the chart.
Heatmap Bin Height (Points): Sets the vertical height of each heatmap box in price points.
Heatmap Transparency: Adjusts the transparency of the heatmap boxes (0 = fully opaque, 100 = fully transparent).
Display Settings:
Bubble Size Multiplier: Scales the size of the bubbles showing liquidity amounts.
Trading Application:
Use the heatmap to identify potential support (blue zones) and resistance (red zones) levels where price may react.
Pay attention to zones with larger bubbles, as they indicate higher liquidity and may have a stronger impact on price.
Combine with other analysis tools (e.g., trendlines, indicators) to confirm trade setups.
What Makes It Original?
This script stands out by integrating swing high/low detection with volume-based liquidity estimation and a heatmap visualization in a single tool. Unlike traditional support/resistance indicators that only plot static lines, this script dynamically aggregates liquidity zones into a heatmap, making it easier to see clusters of potential buying or selling pressure. The addition of volume-derived liquidity amounts in labeled bubbles provides a unique quantitative measure of each zone's strength, helping traders prioritize key levels. The color-coded buy/sell distinction further enhances its utility by visually separating zones based on their likely market impact.
Example Use Case
On a 1-minute chart of EUR/USD, you might set Swing Length to 10 to capture short-term pivots, Lookback Period (Hours) to 4 to focus on recent data, and Liquidity Window to 200 points (20 pips) to show only nearby zones. The heatmap will then display blue zones below the current price where buy-side liquidity may act as support, and red zones above where sell-side liquidity may act as resistance. A bubble showing "50K" at a blue zone indicates significant buy-side liquidity, suggesting a potential bounce if the price approaches that level.
ICT Order Blocks v2 (Debug)Josh has a very large PP xD
Understanding Order Blocks (OBs) - The ICT Perspective
This document delves into the concept of Order Blocks (OBs) from the perspective of the ICT methodology. It outlines what OBs are, their significance in trading, and how the "ICT Order Blocks v2 (Refined)" indicator functions to identify and visualize these critical price levels. By understanding OBs, traders can better navigate market movements and make informed decisions based on institutional trading behavior.
What is an Order Block (OB)?
Within ICT methodology, an Order Block represents a specific price candle where significant buying or selling interest from institutions (Smart Money) is believed to have occurred. They are potential areas where price might return and react.
Bullish Order Block: Typically the last down-closing candle before a strong, impulsive upward move (displacement). It suggests institutions may have absorbed selling pressure and initiated long positions here.
Bearish Order Block: Typically the last up-closing candle before a strong, impulsive downward move (displacement). It suggests institutions may have distributed long positions or initiated short positions here.
Why are OBs Significant (ICT View)?
Institutional Footprint: They mark potential zones of large order execution.
Support/Resistance: Unmitigated OBs can act as sensitive price levels where reactions are expected. Bullish OBs may provide support; Bearish OBs may provide resistance.
Origin of Moves: They often mark the origin point of significant price swings.
Liquidity Engineering: Institutions might drive price back to OBs to mitigate earlier positions or to engineer liquidity before continuing a move.
Common Refinements
ICT often emphasizes higher probability OBs that are associated with:
Displacement: The move away from the OB is sharp and decisive.
Fair Value Gaps (FVGs): An FVG forming immediately after the OB strengthens its validity.
OB Mitigation: This refers to price returning to the level of the Order Block after its formation. Price might react at the edge (proximal line) or the 50% level (mean threshold) of the OB. An OB is often considered fully mitigated or invalidated if price trades decisively through its entire range, especially with a candle body closing beyond it.
How the "ICT Order Blocks v2 (Refined)" Indicator Works
This indicator automates the detection and visualization of the most recent unmitigated Order Block of each type (Bullish/Bearish), incorporating optional filters.
Detection:
It looks at the relationship between the candle two bars ago ( ), the previous candle ( ), and potentially the current candle ( ).
Bullish OB: Identifies if candle was a down-close (close < open ) AND candle broke above the high of candle (high > high ).
Bearish OB: Identifies if candle was an up-close (close > open ) AND candle broke below the low of candle (low < low ).
Accuracy Filters (Optional Inputs):
These filters help identify potentially higher-probability OBs:
Require Fair Value Gap (FVG)?: If enabled, the indicator checks if an FVG formed immediately after the OB candle ( ). Specifically, it looks for a gap between candle and candle (low > high for Bullish OB confirmation, high < low for Bearish).
Require Strong Close Breakout?: If enabled, it requires the breakout candle ( ) to close beyond the range of the OB candle ( ). (close > high for Bullish, close < low for Bearish). This suggests stronger confirmation.
Storing the Most Recent OB:
When an OB is detected and passes any enabled filters, its details (high, low, formation bar index) are stored. Crucially, this indicator only tracks the single most recent valid unmitigated OB of each type (one Bullish, one Bearish) using var variables. If a newer valid OB forms, it replaces the previously stored one.
Drawing Boxes:
If a valid Bullish OB is being tracked (and Show Bullish OBs is enabled), it draws a box (box.new) using the high and low of the identified OB candle ( ). The same process applies to Bearish OBs (Show Bearish OBs enabled). The boxes automatically extend to the right (extend.right) and their right edge is updated on each new bar (box.set_right) until they are mitigated. Labels ("Bull OB" / "Bear OB") are displayed inside the boxes.
Mitigation & Box Deletion:
The indicator checks if the current closing price (close ) has moved entirely beyond the range of the tracked OB.
Mitigation Rule Used: A Bullish OB is considered mitigated if close < bull_ob_low. A Bearish OB is considered mitigated if close > bear_ob_high. Once an OB is marked as mitigated, the indicator stops tracking it and its corresponding box is automatically deleted (box.delete) from the chart.
This indicator provides a dynamic visualization of the most recent, potentially significant Order Blocks that meet the specified criteria, helping traders identify key areas of interest based on ICT principles.
Pivot S/R with Volatility Filter## *📌 Indicator Purpose*
This indicator identifies *key support/resistance levels* using pivot points while also:
✅ Detecting *high-volume liquidity traps* (stop hunts)
✅ Filtering insignificant pivots via *ATR (Average True Range) volatility*
✅ Tracking *test counts and breakouts* to measure level strength
---
## *⚙ SETTINGS – Detailed Breakdown*
### *1️⃣ ◆ General Settings*
#### *🔹 Pivot Length*
- *Purpose:* Determines how many bars to analyze when identifying pivots.
- *Usage:*
- *Low values (5-20):* More pivots, better for scalping.
- *High values (50-200):* Fewer but stronger levels for swing trading.
- *Example:*
- Pivot Length = 50 → Only the most significant highs/lows over 50 bars are marked.
#### *🔹 Test Threshold (Max Test Count)*
- *Purpose:* Sets how many times a level can be tested before being invalidated.
- *Example:*
- Test Threshold = 3 → After 3 tests, the level is ignored (likely to break).
#### *🔹 Zone Range*
- *Purpose:* Creates a price buffer around pivots (±0.001 by default).
- *Why?* Markets often respect "zones" rather than exact prices.
---
### *2️⃣ ◆ Volatility Filter (ATR)*
#### *🔹 ATR Period*
- *Purpose:* Smoothing period for Average True Range calculation.
- *Default:* 14 (standard for volatility measurement).
#### *🔹 ATR Multiplier (Min Move)*
- *Purpose:* Requires pivots to show *meaningful price movement*.
- *Formula:* Min Move = ATR × Multiplier
- *Example:*
- ATR = 10 pips, Multiplier = 1.5 → Only pivots with *15+ pip swings* are valid.
#### *🔹 Show ATR Filter Info*
- Displays current ATR and minimum move requirements on the chart.
---
### *3️⃣ ◆ Volume Analysis*
#### *🔹 Volume Change Threshold (%)*
- *Purpose:* Filters for *unusual volume spikes* (institutional activity).
- *Example:*
- Threshold = 1.2 → Requires *120% of average volume* to confirm signals.
#### *🔹 Volume MA Period*
- *Purpose:* Lookback period for "normal" volume calculation.
---
### *4️⃣ ◆ Wick Analysis*
#### *🔹 Wick Length Threshold (Ratio)*
- *Purpose:* Ensures rejection candles have *long wicks* (strong reversals).
- *Formula:* Wick Ratio = (Upper Wick + Lower Wick) / Candle Range
- *Example:*
- Threshold = 0.6 → 60% of the candle must be wicks.
#### *🔹 Min Wick Size (ATR %)*
- *Purpose:* Filters out small wicks in volatile markets.
- *Example:*
- ATR = 20 pips, MinWickSize = 1% → Wicks under *0.2 pips* are ignored.
---
### *5️⃣ ◆ Display Settings*
- *Show Zones:* Toggles support/resistance shaded areas.
- *Show Traps:* Highlights liquidity traps (▲/▼ symbols).
- *Show Tests:* Displays how many times levels were tested.
- *Zone Transparency:* Adjusts opacity of zones.
---
## *🎯 Practical Use Cases*
### *1️⃣ Liquidity Trap Detection*
- *Scenario:* Price spikes *above resistance* then reverses sharply.
- *Requirements:*
- Long wick (Wick Ratio > 0.6)
- High volume (Volume > Threshold)
- *Outcome:* *Short Trap* signal (▼) appears.
### *2️⃣ Strong Support Level*
- *Scenario:* Price bounces *3 times* from the same level.
- *Indicator Action:*
- Labels the level with test count (3/5 = 3 tests out of max 5).
- Turns *red* if broken (Break Count > 0).
Deep Dive: How This Indicator Works*
This indicator combines *four professional trading concepts* into one powerful tool:
1. *Classic Pivot Point Theory*
- Identifies swing highs/lows where price previously reversed
- Unlike basic pivot indicators, ours uses *confirmed pivots only* (filtered by ATR)
2. *Volume-Weighted Validation*
- Requires unusual trading volume to confirm levels
- Filters out "phantom" levels with low participation
3. *ATR Volatility Filtering*
- Eliminates insignificant price swings in choppy markets
- Ensures only meaningful levels are plotted
4. *Liquidity Trap Detection*
- Spots institutional stop hunts where markets fake out traders
- Uses wick analysis + volume spikes for high-probability signals
---
Deep Dive: How This Indicator Works*
This indicator combines *four professional trading concepts* into one powerful tool:
1. *Classic Pivot Point Theory*
- Identifies swing highs/lows where price previously reversed
- Unlike basic pivot indicators, ours uses *confirmed pivots only* (filtered by ATR)
2. *Volume-Weighted Validation*
- Requires unusual trading volume to confirm levels
- Filters out "phantom" levels with low participation
3. *ATR Volatility Filtering*
- Eliminates insignificant price swings in choppy markets
- Ensures only meaningful levels are plotted
4. *Liquidity Trap Detection*
- Spots institutional stop hunts where markets fake out traders
- Uses wick analysis + volume spikes for high-probability signals
---
## *📊 Parameter Encyclopedia (Expanded)*
### *1️⃣ Pivot Engine Settings*
#### *Pivot Length (50)*
- *What It Does:*
Determines how many bars to analyze when searching for swing highs/lows.
- *Professional Adjustment Guide:*
| Trading Style | Recommended Value | Why? |
|--------------|------------------|------|
| Scalping | 10-20 | Captures short-term levels |
| Day Trading | 30-50 | Balanced approach |
| Swing Trading| 50-200 | Focuses on major levels |
- *Real Market Example:*
On NASDAQ 5-minute chart:
- Length=20: Identifies levels holding for ~2 hours
- Length=50: Finds levels respected for entire trading day
#### *Test Threshold (5)*
- *Advanced Insight:*
Institutions often test levels 3-5 times before breaking them. This setting mimics the "probe and push" strategy used by smart money.
- *Psychology Behind It:*
Retail traders typically give up after 2-3 tests, while institutions keep testing until stops are run.
---
### *2️⃣ Volatility Filter System*
#### *ATR Multiplier (1.0)*
- *Professional Formula:*
Minimum Valid Swing = ATR(14) × Multiplier
- *Market-Specific Recommendations:*
| Market Type | Optimal Multiplier |
|------------------|--------------------|
| Forex Majors | 0.8-1.2 |
| Crypto (BTC/ETH) | 1.5-2.5 |
| SP500 Stocks | 1.0-1.5 |
- *Why It Matters:*
In EUR/USD (ATR=10 pips):
- Multiplier=1.0 → Requires 10 pip swings
- Multiplier=1.5 → Requires 15 pip swings (fewer but higher quality levels)
---
### *3️⃣ Volume Confirmation System*
#### *Volume Threshold (1.2)*
- *Institutional Benchmark:*
- 1.2x = Moderate institutional interest
- 1.5x+ = Strong smart money activity
- *Volume Spike Case Study:*
*Before Apple Earnings:*
- Normal volume: 2M shares
- Spike threshold (1.2): 2.4M shares
- Actual volume: 3.1M shares → STRONG confirmation
---
### *4️⃣ Liquidity Trap Detection*
#### *Wick Analysis System*
- *Two-Filter Verification:*
1. *Wick Ratio (0.6):*
- Ensures majority of candle shows rejection
- Formula: (UpperWick + LowerWick) / Total Range > 0.6
2. *Min Wick Size (1% ATR):*
- Prevents false signals in flat markets
- Example: ATR=20 pips → Min wick=0.2 pips
- *Trap Identification Flowchart:*
Price Enters Zone →
Spikes Beyond Level →
Shows Long Wick →
Volume > Threshold →
TRAP CONFIRMED
---
## *💡 Master-Level Usage Techniques*
### *Institutional Order Flow Analysis*
1. *Step 1:* Identify pivot levels with ≥3 tests
2. *Step 2:* Watch for volume contraction near levels
3. *Step 3:* Enter when trap signal appears with:
- Wick > 2×ATR
- Volume > 1.5× average
### *Multi-Timeframe Confirmation*
1. *Higher TF:* Find weekly/monthly pivots
2. *Lower TF:* Use this indicator for precise entries
3. *Example:*
- Weekly pivot at $180
- 4H shows liquidity trap → High-probability reversal
---
## *⚠ Critical Mistakes to Avoid*
1. *Using Default Settings Everywhere*
- Crude oil needs higher ATR multiplier than bonds
2. *Ignoring Trap Context*
- Traps work best at:
- All-time highs/lows
- Major psychological numbers (00/50 levels)
3. *Overlooking Cumulative Volume*
- Check if volume is building over multiple tests
SessionRangeLevels_v0.1SessionRangeLevels_v0.1
Overview:
SessionRangeLevels_v0.1 is a customizable Pine Script (v6) indicator designed to plot key price levels based on a user-defined trading session. It identifies the high and low of the session and calculates intermediate levels (75%, 50% "EQ", and 25%) within that range. These levels are projected forward as horizontal lines with accompanying labels, providing traders with dynamic support and resistance zones. The indicator supports extensive customization for session timing, time zones, line styles, colors, and more.
Key Features:
Session-Based Range Detection: Tracks the high and low prices during a specified session (e.g., 0600-0900) and updates them dynamically as the session progresses.
Customizable Levels: Displays High, 75%, EQ (50%), 25%, and Low levels, each with independent toggle options, styles (Solid, Dashed, Dotted), colors, and widths.
Session Anchor: Optional vertical line marking the session start, with customizable style, color, and width.
Projection Offset: Extends level lines forward by a user-defined number of bars (default: 24) for future price reference.
Labels: Toggleable labels for each level (e.g., "High," "75%," "EQ") with adjustable size (Tiny, Small, Normal, Large).
Time Zone Support: Aligns session timing to a selected time zone (e.g., America/New_York, UTC, Asia/Tokyo, etc.).
Alert Conditions: Triggers alerts when the price crosses any of the plotted levels (High, 75%, EQ, 25%, Low).
Inputs:
Session Time (HHMM-HHMM): Define the session range (e.g., "0600-0900" for 6:00 AM to 9:00 AM).
Time Zone: Choose from options like UTC, America/New_York, Europe/London, etc.
Anchor Settings: Toggle the session start line, adjust its style (default: Dotted), color (default: Black), and width (default: 1).
Level Settings:
High (Solid, Black, Width 2)
75% (Dotted, Blue, Width 1)
EQ/50% (Dotted, Orange, Width 1)
25% (Dotted, Blue, Width 1)
Low (Solid, Black, Width 2)
Each level includes options to show/hide, set style, color, width, and label visibility.
Projection Offset: Number of bars to extend lines (default: 24).
Label Size: Set label size (default: Small).
How It Works:
The indicator detects the start and end of the user-defined session based on the specified time and time zone.
During the session, it tracks the highest high and lowest low, updating the levels in real-time.
At the session start, it plots the High, Low, and intermediate levels (75%, 50%, 25%), projecting them forward.
Lines and labels dynamically adjust as new highs or lows occur within the session.
Alerts notify users when the price crosses any active level.
Usage:
Ideal for traders who focus on session-based strategies (e.g., London or New York open). Use it to identify key price zones, monitor breakouts, or set targets. Customize the appearance to suit your chart preferences and enable alerts for real-time trading signals.
Notes:
Ensure your chart’s timeframe aligns with your session duration for optimal results (e.g., 1-minute or 5-minute charts for short sessions).
The indicator overlays directly on the price chart for easy integration with other tools.
real_time_candlesIntroduction
The Real-Time Candles Library provides comprehensive tools for creating, manipulating, and visualizing custom timeframe candles in Pine Script. Unlike standard indicators that only update at bar close, this library enables real-time visualization of price action and indicators within the current bar, offering traders unprecedented insight into market dynamics as they unfold.
This library addresses a fundamental limitation in traditional technical analysis: the inability to see how indicators evolve between bar closes. By implementing sophisticated real-time data processing techniques, traders can now observe indicator movements, divergences, and trend changes as they develop, potentially identifying trading opportunities much earlier than with conventional approaches.
Key Features
The library supports two primary candle generation approaches:
Chart-Time Candles: Generate real-time OHLC data for any variable (like RSI, MACD, etc.) while maintaining synchronization with chart bars.
Custom Timeframe (CTF) Candles: Create candles with custom time intervals or tick counts completely independent of the chart's native timeframe.
Both approaches support traditional candlestick and Heikin-Ashi visualization styles, with options for moving average overlays to smooth the data.
Configuration Requirements
For optimal performance with this library:
Set max_bars_back = 5000 in your script settings
When using CTF drawing functions, set max_lines_count = 500, max_boxes_count = 500, and max_labels_count = 500
These settings ensure that you will be able to draw correctly and will avoid any runtime errors.
Usage Examples
Basic Chart-Time Candle Visualization
// Create real-time candles for RSI
float rsi = ta.rsi(close, 14)
Candle rsi_candle = candle_series(rsi, CandleType.candlestick)
// Plot the candles using Pine's built-in function
plotcandle(rsi_candle.Open, rsi_candle.High, rsi_candle.Low, rsi_candle.Close,
"RSI Candles", rsi_candle.candle_color, rsi_candle.candle_color)
Multiple Access Patterns
The library provides three ways to access candle data, accommodating different programming styles:
// 1. Array-based access for collection operations
Candle candles = candle_array(source)
// 2. Object-oriented access for single entity manipulation
Candle candle = candle_series(source)
float value = candle.source(Source.HLC3)
// 3. Tuple-based access for functional programming styles
= candle_tuple(source)
Custom Timeframe Examples
// Create 20-second candles with EMA overlay
plot_ctf_candles(
source = close,
candle_type = CandleType.candlestick,
sample_type = SampleType.Time,
number_of_seconds = 20,
timezone = -5,
tied_open = true,
ema_period = 9,
enable_ema = true
)
// Create tick-based candles (new candle every 15 ticks)
plot_ctf_tick_candles(
source = close,
candle_type = CandleType.heikin_ashi,
number_of_ticks = 15,
timezone = -5,
tied_open = true
)
Advanced Usage with Custom Visualization
// Get custom timeframe candles without automatic plotting
CandleCTF my_candles = ctf_candles_array(
source = close,
candle_type = CandleType.candlestick,
sample_type = SampleType.Time,
number_of_seconds = 30
)
// Apply custom logic to the candles
float ema_values = my_candles.ctf_ema(14)
// Draw candles and EMA using time-based coordinates
my_candles.draw_ctf_candles_time()
ema_values.draw_ctf_line_time(line_color = #FF6D00)
Library Components
Data Types
Candle: Structure representing chart-time candles with OHLC, polarity, and visualization properties
CandleCTF: Extended candle structure with additional time metadata for custom timeframes
TickData: Structure for individual price updates with time deltas
Enumerations
CandleType: Specifies visualization style (candlestick or Heikin-Ashi)
Source: Defines price components for calculations (Open, High, Low, Close, HL2, etc.)
SampleType: Sets sampling method (Time-based or Tick-based)
Core Functions
get_tick(): Captures current price as a tick data point
candle_array(): Creates an array of candles from price updates
candle_series(): Provides a single candle based on latest data
candle_tuple(): Returns OHLC values as a tuple
ctf_candles_array(): Creates custom timeframe candles without rendering
Visualization Functions
source(): Extracts specific price components from candles
candle_ctf_to_float(): Converts candle data to float arrays
ctf_ema(): Calculates exponential moving averages for candle arrays
draw_ctf_candles_time(): Renders candles using time coordinates
draw_ctf_candles_index(): Renders candles using bar index coordinates
draw_ctf_line_time(): Renders lines using time coordinates
draw_ctf_line_index(): Renders lines using bar index coordinates
Technical Implementation Notes
This library leverages Pine Script's varip variables for state management, creating a sophisticated real-time data processing system. The implementation includes:
Efficient tick capturing: Samples price at every execution, maintaining temporal tracking with time deltas
Smart state management: Uses a hybrid approach with mutable updates at index 0 and historical preservation at index 1+
Temporal synchronization: Manages two time domains (chart time and custom timeframe)
The tooltip implementation provides crucial temporal context for custom timeframe visualizations, allowing users to understand exactly when each candle formed regardless of chart timeframe.
Limitations
Custom timeframe candles cannot be backtested due to Pine Script's limitations with historical tick data
Real-time visualization is only available during live chart updates
Maximum history is constrained by Pine Script's array size limits
Applications
Indicator visualization: See how RSI, MACD, or other indicators evolve in real-time
Volume analysis: Create custom volume profiles independent of chart timeframe
Scalping strategies: Identify short-term patterns with precisely defined time windows
Volatility measurement: Track price movement characteristics within bars
Custom signal generation: Create entry/exit signals based on custom timeframe patterns
Conclusion
The Real-Time Candles Library bridges the gap between traditional technical analysis (based on discrete OHLC bars) and the continuous nature of market movement. By making indicators more responsive to real-time price action, it gives traders a significant edge in timing and decision-making, particularly in fast-moving markets where waiting for bar close could mean missing important opportunities.
Whether you're building custom indicators, researching price patterns, or developing trading strategies, this library provides the foundation for sophisticated real-time analysis in Pine Script.
Implementation Details & Advanced Guide
Core Implementation Concepts
The Real-Time Candles Library implements a sophisticated event-driven architecture within Pine Script's constraints. At its heart, the library creates what's essentially a reactive programming framework handling continuous data streams.
Tick Processing System
The foundation of the library is the get_tick() function, which captures price updates as they occur:
export get_tick(series float source = close, series float na_replace = na)=>
varip float price = na
varip int series_index = -1
varip int old_time = 0
varip int new_time = na
varip float time_delta = 0
// ...
This function:
Samples the current price
Calculates time elapsed since last update
Maintains a sequential index to track updates
The resulting TickData structure serves as the fundamental building block for all candle generation.
State Management Architecture
The library employs a sophisticated state management system using varip variables, which persist across executions within the same bar. This creates a hybrid programming paradigm that's different from standard Pine Script's bar-by-bar model.
For chart-time candles, the core state transition logic is:
// Real-time update of current candle
candle_data := Candle.new(Open, High, Low, Close, polarity, series_index, candle_color)
candles.set(0, candle_data)
// When a new bar starts, preserve the previous candle
if clear_state
candles.insert(1, candle_data)
price.clear()
// Reset state for new candle
Open := Close
price.push(Open)
series_index += 1
This pattern of updating index 0 in real-time while inserting completed candles at index 1 creates an elegant solution for maintaining both current state and historical data.
Custom Timeframe Implementation
The custom timeframe system manages its own time boundaries independent of chart bars:
bool clear_state = switch settings.sample_type
SampleType.Ticks => cumulative_series_idx >= settings.number_of_ticks
SampleType.Time => cumulative_time_delta >= settings.number_of_seconds
This dual-clock system synchronizes two time domains:
Pine's execution clock (bar-by-bar processing)
The custom timeframe clock (tick or time-based)
The library carefully handles temporal discontinuities, ensuring candle formation remains accurate despite irregular tick arrival or market gaps.
Advanced Usage Techniques
1. Creating Custom Indicators with Real-Time Candles
To develop indicators that process real-time data within the current bar:
// Get real-time candles for your data
Candle rsi_candles = candle_array(ta.rsi(close, 14))
// Calculate indicator values based on candle properties
float signal = ta.ema(rsi_candles.first().source(Source.Close), 9)
// Detect patterns that occur within the bar
bool divergence = close > close and rsi_candles.first().Close < rsi_candles.get(1).Close
2. Working with Custom Timeframes and Plotting
For maximum flexibility when visualizing custom timeframe data:
// Create custom timeframe candles
CandleCTF volume_candles = ctf_candles_array(
source = volume,
candle_type = CandleType.candlestick,
sample_type = SampleType.Time,
number_of_seconds = 60
)
// Convert specific candle properties to float arrays
float volume_closes = volume_candles.candle_ctf_to_float(Source.Close)
// Calculate derived values
float volume_ema = volume_candles.ctf_ema(14)
// Create custom visualization
volume_candles.draw_ctf_candles_time()
volume_ema.draw_ctf_line_time(line_color = color.orange)
3. Creating Hybrid Timeframe Analysis
One powerful application is comparing indicators across multiple timeframes:
// Standard chart timeframe RSI
float chart_rsi = ta.rsi(close, 14)
// Custom 5-second timeframe RSI
CandleCTF ctf_candles = ctf_candles_array(
source = close,
candle_type = CandleType.candlestick,
sample_type = SampleType.Time,
number_of_seconds = 5
)
float fast_rsi_array = ctf_candles.candle_ctf_to_float(Source.Close)
float fast_rsi = fast_rsi_array.first()
// Generate signals based on divergence between timeframes
bool entry_signal = chart_rsi < 30 and fast_rsi > fast_rsi_array.get(1)
Final Notes
This library represents an advanced implementation of real-time data processing within Pine Script's constraints. By creating a reactive programming framework for handling continuous data streams, it enables sophisticated analysis typically only available in dedicated trading platforms.
The design principles employed—including state management, temporal processing, and object-oriented architecture—can serve as patterns for other advanced Pine Script development beyond this specific application.
------------------------
Library "real_time_candles"
A comprehensive library for creating real-time candles with customizable timeframes and sampling methods.
Supports both chart-time and custom-time candles with options for candlestick and Heikin-Ashi visualization.
Allows for tick-based or time-based sampling with moving average overlay capabilities.
get_tick(source, na_replace)
Captures the current price as a tick data point
Parameters:
source (float) : Optional - Price source to sample (defaults to close)
na_replace (float) : Optional - Value to use when source is na
Returns: TickData structure containing price, time since last update, and sequential index
candle_array(source, candle_type, sync_start, bullish_color, bearish_color)
Creates an array of candles based on price updates
Parameters:
source (float) : Optional - Price source to sample (defaults to close)
candle_type (simple CandleType) : Optional - Type of candle chart to create (candlestick or Heikin-Ashi)
sync_start (simple bool) : Optional - Whether to synchronize with the start of a new bar
bullish_color (color) : Optional - Color for bullish candles
bearish_color (color) : Optional - Color for bearish candles
Returns: Array of Candle objects ordered with most recent at index 0
candle_series(source, candle_type, wait_for_sync, bullish_color, bearish_color)
Provides a single candle based on the latest price data
Parameters:
source (float) : Optional - Price source to sample (defaults to close)
candle_type (simple CandleType) : Optional - Type of candle chart to create (candlestick or Heikin-Ashi)
wait_for_sync (simple bool) : Optional - Whether to wait for a new bar before starting
bullish_color (color) : Optional - Color for bullish candles
bearish_color (color) : Optional - Color for bearish candles
Returns: A single Candle object representing the current state
candle_tuple(source, candle_type, wait_for_sync, bullish_color, bearish_color)
Provides candle data as a tuple of OHLC values
Parameters:
source (float) : Optional - Price source to sample (defaults to close)
candle_type (simple CandleType) : Optional - Type of candle chart to create (candlestick or Heikin-Ashi)
wait_for_sync (simple bool) : Optional - Whether to wait for a new bar before starting
bullish_color (color) : Optional - Color for bullish candles
bearish_color (color) : Optional - Color for bearish candles
Returns: Tuple representing current candle values
method source(self, source, na_replace)
Extracts a specific price component from a Candle
Namespace types: Candle
Parameters:
self (Candle)
source (series Source) : Type of price data to extract (Open, High, Low, Close, or composite values)
na_replace (float) : Optional - Value to use when source value is na
Returns: The requested price value from the candle
method source(self, source)
Extracts a specific price component from a CandleCTF
Namespace types: CandleCTF
Parameters:
self (CandleCTF)
source (simple Source) : Type of price data to extract (Open, High, Low, Close, or composite values)
Returns: The requested price value from the candle as a varip
method candle_ctf_to_float(self, source)
Converts a specific price component from each CandleCTF to a float array
Namespace types: array
Parameters:
self (array)
source (simple Source) : Optional - Type of price data to extract (defaults to Close)
Returns: Array of float values extracted from the candles, ordered with most recent at index 0
method ctf_ema(self, ema_period)
Calculates an Exponential Moving Average for a CandleCTF array
Namespace types: array
Parameters:
self (array)
ema_period (simple float) : Period for the EMA calculation
Returns: Array of float values representing the EMA of the candle data, ordered with most recent at index 0
method draw_ctf_candles_time(self, sample_type, number_of_ticks, number_of_seconds, timezone)
Renders custom timeframe candles using bar time coordinates
Namespace types: array
Parameters:
self (array)
sample_type (simple SampleType) : Optional - Method for sampling data (Time or Ticks), used for tooltips
number_of_ticks (simple int) : Optional - Number of ticks per candle (used when sample_type is Ticks), used for tooltips
number_of_seconds (simple float) : Optional - Time duration per candle in seconds (used when sample_type is Time), used for tooltips
timezone (simple int) : Optional - Timezone offset from UTC (-12 to +12), used for tooltips
Returns: void - Renders candles on the chart using time-based x-coordinates
method draw_ctf_candles_index(self, sample_type, number_of_ticks, number_of_seconds, timezone)
Renders custom timeframe candles using bar index coordinates
Namespace types: array
Parameters:
self (array)
sample_type (simple SampleType) : Optional - Method for sampling data (Time or Ticks), used for tooltips
number_of_ticks (simple int) : Optional - Number of ticks per candle (used when sample_type is Ticks), used for tooltips
number_of_seconds (simple float) : Optional - Time duration per candle in seconds (used when sample_type is Time), used for tooltips
timezone (simple int) : Optional - Timezone offset from UTC (-12 to +12), used for tooltips
Returns: void - Renders candles on the chart using index-based x-coordinates
method draw_ctf_line_time(self, source, line_size, line_color)
Renders a line representing a price component from the candles using time coordinates
Namespace types: array
Parameters:
self (array)
source (simple Source) : Optional - Type of price data to extract (defaults to Close)
line_size (simple int) : Optional - Width of the line
line_color (simple color) : Optional - Color of the line
Returns: void - Renders a connected line on the chart using time-based x-coordinates
method draw_ctf_line_time(self, line_size, line_color)
Renders a line from a varip float array using time coordinates
Namespace types: array
Parameters:
self (array)
line_size (simple int) : Optional - Width of the line, defaults to 2
line_color (simple color) : Optional - Color of the line
Returns: void - Renders a connected line on the chart using time-based x-coordinates
method draw_ctf_line_index(self, source, line_size, line_color)
Renders a line representing a price component from the candles using index coordinates
Namespace types: array
Parameters:
self (array)
source (simple Source) : Optional - Type of price data to extract (defaults to Close)
line_size (simple int) : Optional - Width of the line
line_color (simple color) : Optional - Color of the line
Returns: void - Renders a connected line on the chart using index-based x-coordinates
method draw_ctf_line_index(self, line_size, line_color)
Renders a line from a varip float array using index coordinates
Namespace types: array
Parameters:
self (array)
line_size (simple int) : Optional - Width of the line, defaults to 2
line_color (simple color) : Optional - Color of the line
Returns: void - Renders a connected line on the chart using index-based x-coordinates
plot_ctf_tick_candles(source, candle_type, number_of_ticks, timezone, tied_open, ema_period, bullish_color, bearish_color, line_width, ema_color, use_time_indexing)
Plots tick-based candles with moving average
Parameters:
source (float) : Input price source to sample
candle_type (simple CandleType) : Type of candle chart to display
number_of_ticks (simple int) : Number of ticks per candle
timezone (simple int) : Timezone offset from UTC (-12 to +12)
tied_open (simple bool) : Whether to tie open price to close of previous candle
ema_period (simple float) : Period for the exponential moving average
bullish_color (color) : Optional - Color for bullish candles
bearish_color (color) : Optional - Color for bearish candles
line_width (simple int) : Optional - Width of the moving average line, defaults to 2
ema_color (color) : Optional - Color of the moving average line
use_time_indexing (simple bool) : Optional - When true the function will plot with xloc.time, when false it will plot using xloc.bar_index
Returns: void - Creates visual candle chart with EMA overlay
plot_ctf_tick_candles(source, candle_type, number_of_ticks, timezone, tied_open, bullish_color, bearish_color, use_time_indexing)
Plots tick-based candles without moving average
Parameters:
source (float) : Input price source to sample
candle_type (simple CandleType) : Type of candle chart to display
number_of_ticks (simple int) : Number of ticks per candle
timezone (simple int) : Timezone offset from UTC (-12 to +12)
tied_open (simple bool) : Whether to tie open price to close of previous candle
bullish_color (color) : Optional - Color for bullish candles
bearish_color (color) : Optional - Color for bearish candles
use_time_indexing (simple bool) : Optional - When true the function will plot with xloc.time, when false it will plot using xloc.bar_index
Returns: void - Creates visual candle chart without moving average
plot_ctf_time_candles(source, candle_type, number_of_seconds, timezone, tied_open, ema_period, bullish_color, bearish_color, line_width, ema_color, use_time_indexing)
Plots time-based candles with moving average
Parameters:
source (float) : Input price source to sample
candle_type (simple CandleType) : Type of candle chart to display
number_of_seconds (simple float) : Time duration per candle in seconds
timezone (simple int) : Timezone offset from UTC (-12 to +12)
tied_open (simple bool) : Whether to tie open price to close of previous candle
ema_period (simple float) : Period for the exponential moving average
bullish_color (color) : Optional - Color for bullish candles
bearish_color (color) : Optional - Color for bearish candles
line_width (simple int) : Optional - Width of the moving average line, defaults to 2
ema_color (color) : Optional - Color of the moving average line
use_time_indexing (simple bool) : Optional - When true the function will plot with xloc.time, when false it will plot using xloc.bar_index
Returns: void - Creates visual candle chart with EMA overlay
plot_ctf_time_candles(source, candle_type, number_of_seconds, timezone, tied_open, bullish_color, bearish_color, use_time_indexing)
Plots time-based candles without moving average
Parameters:
source (float) : Input price source to sample
candle_type (simple CandleType) : Type of candle chart to display
number_of_seconds (simple float) : Time duration per candle in seconds
timezone (simple int) : Timezone offset from UTC (-12 to +12)
tied_open (simple bool) : Whether to tie open price to close of previous candle
bullish_color (color) : Optional - Color for bullish candles
bearish_color (color) : Optional - Color for bearish candles
use_time_indexing (simple bool) : Optional - When true the function will plot with xloc.time, when false it will plot using xloc.bar_index
Returns: void - Creates visual candle chart without moving average
plot_ctf_candles(source, candle_type, sample_type, number_of_ticks, number_of_seconds, timezone, tied_open, ema_period, bullish_color, bearish_color, enable_ema, line_width, ema_color, use_time_indexing)
Unified function for plotting candles with comprehensive options
Parameters:
source (float) : Input price source to sample
candle_type (simple CandleType) : Optional - Type of candle chart to display
sample_type (simple SampleType) : Optional - Method for sampling data (Time or Ticks)
number_of_ticks (simple int) : Optional - Number of ticks per candle (used when sample_type is Ticks)
number_of_seconds (simple float) : Optional - Time duration per candle in seconds (used when sample_type is Time)
timezone (simple int) : Optional - Timezone offset from UTC (-12 to +12)
tied_open (simple bool) : Optional - Whether to tie open price to close of previous candle
ema_period (simple float) : Optional - Period for the exponential moving average
bullish_color (color) : Optional - Color for bullish candles
bearish_color (color) : Optional - Color for bearish candles
enable_ema (bool) : Optional - Whether to display the EMA overlay
line_width (simple int) : Optional - Width of the moving average line, defaults to 2
ema_color (color) : Optional - Color of the moving average line
use_time_indexing (simple bool) : Optional - When true the function will plot with xloc.time, when false it will plot using xloc.bar_index
Returns: void - Creates visual candle chart with optional EMA overlay
ctf_candles_array(source, candle_type, sample_type, number_of_ticks, number_of_seconds, tied_open, bullish_color, bearish_color)
Creates an array of custom timeframe candles without rendering them
Parameters:
source (float) : Input price source to sample
candle_type (simple CandleType) : Type of candle chart to create (candlestick or Heikin-Ashi)
sample_type (simple SampleType) : Method for sampling data (Time or Ticks)
number_of_ticks (simple int) : Optional - Number of ticks per candle (used when sample_type is Ticks)
number_of_seconds (simple float) : Optional - Time duration per candle in seconds (used when sample_type is Time)
tied_open (simple bool) : Optional - Whether to tie open price to close of previous candle
bullish_color (color) : Optional - Color for bullish candles
bearish_color (color) : Optional - Color for bearish candles
Returns: Array of CandleCTF objects ordered with most recent at index 0
Candle
Structure representing a complete candle with price data and display properties
Fields:
Open (series float) : Opening price of the candle
High (series float) : Highest price of the candle
Low (series float) : Lowest price of the candle
Close (series float) : Closing price of the candle
polarity (series bool) : Boolean indicating if candle is bullish (true) or bearish (false)
series_index (series int) : Sequential index identifying the candle in the series
candle_color (series color) : Color to use when rendering the candle
ready (series bool) : Boolean indicating if candle data is valid and ready for use
TickData
Structure for storing individual price updates
Fields:
price (series float) : The price value at this tick
time_delta (series float) : Time elapsed since the previous tick in milliseconds
series_index (series int) : Sequential index identifying this tick
CandleCTF
Structure representing a custom timeframe candle with additional time metadata
Fields:
Open (series float) : Opening price of the candle
High (series float) : Highest price of the candle
Low (series float) : Lowest price of the candle
Close (series float) : Closing price of the candle
polarity (series bool) : Boolean indicating if candle is bullish (true) or bearish (false)
series_index (series int) : Sequential index identifying the candle in the series
open_time (series int) : Timestamp marking when the candle was opened (in Unix time)
time_delta (series float) : Duration of the candle in milliseconds
candle_color (series color) : Color to use when rendering the candle
Advanced Session Profile Predictor with SR Boxes & ORAdvanced Session Profile Predictor with Momentum Arrows
Designed for intraday traders, this indicator analyzes price action across Asia, London, and New York sessions to predict market profiles and highlight key trading opportunities. By combining session-based profiling, Opening Range (OR) visualization, and momentum signals from Traders Dynamic Index (TDI), it offers a unique tool for anticipating trends, reversals, and breakouts. Ideal for forex, indices, and crypto on 15M–1H charts.
What Makes This Indicator Unique?
Unlike typical session indicators that only mark time zones or standard TDI scripts that focus on momentum, this tool:
Predicts market profiles (e.g., "Trend Continuation," "NY Manipulation") by analyzing session ranges and directional moves, offering actionable insights into how sessions interact.
Visualizes Opening Range (OR) boxes for the first 15 minutes of each session, helping traders spot early breakout levels.
Integrates TDI with momentum to generate precise bullish/bearish arrows, filtered by session context for improved reliability.
Simplifies decision-making with dynamic profile labels showing real-time long/short conditions based on price levels.
How Does It Work?
Session Tracking:
Asia (00:00–08:00 UTC, yellow), London (08:00–16:00 UTC, red), and New York (13:00–21:00 UTC, blue) sessions are highlighted with background colors and high/low lines (crosses).
OR boxes (first 15 minutes) are drawn for each session: yellow for Asia, red for London, blue for NY.
Profile Prediction:
Compares Asia and London session ranges and directions (e.g., trending if range > 1.5x 5-period SMA).
Examples:
Trend Continuation: Asia and London trend in the same direction—long above Asia high (uptrend) or short below Asia low (downtrend).
NY Manipulation: Asia trends, London consolidates—watch for NY breakouts at London high/low.
Displays the predicted profile and entry conditions in labels (e.g., "IF price hits 1.2000 LONG").
Momentum Arrows:
Uses TDI (RSI period 21, bands 34, fast MA 2) and 12-period momentum.
Green up arrow: Fast MA > upper band (>68) and momentum rising (bullish).
Red down arrow: Fast MA < lower band (<32) and momentum falling (bearish).
Support/Resistance (SR):
Plots dynamic SR boxes based on pivot highs/lows, filtered by volume (inspired by ChartPrime’s methodology, credited below).
How to Use It
Setup: Apply to a 15M–1H chart. Adjust time zone (default: UTC) and session times if needed. Customize TDI/momentum settings for sensitivity.
Trading:
Check the top-right labels for the current profile and entry conditions (e.g., "IF price hits LONG/SHORT").
Confirm entries with green up arrows (bullish) or red down arrows (bearish).
Use OR boxes and session high/low lines to identify breakout or reversal levels.
Example: In "NY Manipulation," wait for price to hit London high (long) or low (short) during NY session, confirmed by an arrow.
Best Markets: Forex (EUR/USD), indices (SPX500), crypto (BTC/USD) with sufficient intraday volatility.
Underlying Concepts
Session Profiling: Detects trends (range > SMA * threshold) and manipulation (e.g., London breaking Asia’s high/low) to predict NY behavior.
OR Boxes: Marks the first 15 minutes’ high/low as a breakout zone (time-based, 900,000 ms).
TDI + Momentum: Combines RSI-based bands with price change (close – close ) for momentum signals.
SR Boxes: Identifies pivots over a lookback period (default 20), scaled by ATR and filtered by volume thresholds.
Credits
The SR box logic is inspired by ChartPrime’s volume-filtered support/resistance methodology, adapted with custom breakout/hold detection. Original authors are credited for their foundational work.
Chart Setup
Displays session backgrounds, OR boxes, high/low lines, TDI arrows, and profile labels. Keep other indicators off for clarity.
MTF Ichimoku Conversion Line SMA with H/L mirrored levelsWelcome to MTF Ichimoku Conversion Line with SMA Highs/Lows Extended Lines!
1. Overview
It is designed to provide a multi-timeframe view of market trends and potential support/resistance levels by obtaining a Simple Moving Average (SMA) of the Conversion Line of Ichimoku Equibilium (Ichimoku Kinko-Hyo), which acts as a substantial trend line on the candlestick chart. The SMA of the conversion line smooths out price fluctuations and indicates the overall trend direction—if the candles are above it, the trend can be read as an uptrend, while below it, the trend can be read as a downtrend.
2. Calculation
The indicator first calculates the Conversion Line (see the description of Ichimoku theory anywhere, e.g., Wikipedia), as the average of the highest high and lowest low over a user-defined period (Conversion Line Length, default is 9, also recommended is 9).
It then retrieves this Conversion Line from a higher timeframe (MTF Timeframe) to add a broader perspective. Using a specified period (SMA Length)., an SMA is computed on this multi-timeframe conversion line. This SMA serves as a trend line that visually represents the prevailing price trend, making it easier to assess market direction.
3. Pivot Highs/low detection and drawing their extensions
In addition, the indicator identifies pivot highs and lows from the SMA data using a defined pivot length. When these pivots occur, horizontal lines are drawn and extended across the chart. These extended lines (drawn in a yellowish color by default) include a full extension, a half extension, and a middle extension line representing the midpoint between the high and low pivot.
4. Mirror lines
The indicator also offers optional mirror line features. When the Mirror Upside option is enabled, five additional lines are drawn above the highest extended yellow line at equal intervals. Similarly, when the Mirror Downside option is enabled, five lines are drawn below the lowest extended yellow line. These light gray mirror lines serve as extra reference levels, which can help identify potential support or resistance zones.
5. Parameters
User parameters include:
- Conversion Line Length: The period used to calculate the conversion line.
- MTF Timeframe: The higher timeframe from which the conversion line is obtained.
- SMA Length: The period over which the SMA is calculated on the conversion line.
- SMA Mode: A toggle to display either the SMA or the raw conversion line (SMA recommended).
- SMA Line Width: The thickness of the SMA line.
- Pivot Length for SMA Highs/Lows: The period used to detect pivot highs and lows in the SMA.
- Horizontal Extension: Number of bars by which the pivot and extended lines are drawn across the chart
- Colors for High and Low Pivot Lines and Extended Lines: Customizable colors are used to draw the lines.
Mirror Upside and Mirror Downside: These options enable drawing additional mirror lines above and below the extended lines.
- Hide Old Lines: An option to hide previous pivot lines once new ones are drawn for a cleaner chart. Turned on by default.
6. Conclusion
Overall, the Conversion Line SMA in this indicator smooths out the conversion line data and effectively functions as a trend line for the candlestick chart, helping traders visually interpret the underlying market trend. The extended and mirror lines provide further context for potential price reversal or continuation areas, making this a powerful tool for multi-timeframe technical analysis.
Opening Range, Initial Balance, Opening Price, Pre-market Levels### Description of the Indicator: **Opening Range, Initial Balance, Opening Price, Pre-market Levels**
This custom TradingView indicator provides a comprehensive view of key price levels for intraday trading, specifically designed to track important levels from the Opening Range (OR), Initial Balance (IB), Opening Price (OP), and Pre-market session (PM). These levels are essential for traders to gauge potential market movements and identify critical areas of support and resistance.
#### **Features:**
1. **Opening Range (OR):**
- This is the high and low of the first 30 minutes of the regular market session (09:30 - 10:00 EST).
- The OR high and low act as significant levels that may influence price movement for the rest of the day.
- The mid-level of the Opening Range (OR Mid) is also plotted to give a more detailed view of potential price action.
2. **Initial Balance (IB):**
- The Initial Balance is the range created during the first hour of market activity (09:30 - 10:30 EST).
- This range often sets the tone for the market's direction. The IB high and low, along with the IB midline, are plotted for quick reference.
3. **Opening Price (OP):**
- The opening price of the market is marked as a circle and labeled "OP."
- This level provides context for market sentiment when compared to the high and low levels.
4. **Pre-market Levels (PM):**
- The pre-market session (04:00 - 09:30 EST) has its own important levels that are calculated for the high, low, and mid range (PM High, PM Low, and PM Mid).
- These levels are plotted and are useful for traders to understand where the market stood before the regular session opened.
#### **Customization Options:**
- **Exchange Timezone:** You can choose whether to display the times in the exchange's local timezone or in your own preferred timezone.
- **Mid Levels Display:** You can toggle whether the mid levels for each range (OR, IB, PM) should be shown on the chart.
- **Level Color Change:** The colors of the plotted levels (high, low, mid) change based on whether the price is above or below the respective level, making it easy to visualize potential support and resistance.
- **Label Positions:** The position of the labels (OR, IB, OP, PM) on the chart can be customized to avoid overlap with other data points.
#### **Key Use Cases:**
- **Intraday Trend Analysis:** Use the OR and IB to identify key levels for the day, providing insights into the possible trend or range for the day.
- **Pre-market Insights:** The PM levels are crucial for understanding where the market stood during the pre-market hours and can be used as reference points during the regular session.
- **Potential Support and Resistance:** The high and low levels of the OR, IB, and PM sessions can act as potential support or resistance, which are useful for setting stop-loss and take-profit levels.
#### **How to Use:**
- Pay attention to the levels provided for OR, IB, and PM as potential entry and exit points.
- Watch for breakouts or reversals around these levels, especially when combined with other technical indicators or price action patterns.
- The mid levels offer an additional reference to assess price direction or identify possible areas of consolidation.
This indicator is perfect for day traders who rely on key intraday levels and pre-market activity to make informed trading decisions. It helps to streamline the process of identifying potential breakouts, reversals, and ranges in the market.
2022 Model ICT Entry Strategy [TradingFinder] One Setup For Life🔵 Introduction
The ICT 2022 model, introduced by Michael Huddleston, is an advanced trading strategy rooted in liquidity and price imbalance, where time and price serve as the core elements. This ICT 2022 trading strategy is an algorithmic approach designed to analyze liquidity and imbalances in the market. It incorporates concepts such as Fair Value Gap (FVG), Liquidity Sweep, and Market Structure Shift (MSS) to help traders identify liquidity movements and structural changes in the market, enabling them to determine optimal entry and exit points for their trades.
This Full ICT Day Trading Model empowers traders to pinpoint the Previous Day High/Low as well as the highs and lows of critical sessions like the London and New York sessions. These levels act as Liquidity Zones, which are frequently swept prior to a market structure shift (MSS) or a retracement to areas such as Optimal Trade Entry (OTE).
Bullish :
Bearish :
🔵 How to Use
The ICT 2022 model is a sophisticated trading strategy that focuses on identifying key liquidity levels and price movements. It operates based on two main principles. In the first phase, the price approaches liquidity zones and sweeps critical levels such as the previous day’s high or low and key session levels.
This movement is known as a Liquidity Sweep. In the second phase, following the sweep, the price retraces to areas like the FVG (Fair Value Gap), creating ideal entry points for trades. Below is a detailed explanation of how to apply this strategy in bullish and bearish setups.
🟣 Bullish ICT 2022 Model Setup
To use the ICT 2022 model in a bullish setup, start by identifying the Previous Day High/Low or key session levels, such as those of the London or New York sessions. In a bullish setup, the price usually moves downward first, sweeping the Liquidity Low. This move, known as a Liquidity Sweep, reflects the collection of buy orders by major market participants.
After the liquidity sweep, the price should shift market structure and start moving upward; this shift, referred to as Market Structure Shift (MSS), signals the beginning of an upward trend. Following MSS, areas like FVG, located within the Discount Zone, are identified. At this stage, the trader waits for the price to retrace to these zones. Once the price returns, a long trade is executed.
Finally, the stop-loss should be set below the liquidity low to manage risk, while the take-profit target is usually placed above the previous day’s high or other identified liquidity levels. This structure enables traders to take advantage of the upward price movement after the liquidity sweep.
🟣 Bearish ICT 2022 Model Setup
To identify a bearish setup in the ICT 2022 model, begin by marking the Previous Day High/Low or key session levels, such as the London or New York sessions. In this scenario, the price typically moves upward first, sweeping the Liquidity High. This move, known as a Liquidity Sweep, signifies the collection of sell orders by key market players.
After the liquidity sweep, the price should shift market structure downward. This movement, called the Market Structure Shift (MSS), indicates the start of a downtrend. Following MSS, areas such as FVG, found within the Premium Zone, are identified. At this stage, the trader waits for the price to retrace to these areas. Once the price revisits these zones, a short trade is executed.
In this setup, the stop-loss should be placed above the liquidity high to control risk, while the take-profit target is typically set below the previous day’s low or another defined liquidity level. This approach allows traders to capitalize on the downward price movement following the liquidity sweep.
🔵 Settings
Swing period : You can set the swing detection period.
Max Swing Back Method : It is in two modes "All" and "Custom". If it is in "All" mode, it will check all swings, and if it is in "Custom" mode, it will check the swings to the extent you determine.
Max Swing Back : You can set the number of swings that will go back for checking.
FVG Length : Default is 120 Bar.
MSS Length : Default is 80 Bar.
FVG Filter : This refines the number of identified FVG areas based on a specified algorithm to focus on higher quality signals and reduce noise.
Types of FVG filters :
Very Aggressive Filter: Adds a condition where, for an upward FVG, the last candle's highest price must exceed the middle candle's highest price, and for a downward FVG, the last candle's lowest price must be lower than the middle candle's lowest price. This minimally filters out FVGs.
Aggressive Filter: Builds on the Very Aggressive mode by ensuring the middle candle is not too small, filtering out more FVGs.
Defensive Filter: Adds criteria regarding the size and structure of the middle candle, requiring it to have a substantial body and specific polarity conditions, filtering out a significant number of FVGs.
Very Defensive Filter: Further refines filtering by ensuring the first and third candles are not small-bodied doji candles, retaining only the highest quality signals.
🔵 Conclusion
The ICT 2022 model is a comprehensive and advanced trading strategy designed around key concepts such as liquidity, price imbalance, and market structure shifts (MSS). By focusing on the sweep of critical levels such as the previous day’s high/low and important trading sessions like London and New York, this strategy enables traders to predict market movements with greater precision.
The use of tools like FVG in this model helps traders fine-tune their entry and exit points and take advantage of bullish and bearish trends after liquidity sweeps. Moreover, combining this strategy with precise timing during key trading sessions allows traders to minimize risk and maximize returns.
In conclusion, the ICT 2022 model emphasizes the importance of time and liquidity, making it a powerful tool for both professional and novice traders. By applying the principles of this model, you can make more informed trading decisions and seize opportunities in financial markets more effectively.
SSL Channel MTFSSL Channel with MTF support, This eliminates the noise of a basic SSL Channel script which is based on ErwinBeckers SSL Channel. So i have used a Multi Time Frame approach to have a clear confirmation of trend and reduce Noise and False signals unlike basic SSL Channel.
This script can be used to determine.
Support/Resistance
High/Low Breakout
Trend Direction
MA candles for Entry
The high and low sma are plotted as SSL CHANNEL when ever the high and low sma cross each other a direction change is observed.
The direction of SSL channel determines the trend of the price. The length of the channel can be changed as required a low value has a high noise and direction can be determined with low accuracy. Increasing the length of SSL channel has high accuracy trend confirmation.
The MTF SSL Channel uses plot from higher timeframe this helps in using SSL Channel as a Price Action Tool. Price when ever crosses over or below the channel determines a breakout. Price tries to move between the High SMA line and Low SMA Line of the SSL Channel rejection, breakouts can be easily observed on a lower timeframe using SSL Channel Plot from a higher timeframe.
I have used 5min/15min chart with MTF SSL from a 1Hr/4Hr and a length of 5 instead of 10. This helps quick direction changes over a period of 1hr to 4hr. Price is trapped within the High SMA and Low SMA lines of SSL Channel. In addition to SSL High Low and average mid line is plotted to additional reference.
Buy Sell Signals are plotted based on crossover of SMA High and Low.
Candle are Plotted Using a SMA with length of 5. This Candle Plot can be used to make an entry based on direction confirmation of SSL. keep in mind the direction of SSL Plot and the candle must be same. Preferably Entry can made above or below the midline of SSL Channel. The Candle Plot eliminates the Noise of traditional Japanese Candlesticks.
Additionally MACD Crossover and MACD Trend line confirmations can be used to confirm a Buy Sell and Entry signals
Alerts are also plotted accordingly.
6 Band Parametric EQThis indicator implements a complete parametric equalizer on any data source using high-pass and low-pass filters, high and low shelving filters, and six fully configurable bell filters. Each filter stage features standard audio DSP controls including frequency, Q factor, and gain where applicable. While parametric EQ is typically used for audio processing, this implementation raises questions about the nature of filtering in technical analysis. Why stop at simple moving averages when you can shape your signal's frequency response with surgical precision? The answer may reveal more about our assumptions than our indicators.
Filter Types and Parameters
High-Pass Filter:
A high-pass filter attenuates frequency components below its cutoff frequency while passing higher frequencies. The Q parameter controls resonance at the cutoff point, with higher values creating more pronounced peaks.
Low-Pass Filter:
The low-pass filter does the opposite - it attenuates frequencies above the cutoff while passing lower frequencies. Like the high-pass, its Q parameter affects the resonance at the cutoff frequency.
High/Low Shelf Filters:
Shelf filters boost or cut all frequencies above (high shelf) or below (low shelf) the target frequency. The slope parameter determines the steepness of the transition around the target frequency , with a value of 1.0 creating a gentle slope and lower values making the transition more abrupt. The gain parameter sets the amount of boost or cut in decibels.
Bell Filters:
Bell (or peaking) filters create a boost or cut centered around a specific frequency. A bell filter's frequency parameter determines the center point of the effect, while Q controls the width of the affected frequency range - higher Q values create a narrower bandwidth. The gain parameter defines the amount of boost or cut in decibels.
All filters run in series, processing the signal in this order: high-pass → low shelf → bell filters → high shelf → low-pass. Each stage can be independently enabled or bypassed.
The frequency parameter for all filters represents the period length of the targeted frequency component. Lower values target higher frequencies and vice versa. All gain values are in decibels, where positive values boost and negative values cut.
The 6-Band Parametric EQ combines these filters into a comprehensive frequency shaping tool. Just as audio engineers use parametric EQs to sculpt sound, this indicator lets you shape market data's frequency components with surgical precision. But beyond its technical implementation, this indicator serves as a thought experiment about the nature of filtering in technical analysis. While traditional indicators often rely on simple moving averages or single-frequency filters, the parametric EQ takes this concept to its logical extreme - offering complete control over the frequency domain of price action. Whether this level of filtering precision is useful for analysis is perhaps less important than what it reveals about our assumptions regarding market data and its frequency components.
Previous Week High & Low with middle lineDescription:
The Previous Week High & Low Indicator is a powerful tool designed to provide traders with key reference levels from the previous trading week. It dynamically calculates and plots the previous week's high, low, and midpoint levels directly on your chart, helping you identify critical support and resistance zones.
Features:
1. **Previous Week High and Low Lines**:
- The indicator displays the high and low prices of the previous trading week, allowing you to analyze price action relative to these levels.
- These lines are plotted as step lines, visible only during the active trading days (Monday to Friday), ensuring clean and uncluttered charts.
2. Midpoint Line:
- The midpoint between the previous week's high and low is calculated and displayed as a reference level.
- This white line can act as a psychological pivot point for market participants.
3. Customizable Display:
- You can toggle the visibility of the high and low lines using input options, tailoring the indicator to your preferences.
4. Precision and Aesthetics:
- The lines are plotted with precision and styled for clarity, using subtle transparency for an unobtrusive yet informative appearance.
Use Case:
- This indicator is ideal for traders who rely on historical price levels for planning entries, exits, or stop-loss placements.
- It works seamlessly with any timeframe and asset, making it versatile for various trading strategies.
How It Works:
- The indicator fetches the previous week's high and low prices using the weekly timeframe and "lookahead" mode to ensure these levels remain static after the week's close.
- The lines are plotted only on weekdays (Monday to Friday) to exclude weekend data, ensuring accuracy for markets that operate 24/5.
This tool simplifies your chart analysis and empowers you to make informed trading decisions based on historical price dynamics.
Asia Sessions AutoPlotting**Asia Sessions AutoPlotting**
This script is designed to automatically detect and plot the Asia session high and low levels directly on your chart, providing key session data for trading analysis. It is highly customizable, making it an essential tool for traders who rely on session data for decision-making.
### Key Features:
- **Asia Session Detection**: Automatically identifies the Asia session based on user-defined time settings (default: 0000-0845 UTC).
- **High/Low Line Plotting**: Displays high and low price levels for the session with customizable colors and line styles.
- **Line Extensions**: Option to extend session high/low lines for future price action reference.
- **Session Background Fill**: Adds an optional colored background to highlight the Asia session period.
- **Day Labels**: Includes labels for the session high/low levels with the corresponding day of the week.
- **Dynamic Session History**: Limits the display to a user-specified number of past sessions (default: 7) to keep the chart clean and focused.
- **Customizable Colors**: Highlights Mondays with unique colors for easy identification, while other weekdays use a different scheme.
### Use Cases:
- Identify key session levels for trading strategies.
- Monitor Asia session dynamics and their impact on subsequent sessions.
- Spot significant price reactions around session highs/lows.
### Inputs:
- **Session Time**: Adjust the session time to match your preferred Asia trading hours.
- **Toggle High/Low Lines**: Enable or disable the plotting of session highs and lows.
- **Line Extensions**: Extend the session high/low lines into future bars for better visualization.
- **Background Highlight**: Toggle a colored background for the Asia session.
- **Maximum Sessions**: Define how many past sessions to display for clarity.
This script is perfect for intraday traders, scalpers, and swing traders looking to gain insight into the Asia session and its influence on global markets. Fully adjustable and easy to use, it enhances your chart with critical information at a glance.
Simply add it to your TradingView chart, configure your settings, and let it do the work for you!
Katalyst's Opening Range BreakoutKatalyst's Opening Range Breakout + No Trade Zone
📜 Overview:
This indicator allows traders to visualize the high and low of the opening range for a user-selected timeframe (e.g., 30s, 1m, 5m, 15m). It features fully customizable lines, labels, and an optional **No Trade Zone** fill to help you identify breakout levels with ease.
---
🎯 Key Features:
1. **Customizable Opening Range**:
- Select your preferred opening range duration: **30 seconds, 1 minute, 2 minutes, 5 minutes, 10 minutes, or 15 minutes**.
- The indicator calculates and plots the **high** and **low** of the selected opening range.
2. **Dynamic Line Styling**:
- Choose the **line color**, **transparency**, and **style**: **Solid, Dashed, or Dotted**.
- Lines extend to the right of the chart for clarity.
3. **No Trade Zone** *(Optional / Disabled by default)*:
- When enabled, fills the area between the high and low lines with a customizable **color and transparency**.
- Helps visually identify consolidation areas where trading might be avoided.
4. **Labels for Precision**:
- Clearly displays the **Opening Range High** and **Low** values.
- Labels are color-coded and positioned dynamically for easy interpretation.
5. **Clean and Efficient Updates**:
- The indicator deletes old lines, labels, and fills before creating new ones, ensuring a clutter-free chart.
---
⚙️ How to Use:
1. **Select Your Timeframe**:
- From the settings, choose your desired opening range duration: 30s, 1m, 2m, 5m, 10m, or 15m.
2. **Customize the Visuals**:
- Adjust line color, style, and transparency.
- Enable the **No Trade Zone** for a transparent background fill between the high and low lines.
3. **Interpret the Breakout**:
- Watch for price movements above or below the **opening range** to identify potential breakout opportunities.
---
🛠 Settings:
Opening Range Duration: Select the timeframe for the opening range (30s, 1m, 2m, 5m, 10m, 15m).
Line Color: Set the color of the range lines.
Line Transparency: Adjust the transparency of the lines (0 = solid, 100 = invisible).
Line Style: Choose line style: Solid, Dashed, or Dotted.
Label Colors: Customize the label colors for the high and low values.
Enable No Trade Zone: Fill the area between high and low lines with a transparent color.
No Trade Zone Color: Set the fill color for the no trade zone.
No Trade Zone Transparency: Adjust the transparency of the no trade zone fill.
---
📈 Ideal For
Day traders and scalpers looking to trade **breakouts**.
Traders who want to identify areas of consolidation visually.
Anyone who relies on the **opening range** for their trading strategy.
---
🔍 Example Usage:
Set the opening range to **5 minutes** and enable the **No Trade Zone** with a light red fill.
Watch for price to break above or below the high/low lines to signal potential trade opportunities.
---
✨ Why Use This Indicator?
This script simplifies your breakout strategy by providing a clear, visually appealing representation of the opening range. The flexible customization options and the optional **No Trade Zone** make it a powerful tool for identifying high-probability trades.
---
Let me know if you need any additional tweaks or clarifications for this description. It's all set to help traders understand and use your powerful script! 🚀📈
Ensemble Alerts█ OVERVIEW
This indicator creates highly customizable alert conditions and messages by combining several technical conditions into groups , which users can specify directly from the "Settings/Inputs" tab. It offers a flexible framework for building and testing complex alert conditions without requiring code modifications for each adjustment.
█ CONCEPTS
Ensemble analysis
Ensemble analysis is a form of data analysis that combines several "weaker" models to produce a potentially more robust model. In a trading context, one of the most prevalent forms of ensemble analysis is the aggregation (grouping) of several indicators to derive market insights and reinforce trading decisions. With this analysis, traders typically inspect multiple indicators, signaling trade actions when specific conditions or groups of conditions align.
Simplifying ensemble creation
Combining indicators into one or more ensembles can be challenging, especially for users without programming knowledge. It usually involves writing custom scripts to aggregate the indicators and trigger trading alerts based on the confluence of specific conditions. Making such scripts customizable via inputs poses an additional challenge, as it often involves complicated input menus and conditional logic.
This indicator addresses these challenges by providing a simple, flexible input menu where users can easily define alert criteria by listing groups of conditions from various technical indicators in simple text boxes . With this script, you can create complex alert conditions intuitively from the "Settings/Inputs" tab without ever writing or modifying a single line of code. This framework makes advanced alert setups more accessible to non-coders. Additionally, it can help Pine programmers save time and effort when testing various condition combinations.
█ FEATURES
Configurable alert direction
The "Direction" dropdown at the top of the "Settings/Inputs" tab specifies the allowed direction for the alert conditions. There are four possible options:
• Up only : The indicator only evaluates upward conditions.
• Down only : The indicator only evaluates downward conditions.
• Up and down (default): The indicator evaluates upward and downward conditions, creating alert triggers for both.
• Alternating : The indicator prevents alert triggers for consecutive conditions in the same direction. An upward condition must be the first occurrence after a downward condition to trigger an alert, and vice versa for downward conditions.
Flexible condition groups
This script features six text inputs where users can define distinct condition groups (ensembles) for their alerts. An alert trigger occurs if all the conditions in at least one group occur.
Each input accepts a comma-separated list of numbers with optional spaces (e.g., "1, 4, 8"). Each listed number, from 1 to 35, corresponds to a specific individual condition. Below are the conditions that the numbers represent:
1 — RSI above/below threshold
2 — RSI below/above threshold
3 — Stoch above/below threshold
4 — Stoch below/above threshold
5 — Stoch K over/under D
6 — Stoch K under/over D
7 — AO above/below threshold
8 — AO below/above threshold
9 — AO rising/falling
10 — AO falling/rising
11 — Supertrend up/down
12 — Supertrend down/up
13 — Close above/below MA
14 — Close below/above MA
15 — Close above/below open
16 — Close below/above open
17 — Close increase/decrease
18 — Close decrease/increase
19 — Close near Donchian top/bottom (Close > (Mid + HH) / 2)
20 — Close near Donchian bottom/top (Close < (Mid + LL) / 2)
21 — New Donchian high/low
22 — New Donchian low/high
23 — Rising volume
24 — Falling volume
25 — Volume above average (Volume > SMA(Volume, 20))
26 — Volume below average (Volume < SMA(Volume, 20))
27 — High body to range ratio (Abs(Close - Open) / (High - Low) > 0.5)
28 — Low body to range ratio (Abs(Close - Open) / (High - Low) < 0.5)
29 — High relative volatility (ATR(7) > ATR(40))
30 — Low relative volatility (ATR(7) < ATR(40))
31 — External condition 1
32 — External condition 2
33 — External condition 3
34 — External condition 4
35 — External condition 5
These constituent conditions fall into three distinct categories:
• Directional pairs : The numbers 1-22 correspond to pairs of opposing upward and downward conditions. For example, if one of the inputs includes "1" in the comma-separated list, that group uses the "RSI above/below threshold" condition pair. In this case, the RSI must be above a high threshold for the group to trigger an upward alert, and the RSI must be below a defined low threshold to trigger a downward alert.
• Non-directional filters : The numbers 23-30 correspond to conditions that do not represent directional information. These conditions act as filters for both upward and downward alerts. Traders often use non-directional conditions to refine trending or mean reversion signals. For instance, if one of the input lists includes "30", that group uses the "Low relative volatility" condition. The group can trigger an upward or downward alert only if the 7-period Average True Range (ATR) is below the 40-period ATR.
• External conditions : The numbers 31-35 correspond to external conditions based on the plots from other indicators on the chart. To set these conditions, use the source inputs in the "External conditions" section near the bottom of the "Settings/Inputs" tab. The external value can represent an upward, downward, or non-directional condition based on the following logic:
▫ Any value above 0 represents an upward condition.
▫ Any value below 0 represents a downward condition.
▫ If the checkbox next to the source input is selected, the condition becomes non-directional . Any group that uses the condition can trigger upward or downward alerts only if the source value is not 0.
To learn more about using plotted values from other indicators, see this article in our Help Center and the Source input section of our Pine Script™ User Manual.
Group markers
Each comma-separated list represents a distinct group , where all the listed conditions must occur to trigger an alert. This script assigns preset markers (names) to each condition group to make the active ensembles easily identifiable in the generated alert messages and labels. The markers assigned to each group use the format "M", where "M" is short for "Marker" and "x" is the group number. The titles of the inputs at the top of the "Settings/Inputs" tab show these markers for convenience.
For upward conditions, the labels and alert messages show group markers with upward triangles (e.g., "M1▲"). For downward conditions, they show markers with downward triangles (e.g., "M1▼").
NOTE: By default, this script populates the "M1" field with a pre-configured list for a mean reversion group ("2,18,24,28"). The other fields are empty. If any "M*" input does not contain a value, the indicator ignores it in the alert calculations.
Custom alert messages
By default, the indicator's alert message text contains the activated markers and their direction as a comma-separated list. Users can override this message for upward or downward alerts with the two text fields at the bottom of the "Settings/Inputs" tab. When the fields are not empty , the alerts use that text instead of the default marker list.
NOTE: This script generates alert triggers, not the alerts themselves. To set up an alert based on this script's conditions, open the "Create Alert" dialog box, then select the "Ensemble Alerts" and "Any alert() function call" options in the "Condition" tabs. See the Alerts FAQ in our Pine Script™ User Manual for more information.
Condition visualization
This script offers organized visualizations of its conditions, allowing users to inspect the behaviors of each condition alongside the specified groups. The key visual features include:
1) Conditional plots
• The indicator plots the history of each individual condition, excluding the external conditions, as circles at different levels. Opposite conditions appear at positive and negative levels with the same absolute value. The plots for each condition show values only on the bars where they occur.
• Each condition's plot is color-coded based on its type. Aqua and orange plots represent opposing directional conditions, and purple plots represent non-directional conditions. The titles of the plots also contain the condition numbers to which they apply.
• The plots in the separate pane can be turned on or off with the "Show plots in pane" checkbox near the top of the "Settings/Inputs" tab. This input only toggles the color-coded circles, which reduces the graphical load. If you deactivate these visuals, you can still inspect each condition from the script's status line and the Data Window.
• As a bonus, the indicator includes "Up alert" and "Down alert" plots in the Data Window, representing the combined upward and downward ensemble alert conditions. These plots are also usable in additional indicator-on-indicator calculations.
2) Dynamic labels
• The indicator draws a label on the main chart pane displaying the activated group markers (e.g., "M1▲") each time an alert condition occurs.
• The labels for upward alerts appear below chart bars. The labels for downward alerts appear above the bars.
NOTE: This indicator can display up to 500 labels because that is the maximum allowed for a single Pine script.
3) Background highlighting
• The indicator can highlight the main chart's background on bars where upward or downward condition groups activate. Use the "Highlight background" inputs in the "Settings/Inputs" tab to enable these highlights and customize their colors.
• Unlike the dynamic labels, these background highlights are available for all chart bars, irrespective of the number of condition occurrences.
█ NOTES
• This script uses Pine Script™ v6, the latest version of TradingView's programming language. See the Release notes and Migration guide to learn what's new in v6 and how to convert your scripts to this version.
• This script imports our new Alerts library, which features functions that provide high-level simplicity for working with complex compound conditions and alerts. We used the library's `compoundAlertMessage()` function in this indicator. It evaluates items from "bool" arrays in groups specified by an array of strings containing comma-separated index lists , returning a tuple of "string" values containing the marker of each activated group.
• The script imports the latest version of the ta library to calculate several technical indicators not included in the built-in `ta.*` namespace, including Double Exponential Moving Average (DEMA), Triple Exponential Moving Average (TEMA), Fractal Adaptive Moving Average (FRAMA), Tilson T3, Awesome Oscillator (AO), Full Stochastic (%K and %D), SuperTrend, and Donchian Channels.
• The script uses the `force_overlay` parameter in the label.new() and bgcolor() calls to display the drawings and background colors in the main chart pane.
• The plots and hlines use the available `display.*` constants to determine whether the visuals appear in the separate pane.
Look first. Then leap.
Fibonacci Moving Average PlusFibonacci Moving Average Plus is a sophisticated technical indicator that employs the first 15 numbers of the Fibonacci sequence to create dynamic moving average channels. This indicator aims to capture both immediate and long-term price movements by calculating Exponential Moving Averages (EMAs) based on these Fibonacci values. By using Fibonacci-based moving averages for both high and low price points, the indicator generates a visual channel that reflects the ebb and flow of market trends, acting as potential zones of support and resistance. Additionally, the indicator provides midline, retracement, and extension levels rooted in Fibonacci ratios, which are frequently observed as key levels for reversals or trend continuation.
Ideology Behind Using Fibonacci Sequence-Based Moving Averages
The Fibonacci sequence, known for its mathematical harmony and prevalence in natural patterns, is widely utilized in technical analysis to identify potential turning points in markets. In this indicator, the first 15 Fibonacci numbers (5, 8, 13, 21, etc.) are used as the lookback periods for EMAs to capture different layers of market sentiment. These moving averages represent timeframes that are theoretically in alignment with the natural rhythms of market cycles, where key levels—often coinciding with Fibonacci numbers—can act as magnetic points for price.
The Fibonacci high and low channels aim to encapsulate price action, giving traders a sense of whether the market is trending, consolidating, or experiencing reversal pressure. These levels, grounded in both mathematics and market psychology, help traders spot areas where price might face resistance or find support.
Key Features
Fibonacci Moving Average High and Low: This indicator calculates the high and low EMAs based on Fibonacci sequence numbers (e.g., 5, 8, 13, etc.) for enhanced trend analysis.
Golden Pocket Retracement (GPR) and Extension (GPE) Bands: Displays common Fibonacci retracement and extension levels (0.618, 0.65 for retracement, and 1.618, 1.65 for extension).
Midline: Plots the average of the Fibonacci high and low to act as an additional reference level.
Stop-Loss Levels: Provides suggested stop-loss levels based on Fibonacci levels for both long and short positions.
Basic User Guide
Adjust Input Settings:
Input Timeframe: Set a specific timeframe for the Fibonacci moving average calculation, separate from the chart's primary timeframe.
Show Fibonacci MA High/Low: Toggle the visibility of the high and low Fibonacci moving averages.
Show Mid Line: Display a midline for added trend reference.
Show Golden Pocket Bands: Choose to display retracement or extension bands for potential support or resistance zones.
Show Stop-Loss Levels: Enable to visualize potential stop-loss levels for both long and short trades.
Interpretation:
Fibonacci MA High and Low: Use these lines to gauge the general trend. When the price is above both, it may indicate an uptrend; below both, a downtrend.
Golden Pocket Retracement: This zone (between 0.618 and 0.65) is often a key level for potential reversals or support/resistance.
Golden Pocket Extension: The 1.618 and 1.65 levels can indicate potential profit-taking or trend exhaustion points.
Stop-Loss Levels: The calculated stop-loss levels (long SL below and short SL above) can aid in risk management.
Customization:
You can customize the appearance and visibility of each component through the input settings to fit your specific strategy and visual preferences.
This indicator should be used alongside other technical analysis tools to provide a more comprehensive trading approach.
This Indicator would not exist without the original contributions and blessing from Sofien Kaabar
Market structureHi all!
This script shows you the market structure. You can choose to show internal market structure (with pivots of a default length of 5) and swing market structure (with pivots of a default length of 50). For these two trends it will show you:
• Break of structure (BOS)
• Change of character (CHoCH) (mandatory)
• Equal high/low (EQH/EQL)
It's inspired by "Smart Money Concepts (SMC) " by LuxAlgo that will also show you the market structure.
It will create the two market structures depending on the pivots found. Both of these market structures can be enabled/disabled. The pivots length can be configured separately. The pivots found will be the 'base' of this indicator and will show you when price breaks it. When that happens a break of structure or a change of character will be created. The latest 5 pivots found within the current trends will be kept to take action on. The internal market structure is shown with dashed lines and swing market structure is shown with solid lines.
A break of structure is removed if an earlier pivots within the same trend is broken. Like in the images below, the first pivot (in the first image) is removed when an earlier pivot's higher price within the same trend is broken (the second image):
Equal high/lows have a pink zone (by default but can be changed by the user). These zones can be configured to be extended to the right (off by default). Equal high/lows are only possible if it's not been broken by price and if a later bar has a high/low within the limit it's added to the zone (without it being more 'extreme' (high or low) then the previous price). A factor (percentage of width) of the Average True Length (of length 14) that the pivot must be within to to be considered an Equal high/low. This is configurable and sets this 'limit' and is 10 by default.
You are able to show the pivots that are used. "HH" (higher high), "HL" (higher low), "LH" (lower high), "LL" (lower low) and "H"/"L" (for pivots (high/low) when the trend has changed) are the labels used.
This script has proven itself useful for me to quickly see how the current market is. You can see the pivots (price and bar) where break of structure or change of character happens to see the current trends. I hope that you will find this useful for you.
When programming I focused on simplicity and ease of read. I did not focus on performance, I will do so if it's a problem (haven't noticed it is one yet).
You can set alerts for when a change of character happens. You can configure it to fire on when it happens (all or once per bar) but it defaults to 'once_per_bar_close' to avoid repainting. This has the drawback to alert you when the bar closes.
TLDR: this is an indicator showing you the market structure (break of structures and change of characters) using swing points/pivots. Two trends can be shown, internal (with pivots of length of 5) and swing (with pivots of the length of 50).
Best of trading luck!