Cari dalam skrip untuk "fvg"
Market Structure HighLow + Liquidity [MaB]📊 Market Structure HighLow + Liquidity
A comprehensive indicator combining precision market structure analysis with real-time liquidity zone detection.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 KEY FEATURES
• Automatic Swing Detection
Identifies structural High/Low points using a dual-confirmation system (minimum candles + pullback percentage)
• Smart Trend Tracking
Automatically switches between Uptrend (Higher Highs & Higher Lows) and Downtrend (Lower Highs & Lower Lows)
• Breakout Alerts
Visual markers for confirmed breakouts (Br↑ / Br↓) with configurable threshold
• Sequential Labeling
Clear numbered labels (L1, H2, L3, H4...) showing the exact market structure progression
• Color-Coded Structure Lines
- Green: Uptrend continuation legs
- Red: Downtrend continuation legs
- Gray: Trend inversion points
• Imbalance Zones (FVG)
Automatically detects Fair Value Gaps that form during impulsive moves between validated swing points
• Inducement Zones
Identifies potential liquidity traps - FVGs that form before breakout confirmation, often used as stop-hunt areas
• Dynamic Zone Management
Zones automatically close when price touches them, with configurable retracement sensitivity
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚙️ CONFIGURABLE PARAMETERS
Market Structure
• Analysis Start Date: Define when to begin structure analysis
• Min Confirmation Candles: Required candles for validation (default: 3)
• Pullback Percentage: Minimum retracement for confirmation (default: 10%)
• Breakout Threshold: Percentage beyond structure for breakout (default: 1%)
Liquidity
• Show Zones: Toggle visibility of imbalance and inducement zones
• Zone Colors: Customize colors for Supply/Demand imbalances and inducements
• Zone Retracement %: How deep price must enter zone to consider it touched (0-100%)
• Inactive Zones Transparency: Visual distinction for closed zones
Display
• Show Market Structure Table: Toggle info panel
• Replay Mode: Optimize for TradingView Replay feature
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎨 ZONE COLOR CODING
• 🔴 Imbalance Supply (Red): Bearish FVG - potential resistance/short entry
• 🟢 Imbalance Demand (Green): Bullish FVG - potential support/long entry
• 🟠 Inducement Supply (Orange): Pre-breakout bearish FVG - possible stop-hunt zone
• 🔵 Inducement Demand (Blue): Pre-breakout bullish FVb] - possible stop-hunt zone
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 HOW IT WORKS
1. Finds initial swing low using lookback period
2. Tracks price movement for potential High candidates
3. Validates candidates with dual criteria (candles + pullback)
4. Scans for FVG (Fair Value Gaps) between validated structure points
5. Classifies FVGs as Imbalance (post-breakout) or Inducement (pre-breakout)
6. Monitors zone interactions - closes zones when price retraces into them
7. Repeats the cycle, building complete market structure with liquidity mapping
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔧 BEST USED FOR
• Identifying key support/resistance levels with liquidity context
• Spotting potential reversal zones (imbalances)
• Avoiding stop-hunt traps (inducement awareness)
• Trend direction confirmation
• Breakout trading setups with confluence
• Multi-timeframe structure and liquidity analysis
• Understanding where institutional orders may be resting
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠️ NOTES
- Works best on higher timeframes (1H+) for cleaner structure
- Inducement zones often convert to Imbalance zones after breakout confirmation
- Zone Retracement % allows fine-tuning: 0% = first touch, 25% = quarter penetration, 100% = full traversal
- Inactive zones remain visible (faded) to show historical liquidity levels
- Use Replay Mode when backtesting to prevent buffer overflow errors
FvgCalculations█ OVERVIEW
This library provides the core calculation engine for identifying Fair Value Gaps (FVGs) across different timeframes and for processing their interaction with price. It includes functions to detect FVGs on both the current chart and higher timeframes, as well as to check for their full or partial mitigation.
█ CONCEPTS
The library's primary functions revolve around the concept of Fair Value Gaps and their lifecycle.
Fair Value Gap (FVG) Identification
An FVG, or imbalance, represents a price range where buying or selling pressure was significant enough to cause a rapid price movement, leaving an "inefficiency" in the market. This library identifies FVGs based on three-bar patterns:
Bullish FVG: Forms when the low of the current bar (bar 3) is higher than the high of the bar two periods prior (bar 1). The FVG is the space between the high of bar 1 and the low of bar 3.
Bearish FVG: Forms when the high of the current bar (bar 3) is lower than the low of the bar two periods prior (bar 1). The FVG is the space between the low of bar 1 and the high of bar 3.
The library provides distinct functions for detecting FVGs on the current (Low Timeframe - LTF) and specified higher timeframes (Medium Timeframe - MTF / High Timeframe - HTF).
FVG Mitigation
Mitigation refers to price revisiting an FVG.
Full Mitigation: An FVG is considered fully mitigated when price completely closes the gap. For a bullish FVG, this occurs if the current low price moves below or touches the FVG's bottom. For a bearish FVG, it occurs if the current high price moves above or touches the FVG's top.
Partial Mitigation (Entry/Fill): An FVG is partially mitigated when price enters the FVG's range but does not fully close it. The library tracks the extent of this fill. For a bullish FVG, if the current low price enters the FVG from above, that low becomes the new effective top of the remaining FVG. For a bearish FVG, if the current high price enters the FVG from below, that high becomes the new effective bottom of the remaining FVG.
FVG Interaction
This refers to any instance where the current bar's price range (high to low) touches or crosses into the currently unfilled portion of an active (visible and not fully mitigated) FVG.
Multi-Timeframe Data Acquisition
To detect FVGs on higher timeframes, specific historical bar data (high, low, and time of bars at indices and relative to the higher timeframe's last completed bar) is required. The requestMultiTFBarData function is designed to fetch this data efficiently.
█ CALCULATIONS AND USE
The functions in this library are typically used in a sequence to manage FVGs:
1. Data Retrieval (for MTF/HTF FVGs):
Call requestMultiTFBarData() with the desired higher timeframe string (e.g., "60", "D").
This returns a tuple of htfHigh1, htfLow1, htfTime1, htfHigh3, htfLow3, htfTime3.
2. FVG Detection:
For LTF FVGs: Call detectFvg() on each confirmed bar. It uses high , low, low , and high along with barstate.isconfirmed.
For MTF/HTF FVGs: Call detectMultiTFFvg() using the data obtained from requestMultiTFBarData().
Both detection functions return an fvgObject (defined in FvgTypes) if an FVG is found, otherwise na. They also can classify FVGs as "Large Volume" (LV) if classifyLV is true and the FVG size (top - bottom) relative to the tfAtr (Average True Range of the respective timeframe) meets the lvAtrMultiplier.
3. FVG State Updates (on each new bar for existing FVGs):
First, check for overall price interaction using fvgInteractionCheck(). This function determines if the current bar's high/low has touched or entered the FVG's currentTop or currentBottom.
If interaction occurs and the FVG is not already mitigated:
Call checkMitigation() to determine if the FVG has been fully mitigated by the current bar's currentHigh and currentLow. If true, the FVG's isMitigated status is updated.
If not fully mitigated, call checkPartialMitigation() to see if the price has further entered the FVG. This function returns the newLevel to which the FVG has been filled (e.g., currentLow for a bullish FVG, currentHigh for bearish). This newLevel is then used to update the FVG's currentTop or currentBottom.
The calling script (e.g., fvgMain.c) is responsible for storing and managing the array of fvgObject instances and passing them to these update functions.
█ NOTES
Bar State for LTF Detection: The detectFvg() function relies on barstate.isconfirmed to ensure FVG detection is based on closed bars, preventing FVGs from being detected prematurely on the currently forming bar.
Higher Timeframe Data (lookahead): The requestMultiTFBarData() function uses lookahead = barmerge.lookahead_on. This means it can access historical data from the higher timeframe that corresponds to the current bar on the chart, even if the higher timeframe bar has not officially closed. This is standard for multi-timeframe analysis aiming to plot historical HTF data accurately on a lower timeframe chart.
Parameter Typing: Functions like detectMultiTFFvg and detectFvg infer the type for boolean (classifyLV) and numeric (lvAtrMultiplier) parameters passed from the main script, while explicitly typed series parameters (like htfHigh1, currentAtr) expect series data.
fvgObject Dependency: The FVG detection functions return fvgObject instances, and fvgInteractionCheck takes an fvgObject as a parameter. This UDT is defined in the FvgTypes library, making it a dependency for using FvgCalculations.
ATR for LV Classification: The tfAtr (for MTF/HTF) and currentAtr (for LTF) parameters are expected to be the Average True Range values for the respective timeframes. These are used, if classifyLV is enabled, to determine if an FVG's size qualifies it as a "Large Volume" FVG based on the lvAtrMultiplier.
MTF/HTF FVG Appearance Timing: When displaying FVGs from a higher timeframe (MTF/HTF) on a lower timeframe (LTF) chart, users might observe that the most recent MTF/HTF FVG appears one LTF bar later compared to its appearance on a native MTF/HTF chart. This is an expected behavior due to the detection mechanism in `detectMultiTFFvg`. This function uses historical bar data from the MTF/HTF (specifically, data equivalent to `HTF_bar ` and `HTF_bar `) to identify an FVG. Therefore, all three bars forming the FVG on the MTF/HTF must be fully closed and have shifted into these historical index positions relative to the `request.security` call from the LTF chart before the FVG can be detected and displayed on the LTF. This ensures that the MTF/HTF FVG is identified based on confirmed, closed bars from the higher timeframe.
█ EXPORTED FUNCTIONS
requestMultiTFBarData(timeframe)
Requests historical bar data for specific previous bars from a specified higher timeframe.
It fetches H , L , T (for the bar before last) and H , L , T (for the bar three periods prior)
from the requested timeframe.
This is typically used to identify FVG patterns on MTF/HTF.
Parameters:
timeframe (simple string) : The higher timeframe to request data from (e.g., "60" for 1-hour, "D" for Daily).
Returns: A tuple containing: .
- htfHigh1 (series float): High of the bar at index 1 (one bar before the last completed bar on timeframe).
- htfLow1 (series float): Low of the bar at index 1.
- htfTime1 (series int) : Time of the bar at index 1.
- htfHigh3 (series float): High of the bar at index 3 (three bars before the last completed bar on timeframe).
- htfLow3 (series float): Low of the bar at index 3.
- htfTime3 (series int) : Time of the bar at index 3.
detectMultiTFFvg(htfHigh1, htfLow1, htfTime1, htfHigh3, htfLow3, htfTime3, tfAtr, classifyLV, lvAtrMultiplier, tfType)
Detects a Fair Value Gap (FVG) on a higher timeframe (MTF/HTF) using pre-fetched bar data.
Parameters:
htfHigh1 (float) : High of the first relevant bar (typically high ) from the higher timeframe.
htfLow1 (float) : Low of the first relevant bar (typically low ) from the higher timeframe.
htfTime1 (int) : Time of the first relevant bar (typically time ) from the higher timeframe.
htfHigh3 (float) : High of the third relevant bar (typically high ) from the higher timeframe.
htfLow3 (float) : Low of the third relevant bar (typically low ) from the higher timeframe.
htfTime3 (int) : Time of the third relevant bar (typically time ) from the higher timeframe.
tfAtr (float) : ATR value for the higher timeframe, used for Large Volume (LV) FVG classification.
classifyLV (bool) : If true, FVGs will be assessed to see if they qualify as Large Volume.
lvAtrMultiplier (float) : The ATR multiplier used to define if an FVG is Large Volume.
tfType (series tfType enum from no1x/FvgTypes/1) : The timeframe type (e.g., types.tfType.MTF, types.tfType.HTF) of the FVG being detected.
Returns: An fvgObject instance if an FVG is detected, otherwise na.
detectFvg(classifyLV, lvAtrMultiplier, currentAtr)
Detects a Fair Value Gap (FVG) on the current (LTF - Low Timeframe) chart.
Parameters:
classifyLV (bool) : If true, FVGs will be assessed to see if they qualify as Large Volume.
lvAtrMultiplier (float) : The ATR multiplier used to define if an FVG is Large Volume.
currentAtr (float) : ATR value for the current timeframe, used for LV FVG classification.
Returns: An fvgObject instance if an FVG is detected, otherwise na.
checkMitigation(isBullish, fvgTop, fvgBottom, currentHigh, currentLow)
Checks if an FVG has been fully mitigated by the current bar's price action.
Parameters:
isBullish (bool) : True if the FVG being checked is bullish, false if bearish.
fvgTop (float) : The top price level of the FVG.
fvgBottom (float) : The bottom price level of the FVG.
currentHigh (float) : The high price of the current bar.
currentLow (float) : The low price of the current bar.
Returns: True if the FVG is considered fully mitigated, false otherwise.
checkPartialMitigation(isBullish, currentBoxTop, currentBoxBottom, currentHigh, currentLow)
Checks for partial mitigation of an FVG by the current bar's price action.
It determines if the price has entered the FVG and returns the new fill level.
Parameters:
isBullish (bool) : True if the FVG being checked is bullish, false if bearish.
currentBoxTop (float) : The current top of the FVG box (this might have been adjusted by previous partial fills).
currentBoxBottom (float) : The current bottom of the FVG box (similarly, might be adjusted).
currentHigh (float) : The high price of the current bar.
currentLow (float) : The low price of the current bar.
Returns: The new price level to which the FVG has been filled (e.g., currentLow for a bullish FVG).
Returns na if no new partial fill occurred on this bar.
fvgInteractionCheck(fvg, highVal, lowVal)
Checks if the current bar's price interacts with the given FVG.
Interaction means the price touches or crosses into the FVG's
current (possibly partially filled) range.
Parameters:
fvg (fvgObject type from no1x/FvgTypes/1) : The FVG object to check.
Its isMitigated, isVisible, isBullish, currentTop, and currentBottom fields are used.
highVal (float) : The high price of the current bar.
lowVal (float) : The low price of the current bar.
Returns: True if price interacts with the FVG, false otherwise.
FvgTypes█ OVERVIEW
This library serves as a foundational module for Pine Script™ projects focused on Fair Value Gaps (FVGs). Its primary purpose is to define and centralize custom data structures (User-Defined Types - UDTs) and enumerations that are utilized across various components of an FVG analysis system. By providing standardized types for FVG characteristics and drawing configurations, it promotes code consistency, readability, and easier maintenance within a larger FVG indicator or strategy.
█ CONCEPTS
The library introduces several key data structures (User-Defined Types - UDTs) and an enumeration to organize Fair Value Gap (FVG) related data logically. These types are central to the functioning of FVG analysis tools built upon this library.
Timeframe Categorization (`tfType` Enum)
To manage and differentiate FVGs based on their timeframe of origin, the `tfType` enumeration is defined. It includes:
`LTF`: Low Timeframe (typically the current chart).
`MTF`: Medium Timeframe.
`HTF`: High Timeframe.
This allows for distinct logic and visual settings to be applied depending on the FVG's source timeframe.
FVG Data Encapsulation (`fvgObject` UDT)
The `fvgObject` is a comprehensive UDT designed to encapsulate all pertinent information and state for an individual Fair Value Gap throughout its lifecycle. Instead of listing every field, its conceptual structure can be understood as holding:
Core Definition: The FVG's fundamental price levels (top, bottom) and its formation time (`startTime`).
Classification Attributes: Characteristics such as its direction (`isBullish`) and whether it qualifies as a Large Volume FVG (`isLV`), along with its originating timeframe category (`tfType`).
Lifecycle State: Current status indicators including full mitigation (`isMitigated`, `mitigationTime`), partial fill levels (`currentTop`, `currentBottom`), midline interaction (`isMidlineTouched`), and overall visibility (`isVisible`).
Drawing Identifiers: References (`boxId`, `midLineId`, `mitLineLabelId`, etc.) to the actual graphical objects drawn on the chart to represent the FVG and its components.
Optimization Cache: Previous-bar state values (`prevIsMitigated`, `prevCurrentTop`, etc.) crucial for optimizing drawing updates by avoiding redundant operations.
This comprehensive structure facilitates easy access to all FVG-related information through a single object, reducing code complexity and improving manageability.
Drawing Configuration (`drawSettings` UDT)
The `drawSettings` UDT centralizes all user-configurable parameters that dictate the visual appearance of FVGs across different timeframes. It's typically populated from script inputs and conceptually groups settings for:
General Behavior: Global FVG classification toggles (e.g., `shouldClassifyLV`) and general display rules (e.g., `shouldHideMitigated`).
FVG Type Specific Colors: Colors for standard and Large Volume FVGs, both active and mitigated (e.g., `lvBullColor`, `mitigatedBearBoxColor`).
Timeframe-Specific Visuals (LTF, MTF, HTF): Detailed parameters for each timeframe category, covering FVG boxes (visibility, colors, extension, borders, labels), midlines (visibility, style, color), and mitigation lines (visibility, style, color, labels, persistence after mitigation).
Contextual Information: The current bar's time (`currentTime`) for accurate positioning of time-dependent drawing elements and timeframe display strings (`tfString`, `mtfTfString`, `htfTfString`).
This centralized approach allows for extensive customization of FVG visuals and simplifies the management of drawing parameters within the main script. Such centralization also enhances the maintainability of the visual aspects of the FVG system.
█ NOTES
User-Defined Types (UDTs): This library extensively uses UDTs (`fvgObject`, `drawSettings`) to group related data. This improves code organization and makes it easier to pass complex data between functions and libraries.
Mutability and Reference Behavior of UDTs: When UDT instances are passed to functions or methods in other libraries (like `fvgObjectLib`), those functions might modify the fields of the passed object if they are not explicitly designed to return new instances. This is because UDTs are passed by reference and are mutable in Pine Script™. Users should be aware of this standard behavior to prevent unintended side effects.
Optimization Fields: The `prev_*` fields in `fvgObject` are crucial for performance optimization in the drawing logic. They help avoid unnecessary redrawing of FVG elements if their state or relevant settings haven't changed.
No Direct Drawing Logic: `FvgTypes` itself does not contain any drawing logic. It solely defines the data structures. The actual drawing and manipulation of these objects are handled by other libraries (e.g., `fvgObjectLib`).
Centralized Definitions: By defining these types in a separate library, any changes to the structure of FVG data or settings can be made in one place, ensuring consistency across all dependent scripts and libraries.
█ EXPORTED TYPES
fvgObject
fvgObject Represents a Fair Value Gap (FVG) object.
Fields:
top (series float) : The top price level of the FVG.
bottom (series float) : The bottom price level of the FVG.
startTime (series int) : The start time (timestamp) of the bar where the FVG formed.
isBullish (series bool) : Indicates if the FVG is bullish (true) or bearish (false).
isLV (series bool) : Indicates if the FVG is a Large Volume FVG.
tfType (series tfType) : The timeframe type (LTF, MTF, HTF) to which this FVG belongs.
isMitigated (series bool) : Indicates if the FVG has been fully mitigated.
mitigationTime (series int) : The time (timestamp) when the FVG was mitigated.
isVisible (series bool) : The current visibility status of the FVG, typically managed by drawing logic based on filters.
isMidlineTouched (series bool) : Indicates if the price has touched the FVG's midline (50% level).
currentTop (series float) : The current top level of the FVG after partial fills.
currentBottom (series float) : The current bottom level of the FVG after partial fills.
boxId (series box) : The drawing ID for the main FVG box.
mitigatedBoxId (series box) : The drawing ID for the box representing the partially filled (mitigated) area.
midLineId (series line) : The drawing ID for the FVG's midline.
mitLineId (series line) : The drawing ID for the FVG's mitigation line.
boxLabelId (series label) : The drawing ID for the FVG box label.
mitLineLabelId (series label) : The drawing ID for the mitigation line label.
testedBoxId (series box) : The drawing ID for the box of a fully mitigated (tested) FVG, if kept visible.
keptMitLineId (series line) : The drawing ID for a mitigation line that is kept after full mitigation.
prevIsMitigated (series bool) : Stores the isMitigated state from the previous bar for optimization.
prevCurrentTop (series float) : Stores the currentTop value from the previous bar for optimization.
prevCurrentBottom (series float) : Stores the currentBottom value from the previous bar for optimization.
prevIsVisible (series bool) : Stores the visibility status from the previous bar for optimization (derived from isVisibleNow passed to updateDrawings).
prevIsMidlineTouched (series bool) : Stores the isMidlineTouched status from the previous bar for optimization.
drawSettings
drawSettings A structure containing settings for drawing FVGs.
Fields:
shouldClassifyLV (series bool) : Whether to classify FVGs as Large Volume (LV) based on ATR.
shouldHideMitigated (series bool) : Whether to hide FVG boxes once they are fully mitigated.
currentTime (series int) : The current bar's time, used for extending drawings.
lvBullColor (series color) : Color for Large Volume Bullish FVGs.
mitigatedLvBullColor (series color) : Color for mitigated Large Volume Bullish FVGs.
lvBearColor (series color) : Color for Large Volume Bearish FVGs.
mitigatedLvBearColor (series color) : Color for mitigated Large Volume Bearish FVGs.
shouldShowBoxes (series bool) : Whether to show FVG boxes for the LTF.
bullBoxColor (series color) : Color for LTF Bullish FVG boxes.
mitigatedBullBoxColor (series color) : Color for mitigated LTF Bullish FVG boxes.
bearBoxColor (series color) : Color for LTF Bearish FVG boxes.
mitigatedBearBoxColor (series color) : Color for mitigated LTF Bearish FVG boxes.
boxLengthBars (series int) : Length of LTF FVG boxes in bars (if not extended).
shouldExtendBoxes (series bool) : Whether to extend LTF FVG boxes to the right.
shouldShowCurrentTfBoxLabels (series bool) : Whether to show labels on LTF FVG boxes.
shouldShowBoxBorder (series bool) : Whether to show a border for LTF FVG boxes.
boxBorderWidth (series int) : Border width for LTF FVG boxes.
boxBorderStyle (series string) : Border style for LTF FVG boxes (e.g., line.style_solid).
boxBorderColor (series color) : Border color for LTF FVG boxes.
shouldShowMidpoint (series bool) : Whether to show the midline (50% level) for LTF FVGs.
midLineWidthInput (series int) : Width of the LTF FVG midline.
midpointLineStyleInput (series string) : Style of the LTF FVG midline.
midpointColorInput (series color) : Color of the LTF FVG midline.
shouldShowMitigationLine (series bool) : Whether to show the mitigation line for LTF FVGs.
(Line always extends if shown)
mitLineWidthInput (series int) : Width of the LTF FVG mitigation line.
mitigationLineStyleInput (series string) : Style of the LTF FVG mitigation line.
mitigationLineColorInput (series color) : Color of the LTF FVG mitigation line.
shouldShowCurrentTfMitLineLabels (series bool) : Whether to show labels on LTF FVG mitigation lines.
currentTfMitLineLabelOffsetX (series float) : The horizontal offset value for the LTF mitigation line's label.
shouldKeepMitigatedLines (series bool) : Whether to keep showing mitigation lines of fully mitigated LTF FVGs.
mitigatedMitLineColor (series color) : Color for kept mitigation lines of mitigated LTF FVGs.
tfString (series string) : Display string for the LTF (e.g., "Current TF").
shouldShowMtfBoxes (series bool) : Whether to show FVG boxes for the MTF.
mtfBullBoxColor (series color) : Color for MTF Bullish FVG boxes.
mtfMitigatedBullBoxColor (series color) : Color for mitigated MTF Bullish FVG boxes.
mtfBearBoxColor (series color) : Color for MTF Bearish FVG boxes.
mtfMitigatedBearBoxColor (series color) : Color for mitigated MTF Bearish FVG boxes.
mtfBoxLengthBars (series int) : Length of MTF FVG boxes in bars (if not extended).
shouldExtendMtfBoxes (series bool) : Whether to extend MTF FVG boxes to the right.
shouldShowMtfBoxLabels (series bool) : Whether to show labels on MTF FVG boxes.
shouldShowMtfBoxBorder (series bool) : Whether to show a border for MTF FVG boxes.
mtfBoxBorderWidth (series int) : Border width for MTF FVG boxes.
mtfBoxBorderStyle (series string) : Border style for MTF FVG boxes.
mtfBoxBorderColor (series color) : Border color for MTF FVG boxes.
shouldShowMtfMidpoint (series bool) : Whether to show the midline for MTF FVGs.
mtfMidLineWidthInput (series int) : Width of the MTF FVG midline.
mtfMidpointLineStyleInput (series string) : Style of the MTF FVG midline.
mtfMidpointColorInput (series color) : Color of the MTF FVG midline.
shouldShowMtfMitigationLine (series bool) : Whether to show the mitigation line for MTF FVGs.
(Line always extends if shown)
mtfMitLineWidthInput (series int) : Width of the MTF FVG mitigation line.
mtfMitigationLineStyleInput (series string) : Style of the MTF FVG mitigation line.
mtfMitigationLineColorInput (series color) : Color of the MTF FVG mitigation line.
shouldShowMtfMitLineLabels (series bool) : Whether to show labels on MTF FVG mitigation lines.
mtfMitLineLabelOffsetX (series float) : The horizontal offset value for the MTF mitigation line's label.
shouldKeepMtfMitigatedLines (series bool) : Whether to keep showing mitigation lines of fully mitigated MTF FVGs.
mtfMitigatedMitLineColor (series color) : Color for kept mitigation lines of mitigated MTF FVGs.
mtfTfString (series string) : Display string for the MTF (e.g., "MTF").
shouldShowHtfBoxes (series bool) : Whether to show FVG boxes for the HTF.
htfBullBoxColor (series color) : Color for HTF Bullish FVG boxes.
htfMitigatedBullBoxColor (series color) : Color for mitigated HTF Bullish FVG boxes.
htfBearBoxColor (series color) : Color for HTF Bearish FVG boxes.
htfMitigatedBearBoxColor (series color) : Color for mitigated HTF Bearish FVG boxes.
htfBoxLengthBars (series int) : Length of HTF FVG boxes in bars (if not extended).
shouldExtendHtfBoxes (series bool) : Whether to extend HTF FVG boxes to the right.
shouldShowHtfBoxLabels (series bool) : Whether to show labels on HTF FVG boxes.
shouldShowHtfBoxBorder (series bool) : Whether to show a border for HTF FVG boxes.
htfBoxBorderWidth (series int) : Border width for HTF FVG boxes.
htfBoxBorderStyle (series string) : Border style for HTF FVG boxes.
htfBoxBorderColor (series color) : Border color for HTF FVG boxes.
shouldShowHtfMidpoint (series bool) : Whether to show the midline for HTF FVGs.
htfMidLineWidthInput (series int) : Width of the HTF FVG midline.
htfMidpointLineStyleInput (series string) : Style of the HTF FVG midline.
htfMidpointColorInput (series color) : Color of the HTF FVG midline.
shouldShowHtfMitigationLine (series bool) : Whether to show the mitigation line for HTF FVGs.
(Line always extends if shown)
htfMitLineWidthInput (series int) : Width of the HTF FVG mitigation line.
htfMitigationLineStyleInput (series string) : Style of the HTF FVG mitigation line.
htfMitigationLineColorInput (series color) : Color of the HTF FVG mitigation line.
shouldShowHtfMitLineLabels (series bool) : Whether to show labels on HTF FVG mitigation lines.
htfMitLineLabelOffsetX (series float) : The horizontal offset value for the HTF mitigation line's label.
shouldKeepHtfMitigatedLines (series bool) : Whether to keep showing mitigation lines of fully mitigated HTF FVGs.
htfMitigatedMitLineColor (series color) : Color for kept mitigation lines of mitigated HTF FVGs.
htfTfString (series string) : Display string for the HTF (e.g., "HTF").
Morning ORB FVG Trigger✅ Overview
Morning ORB FVG Trigger is a complete intraday trading framework built around:
A Morning Opening Range Breakout (ORB)
The first Fair Value Gap (FVG) after that breakout
Strict risk management and position sizing
Optional HTF trend filter (Daily / Weekly / Monthly)
Optional Daily ATR filter to avoid extreme days
The script is designed for futures / indices / FX on intraday charts up to 15 minutes and for traders who want a clean, mechanical entry framework with clear risk.
🧠 Core idea
Define a morning opening range (e.g. 09:30–09:45).
Wait for a clean breakout above/below that range.
After the breakout, wait for the first FVG in breakout direction,
confirmed by the next candle (no immediate full reclaim).
Use a chosen stop logic + R:R factor to build risk/reward boxes.
Calculate position size based on your account risk.
(Optional) Only take trades:
In the direction of the HTF EMA trend (D/W/M).
On days where the morning range is within a band of the Daily ATR.
You can also disable all signals/boxes and use the script just as a visual ORB tool.
⏰ 1. ORB / Morning Range
Inputs (Main section)
Morning Range Session
Time window of the opening range in exchange time
Example: 09:30–09:45 for a 15-minute ORB.
You can type custom ranges (e.g. 09:30–09:35 for a 5-minute ORB).
Risk/Reward (TP factor)
Multiplier for the take-profit distance relative to the stop.
2.0 = TP is 2× the stop distance
1.5 = TP is 1.5× the stop distance
Show ORB range
If enabled, draws:
ORB high/low lines
ORB labels (e.g. 15min ORB high / low)
Optional midline
Extend ORB lines to the right (bars)
How many bars to extend the ORB high/low horizontally beyond the ORB itself.
Trade box width (bars)
Horizontal width (in bars) of:
Red risk box (entry–stop)
Green reward box (entry–TP)
Implementation details
The ORB is always calculated on 1-minute data internally, so it stays precise even on 5m/15m charts.
The script only works on intraday timeframes up to 15 minutes.
📦 2. FVG Block
Group: “FVG”
Threshold %
Minimum size of an FVG in % of price.
0 = every FVG
Higher values = only larger gaps
Auto threshold (from volatility)
If enabled, the minimum FVG size is derived from historical volatility
instead of a fixed percentage.
Allow breakout FVG partly inside ORB
Off (default): the FVG must lie fully outside the ORB.
On: the breakout FVG itself may still overlap the ORB a bit,
as long as it is the first one attached to the breakout move.
Enable FVG entry signals, boxes & alerts
On: full system – FVG detection, entry labels, risk/TP boxes, alerts.
Off: no entries, no risk/TP boxes, no alerts.
You only get the ORB and (optionally) the HTF dashboard, so you can trade your own setups.
Entry mode
Entry mode (Mid / Edge / NextOpen)
Mid – Entry at the midpoint of the FVG.
Edge – Long at the upper FVG edge, short at the lower FVG edge.
NextOpen – No limit order in the gap. Entry is placed at the next bar open after FVG confirmation.
Edge offset (ticks)
Additional offset for Edge entries:
Long:
+ticks = a bit above the FVG (more conservative)
-ticks = deeper into the FVG (more aggressive)
Short:
+ticks = a bit below the FVG
-ticks = deeper into the FVG
FVG detection logic
Uses a LuxAlgo-style 3-candle FVG pattern (gap between candle 1 and 3).
Only one FVG is taken: the first valid FVG after the ORB breakout in breakup direction.
The FVG candle is the middle bar; the script:
Detects the FVG on the previous bar.
Waits for the current bar to confirm it:
Bullish: current low must stay above the lower FVG boundary
Bearish: current high must stay below the upper FVG boundary
Only then an entry signal is generated.
🛑 3. Stop Logic
Group: “Stop Logic”
Stop mode (PrevBar / Pivot / FVG Candle)
PrevBar – Stop at the low/high of the candle before the FVG
(tight/aggressive).
FVG Candle – Stop at the low/high of the FVG candle itself
(medium).
Pivot – Stop at the most recent swing high/low
using pivotLeft / pivotRight pivots (more conservative).
Ticks (stop buffer)
Offset (in ticks) from the selected stop level.
> 0 = further away (more room, more risk)
< 0 = closer (tighter stop)
Pivot left / Pivot right
Number of candles left/right to define a swing high/low
when using Pivot stop mode.
Typical intraday values: 2–3.
The script also sanity-checks the stop:
if the calculated stop would be invalid (e.g. above entry in a long), it moves it by a minimal distance (2 ticks) to keep a valid risk.
📈 4. HTF Trend Filter (Daily / Weekly / Monthly)
Group: “HTF Trend Filter”
Enable HTF trend filter
If enabled, trades are only allowed:
Long when at least 2 of D/W/M closes are above their EMA
Short when at least 2 of D/W/M closes are below their EMA
EMA length (D/W/M)
EMA length for all three higher timeframes (Daily, Weekly, Monthly).
This helps focus entries in the direction of the dominant higher-timeframe trend.
📊 5. ATR Filter (Daily)
Group: “ATR Filter (Daily)”
Use daily ATR filter
If enabled, the height of the ORB (ORB high – ORB low) must be within
a band of the Daily ATR to allow any signals.
Daily ATR length
ATR period on the Daily timeframe.
Min ORB size vs ATR
Lower bound:
Example: 0.3 → ORB must be at least 0.3 × Daily ATR
0.0 = no minimum.
Max ORB size vs ATR
Upper bound:
Example: 1.5 → ORB must be ≤ 1.5 × Daily ATR
0.0 = no maximum.
If the ORB is too small (choppy) or too large (exhausted move), no breakout or FVG signal will be generated on that day.
🧭 6. HTF Dashboard & Signal Labels
Group: “HTF Trend Dashboard”
Show HTF dashboard
Draws a small label at the top of the chart showing:
HTF Trend (EMA X)
D: UP/FLAT/DOWN
W: UP/FLAT/DOWN
M: UP/FLAT/DOWN
Dashboard position
Top Right, Top Center, Top Left – places the dashboard at the top.
Over Risk Info – no top dashboard; instead, the HTF trend info is shown as a label near the risk box when a new signal appears.
Lookback (bars) for top anchor
How many bars to use to determine the top price level for dashboard placement.
Show HTF trend above risk box on signal
Only relevant if Dashboard position = Over Risk Info.
When enabled, a small HTF label appears near the risk box for each new trade.
Signal label vertical offset (ticks)
Vertical spacing between risk info label and HTF label.
Minimum spacing HTF/Risk (ticks)
Ensures a minimum vertical distance so the two labels don’t overlap.
HTF signal label X offset (bars)
Horizontal offset (left/right) relative to the risk info label.
⏳ 7. ORB–FVG Filters (Session & Time Window)
Group: “ORB FVG Filter”
Only same session day
If enabled, FVG entries are only allowed on the same calendar day
as the ORB. When the date changes, all state & drawings are reset.
Limit hours after ORB
Enables a time window after the ORB end.
Trading window after ORB (hours)
Length of that window in hours.
Example: 2.0 → FVG signals only in the first 2 hours after ORB end.
💰 8. Risk Management & Position Sizing
Group: “Risk Management”
Calculate position size
If enabled, the script computes suggested mini and micro contract size for you.
Account size
Your trading account size (in account currency).
Risk mode
Percent – risk is a % of account size (Account risk %).
Fixed amount – risk is a fixed dollar amount (Fixed risk ($)).
Account risk %
Risk per trade as a percentage of account size (e.g. 1.0 for 1%).
Fixed risk ($)
Fixed risk per trade in dollars when using Fixed amount mode.
Micro factor (vs mini)
How much a micro contract is worth relative to a mini.
Example:
0.1 → one micro moves 1/10 of one mini.
Risk Info label
For each new trade, a label is shown above the boxes with:
Stop distance in price and $ risk per mini
Max risk allowed for the trade
Suggested mini and micro size
Text like:
Suggested: 2 mini
Suggested: 5 micro
or Suggested: no trade
This makes the script especially useful for prop-firm rules or strict risk discipline.
🎨 9. Visual Style (Boxes, Labels, ORB Lines)
Group: “Box & Label Style (Trade)”
Label font size (Very small, Small, Normal, Large)
Entry label BG / text color
Stop label BG / text color
TP label BG / text color
Risk info BG / text color
Risk box color (entry–stop zone)
Reward box color (entry–TP zone)
Group: “ORB Style”
ORB high line color
ORB low line color
ORB line width
ORB label font size
ORB label background color
ORB label text color
Show ORB midline
ORB midline color / width / style (Solid / Dashed / Dotted)
⚠️ 10. Alerts
Group: “Alerts”
The script defines three alert conditions:
Long entry FVG breakout
Triggered when a new long signal appears.
Short entry FVG breakout
Triggered when a new short signal appears.
FVG entry (long/short)
Generic alert for any new signal (long or short).
To use them:
Add the indicator to the chart.
Open the Alerts dialog → “Condition”.
Select this script and one of the alert conditions.
Set your preferred expiration and notification settings.
Alerts only fire when Enable FVG entry signals, boxes & alerts is on.
🧩 11. How the trading logic flows (summary)
Build ORB on 1-minute data during the selected session.
Optionally reject the day if ORB is outside the ATR bounds.
Wait for a breakout (close above high or below low), respecting HTF trend filter.
After breakout, look for the first valid FVG in that direction:
Outside the ORB (unless breakout FVG allowed inside)
Confirmed by the next candle (no full reclaim)
Once confirmed:
Compute entry, stop, target.
Draw risk/reward boxes and all labels.
Optionally show HTF signal label over the risk info.
Trigger alerts if enabled.
If you disable FVG signals, only steps 1–3 (plus dashboard) are effectively active.
⚠️ 12. Notes & Disclaimer
Script is intended for intraday trading up to 15-minute timeframes.
All signals are mechanical and do not guarantee profitability.
Always backtest and forward-test on your own data before risking real money.
This script is for educational purposes only and is not financial advice.
🚀 Quick-start guide
Add the script to your chart
Use an intraday timeframe ≤ 15 minutes (1m, 3m, 5m, 15m).
Works best on liquid indices, futures, FX and large-cap stocks.
Set the Morning Range
In “Morning Range Session” choose the exchange’s opening window.
Examples
US index futures (CME): 08:30–08:45 or 08:30–08:35
US stocks (NYSE/Nasdaq): 09:30–09:45 or 09:30–09:35
The ORB is always calculated on 1-minute data internally, so the range stays accurate on higher intraday charts.
Keep the default filters at first
HTF Trend Filter: ON
EMA length = 20
This will only allow trades in the direction of the dominant D/W/M trend.
ATR Filter: OFF (optional; you can enable later once you’re comfortable).
Use the full trade system
In the FVG group leave
“Enable FVG entry signals, boxes & alerts” = ON
Entry mode: Mid
Stop mode: FVG Candle or PrevBar
Risk/Reward: 2.0 as a starting point.
Set your risk
Turn on “Calculate position size”.
Enter your Account size and choose either:
Risk mode = Percent (e.g. 1.0 = 1% per trade), or
Risk mode = Fixed amount (e.g. $250 per trade).
The risk info label will show:
Stop distance in price and $/contract
Max allowed risk
Suggested mini and micro contract size.
Enable alerts (optional)
Open the Alerts dialog → Condition: this script.
Choose one of:
Long entry FVG breakout
Short entry FVG breakout
FVG entry (long/short)
Choose “Once per bar” or “Once per bar close”, and your preferred notification type.
Replay & journal
Use the TradingView bar replay tool to step through past days.
Focus on:
How the ORB defines the structure.
How the first confirmed FVG outside the ORB behaves.
Whether the risk/TP levels fit your own style and product.
🎛 Recommended settings & profiles
These are starting points, not rules. Always adapt to the instrument and your own risk tolerance.
1. Conservative / Trend-following
Timeframe: 5m or 15m
Morning Range Session: 15-minute ORB around the cash or futures open
FVG
Threshold %: 0.05–0.1 (filter out very small gaps)
Auto threshold: OFF (keep it simple)
Allow breakout FVG partly inside ORB: OFF
Enable FVG entry signals/boxes/alerts: ON
Entry mode: Mid
Stop Logic
Stop mode: Pivot
Pivot left/right: 2–3
Stop buffer: +1–2 ticks
HTF Trend Filter
Enabled: ON
EMA length: 20
ATR Filter
Enabled: ON
Daily ATR length: 14
Min ORB vs ATR: 0.3–0.4
Max ORB vs ATR: 1.2–1.5
Risk Management
Risk mode: Percent
Account risk: 0.5–1.0%
Idea: Only trade when the higher-timeframe trend supports the move and the opening range is of a “normal” size for the current volatility.
2. Balanced / Intraday directional
Timeframe: 3m or 5m
FVG
Threshold %: 0.02–0.05
Auto threshold: ON (lets the script adapt to volatility)
Allow breakout FVG partly inside ORB: ON
(first breakout FVG may partly sit inside the ORB)
Entry mode: Edge
Edge offset (ticks): 0 or +1
Stop Logic
Stop mode: FVG Candle
Stop buffer: 0–1 ticks
HTF Trend Filter
Enabled: ON
ATR Filter
Enabled: OFF (optional)
Risk Management
Risk mode: Percent
Account risk: 1.0–1.5% (if this fits your plan)
Idea: Slightly more aggressive entries at the gap edge, still aligned with HTF trend, but with more flexibility on ATR.
3. Aggressive / Scalping around the ORB
Timeframe: 1m or 3m
FVG
Threshold %: 0.0–0.02
Auto threshold: ON
Allow breakout FVG partly inside ORB: ON
Entry mode: NextOpen or Edge with a negative offset (deeper into the gap)
Stop Logic
Stop mode: PrevBar
Stop buffer: 0 or -1 tick
HTF Trend Filter
Enabled: OFF (or ON but treat as soft guidance)
ATR Filter
Enabled: OFF
Risk Management
Risk mode: Percent
Account risk: lower, e.g. 0.25–0.5% per trade
Idea: More trades and tighter stops. Best for experienced traders who understand the limitations of scalping and whipsaw risk.
Final reminder
All of these are templates, not guarantees:
Always check how the system behaves on your market and session.
Start on replay and demo before trading real money.
Adjust filters (HTF, ATR, thresholds) until the signals fit your personal approach.
Entries + FVG SignalsE+FVG: A Masterclass in Institutional Trading Concepts
Chapter 1: The Modern Trader's Dilemma—Decoding the Institutional Footprint
In the vast, often chaotic ocean of the financial markets, retail traders navigate with the tools they are given: conventional indicators like moving averages, RSI, and MACD. While useful for gauging momentum and general trends, these tools often fall short because they were not designed to interpret the primary force that moves markets: institutional order flow. The modern trader faces a critical challenge: the tools and concepts taught in mainstream trading education are often decades behind the sophisticated, algorithm-driven strategies employed by banks, hedge funds, and large financial institutions.
This leads to a frustrating cycle of seemingly inexplicable price movements. A trader might see a perfect breakout from a classic pattern, only for it to reverse viciously, stopping them out. They might identify a strong trend, yet struggle to find a logical entry point, consistently feeling "late to the party." These experiences are not random; they are often the result of institutional market manipulation designed to engineer liquidity.
The fundamental problem that E+FVG (Entries + FVG Signals) addresses is this informational asymmetry. It is a sophisticated, institutional-grade framework designed to move a trader's perspective from a retail mindset to a professional one. It does not rely on lagging, derivative indicators. Instead, it focuses on the two core elements of price action that reveal the true intentions of "Smart Money": liquidity and imbalances.
This is not merely another indicator to add to a chart; it is a complete analytical engine designed to help you see the market through a new lens. It deconstructs price action to pinpoint two critical things:
Where institutions are likely to hunt for liquidity (running stop-loss orders).
The specific price inefficiencies (Fair Value Gaps) they are likely to target.
By focusing on these core principles, E+FVG provides a logical, rules-based solution to identifying high-probability trade setups. It is built for the discerning trader who is ready to evolve beyond conventional technical analysis and learn a methodology that is aligned with how the market truly operates at an institutional level. It is, in essence, an operating system for "Smart Money" trading.
Chapter 2: The Core Philosophy—Liquidity is the Fuel, Imbalances are the Destination
To fully grasp the power of this tool, one must first understand its foundational philosophy, which is rooted in the core tenets of institutional trading, often referred to as Smart Money Concepts (SMC). This philosophy can be distilled into two simple, powerful ideas:
1. Liquidity is the Fuel that Moves the Market:
The market does not move simply because there are more buyers than sellers, or vice-versa. It moves to seek liquidity. Large institutions cannot simply click "buy" or "sell" to enter or exit their multi-million or billion-dollar positions. Doing so would cause massive slippage and alert the entire market to their intentions. Instead, they must strategically accumulate and distribute their positions in areas where there is a high concentration of orders.
Where are these orders located? They are clustered in predictable places: above recent swing highs (buy-stop orders from shorts, and breakout buy orders) and below recent swing lows (sell-stop orders from longs, and breakout sell orders). This collective pool of orders is called liquidity. Institutions will often drive price towards these liquidity pools in a "stop hunt" or "liquidity grab" to trigger those orders, creating the necessary volume for them to fill their own large positions, often in the opposite direction of the liquidity grab itself. Understanding this concept is the key to avoiding being the "fuel" and instead learning to trade alongside the institutions.
2. Imbalances (Fair Value Gaps) are the Magnets for Price:
When institutions enter the market with overwhelming force, they create an imbalance in the order book. This energetic, one-sided price movement often leaves behind a gap in the market's pricing mechanism. On a candlestick chart, this appears as a Fair Value Gap (FVG)—a three-candle formation where the wicks of the first and third candles do not fully overlap the range of the middle candle.
These are not random gaps; they represent an inefficiency in the market's price delivery. The market, in its constant quest for equilibrium, has a natural tendency to revisit these inefficiently priced areas to "rebalance" the order book. Therefore, FVGs act as powerful magnets for price. They serve as high-probability targets for a price move and, critically, as logical points of interest where price may reverse after filling the imbalance. A fresh, unfilled FVG is one of the most significant clues an institution leaves behind.
E+FVG is built entirely on this philosophy. The "Entries Simplified" engine is designed to identify the liquidity grabs, and the "FVG Signals" engine is designed to identify the imbalances. Together, they provide a complete, synergistic framework for institutional-grade analysis.
Chapter 3: The Engine, Part I—"Entries Simplified": A Framework for Precision Entry
This is the primary trade-spotting engine of the E+FVG tool. It is a multi-layered system designed to identify a very specific, high-probability entry model based on institutional behavior. It filters out market noise by focusing solely on the sequence of a liquidity sweep followed by a clear and energetic displacement.
Feature 1: The Multi-Timeframe Liquidity Engine
The first and most crucial step in the engine's logic is to identify a valid liquidity grab. The script understands that the most significant reversals are often initiated after price has swept a key high or low from a higher timeframe. A sweep of yesterday's high holds far more weight than a sweep of the last 5-minute high.
Automatic Timeframe Adaptation: The engine intelligently analyzes your current chart's timeframe and automatically selects an appropriate higher timeframe (HTF) for its core analysis. For instance, if you are on a 15-minute chart, it might reference the 4-hour or Daily chart to identify key structural points. This is done seamlessly in the background, ensuring the analysis is always anchored to a significant structural context without requiring manual input.
The "Sweep" Condition: The script is not looking for a simple touch of a high or low. It is looking for a definitive sweep (also known as a "stop hunt" or "Judas swing"). This is defined as price pushing just beyond a key prior candle's high or low and then closing back within its range. This specific price action pattern is a classic signature of a liquidity grab, indicating that the move's purpose was to trigger stops, not to start a new, sustained trend. The "Entries Simplified" engine is constantly scanning the HTF price action for these sweep events, as they are the necessary precondition for any potential setup.
Feature 2: The Upshift/Downshift Signal—Confirming the Reversal
Once a valid HTF liquidity sweep has occurred, the engine moves to its next phase: identifying the confirmation. A sweep alone is not enough; institutions must show their hand and reveal their intention to reverse the market. This confirmation comes in the form of a powerful structural breakout (for bullish reversals) or breakdown (for bearish reversals). We call these events Upshifts and Downshifts.
Defining the Upshift & Downshift: This is the critical moment of confirmation, the market "tipping its hand."
An Upshift occurs after a liquidity sweep below a key low. Following the sweep, price reverses with energy and produces a decisive breakout to the upside, closing above a recent, valid swing high. This action confirms that the prior downtrend's momentum is broken, the downward move was a trap to engineer liquidity, and institutional buyers are now in aggressive control.
A Downshift occurs after a liquidity sweep above a key high. Following the sweep, price reverses aggressively and produces a sharp breakdown to the downside, closing below a recent, valid swing low. This confirms that the prior uptrend's momentum has failed, the upward move was a liquidity grab, and institutional sellers have now taken control of the market.
Algorithmic Identification: The E+FVG engine uses a proprietary algorithm to identify these moments. It analyzes the candle sequence immediately following a sweep, looking for a specific type of market structure break characterized by high energy and displacement—often leaving imbalances (Fair Value Gaps) in its wake. This is not a simple "pivot break"; the algorithm is designed to distinguish between a weak, indecisive wiggle and a true, institutionally-backed Upshift or Downshift.
The Signal: When this precise sequence—a HTF liquidity sweep followed by a valid Upshift or Downshift on the trading timeframe—is confirmed, the indicator plots a clear arrow on the chart. A green arrow below a low signifies a Bullish setup (confirmed by an Upshift), while a red arrow above a high signifies a Bearish setup (confirmed by a Downshift). This is the core entry signal of the "Entries Simplified" engine.
Feature 3: Automated Price Projections—A Built-In Trade Management Framework
A valid entry signal is only one part of a successful trade. A trader also needs a logical framework for taking profits. The E+FVG engine completes its trade-spotting process by providing automated, mathematically-derived price projections.
Fibonacci-Based Logic: After a valid Upshift or Downshift signal is generated, the script analyzes the price leg that created the setup (i.e., the range from the liquidity sweep to the confirmation breakout/breakdown). It then uses a methodology based on standard Fibonacci extension principles to project several potential take-profit (TP) levels.
Multiple TP Levels: The indicator projects four distinct TP levels (TP1, TP2, TP3, TP4). This provides a comprehensive trade management framework. A conservative trader might aim for TP1 or TP2, while a more aggressive trader might hold a partial position for the higher targets. These levels are plotted on the chart as clear, labeled lines, removing the guesswork from profit-taking.
Dynamic and Adaptive: These projections are not static. They are calculated uniquely for each individual setup, based on the specific volatility and range of the price action that generated the signal. This ensures that the take-profit targets are always relevant to the current market conditions.
The "Entries Simplified" engine, therefore, provides a complete, end-to-end framework: it waits for a high-probability condition (HTF sweep), confirms it with a specific entry model (Upshift/Downshift), and provides a logical road map for managing the trade (automated projections).
Chapter 4: The Engine, Part II—"FVG Signals": Mapping Market Inefficiencies
This second, complementary engine of the E+FVG tool operates as a market mapping system. Its sole purpose is to identify, plot, and monitor Fair Value Gaps (FVGs)—the critical price inefficiencies that act as magnets and potential reversal points.
Feature 1: Dual Timeframe FVG Detection
The significance of an FVG is directly related to the timeframe on which it forms. A 1-hour FVG is a more powerful magnet for price than a 1-minute FVG. The FVG engine gives you the ability to monitor both simultaneously, providing a richer, multi-dimensional view of the market's inefficiencies.
Chart TF FVGs: The indicator will, by default, identify and plot the FVGs that form on your current, active chart timeframe. These are useful for short-term scalping and for fine-tuning entries.
Higher Timeframe (HTF) FVGs: With a single click, you can enable the HTF FVG detection. This allows you to overlay, for example, 1-hour FVGs onto your 5-minute chart. This is an incredibly powerful feature. Seeing a 5-minute price rally approaching a fresh, unfilled 1-hour bearish FVG gives you a high-probability context for a potential reversal. The HTF FVGs act as major points of interest that can override the short-term price action.
Feature 2: The Intelligent "Tap-In" Logic—Beyond a Simple Touch
Many FVG indicators will simply alert you when price touches an FVG. The E+FVG engine employs a more sophisticated, two-stage logic to generate its signals, which helps to filter out weak reactions and focus on confirmed reversals.
Stage 1: The Entry. The first event is when price simply enters the FVG zone. This is a "heads-up" moment, and the indicator can be configured to provide an initial alert for this event.
Stage 2: The Confirmed "Tap-In." The official signal, however, is the "Tap-In." This is a more stringent condition. For a bullish FVG, a Tap-In is only confirmed after price has touched or entered the FVG zone and then closed back above the FVG's high. For a bearish FVG, the price must touch or enter the zone and then close back below the FVG's low. This confirmation logic ensures that the FVG has not just been touched, but has been respected and rejected by the market, making the resulting arrow signal significantly more reliable than a simple touch alert.
Feature 3: Interactive and Clean Visuals
The FVG engine is designed to provide maximum information with minimum chart clutter.
Clear, Color-Coded Boxes: Bullish FVGs are plotted in one color (e.g., green or blue), and bearish FVGs in another (e.g., red or orange), with a clear distinction between Chart TF and HTF zones.
Optional Box Display: Recognizing that some traders prefer a cleaner chart, you have the option to hide the FVG boxes entirely. Even with the boxes hidden, the underlying logic remains active, and the script will still generate the crucial Tap-In arrow signals.
Automatic Fading: Once an FVG has been successfully "tapped," the script can be set to automatically fade the color of the box. This provides a clear visual cue that the zone has been tested and may have less significance going forward.
Expiration: FVGs do not remain relevant forever. The script automatically removes old FVG boxes from the chart after a user-defined number of bars, ensuring your analysis is always focused on the most recent and relevant market inefficiencies.
Chapter 5: The Power of Synergy—How the Two Engines Work Together
While both the "Entries Simplified" engine and the "FVG Signals" engine are powerful standalone tools, their true potential is unlocked when used in combination. They are designed to provide confluence—a scenario where two or more independent analytical concepts align to produce a single, high-conviction trade idea.
Scenario A: The A+ Setup (Upshift into FVG). This is the highest probability setup. Imagine the "Entries Simplified" engine detects a HTF liquidity sweep below a key low, followed by a bullish Upshift signal. You look at your chart and see that this strong upward displacement is heading directly towards a fresh, unfilled bearish HTF FVG. This provides you with both a high-probability entry signal and a logical, high-probability target for the trade.
Scenario B: The FVG Confirmation. A trader might see the "Entries Simplified" engine generate a bearish Downshift signal. They feel it is a valid setup but want one extra layer of confirmation. They wait for price to rally a little further and "tap-in" to a nearby bearish FVG that formed during the Downshift's displacement. The FVG Tap-In signal then serves as their final confirmation trigger to enter the trade.
Scenario C: The Standalone FVG Trade. The FVG engine can also be used as a primary trading tool. A trader might notice that price is in a strong uptrend. They see price pulling back towards a fresh, bullish HTF FVG. They are not waiting for a full Upshift/Downshift setup; instead, they are simply waiting for the FVG Tap-In signal to confirm that the pullback is likely over and the trend is ready to resume.
By learning to read the interplay between these two engines, a trader can elevate their analysis from a one-dimensional process to a multi-dimensional, context-aware methodology.
Chapter 6: The Workflow—A Step-by-Step Guide to Practical Application
Step 1: The Pre-Market Analysis (Mapping the Battlefield). Before your session begins, enable the HTF FVG detection. Identify the key, unfilled HTF FVGs above and below the current price. These are your major points of interest for the day—your potential targets and reversal zones.
Step 2: Await the Primary Condition (Patience for Liquidity). During your trading session, your primary focus should be on the "Entries Simplified" engine. Your job is to wait patiently for the script to identify a valid HTF liquidity sweep. Do not force trades in the middle of a price range where no significant liquidity has been taken.
Step 3: The Upshift/Downshift Alert (The Call to Action). When the red or green arrow from the "Entries Simplified" engine appears, it is your cue to focus your attention. This is a potential high-probability setup.
Step 4: The Confluence Check (Building Conviction). With the Upshift or Downshift signal on your chart, ask the key confluence questions:
Did the displacement from the Upshift/Downshift create a new FVG?
Is the projected path of the trade heading towards a pre-identified HTF FVG?
Has an FVG Tap-In signal appeared shortly after the initial signal, offering further confirmation?
Step 5: Execute and Manage. If you have sufficient confluence, execute the trade. Use the automated price projections as your guide for profit-taking. A logical stop-loss is typically placed just beyond the high or low of the liquidity sweep that initiated the entire sequence.
Chapter 7: The Trader's Mind—Mastering the Institutional Mindset
This tool is more than a set of algorithms; it is a training system for professional trading psychology.
From Chasing to Trapping: You stop chasing breakouts and instead learn to identify where others are being trapped.
From FOMO to Patience: The strict, sequential logic of the entry model (Sweep -> Upshift/Downshift) forces you to wait for the highest quality setups, curing the Fear Of Missing Out.
Probabilistic Thinking: By focusing on liquidity and imbalances, you begin to think in terms of probabilities, not certainties. You understand that you are putting on trades where the odds are statistically in your favor, which is the cornerstone of any professional trading career.
Clarity and Confidence: The clear, rules-based signals remove ambiguity and second-guessing. This builds the confidence needed to execute trades decisively when the opportunity arises.
Chapter 8: Frequently Asked Questions & Scenarios
Q: The "Entries Simplified" code looks complex. Do I need to understand all of it?
A: No. The engine is designed to perform its complex analysis in the background. Your job is to understand the principles—liquidity sweep and the resulting Upshift or Downshift—and to recognize the clear arrow signals that the script generates when those conditions are met.
Q: Can I turn one of the engines off?
A: Yes, the indicator is modular. If you only want to focus on Fair Value Gaps, for example, you can disable the plot shapes for the "Entries Simplified" signals in the settings, and vice-versa.
Q: Does this work on all assets and timeframes?
A: The principles of liquidity and imbalance are universal and apply to all markets, from cryptocurrencies to forex to indices. The fractal nature of the analysis means the concepts are valid on all timeframes. However, it is always recommended that a trader backtest and forward-test the tool on their specific instrument and timeframe of choice to understand its unique behavior.
Author's Instructions
To request access to this script, please send me a direct private message here on TradingView.
Alternatively, you can find more information and contact details via the link on my profile signature.
Please DO NOT request access in the Comments section. Comments are for questions about the script's methodology and for sharing constructive feedback.
FvgPanel█ OVERVIEW
This library provides functionalities for creating and managing a display panel within a Pine Script™ indicator. Its primary purpose is to offer a structured way to present Fair Value Gap (FVG) information, specifically the nearest bullish and bearish FVG levels across different timeframes (Current, MTF, HTF), directly on the chart. The library handles the table's structure, header initialization, and dynamic cell content updates.
█ CONCEPTS
The core of this library revolves around presenting summarized FVG data in a clear, tabular format. Key concepts include:
FVG Data Aggregation and Display
The panel is designed to show at-a-glance information about the closest active FVG mitigation levels. It doesn't calculate these FVGs itself but relies on the main script to provide this data. The panel is structured with columns for timeframes (TF), Bullish FVGs, and Bearish FVGs, and rows for "Current" (LTF), "MTF" (Medium Timeframe), and "HTF" (High Timeframe).
The `panelData` User-Defined Type (UDT)
To facilitate the transfer of information to be displayed, the library defines a UDT named `panelData`. This structure is central to the library's operation and is designed to hold all necessary values for populating the panel's data cells for each relevant FVG. Its fields include:
Price levels for the nearest bullish and bearish FVGs for LTF, MTF, and HTF (e.g., `nearestBullMitLvl`, `nearestMtfBearMitLvl`).
Boolean flags to indicate if these FVGs are classified as "Large Volume" (LV) (e.g., `isNearestBullLV`, `isNearestMtfBearLV`).
Color information for the background and text of each data cell, allowing for conditional styling based on the FVG's status or proximity (e.g., `ltfBullBgColor`, `mtfBearTextColor`).
The design of `panelData` allows the main script to prepare all display-related data and styling cues in one object, which is then passed to the `updatePanel` function for rendering. This separation of data preparation and display logic keeps the library focused on its presentation task.
Visual Cues and Formatting
Price Formatting: Price levels are formatted to match the instrument's minimum tick size using an internal `formatPrice` helper function, ensuring consistent and accurate display.
Large FVG Icon: If an FVG is marked as a "Large Volume" FVG in the `panelData` object, a user-specified icon (e.g., an emoji) is prepended to its price level in the panel, providing an immediate visual distinction.
Conditional Styling: The background and text colors for each FVG level displayed in the panel can be individually controlled via the `panelData` object, enabling the main script to implement custom styling rules (e.g., highlighting the overall nearest FVG across all timeframes).
Handling Missing Data: If no FVG data is available for a particular cell (i.e., the corresponding level in `panelData` is `na`), the panel displays "---" and uses a specified background color for "Not Available" cells.
█ CALCULATIONS AND USE
Using the `FvgPanel` typically involves a two-stage process: initialization and dynamic updates.
Step 1: Panel Creation
First, an instance of the panel table is created once, usually during the script's initial setup. This is done using the `createPanel` function.
Call `createPanel()` with parameters defining its position on the chart, border color, border width, header background color, header text color, and header text size.
This function initializes the table with three columns ("TF", "Bull FVG", "Bear FVG") and three data rows labeled "Current", "MTF", and "HTF", plus a header row.
Store the returned `table` object in a `var` variable to persist it across bars.
// Example:
var table infoPanel = na
if barstate.isfirst
infoPanel := panel.createPanel(
position.top_right,
color.gray,
1,
color.new(color.gray, 50),
color.white,
size.small
)
Step 2: Panel Updates
On each bar, or whenever the FVG data changes (typically on `barstate.islast` or `barstate.isrealtime` for efficiency), the panel's content needs to be refreshed. This is done using the `updatePanel` function.
Populate an instance of the `panelData` UDT with the latest FVG information. This includes setting the nearest bullish/bearish mitigation levels for LTF, MTF, and HTF, their LV status, and their desired background and text colors.
Call `updatePanel()`, passing the persistent `table` object (from Step 1), the populated `panelData` object, the icon string for LV FVGs, the default text color for FVG levels, the background color for "N/A" cells, and the general text size for the data cells.
The `updatePanel` function will then clear previous data and fill the table cells with the new values and styles provided in the `panelData` object.
// Example (inside a conditional block like 'if barstate.islast'):
var panelData fvgDisplayData = panelData.new()
// ... (logic to populate fvgDisplayData fields) ...
// fvgDisplayData.nearestBullMitLvl = ...
// fvgDisplayData.ltfBullBgColor = ...
// ... etc.
if not na(infoPanel)
panel.updatePanel(
infoPanel,
fvgDisplayData,
"🔥", // LV FVG Icon
color.white,
color.new(color.gray, 70), // NA Cell Color
size.small
)
This workflow ensures that the panel is drawn only once and its cells are efficiently updated as new data becomes available.
█ NOTES
Data Source: This library is solely responsible for the visual presentation of FVG data in a table. It does not perform any FVG detection or calculation. The calling script must compute or retrieve the FVG levels, LV status, and desired styling to populate the `panelData` object.
Styling Responsibility: While `updatePanel` applies colors passed via the `panelData` object, the logic for *determining* those colors (e.g., highlighting the closest FVG to the current price) resides in the calling script.
Performance: The library uses `table.cell()` to update individual cells, which is generally more efficient than deleting and recreating the table on each update. However, the frequency of `updatePanel` calls should be managed by the main script (e.g., using `barstate.islast` or `barstate.isrealtime`) to avoid excessive processing on historical bars.
`series float` Handling: The price level fields within the `panelData` UDT (e.g., `nearestBullMitLvl`) can accept `series float` values, as these are typically derived from price data. The internal `formatPrice` function correctly handles `series float` for display.
Dependencies: The `FvgPanel` itself is self-contained and does not import other user libraries. It uses standard Pine Script™ table and string functionalities.
█ EXPORTED TYPES
panelData
Represents the data structure for populating the FVG information panel.
Fields:
nearestBullMitLvl (series float) : The price level of the nearest bullish FVG's mitigation point (bottom for bull) on the LTF.
isNearestBullLV (series bool) : True if the nearest bullish FVG on the LTF is a Large Volume FVG.
ltfBullBgColor (series color) : Background color for the LTF bullish FVG cell in the panel.
ltfBullTextColor (series color) : Text color for the LTF bullish FVG cell in the panel.
nearestBearMitLvl (series float) : The price level of the nearest bearish FVG's mitigation point (top for bear) on the LTF.
isNearestBearLV (series bool) : True if the nearest bearish FVG on the LTF is a Large Volume FVG.
ltfBearBgColor (series color) : Background color for the LTF bearish FVG cell in the panel.
ltfBearTextColor (series color) : Text color for the LTF bearish FVG cell in the panel.
nearestMtfBullMitLvl (series float) : The price level of the nearest bullish FVG's mitigation point on the MTF.
isNearestMtfBullLV (series bool) : True if the nearest bullish FVG on the MTF is a Large Volume FVG.
mtfBullBgColor (series color) : Background color for the MTF bullish FVG cell.
mtfBullTextColor (series color) : Text color for the MTF bullish FVG cell.
nearestMtfBearMitLvl (series float) : The price level of the nearest bearish FVG's mitigation point on the MTF.
isNearestMtfBearLV (series bool) : True if the nearest bearish FVG on the MTF is a Large Volume FVG.
mtfBearBgColor (series color) : Background color for the MTF bearish FVG cell.
mtfBearTextColor (series color) : Text color for the MTF bearish FVG cell.
nearestHtfBullMitLvl (series float) : The price level of the nearest bullish FVG's mitigation point on the HTF.
isNearestHtfBullLV (series bool) : True if the nearest bullish FVG on the HTF is a Large Volume FVG.
htfBullBgColor (series color) : Background color for the HTF bullish FVG cell.
htfBullTextColor (series color) : Text color for the HTF bullish FVG cell.
nearestHtfBearMitLvl (series float) : The price level of the nearest bearish FVG's mitigation point on the HTF.
isNearestHtfBearLV (series bool) : True if the nearest bearish FVG on the HTF is a Large Volume FVG.
htfBearBgColor (series color) : Background color for the HTF bearish FVG cell.
htfBearTextColor (series color) : Text color for the HTF bearish FVG cell.
█ EXPORTED FUNCTIONS
createPanel(position, borderColor, borderWidth, headerBgColor, headerTextColor, headerTextSize)
Creates and initializes the FVG information panel (table). Sets up the header rows and timeframe labels.
Parameters:
position (simple string) : The position of the panel on the chart (e.g., position.top_right). Uses position.* constants.
borderColor (simple color) : The color of the panel's border.
borderWidth (simple int) : The width of the panel's border.
headerBgColor (simple color) : The background color for the header cells.
headerTextColor (simple color) : The text color for the header cells.
headerTextSize (simple string) : The text size for the header cells (e.g., size.small). Uses size.* constants.
Returns: The newly created table object representing the panel.
updatePanel(panelTable, data, lvIcon, defaultTextColor, naCellColor, textSize)
Updates the content of the FVG information panel with the latest FVG data.
Parameters:
panelTable (table) : The table object representing the panel to be updated.
data (panelData) : An object containing the FVG data to display.
lvIcon (simple string) : The icon (e.g., emoji) to display next to Large Volume FVGs.
defaultTextColor (simple color) : The default text color for FVG levels if not highlighted.
naCellColor (simple color) : The background color for cells where no FVG data is available ("---").
textSize (simple string) : The text size for the FVG level data (e.g., size.small).
Returns: _void
Every Hour 1st/Last FVG vTDL OVERVIEW - Shoutout to Micheal J. Huddleston aka ICT
This indicator identifies the first Fair Value Gap (FVG) that forms within each trading hour, providing traders with potential entry zones, reversal points, and unmitigated gap targets. Based on the concept that the first presented FVG of each hour represents a significant price delivery array where institutional order flow occurred.
The indicator detects FVGs on a lower timeframe (1-minute default) and displays them as boxes on your chart, tracking which gaps get filled and which remain open as potential draw-on-liquidity targets.
WHAT IS A FAIR VALUE GAP
A Fair Value Gap is a 3-candle price pattern representing an imbalance between buyers and sellers:
Bullish FVG: Forms when candle 3's low is above candle 1's high, leaving a gap
Bearish FVG: Forms when candle 3's high is below candle 1's low, leaving a gap
These gaps often act as magnets for price, which tends to return and "fill" the imbalance before continuing. They function as dynamic support and resistance zones.
KEY FEATURES
Detection Types
FVG: Standard fair value gap detection with volume imbalance expansion
Suspension FVG Blocks: Requires outside prints on both sides for more refined signals
Hourly Display Modes
First Only: Shows whichever FVG appears first each hour (bullish or bearish)
Show Both: Shows first bullish AND first bearish FVG independently each hour
Last FVG Tracking
Optionally display the last FVG of each hour
Useful for comparing how the hour developed
Can extend into the next hour for continued tracking
Breakaway Gap Detection
Gaps not traded into during their formation hour extend forward
Extended gaps display labels showing formation time and date
These unmitigated gaps become price targets and reversal zones
Gap Fill Modes
Touch Box: Marks filled when price enters the gap
Touch Midpoint: Marks filled when price reaches the 50 percent level
Fill Completely: Marks filled when price fills the entire gap with visual progress
HOW TO USE
Entry Points
The first FVG of each hour provides potential entry zones based on price reaction:
When price returns to an FVG and shows rejection, enter in the direction of rejection
The gap zone represents where institutional orders likely reside
Use the boundaries of the gap for stop loss placement
A clean rejection of the zone confirms it as valid support or resistance
Reversal Points
Unmitigated gaps that extend beyond their formation hour are high-probability reaction zones:
Extended boxes with labels indicate unfilled gaps
When price finally reaches these zones, expect a reaction
The longer a gap remains unfilled, the stronger the expected response
These zones act as magnets drawing price back to them
Price Targets
Use unmitigated gaps as draw-on-liquidity targets:
Look for extended boxes above or below current price
Price tends to seek out and fill imbalances
The midpoint line often serves as a minimum target
Multiple unfilled gaps in one direction suggest strong momentum potential
FRAMING DIRECTIONAL BIAS
The first presented FVG of each hour acts as a support or resistance zone. The direction of the FVG itself does not determine bias - it is how price reacts to that FVG that reveals the true market intention.
Reading Price Reaction
Price respects a bullish FVG as support and bounces higher = bullish bias confirmed
Price respects a bearish FVG as resistance and rejects lower = bearish bias confirmed
Price fails to hold a bullish FVG and breaks through = potential inversion, look for shorts
Price fails to hold a bearish FVG and breaks through = potential inversion, look for longs
Inversion Fair Value Gaps (IFVG)
When price trades through an FVG and closes beyond it, that gap can invert its role:
A bullish FVG that fails becomes resistance - use it as a short entry zone
A bearish FVG that fails becomes support - use it as a long entry zone
The inversion signals a shift in control from one side to the other
Watch for price to retest the inverted gap before continuing
Support and Resistance Framework
Think of each hourly first FVG as a key level:
Price above the FVG: the gap acts as potential support
Price below the FVG: the gap acts as potential resistance
Watch how price behaves when it returns to the gap zone
A clean rejection confirms the level; a break through signals inversion
SHORT-TERM SCALPING APPLICATION
These FVGs provide scalping opportunities each hour:
Identify the first FVG of the hour as your key level
Wait for price to trade away from it and return
Observe the reaction at the gap zone
Enter in the direction of the reaction with tight risk
Target the next FVG, midpoint, or nearby liquidity
Trade Management
Use the opposite side of the FVG box as your stop loss zone
The midpoint of the gap often provides first target or decision point
Scale out at nearby unmitigated gaps or key levels
If the gap inverts, flip your bias and look for entries in the new direction
MULTI-HOUR CONTEXT
If price consistently respects FVGs as support across hours = uptrend context
If price consistently respects FVGs as resistance across hours = downtrend context
If FVGs keep inverting = choppy or transitional market
Use higher timeframe direction to filter which reactions to trade
Compare first and last FVG of each hour to see how momentum developed
SESSION FILTERING
The indicator automatically excludes unreliable periods:
4 PM to 5 PM New York time (market close hours 16-17)
Weekend closed periods (Saturday and Sunday before 6 PM)
All timestamps use New York timezone for consistency with futures market hours.
SETTINGS GUIDE
Detection Settings
Detection Type: Choose between standard FVG or Suspension FVG Blocks
Lower Timeframe: 15 seconds, 1 minute, or 5 minutes for gap detection
Min FVG Size: Minimum gap size in ticks to filter noise
Display Settings
Hourly Display Mode: First Only shows one gap per hour; Show Both shows first bull and bear
Show First FVG: Toggle visibility of first FVG boxes
Show Last FVG: Toggle visibility of last FVG boxes
Show Midpoint Lines: Display the 50 percent level of each gap
Show Unfilled Breakaway Gaps: Extend boxes until price fills them
Show Only Today: Reduce clutter by hiding older hourly boxes
Gap Fill Detection Mode
Touch Box: Gap marked filled when price enters the zone
Touch Midpoint: Gap marked filled when price reaches 50 percent level
Fill Completely: Gap marked filled only when fully closed, shows visual fill progress
Recommended Settings by Style
Scalping: 1 minute LTF, 4 tick minimum, Show Both mode, Touch Box fill
Day Trading: 1 minute LTF, 4-8 tick minimum, First Only mode, Touch Midpoint fill
Swing Context: 5 minute LTF, Show Unfilled Gaps enabled, Fill Completely mode
COLOR CODING
Blue boxes: First bullish FVG of the hour
Red boxes: First bearish FVG of the hour
Green boxes: Last bullish FVG of the hour
Orange boxes: Last bearish FVG of the hour
Black midpoint lines: 50 percent level of each gap
Filled portion overlay: Shows visual progress in Fill Completely mode
All colors are fully customizable in the settings menu.
PRACTICAL TIPS
The first FVG of each hour is a hidden PD array - treat it as a significant level
Not every gap produces a tradeable reaction - wait for confirmation
Gaps that remain unfilled for multiple hours carry more weight
Use the Show Both mode to see both bullish and bearish opportunities each hour
When multiple gaps cluster in one zone, that area becomes even more significant
Inversions are powerful signals - a failed level often leads to acceleration
NOTES
Works on any instrument and timeframe
Best used on intraday charts (1 minute to 15 minute) viewing 1 minute LTF gaps
Combine with higher timeframe analysis for confluence
These are probability zones, not guarantees - always use proper risk management
The indicator handles HTF to LTF data fetching automatically
Multi Timeframe Fair Value Gap Indicator ProMulti Timeframe Fair Value Gap Indicator Pro | MTF FVG Imbalance Zones | Institutional Supply Demand Levels
🎯 The Most Comprehensive Multi-Timeframe Fair Value Gap (FVG) Indicator on TradingView
Transform Your Trading with Institutional-Grade Multi-Timeframe FVG Analysis
Keywords: Multi Timeframe Indicator, MTF FVG, Fair Value Gap, Imbalance Zones, Supply and Demand, Institutional Trading, Order Flow Imbalance, Price Inefficiency, Smart Money Concepts, ICT Concepts, Volume Imbalance, Liquidity Voids, Multi Timeframe Analysis
📊 WHAT IS THIS INDICATOR?
The Multi Timeframe Fair Value Gap Indicator Pro is the most advanced FVG detection system on TradingView, designed to identify high-probability institutional supply and demand zones across multiple timeframes simultaneously. This professional-grade tool automatically detects Fair Value Gaps (FVGs), also known as imbalance zones, liquidity voids, or inefficiency gaps - the exact areas where institutional traders enter and exit positions.
🔍 What Are Fair Value Gaps (FVGs)?
Fair Value Gaps are three-candle price formations that create imbalances in the market structure. These gaps represent areas where buying or selling was so aggressive that price moved too quickly, leaving behind an inefficient zone that price often returns to "fill" or "mitigate." Professional traders use these zones as high-probability entry points.
Bullish FVG: When the low of candle 3 is higher than the high of candle 1
Bearish FVG: When the high of candle 3 is lower than the low of candle 1
⚡ KEY FEATURES
📈 Multi-Timeframe Analysis (MTF)
- 12 Timeframes Simultaneously: 1m, 3m, 5m, 15m, 30m, 45m, 1H, 2H, 3H, 4H, Daily, Weekly
- Real-Time Detection: Instantly identifies FVGs as they form across all selected timeframes
- Customizable Timeframe Selection: Choose which timeframes to display based on your trading style
- Higher Timeframe Confluence: See when multiple timeframes align for stronger signals
🎨 Three Professional Visual Themes
1. Dark Intergalactic: Futuristic neon colors with high contrast for dark mode traders
2. Light Minimal: Clean, professional appearance for traditional charting
3. Pro Modern: Low-saturation colors for extended screen time comfort
📊 Advanced FVG Dashboard
- Live FVG Counter: Real-time count of active bullish and bearish gaps
- Total Zone Tracking: Monitor all active imbalance zones at a glance
- Theme-Adaptive Display: Dashboard automatically adjusts to your selected visual theme
- Strategic Positioning: Optimally placed to not interfere with price action
🔧 Smart Zone Management
- Dynamic Zone Updates: FVG boxes automatically adjust when price touches them
- Mitigation Detection: Visual feedback when zones are tested or filled
- Color-Coded Status: Instantly see untested vs tested zones
- Extended Projection: Option to extend boxes to the right for future reference
- Timeframe Labels: Optional labels showing which timeframe each FVG originated from
💡 Intelligent Features
- Automatic Zone Cleanup: Removes fully mitigated FVGs to keep charts clean
- Touch-Based Level Adjustment: Zones adapt to partial fills
- Maximum Box Management: Optimized to handle 500 simultaneous FVG zones
- Performance Optimized: Efficient code ensures smooth operation even with multiple timeframes
🎯 TRADING APPLICATIONS
Day Trading & Scalping
- Use 1m, 3m, 5m FVGs for quick scalp entries
- Combine with higher timeframe FVGs for directional bias
- Perfect for futures (ES, NQ, MNQ), forex, and crypto scalping
Swing Trading
- Focus on 1H, 4H, and Daily FVGs for swing positions
- Identify major support/resistance zones
- Plan entries at untested higher timeframe gaps
Position Trading
- Utilize Daily and Weekly FVGs for long-term positions
- Identify institutional accumulation/distribution zones
- Major reversal points at significant imbalance areas
Multi-Timeframe Confluence Trading
- Stack multiple timeframe FVGs for high-probability zones
- Confirm entries when lower and higher timeframe FVGs align
- Professional edge through timeframe confluence
📚 HOW TO USE THIS INDICATOR
Step 1: Add to Your Chart
Click "Add to Favorites" and apply to any trading instrument - works on all markets including stocks, forex, crypto, futures, and indices.
Step 2: Configure Your Timeframes
In settings, select which timeframes you want to monitor. Day traders might focus on 1m-15m, while swing traders might use 1H-Weekly.
Step 3: Choose Your Visual Theme
Select from three professional themes based on your preference and trading environment.
Step 4: Identify Trading Opportunities
For Long Entries:
- Look for Bullish FVGs (green/cyan zones)
- Wait for price to return to untested zones
- Enter when price shows rejection from the FVG zone
- Higher timeframe FVGs provide stronger support
For Short Entries:
- Look for Bearish FVGs (red/pink zones)
- Wait for price to return to untested zones
- Enter when price shows rejection from the FVG zone
- Higher timeframe FVGs provide stronger resistance
Step 5: Manage Risk
- Place stops beyond the FVG zone
- Use partially filled FVGs as trailing stop levels
- Exit when opposite FVGs form (reversal signal)
🏆 WHY THIS IS THE BEST MTF FVG INDICATOR
✅ Most Comprehensive
- More timeframes than any other FVG indicator
- Advanced features not found elsewhere
- Professional-grade visual presentation
✅ Institutional-Grade
- Based on smart money concepts (SMC)
- ICT (Inner Circle Trader) methodology compatible
- Used by professional prop traders
✅ User-Friendly
- Clean, intuitive interface
- Detailed tooltips and descriptions
- Works out-of-the-box with optimal defaults
✅ Continuously Updated
- Regular improvements and optimizations
- Community feedback incorporated
- Professional development by PineProfits
🔥 PERFECT FOR
- Scalpers seeking quick FVG fills
- Day Traders using multi-timeframe analysis
- Swing Traders identifying major zones
- ICT/SMC Traders following smart money
- Prop Firm Traders needing reliable setups
- Algorithmic Traders building systematic strategies
- Technical Analysts studying market structure
- All Experience Levels from beginners to professionals
💎 ADVANCED TIPS
1. Confluence is Key: The strongest signals occur when multiple timeframe FVGs align at the same price level
2. Fresh vs Tested: Untested FVGs (original color) are stronger than tested ones (gray/muted color)
3. Time of Day: FVGs formed during high-volume sessions (London/NY) are more reliable
4. Trend Alignment: Trade FVGs in the direction of the higher timeframe trend for best results
5. Volume Confirmation: Combine with volume indicators for enhanced reliability
📈 INDICATOR SETTINGS
Visual Settings
- Visual Theme: Choose between Dark Intergalactic, Light Minimal, or Pro Modern
- Show Branding: Toggle PineProfits branding on/off
General Settings
- Move box levels with price touch: Dynamically adjust FVG zones
- Change box color with price touch: Visual feedback for tested zones
- Extend boxes to the right: Project zones into the future
- Plot Timeframe Label: Show origin timeframe on each FVG
- Show FVG Dashboard: Toggle the summary dashboard
Timeframe Selection
Select any combination of 12 available timeframes (1m to Weekly)
🚀 GET STARTED NOW
1. Click "Add to Favorites" to save this indicator
2. Apply to your chart - works on any instrument
3. Join thousands of traders already using this professional tool
4. Follow PineProfits for more institutional-grade indicators
⚖️ DISCLAIMER
This indicator is for educational and informational purposes only. It should not be considered financial advice. Always do your own research and practice proper risk management. Past performance does not guarantee future results. Trade responsibly.
© PineProfits - Professional Trading Tools for Modern Markets
If you find this indicator valuable, please leave a like and comment. Your support helps me create more professional-grade tools for the TradingView community!
SMC Structures and FVGสวัสดีครับ! ผมจะอธิบายอินดิเคเตอร์ "SMC Structures and FVG + MACD" ที่คุณให้มาอย่างละเอียดในแต่ละส่วน เพื่อให้คุณเข้าใจการทำงานของมันอย่างถ่องแท้ครับ
อินดิเคเตอร์นี้เป็นการผสมผสานแนวคิดของ Smart Money Concept (SMC) ซึ่งเน้นการวิเคราะห์โครงสร้างตลาด (Market Structure) และ Fair Value Gap (FVG) เข้ากับอินดิเคเตอร์ MACD เพื่อใช้เป็นตัวกรองหรือตัวยืนยันสัญญาณ Choch/BoS (Change of Character / Break of Structure)
1. ภาพรวมอินดิเคเตอร์ (Overall Purpose)
อินดิเคเตอร์นี้มีจุดประสงค์หลักคือ:
ระบุโครงสร้างตลาด: ตีเส้นและป้ายกำกับ Choch (Change of Character) และ BoS (Break of Structure) บนกราฟโดยอัตโนมัติ
ผสานการยืนยันด้วย MACD: สัญญาณ Choch/BoS จะถูกพิจารณาก็ต่อเมื่อ MACD Histogram เกิดการตัดขึ้นหรือลง (Zero Cross) ในทิศทางที่สอดคล้องกัน
แสดง Fair Value Gap (FVG): หากเปิดใช้งาน จะมีการตีกล่อง FVG บนกราฟ
แสดงระดับ Fibonacci: คำนวณและแสดงระดับ Fibonacci ที่สำคัญตามโครงสร้างตลาดปัจจุบัน
ปรับตาม Timeframe: การคำนวณและการแสดงผลทั้งหมดจะปรับตาม Timeframe ที่คุณกำลังใช้งานอยู่โดยอัตโนมัติ
2. ส่วนประกอบหลักของโค้ด (Code Breakdown)
โค้ดนี้สามารถแบ่งออกเป็นส่วนหลัก ๆ ได้ดังนี้:
2.1 Inputs (การตั้งค่า)
ส่วนนี้คือตัวแปรที่คุณสามารถปรับแต่งได้ในหน้าต่างการตั้งค่าของอินดิเคเตอร์ (คลิกที่รูปฟันเฟืองข้างชื่ออินดิเคเตอร์บนกราฟ)
MACD Settings (ตั้งค่า MACD):
fast_len: ความยาวของ Fast EMA สำหรับ MACD (ค่าเริ่มต้น 12)
slow_len: ความยาวของ Slow EMA สำหรับ MACD (ค่าเริ่มต้น 26)
signal_len: ความยาวของ Signal Line สำหรับ MACD (ค่าเริ่มต้น 9)
= ta.macd(close, fast_len, slow_len, signal_len): คำนวณค่า MACD Line, Signal Line และ Histogram โดยใช้ราคาปิด (close) และค่าความยาวที่กำหนด
is_bullish_macd_cross: ตรวจสอบว่า MACD Histogram ตัดขึ้นเหนือเส้น 0 (จากค่าลบเป็นบวก)
is_bearish_macd_cross: ตรวจสอบว่า MACD Histogram ตัดลงใต้เส้น 0 (จากค่าบวกเป็นลบ)
Fear Value Gap (FVG) Settings:
isFvgToShow: (Boolean) เปิด/ปิดการแสดง FVG บนกราฟ
bullishFvgColor: สีสำหรับ Bullish FVG
bearishFvgColor: สีสำหรับ Bearish FVG
mitigatedFvgColor: สีสำหรับ FVG ที่ถูก Mitigate (ลดทอน) แล้ว
fvgHistoryNbr: จำนวน FVG ย้อนหลังที่จะแสดง
isMitigatedFvgToReduce: (Boolean) เปิด/ปิดการลดขนาด FVG เมื่อถูก Mitigate
Structures (โครงสร้างตลาด) Settings:
isStructBodyCandleBreak: (Boolean) หากเป็น true การ Break จะต้องเกิดขึ้นด้วย เนื้อเทียน ที่ปิดเหนือ/ใต้ Swing High/Low หากเป็น false แค่ไส้เทียนทะลุก็ถือว่า Break
isCurrentStructToShow: (Boolean) เปิด/ปิดการแสดงเส้นโครงสร้างตลาดปัจจุบัน (เส้นสีน้ำเงินในภาพตัวอย่าง)
pivot_len: ความยาวของแท่งเทียนที่ใช้ในการมองหาจุด Pivot (Swing High/Low) ยิ่งค่าน้อยยิ่งจับ Swing เล็กๆ ได้, ยิ่งค่ามากยิ่งจับ Swing ใหญ่ๆ ได้
bullishBosColor, bearishBosColor: สีสำหรับเส้นและป้าย BOS ขาขึ้น/ขาลง
bosLineStyleOption, bosLineWidth: สไตล์ (Solid, Dotted, Dashed) และความหนาของเส้น BOS
bullishChochColor, bearishChochColor: สีสำหรับเส้นและป้าย CHoCH ขาขึ้น/ขาลง
chochLineStyleOption, chochLineWidth: สไตล์ (Solid, Dotted, Dashed) และความหนาของเส้น CHoCH
currentStructColor, currentStructLineStyleOption, currentStructLineWidth: สี, สไตล์ และความหนาของเส้นโครงสร้างตลาดปัจจุบัน
structHistoryNbr: จำนวนการ Break (Choch/BoS) ย้อนหลังที่จะแสดง
Structure Fibonacci (จากโค้ดต้นฉบับ):
เป็นชุด Input สำหรับเปิด/ปิด, กำหนดค่า, สี, สไตล์ และความหนาของเส้น Fibonacci Levels ต่างๆ (0.786, 0.705, 0.618, 0.5, 0.382) ที่จะถูกคำนวณจากโครงสร้างตลาดปัจจุบัน
2.2 Helper Functions (ฟังก์ชันช่วยทำงาน)
getLineStyle(lineOption): ฟังก์ชันนี้ใช้แปลงค่า String ที่เลือกจาก Input (เช่น "─", "┈", "╌") ให้เป็นรูปแบบ line.style_ ที่ Pine Script เข้าใจ
get_structure_highest_bar(lookback): ฟังก์ชันนี้พยายามหา Bar Index ของแท่งเทียนที่ทำ Swing High ภายในช่วง lookback ที่กำหนด
get_structure_lowest_bar(lookback): ฟังก์ชันนี้พยายามหา Bar Index ของแท่งเทียนที่ทำ Swing Low ภายในช่วง lookback ที่กำหนด
is_structure_high_broken(...): ฟังก์ชันนี้ตรวจสอบว่าราคาปัจจุบันได้ Break เหนือ _structureHigh (Swing High) หรือไม่ โดยพิจารณาจาก _highStructBreakPrice (ราคาปิดหรือราคา High ขึ้นอยู่กับการตั้งค่า isStructBodyCandleBreak)
FVGDraw(...): ฟังก์ชันนี้รับ Arrays ของ FVG Boxes, Types, Mitigation Status และ Labels มาประมวลผล เพื่ออัปเดตสถานะของ FVG (เช่น ถูก Mitigate หรือไม่) และปรับขนาด/ตำแหน่งของ FVG Box และ Label บนกราฟ
2.3 Global Variables (ตัวแปรทั่วทั้งอินดิเคเตอร์)
เป็นตัวแปรที่ประกาศด้วย var ซึ่งหมายความว่าค่าของมันจะถูกเก็บไว้และอัปเดตในแต่ละแท่งเทียน (persists across bars)
structureLines, structureLabels: Arrays สำหรับเก็บอ็อบเจกต์ line และ label ของเส้น Choch/BoS ที่วาดบนกราฟ
fvgBoxes, fvgTypes, fvgLabels, isFvgMitigated: Arrays สำหรับเก็บข้อมูลของ FVG Boxes และสถานะต่างๆ
structureHigh, structureLow: เก็บราคาของ Swing High/Low ที่สำคัญของโครงสร้างตลาดปัจจุบัน
structureHighStartIndex, structureLowStartIndex: เก็บ Bar Index ของจุดเริ่มต้นของ Swing High/Low ที่สำคัญ
structureDirection: เก็บสถานะของทิศทางโครงสร้างตลาด (1 = Bullish, 2 = Bearish, 0 = Undefined)
fiboXPrice, fiboXStartIndex, fiboXLine, fiboXLabel: ตัวแปรสำหรับเก็บข้อมูลและอ็อบเจกต์ของเส้น Fibonacci Levels
isBOSAlert, isCHOCHAlert: (Boolean) ใช้สำหรับส่งสัญญาณ Alert (หากมีการตั้งค่า Alert ไว้)
2.4 FVG Processing (การประมวลผล FVG)
ส่วนนี้จะตรวจสอบเงื่อนไขการเกิด FVG (Bullish FVG: high < low , Bearish FVG: low > high )
หากเกิด FVG และ isFvgToShow เป็น true จะมีการสร้าง box และ label ใหม่เพื่อแสดง FVG บนกราฟ
มีการจัดการ fvgBoxes และ fvgLabels เพื่อจำกัดจำนวน FVG ที่แสดงตาม fvgHistoryNbr และลบ FVG เก่าออก
ฟังก์ชัน FVGDraw จะถูกเรียกเพื่ออัปเดตสถานะของ FVG (เช่น การถูก Mitigate) และปรับการแสดงผล
2.5 Structures Processing (การประมวลผลโครงสร้างตลาด)
Initialization: ที่ bar_index == 0 (แท่งเทียนแรกของกราฟ) จะมีการกำหนดค่าเริ่มต้นให้กับ structureHigh, structureLow, structureHighStartIndex, structureLowStartIndex
Finding Current High/Low: highest, highestBar, lowest, lowestBar ถูกใช้เพื่อหา High/Low ที่สุดและ Bar Index ของมันใน 10 แท่งล่าสุด (หรือทั้งหมดหากกราฟสั้นกว่า 10 แท่ง)
Calculating Structure Max/Min Bar: structureMaxBar และ structureMinBar ใช้ฟังก์ชัน get_structure_highest_bar และ get_structure_lowest_bar เพื่อหา Bar Index ของ Swing High/Low ที่แท้จริง (ไม่ใช่แค่ High/Low ที่สุดใน lookback แต่เป็นจุด Pivot ที่สมบูรณ์)
Break Price: lowStructBreakPrice และ highStructBreakPrice จะเป็นราคาปิด (close) หรือราคา Low/High ขึ้นอยู่กับ isStructBodyCandleBreak
isStuctureLowBroken / isStructureHighBroken: เงื่อนไขเหล่านี้ตรวจสอบว่าราคาได้ทำลาย structureLow หรือ structureHigh หรือไม่ โดยพิจารณาจากราคา Break, ราคาแท่งก่อนหน้า และ Bar Index ของจุดเริ่มต้นโครงสร้าง
Choch/BoS Logic (ส่วนสำคัญที่ถูกผสานกับ MACD):
if(isStuctureLowBroken and is_bearish_macd_cross): นี่คือจุดที่ MACD เข้ามามีบทบาท หากราคาทำลาย structureLow (สัญญาณขาลง) และ MACD Histogram เกิด Bearish Zero Cross (is_bearish_macd_cross เป็น true) อินดิเคเตอร์จะพิจารณาว่าเป็น Choch หรือ BoS
หาก structureDirection == 1 (เดิมเป็นขาขึ้น) หรือ 0 (ยังไม่กำหนด) จะตีเป็น "CHoCH" (เปลี่ยนทิศทางโครงสร้างเป็นขาลง)
หาก structureDirection == 2 (เดิมเป็นขาลง) จะตีเป็น "BOS" (ยืนยันโครงสร้างขาลง)
มีการสร้าง line.new และ label.new เพื่อวาดเส้นและป้ายกำกับ
structureDirection จะถูกอัปเดตเป็น 1 (Bullish)
structureHighStartIndex, structureLowStartIndex, structureHigh, structureLow จะถูกอัปเดตเพื่อกำหนดโครงสร้างใหม่
else if(isStructureHighBroken and is_bullish_macd_cross): เช่นกันสำหรับขาขึ้น หากราคาทำลาย structureHigh (สัญญาณขาขึ้น) และ MACD Histogram เกิด Bullish Zero Cross (is_bullish_macd_cross เป็น true) อินดิเคเตอร์จะพิจารณาว่าเป็น Choch หรือ BoS
หาก structureDirection == 2 (เดิมเป็นขาลง) หรือ 0 (ยังไม่กำหนด) จะตีเป็น "CHoCH" (เปลี่ยนทิศทางโครงสร้างเป็นขาขึ้น)
หาก structureDirection == 1 (เดิมเป็นขาขึ้น) จะตีเป็น "BOS" (ยืนยันโครงสร้างขาขึ้น)
มีการสร้าง line.new และ label.new เพื่อวาดเส้นและป้ายกำกับ
structureDirection จะถูกอัปเดตเป็น 2 (Bearish)
structureHighStartIndex, structureLowStartIndex, structureHigh, structureLow จะถูกอัปเดตเพื่อกำหนดโครงสร้างใหม่
การลบเส้นเก่า: d.delete_line (หากไลบรารีทำงาน) จะถูกเรียกเพื่อลบเส้นและป้ายกำกับเก่าออกเมื่อจำนวนเกิน structHistoryNbr
Updating Structure High/Low (else block): หากไม่มีการ Break เกิดขึ้น แต่ราคาปัจจุบันสูงกว่า structureHigh หรือต่ำกว่า structureLow ในทิศทางที่สอดคล้องกัน (เช่น ยังคงเป็นขาขึ้นและทำ High ใหม่) structureHigh หรือ structureLow จะถูกอัปเดตเพื่อติดตาม High/Low ที่สุดของโครงสร้างปัจจุบัน
Current Structure Display:
หาก isCurrentStructToShow เป็น true อินดิเคเตอร์จะวาดเส้น structureHighLine และ structureLowLine เพื่อแสดงขอบเขตของโครงสร้างตลาดปัจจุบัน
Fibonacci Display:
หาก isFiboXToShow เป็น true อินดิเคเตอร์จะคำนวณและวาดเส้น Fibonacci Levels ต่างๆ (0.786, 0.705, 0.618, 0.5, 0.382) โดยอิงจาก structureHigh และ structureLow ของโครงสร้างตลาดปัจจุบัน
Alerts:
alertcondition: ใช้สำหรับตั้งค่า Alert ใน TradingView เมื่อเกิดสัญญาณ BOS หรือ CHOCH
plot(na):
plot(na) เป็นคำสั่งที่สำคัญในอินดิเคเตอร์ที่ไม่ได้ต้องการพล็อต Series ของข้อมูลบนกราฟ (เช่น ไม่ได้พล็อตเส้น EMA หรือ RSI) แต่ใช้วาดอ็อบเจกต์ (Line, Label, Box) โดยตรง
การมี plot(na) ช่วยให้ Pine Script รู้ว่าอินดิเคเตอร์นี้มีเอาต์พุตที่แสดงผลบนกราฟ แม้ว่าจะไม่ได้เป็น Series ที่พล็อตตามปกติก็ตาม
3. วิธีใช้งาน
คัดลอกโค้ดทั้งหมด ที่อยู่ในบล็อก immersive ด้านบน
ไปที่ TradingView และเปิดกราฟที่คุณต้องการ
คลิกที่เมนู "Pine Editor" ที่อยู่ด้านล่างของหน้าจอ
ลบโค้ดเดิมที่มีอยู่ และ วางโค้ดที่คัดลอกมา ลงไปแทน
คลิกที่ปุ่ม "Add to Chart"
อินดิเคเตอร์จะถูกเพิ่มลงในกราฟของคุณโดยอัตโนมัติ คุณสามารถคลิกที่รูปฟันเฟืองข้างชื่ออินดิเคเตอร์บนกราฟเพื่อเข้าถึงหน้าต่างการตั้งค่าและปรับแต่งตามความต้องการของคุณได้
Hello! I will explain the "SMC Structures and FVG + MACD" indicator you provided in detail, section by section, so you can fully understand how it works.This indicator combines the concepts of Smart Money Concept (SMC), which focuses on analyzing Market Structure and Fair Value Gaps (FVG), with the MACD indicator to serve as a filter or confirmation for Choch (Change of Character) and BoS (Break of Structure) signals.1. Overall PurposeThe main purposes of this indicator are:Identify Market Structure: Automatically draw lines and label Choch (Change of Character) and BoS (Break of Structure) on the chart.Integrate MACD Confirmation: Choch/BoS signals will only be considered when the MACD Histogram performs a cross (Zero Cross) in the corresponding direction.Display Fair Value Gap (FVG): If enabled, FVG boxes will be drawn on the chart.Display Fibonacci Levels: Calculate and display important Fibonacci levels based on the current market structure.Adapt to Timeframe: All calculations and displays will automatically adjust to the timeframe you are currently using.2. Code BreakdownThis code can be divided into the following main sections:2.1 Inputs (Settings)This section contains variables that you can adjust in the indicator's settings window (click the gear icon next to the indicator's name on the chart).MACD Settings:fast_len: Length of the Fast EMA for MACD (default 12)slow_len: Length of the Slow EMA for MACD (default 26)signal_len: Length of the Signal Line for MACD (default 9) = ta.macd(close, fast_len, slow_len, signal_len): Calculates the MACD Line, Signal Line, and Histogram using the closing price (close) and the specified lengths.is_bullish_macd_cross: Checks if the MACD Histogram crosses above the 0 line (from negative to positive).is_bearish_macd_cross: Checks if the MACD Histogram crosses below the 0 line (from positive to negative).Fear Value Gap (FVG) Settings:isFvgToShow: (Boolean) Enables/disables the display of FVG on the chart.bullishFvgColor: Color for Bullish FVG.bearishFvgColor: Color for Bearish FVG.mitigatedFvgColor: Color for FVG that has been mitigated.fvgHistoryNbr: Number of historical FVG to display.isMitigatedFvgToReduce: (Boolean) Enables/disables reducing the size of FVG when mitigated.Structures (โครงสร้างตลาด) Settings:isStructBodyCandleBreak: (Boolean) If true, the break must occur with the candle body closing above/below the Swing High/Low. If false, a wick break is sufficient.isCurrentStructToShow: (Boolean) Enables/disables the display of the current market structure lines (blue lines in the example image).pivot_len: Lookback length for identifying Pivot points (Swing High/Low). A smaller value captures smaller, more frequent swings; a larger value captures larger, more significant swings.bullishBosColor, bearishBosColor: Colors for bullish/bearish BOS lines and labels.bosLineStyleOption, bosLineWidth: Style (Solid, Dotted, Dashed) and width of BOS lines.bullishChochColor, bearishChochColor: Colors for bullish/bearish CHoCH lines and labels.chochLineStyleOption, chochLineWidth: Style (Solid, Dotted, Dashed) and width of CHoCH lines.currentStructColor, currentStructLineStyleOption, currentStructLineWidth: Color, style, and width of the current market structure lines.structHistoryNbr: Number of historical breaks (Choch/BoS) to display.Structure Fibonacci (from original code):A set of inputs to enable/disable, define values, colors, styles, and widths for various Fibonacci Levels (0.786, 0.705, 0.618, 0.5, 0.382) that will be calculated from the current market structure.2.2 Helper FunctionsgetLineStyle(lineOption): This function converts the selected string input (e.g., "─", "┈", "╌") into a line.style_ format understood by Pine Script.get_structure_highest_bar(lookback): This function attempts to find the Bar Index of the Swing High within the specified lookback period.get_structure_lowest_bar(lookback): This function attempts to find the Bar Index of the Swing Low within the specified lookback period.is_structure_high_broken(...): This function checks if the current price has broken above _structureHigh (Swing High), considering _highStructBreakPrice (closing price or high price depending on isStructBodyCandleBreak setting).FVGDraw(...): This function takes arrays of FVG Boxes, Types, Mitigation Status, and Labels to process and update the status of FVG (e.g., whether it's mitigated) and adjust the size/position of FVG Boxes and Labels on the chart.2.3 Global VariablesThese are variables declared with var, meaning their values are stored and updated on each bar (persists across bars).structureLines, structureLabels: Arrays to store line and label objects for Choch/BoS lines drawn on the chart.fvgBoxes, fvgTypes, fvgLabels, isFvgMitigated: Arrays to store FVG box data and their respective statuses.structureHigh, structureLow: Stores the price of the significant Swing High/Low of the current market structure.structureHighStartIndex, structureLowStartIndex: Stores the Bar Index of the start point of the significant Swing High/Low.structureDirection: Stores the status of the market structure direction (1 = Bullish, 2 = Bearish, 0 = Undefined).fiboXPrice, fiboXStartIndex, fiboXLine, fiboXLabel: Variables to store data and objects for Fibonacci Levels.isBOSAlert, isCHOCHAlert: (Boolean) Used to trigger alerts in TradingView (if alerts are configured).2.4 FVG ProcessingThis section checks the conditions for FVG formation (Bullish FVG: high < low , Bearish FVG: low > high ).If FVG occurs and isFvgToShow is true, a new box and label are created to display the FVG on the chart.fvgBoxes and fvgLabels are managed to limit the number of FVG displayed according to fvgHistoryNbr and remove older FVG.The FVGDraw function is called to update the FVG status (e.g., whether it's mitigated) and adjust its display.2.5 Structures ProcessingInitialization: At bar_index == 0 (the first bar of the chart), structureHigh, structureLow, structureHighStartIndex, and structureLowStartIndex are initialized.Finding Current High/Low: highest, highestBar, lowest, lowestBar are used to find the highest/lowest price and its Bar Index of it in the last 10 bars (or all bars if the chart is shorter than 10 bars).Calculating Structure Max/Min Bar: structureMaxBar and structureMinBar use get_structure_highest_bar and get_structure_lowest_bar functions to find the Bar Index of the true Swing High/Low (not just the highest/lowest in the lookback but a complete Pivot point).Break Price: lowStructBreakPrice and highStructBreakPrice will be the closing price (close) or the Low/High price, depending on the isStructBodyCandleBreak setting.isStuctureLowBroken / isStructureHighBroken: These conditions check if the price has broken structureLow or structureHigh, considering the break price, previous bar prices, and the Bar Index of the structure's starting point.Choch/BoS Logic (Key Integration with MACD):if(isStuctureLowBroken and is_bearish_macd_cross): This is where MACD plays a role. If the price breaks structureLow (bearish signal) AND the MACD Histogram performs a Bearish Zero Cross (is_bearish_macd_cross is true), the indicator will consider it a Choch or BoS.If structureDirection == 1 (previously bullish) or 0 (undefined), it will be labeled "CHoCH" (changing structure direction to bearish).If structureDirection == 2 (already bearish), it will be labeled "BOS" (confirming bearish structure).line.new and label.new are used to draw the line and label.structureDirection will be updated to 1 (Bullish).structureHighStartIndex, structureLowStartIndex, structureHigh, structureLow will be updated to define the new structure.else if(isStructureHighBroken and is_bullish_macd_cross): Similarly for bullish breaks. If the price breaks structureHigh (bullish signal) AND the MACD Histogram performs a Bullish Zero Cross (is_bullish_macd_cross is true), the indicator will consider it a Choch or BoS.If structureDirection == 2 (previously bearish) or 0 (undefined), it will be labeled "CHoCH" (changing structure direction to bullish).If structureDirection == 1 (already bullish), it will be labeled "BOS" (confirming bullish structure).line.new and label.new are used to draw the line and label.structureDirection will be updated to 2 (Bearish).structureHighStartIndex, structureLowStartIndex, structureHigh, structureLow will be updated to define the new structure.Deleting Old Lines: d.delete_line (if the library works) will be called to delete old lines and labels when their number exceeds structHistoryNbr.Updating Structure High/Low (else block): If no break occurs, but the current price is higher than structureHigh or lower than structureLow in the corresponding direction (e.g., still bullish and making a new high), structureHigh or structureLow will be updated to track the highest/lowest point of the current structure.Current Structure Display:If isCurrentStructToShow is true, the indicator draws structureHighLine and structureLowLine to show the boundaries of the current market structure.Fibonacci Display:If isFiboXToShow is true, the indicator calculates and draws various Fibonacci Levels (0.786, 0.705, 0.618, 0.5, 0.382) based on the structureHigh and structureLow of the current market structure.Alerts:alertcondition: Used to set up alerts in TradingView when BOS or CHOCH signals occur.plot(na):plot(na) is an important statement in indicators that do not plot data series directly on the chart (e.g., not plotting EMA or RSI lines) but instead draw objects (Line, Label, Box).Having plot(na) helps Pine Script recognize that this indicator has an output displayed on the chart, even if it's not a regularly plotted series.3. How to UseCopy all the code in the immersive block above.Go to TradingView and open your desired chart.Click on the "Pine Editor" menu at the bottom of the screen.Delete any existing code and paste the copied code in its place.Click the "Add to Chart" button.The indicator will be added to your chart automatically. You can click the gear icon next to the indicator's name on the chart to access the settings window and customize it to your needs.I hope this explanation helps you understand this indicator in detail. If anything is unclear, or you need further adjustments, please let me know.
IME's Community First Presented FVGsIME's Community First Presented FVGs v1.5 - Advanced Implementation
ORIGINALITY & INNOVATION
This indicator advances beyond basic Fair Value Gap detection by implementing a sophisticated 24-hour FVG lifecycle management system aligned with institutional trading patterns. While many FVG indicators simply detect gaps and extend them indefinitely, this implementation introduces temporal intelligence that mirrors how institutional algorithms actually manage these inefficiencies.
Key Innovations that set this apart:
- 24-Hour Lifecycle Management: FVGs extend dynamically until 16:59, then freeze until removal at 17:00 next day
- Institutional Day Alignment: Recognizes 18:00-16:59 trading cycles vs standard calendar days
- Multi-Session Detection: Simultaneous monitoring of Midnight, London, NY AM, and NY PM sessions
- Advanced Classification System: A.FVG detection with volume imbalance analysis vs classic FVG patterns
- Volatility Settlement Logic: Blocks contamination from opening mechanics (3:01+, 0:01+, 13:31+ rules)
- Visual Enhancement System: C.E. lines, contamination warnings, dark mode support with proper transparency handling
BASED ON ICT CONCEPTS
This indicator implements First Presented Fair Value Gap methodology taught by ICT (Inner Circle Trader). The original F.P. FVG concepts, timing rules, and session-based detection are credited to ICT's educational material. This implementation extends those foundational concepts with advanced lifecycle management and institutional alignment features.
ICT's Core F.P. FVG Rules Implemented:
- First clean FVG after session opening (avoids opening contamination)
- 3-candle pattern requirement for valid detection
- Session-specific timing windows and volatility settlement
- Consequent Encroachment level identification
IME's Advanced Enhancements:
- Automated lifecycle management with institutional day recognition
- Multi-session simultaneous monitoring with proper isolation
- Advanced visual system with transparency states for aged FVGs
- A.FVG classification with volume imbalance detection algorithms
HOW IT WORKS
Core Detection Engine
The indicator monitors four key institutional sessions using precise timing windows:
- Midnight Session: 00:01-00:30 (blocks 00:00 contamination)
- London Session: 03:01-03:30 (blocks 03:00 contamination)
- NY AM Session: 09:30-10:00 (configurable 9:30 detection)
- NY PM Session: 13:31-14:00 (blocks 13:30 contamination)
During each session window, the algorithm scans for the first valid FVG pattern using ICT's 3-candle rule while applying volatility settlement principles to avoid false signals from opening mechanics.
Advanced Classification System
Classic FVG Detection:
Standard 3-candle wick-to-wick gap where candle 1 and 3 don't overlap, creating an inefficiency that institutions must eventually fill.
A.FVG (Advanced FVG) Detection:
Enhanced pattern recognition that includes volume imbalance analysis (deadpool detection) to identify more significant institutional inefficiencies. A.FVGs incorporate both the basic gap plus additional price imbalances between candle bodies, creating larger, more significant levels.
24-Hour Lifecycle Management
Phase 1 - Dynamic Extension (Creation Day):
From detection until 16:59 of creation day, FVGs extend in real-time as new bars form, maintaining their relevance as potential support/resistance levels.
Phase 2 - Freeze Period (Next Day):
At 16:59, FVGs stop extending and "freeze" at their final size, remaining visible as reference levels but no longer growing. This prevents outdated levels from contaminating fresh analysis.
Phase 3 - Cleanup (17:00 Next Day):
Exactly 24+ hours after creation, FVGs are automatically removed to maintain chart clarity. This timing aligns with institutional trading cycle completion.
Institutional Day Logic
The algorithm recognizes that institutional trading days run from 18:00-16:59 (not midnight-midnight). This alignment ensures FVGs are managed according to institutional timeframes rather than arbitrary calendar boundaries.
Contamination Avoidance System
Volatility Settlement Principle:
Opening mechanics create artificial volatility that can produce false FVG signals. The indicator automatically blocks detection during exact session opening times (X:00) and requires settlement time (X:01+) before identifying clean institutional inefficiencies.
Special NY AM Handling:
Provides configurable 9:30 detection for advanced users who want to capture potential opening range FVGs, with clear visual warnings about contamination risk.
VISUAL SYSTEM
Color Intelligence
- Current Day FVGs: Full opacity with session-specific colors
- Previous Day FVGs: 70% transparency for historical reference
- Special Timing (9:30): Dedicated warning color with alert labels
- Dark Mode Support: Automatic text/line color adaptation
Enhanced Visual Elements
C.E. (Consequent Encroachment) Lines:
Automatically calculated 50% levels within each FVG, representing the most likely fill point based on institutional behavior patterns. These levels extend and freeze with their parent FVG.
Contamination Warnings:
Visual alerts when FVGs are detected during potentially contaminated timing, helping traders understand signal quality.
Session Identification:
Clear labeling system showing FVG type (FVG/A.FVG), session origin (NY AM, London, etc.), and creation date for easy reference.
HOW TO USE
Basic Setup
1. Session Selection: Enable/disable specific sessions based on your trading strategy
2. FVG Type: Choose between Classic FVGs or A.FVGs depending on your analysis preference
3. Visual Preferences: Adjust colors, text size, and enable dark mode if needed
Trading Applications
Intraday Reference Levels:
Use current day FVGs as potential support/resistance for price action analysis. The dynamic extension ensures levels remain relevant throughout the trading session.
Multi-Session Analysis:
Monitor how price interacts with FVGs from different sessions to understand institutional flow and market structure.
C.E. Level Trading:
Focus on the 50% consequent encroachment levels for high-probability entry points when price approaches FVG zones.
Historical Context:
Previous day FVGs (shown with transparency) provide context for understanding market structure evolution across multiple trading days.
Advanced Features
9:30 Special Detection:
For experienced traders, enable 9:30 FVG detection to capture opening range inefficiencies, but understand the contamination risks indicated by warning labels.
A.FVG vs Classic Toggle:
Switch between detection modes based on market conditions - A.FVGs for trending environments, Classic FVGs for ranging conditions.
Best Practices
- Use on 1-minute to 15-minute timeframes for optimal session detection
- Combine with other institutional concepts (order blocks, liquidity levels) for comprehensive analysis
- Pay attention to transparency states - current day FVGs are more actionable than previous day references
- Consider C.E. levels as primary targets rather than full FVG fills
TECHNICAL SPECIFICATIONS
Platform: Pine Script v6 for optimal performance and reliability
Timeframe Compatibility: All timeframes (optimized for 1M-15M)
Market Compatibility: 24-hour markets (Forex, Crypto, Futures)
Session Management: Automatic trading day detection with weekend handling
Memory Management: Intelligent capacity limits with automatic cleanup
Performance: Optimized algorithms for smooth real-time operation
CLOSED SOURCE JUSTIFICATION
This indicator is published as closed source to protect the proprietary algorithms that enable:
- Precise 24-hour lifecycle timing calculations with institutional day alignment
- Advanced A.FVG classification with sophisticated volume imbalance detection
- Complex multi-session coordination with contamination filtering
- Optimized memory management preventing performance degradation
- Specialized visual state management for transparency and extension logic
The combination of these advanced systems creates a unique implementation that goes far beyond basic FVG detection, warranting protection of the underlying computational methods while providing full transparency about functionality and usage.
PERFORMANCE CHARACTERISTICS
Real-Time Operation: Smooth performance with minimal resource usage
Accuracy: Precise session detection with timezone consistency
Reliability: Robust error handling and edge case management
Scalability: Supports multiple simultaneous FVGs without performance impact
This advanced implementation represents significant evolution beyond basic FVG indicators, providing institutional-grade analysis tools for serious traders while maintaining the clean visual presentation essential for effective technical analysis.
IMPORTANT DISCLAIMERS
Past performance does not guarantee future results. This indicator is an educational tool based on ICT's Fair Value Gap concepts and should be used as part of a comprehensive trading strategy. Users should understand the risks involved in trading and consider their risk tolerance before making trading decisions. The indicator identifies potential support/resistance levels but does not predict market direction with certainty.
2 days ago
Release Notes
IME's Community First Presented FVGs v1.5.2 - Critical Bug Fixes
Bug Fixes:
v1.5.1 - Fixed 9:30 Contamination Blocking:
Issue: When 9:30 detection toggle was OFF, script still detected 9:30 candles as F.P. FVGs
Fix: Added proper contamination blocking logic that prevents 9:30 middle candle detection when toggle is OFF
Result: Toggle OFF now correctly shows clean F.P. FVGs at 9:31+ (proper ICT volatility settlement)
v1.5.2 - Fixed A.FVG Box Calculation Accuracy:
Issue: A.FVG boxes incorrectly included ALL body levels even when no actual deadpool existed between specific candles
Fix: Implemented selective body level inclusion - only adds body prices where actual volume imbalances exist
Result: A.FVG boxes now accurately represent only areas with real institutional volume imbalances
Impact:
More Accurate Detection: 9:30 contamination properly blocked when disabled
Precise A.FVG Zones: Boxes only include levels with actual deadpools/volume imbalances
Institutional Accuracy: Both fixes align detection with true institutional trading principles
Technical Details:
Enhanced contamination blocking checks middle candle timing in normal mode
A.FVG calculation now selectively includes body levels based on individual deadpool existence
Maintains backward compatibility with all existing features and settings
These fixes ensure the indicator provides institutionally accurate FVG detection and sizing for professional trading analysis.
ICT Silver Bullet [LuxAlgo]The ICT Silver Bullet indicator is inspired from the lectures of "The Inner Circle Trader" (ICT) and highlights the Silver Bullet (SB) window which is a specific 1-hour interval where a Fair Value Gap (FVG) pattern can be formed.
When a FVG is formed during the Silver Bullet window, Support & Resistance lines will be drawn at the end of the SB session.
There are 3 different Silver Bullet windows (New York local time):
The London Open Silver Bullet (3 AM — 4 AM ~ 03:00 — 04:00)
The AM Session Silver Bullet (10 AM — 11 AM ~ 10:00 — 11:00)
The PM Session Silver Bullet (2 PM — 3 PM ~ 14:00 — 15:00)
🔶 USAGE
The ICT Silver Bullet indicator aims to provide users a comprehensive display as similar as possible to how anyone would manually draw the concept on their charts.
It's important to use anything below the 15-minute timeframe to ensure proper setups can display. In this section, we are purely using the 3-minute timeframe.
In the image below, we can see a bullish setup whereas a FVG was successfully retested during the Silver Bullet session. This was then followed by a move upwards to liquidity as our target.
Alternatively, you can also see below a bearish setup utilizing the ICT Silver Bullet indicator outlined.
At this moment, the indicator has removed all other FVGs within the Silver Bullet session & has confirmed this FVG as the retested one.
There is also a support level marked below to be used as a liquidity target as per the ICT Silver Bullet concept suggests.
In the below chart we can see 4 separate consecutive examples of bullish & bearish setups on the 3-minute chart.
🔶 CONCEPTS
This technique can visualize potential support/resistance lines, which can be used as targets.
The script contains 2 main components:
• forming of a Fair Value Gap (FVG)
• drawing support/resistance (S/R) lines
🔹 Forming of FVG
1 basic principle: when a FVG at the end of the SB session is not retraced, it will be made invisible.
Dependable on the settings, different FVG's will be shown.
• 'All FVG': all FVG's are shown, regardless the trend
• 'Only FVG's in the same direction of trend': Only FVG's are shown that are similar to the trend at that moment (trend can be visualized by enabling ' Show ' -> ' Trend ')
-> only bearish FVG when the trend is bearish vs. bullish FVG when trend is bullish
• 'strict': Besides being similar to the trend, only FVG's are shown when the closing price at the end of the SB session is:
– below the top of the FVG box (bearish FVG)
– above bottom of the FVG box (bullish FVG)
• 'super-strict': Besides being similar to the trend, only FVG's are shown when the FVG box is NOT broken
in the opposite direction AND the closing price at the end of the SB session is:
– below bottom of the FVG box (bearish FVG)
– above the top of the FVG box (bullish FVG)
' Super-Strict ' mode resembles ICT lectures the most.
🔹 Drawing support/resistance lines
When the SB session has ended, the script draws potential support/resistance lines, again, dependable on the settings.
• Previous session (any): S/R lines are fetched between current and previous session.
For example, when current session is ' AM SB Session (10 AM — 11 AM) ', then previous session is
' London Open SB (3 AM — 4 AM) ', S/R lines between these 2 sessions alone will be included.
• Previous session (similar): S/R lines are fetched between current and previous - similar - session.
For example, when current session is ' London Open SB (3 AM — 4 AM)' , only S/R lines between
current session and previous ' London Open SB (3 AM — 4 AM) ' session are included.
When a new session starts, S/R lines will be removed, except when enabling ' Keep lines (only in strict mode) '
This is not possible in ' All FVG ' or ' Only FVG's in the same direction of trend ' mode, since the chart would be cluttered.
Note that in ' All FVG ' or ' Only FVG's in the same direction of trend ' mode, both, Support/Resistance lines will be shown,
while in Strict/Super-Strict mode:
• only Support lines will be shown if a bearish FVG appears
• only Resistance lines if a bullish FVG is shown
The lines will still be drawn the the end of the SB session, when a valid FVG appears,
but the S/R lines will remain visible and keep being updated until price reaches that line.
This publication contains a "Minimum Trade Framework (mTFW)", which represents the best-case expected price delivery, this is not your actual trade entry - exit range.
• 40 ticks for index futures or indices
• 15 pips for Forex pairs.
When on ' Strict/Super-Strict ' mode, only S/R lines will be shown which are:
• higher than the lowest FVG bottom + mTFW, in a bullish scenario
• lower than the highest FVG bottom - mTFW, in a bearish scenario
When on ' All FVG/Only FVG's in the same direction of trend ' mode, or on non-Forex/Futures/Indices symbols, S/R needs to be higher/lower than SB session high/low.
🔶 SETTINGS
(Check CONCEPTS for deeper insights and explanation)
🔹 Swing settings (left): Sets the length, which will set the lookback period/sensitivity of the Zigzag patterns (which directs the trend)
🔹 Silver Bullet Session; Show SB session: show lines and labels of SB session
Labels can be disabled separately in the ' Style ' section, color is set at the ' Inputs ' section.
🔹 FVG
– Mode
• All FVG
• Only FVG's in the same direction of trend
• Strict
• Super-Strict
– Colors
– Extend: extend till last bar of SB session
🔹 Targets – support/resistance lines
– Previous session (any): S/R lines fetched between current and previous SB session
– Previous session (similar): S/R lines fetched between current and previous similar SB session
– Colors
– Keep lines (only in strict mode)
🔹 Show
– MSS ~ Session: Show Market Structure Shift , only when this happens during a SB session
– Trend: Show trend (Zigzag, colored ~ trend)
NSR FVG High Time FramesIndicator Name : NSR FVG High Time Frames
Short Title : NSR FVGHTF
Description :The NSR FVG High Time Frames indicator identifies and visualizes Fair Value Gaps (FVGs) on higher timeframes (4-hour, Daily, and Weekly) directly on your chart. FVGs are price gaps formed between the high and low of non-consecutive candles, often indicating areas of market inefficiency that price may revisit. This indicator is designed for traders who incorporate multi-timeframe analysis into their strategies, providing a clear visual representation of bullish and bearish FVGs with customizable settings.
Unique Feature :Unlike traditional FVG indicators that mark a gap as closed when the current candle’s close crosses the gap’s boundaries, NSR FVG High Time Frames employs a distinctive closure logic. It allows an additional candle to determine whether the price re-enters the gap or continues beyond it. This approach provides a more nuanced assessment of gap closure, potentially reducing false signals by giving the market an extra candle to confirm its direction. This feature makes the indicator particularly suitable for traders seeking to validate FVG interactions with greater precision.
Key Features :
Multi-Timeframe Support : Detects FVGs on 4-hour, Daily, and Weekly timeframes, with options to enable or disable each timeframe.
Customizable Appearance : Users can adjust the visual style (Line, Dotted, Dashed) and colors for bullish and bearish FVGs, as well as enable/disable extension of FVG boxes to the right.
Flexible Lookback : Configurable lookback periods for entry (up to 10,000 candles) and FVG detection (up to 70 FVGs), allowing users to tailor the indicator to their trading style.
Minimum FVG Size : Set a minimum gap size (in ticks) to filter out insignificant FVGs, ensuring only meaningful gaps are displayed.
Closed FVG Removal : Option to automatically remove closed FVGs from the chart for a cleaner view.
Alert Integration : Generates alerts for new FVGs and changes in their status (e.g., verified, partial, closed), enabling traders to set up custom notifications.
How to Use :
Add to Chart : Apply the indicator to any chart. It works best on lower timeframes (e.g., 1H, 4H) to visualize higher-timeframe FVGs.
Configure Settings : Adjust the inputs in the settings panel:
Enable/disable 4-hour, Daily, or Weekly FVGs based on your analysis needs.
Set the lookback periods and minimum FVG size to match your trading strategy.
Customize colors and line styles for better chart readability.
Interpret FVGs :
Bullish FVGs (green boxes): Represent gaps where price may act as support, potentially attracting price back to the gap.
Bearish FVGs (red boxes): Represent gaps where price may act as resistance.
Boxes are drawn between the relevant high and low of the candles forming the FVG, with text labels indicating the timeframe (e.g., "4H", "D", "Weekly").
Monitor Closure : Watch for price interaction with FVGs. The indicator considers an FVG closed only after an additional candle confirms the price has moved beyond the gap or failed to re-enter it, unlike standard FVG indicators.
Set Alerts : Use the alert feature to receive notifications when new FVGs form or their status changes (e.g., "partial" or "closed").
Settings :
Entry Lookback (candles) : Number of candles to look back for FVG detection (default: 10,000).
Number of FVG to Lookback : Maximum number of FVGs to display (default: 70).
Minimum FVG Size : Minimum gap size in ticks (default: 5).
Remove Closed : Toggle to remove closed FVGs from the chart (default: true).
Show/Extend 4Hour/Daily/Weekly : Enable/disable FVGs for each timeframe and choose whether to extend boxes to the right.
Color and Style Options : Customize fill and border colors, and select line styles (Line, Dotted, Dashed) for each timeframe.
Use Cases :
Swing Trading : Identify potential support/resistance zones on higher timeframes for entry or exit points.
Price Action Analysis : Use FVGs to confirm market inefficiencies or reversal zones.
Multi-Timeframe Strategies : Combine with lower-timeframe indicators to align entries with higher-timeframe FVGs.
Notes :
The indicator is optimized for lower timeframes to display higher-timeframe FVGs. Avoid using it on Weekly or Monthly charts for Daily/Weekly FVGs to prevent overlap issues.
The unique closure logic may delay FVG closure signals compared to other indicators, which can help filter out premature closures but requires patience for confirmation.
Performance may vary on very low timeframes with large lookback periods due to the number of FVGs processed.
Disclaimer :This indicator is for informational purposes only and does not constitute financial advice. Always conduct your own analysis and test the indicator thoroughly before using it in live trading.
MirPapa:ICT:HTF: FVG Threeple# MirPapa:ICT:FVG Double HTF
**Version:** Pine Script® v6
**Author:** © goodia
**License:** MPL-2.0 (Mozilla Public License 2.0)
---
## Overview
“MirPapa:ICT:FVG Double HTF” is a TradingView indicator that identifies and visualizes Fair Value Gaps (FVG) on two higher time frames (HighTF and MidTF) simultaneously. It can also draw FVG boxes on the current chart’s time frame. When “Overlap Mode” is enabled, the indicator displays only the intersection of HighTF and MidTF FVG areas.
---
## Key Features
- **HighTF FVG**
- Detects bullish and bearish FVGs on a user-selected upper time frame (e.g., 4H).
- Draws colored boxes around gap ranges, optionally with a midpoint line.
- Automatically extends boxes on every bar and finalizes (recolors) them after a specified number of closes beyond the gap.
- **MidTF FVG**
- Same as HighTF FVG but for a second, intermediate time frame (e.g., 1H).
- Runs in parallel to HighTF logic, with separate color and transparency settings.
- **CurrentTF FVG (Optional)**
- If enabled, draws FVG boxes using the chart’s own time frame.
- Behaves identically: extends until broken by price, then finalizes.
- **Overlap Mode**
- When enabled, hides all individual HighTF and MidTF boxes.
- Instead, computes and displays only their overlapping rectangle(s)—separate for bullish and bearish gaps.
---
## Inputs & Configuration
- **Common Inputs**
- **Enable High/Mid Overlap Mode** (`boolean`): Show only overlapping HighTF + MidTF FVG areas.
- **Box Close Color** (`color`): Color applied to any FVG box when it is finalized.
- **HighTF FVG Settings**
- **HighTF Label** (`dropdown`): Choose a Korean label (e.g., “4시간”) that maps to a Pine timeframe (e.g., “240”).
- **Enable HighTF FVG Boxes** (`boolean`): Toggle drawing of HighTF FVG boxes.
- **Enable HighTF FVG Midlines** (`boolean`): Toggle midpoint line inside each HighTF box.
- **HighTF FVG Close Count** (`integer` 1–10): Number of closes beyond the gap before finalizing the box.
- **HighTF FVG Bull Color** (`color`): Fill & border color for bullish HighTF gaps.
- **HighTF FVG Bear Color** (`color`): Fill & border color for bearish HighTF gaps.
- **HighTF Box Transparency** (`integer` 1–100): Opacity level for HighTF box fills.
- **MidTF FVG Settings**
- **MidTF Label** (`dropdown`): Choose a Korean label (e.g., “1시간”) mapped to a Pine timeframe.
- **Enable MidTF FVG Boxes** (`boolean`): Toggle drawing of MidTF FVG boxes.
- **Enable MidTF FVG Midlines** (`boolean`): Toggle midpoint line inside each MidTF box.
- **MidTF FVG Close Count** (`integer` 1–10): Number of closes beyond the gap before finalizing the box.
- **MidTF FVG Bull Color** (`color`): Fill & border color for bullish MidTF gaps.
- **MidTF FVG Bear Color** (`color`): Fill & border color for bearish MidTF gaps.
- **MidTF Box Transparency** (`integer` 1–100): Opacity level for MidTF box fills.
- **CurrentTF FVG Settings**
- **Enable CurrentTF FVG Boxes** (`boolean`): Draw FVG boxes on the chart’s own timeframe.
- **Enable CurrentTF FVG Midlines** (`boolean`): Toggle midpoint line inside each CurrentTF box.
- **CurrentTF FVG Close Count** (`integer` 1–10): Number of closes beyond the gap before finalizing the box.
- **CurrentTF FVG Bull Color** (`color`): Fill & border color for bullish CurrentTF gaps.
- **CurrentTF FVG Bear Color** (`color`): Fill & border color for bearish CurrentTF gaps.
- **CurrentTF Box Transparency** (`integer` 1–100): Opacity level for CurrentTF box fills.
---
## How It Works
1. **Time Frame Conversion**
Korean labels (e.g., “4시간”, “1시간”) are converted internally to Pine timeframe strings via `GetHtfFromLabel()`.
2. **Data Retrieval**
For each chosen TF (HighTF, MidTF, and optionally CurrentTF), the script fetches OHLC and historical values using `GetHTFrevised()`.
- Tracks `bar_index` from that TF to align box drawing on the chart’s base timeframe.
3. **Box Lifecycle**
- **Creation**: On each new TF bar, if a bullish gap (`low > high `) or bearish gap (`low > high `) is detected, `CreateBoxData()` registers a new `BoxData` struct and draws an initial box.
- **Extension**: On every chart bar, `ProcessBoxDatas()` extends each active box’s right edge and updates internal “touch stage” and volume.
- **Finalization**: After the specified number of closes beyond the gap, `setBoxFinalize()` disables the box and changes its border & fill to the “Box Close Color”.
4. **Overlap Mode**
- When enabled, HighTF and MidTF boxes are not drawn individually.
- Instead, at each bar, the script iterates over all active HighTF boxes and all active MidTF boxes, computes their intersection rectangle (if any), and draws only that overlapping area (distinct handling for bullish vs. bearish gaps).
---
## Installation & Usage
1. **Copy & Paste**
Copy the entire Pine Script code into TradingView’s Pine Editor.
Click “Add to Chart.”
2. **Configure Inputs**
- Choose your HighTF and MidTF via the dropdown menus.
- Enable or disable FVG boxes/midlines for each TF.
- Adjust colors, transparency, and “Close Count” settings to taste.
- Toggle “Overlap Mode” if you only want to see common areas between HighTF and MidTF gaps.
3. **Interpretation**
- **Active Boxes** extend to the right as new bars form. When price closes beyond a gap (per “Close Count”), the box is finalized and recolored to the close color.
- In **Overlap Mode**, you’ll see only the overlapping region between HighTF and MidTF gaps, updated on every bar.
Enjoy precise FVG visualization across multiple time frames!
NWOG with FVGThe New Week Opening Gap (NWOG) and Fair Value Gap (FVG) combined indicator is a trading tool designed to analyze price action and detect potential support, resistance, and trade entry opportunities based on two significant concepts:
New Week Opening Gap (NWOG): The price range between the high and low of the first candle of the new trading week.
Fair Value Gap (FVG): A price imbalance or gap between candlesticks, where price may retrace to fill the gap, indicating potential support or resistance zones.
When combined, these two concepts help traders identify key price levels (from the new week open) and price imbalances (from FVGs), which can act as powerful indicators for potential market reversals, retracements, or continuation trades.
1. New Week Opening Gap (NWOG):
Definition:
The New Week Opening Gap (NWOG) refers to the range between the high and low of the first candle in a new trading week (often, the Monday open in most markets).
Purpose:
NWOG serves as a significant reference point for market behavior throughout the week. Price action relative to this range helps traders identify:
Support and Resistance zones.
Bullish or Bearish sentiment depending on price’s relation to the opening gap levels.
Areas where the market may retrace or reverse before continuing in the primary trend.
How NWOG is Identified:
The high and low of the first candle of the new week are drawn on the chart, and these levels are used to assess the market's behavior relative to this range.
Trading Strategy Using NWOG:
Above the NWOG Range: If price is trading above the NWOG levels, it signals bullish sentiment.
Below the NWOG Range: If price is trading below the NWOG levels, it signals bearish sentiment.
Price Touching the NWOG Levels: If price approaches or breaks through the NWOG levels, it can indicate a potential retracement or reversal.
2. Fair Value Gap (FVG):
Definition:
A Fair Value Gap (FVG) occurs when there is a gap or imbalance between two consecutive candlesticks, where the high of one candle is lower than the low of the next candle (or vice versa), creating a zone that may act as a price imbalance.
Purpose:
FVGs represent an imbalance in price action, often indicating that the market moved too quickly and left behind a price region that was not fully traded.
FVGs can serve as areas where price is likely to retrace to fill the gap, as traders seek to correct the imbalance.
How FVG is Identified:
An FVG is detected if:
Bearish FVG: The high of one candle is less than the low of the next (gap up).
Bullish FVG: The low of one candle is greater than the high of the next (gap down).
The area between the gap is drawn as a shaded region, indicating the FVG zone.
Trading Strategy Using FVG:
Price Filling the FVG: Price is likely to retrace to fill the gap. A reversal candle in the FVG zone can indicate a trade setup.
Support and Resistance: FVG zones can act as support (in a bullish FVG) or resistance (in a bearish FVG) if the price retraces to them.
Combined Strategy: New Week Opening Gap (NWOG) and Fair Value Gap (FVG):
The combined use of NWOG and FVG helps traders pinpoint high-probability price action setups where:
The New Week Opening Gap (NWOG) acts as a major reference level for potential support or resistance.
Fair Value Gaps (FVG) represent market imbalances where price might retrace to, filling the gap before continuing its move.
Signal Logic:
Buy Signal:
Price touches or breaks above the NWOG range (indicating a bullish trend) and there is a bullish FVG present (gap indicating a support area).
Price retraces to fill the bullish FVG, offering a potential buy opportunity.
Sell Signal:
Price touches or breaks below the NWOG range (indicating a bearish trend) and there is a bearish FVG present (gap indicating a resistance area).
Price retraces to fill the bearish FVG, offering a potential sell opportunity.
Example:
Buy Setup:
Price breaks above the NWOG resistance level, and a bullish FVG (gap down) appears below. Traders can wait for price to pull back to fill the gap and then take a long position when confirmation occurs.
Sell Setup:
Price breaks below the NWOG support level, and a bearish FVG (gap up) appears above. Traders can wait for price to retrace and fill the gap before entering a short position.
Key Benefits of the Combined NWOG & FVG Indicator:
Combines Two Key Concepts:
NWOG provides context for the market's overall direction based on the start of the week.
FVG highlights areas where price imbalances exist and where price might retrace to, making it easier to spot entry points.
High-Probability Setups:
By combining these two strategies, the indicator helps traders spot high-probability trades based on major market levels (from NWOG) and price inefficiencies (from FVG).
Helps Identify Reversal and Continuation Opportunities:
FVGs act as potential support and resistance zones, and when combined with the context of the NWOG levels, it gives traders clearer guidance on where price might reverse or continue its trend.
Clear Visual Signals:
The indicator can plot the NWOG levels on the chart, and shade the FVG areas, providing a clean and easy-to-read chart with entry signals marked for buy and sell opportunities.
Conclusion:
The New Week Opening Gap (NWOG) and Fair Value Gap (FVG) combined indicator is a powerful tool for traders who use price action strategies. By incorporating the New Week's opening range and identifying gaps in price action, this indicator helps traders identify potential support and resistance zones, pinpoint entry opportunities, and increase the probability of successful trades.
This combined strategy enhances your analysis by adding layers of confirmation for trades based on significant market levels and price imbalances. Let me know if you'd like more details or modifications!
RunRox - Advanced SMC⭐️ Introducing Our Advanced SMC Indicator: Elevate Your Smart Money Concept Trading
We are excited to present our innovative indicator, specifically designed for the Smart Money Concept (SMC). Our approach goes beyond the traditional SMC strategy by offering significant enhancements that can help you achieve stronger trading performance.
We employ a more sophisticated SMC structure, incorporating improved IDM (Inducement) logic, both internal and external structures, and four types of order blocks. This allows for deeper insights into market trends and a clearer understanding of how major market participants may be manipulating price action.
🟠 Indicator Features:
Structure
HTF Structure – Choose any timeframe and display its structure on your current chart.
CHoCH | BOS | IDM – Display any components from this structure.
Market Minor Structure – Swing and Minor structure.
BOS/CHoCH Breaking by (Body | Wick) – Choose the principle for building the structure, either by the candle body or by their wicks.
BOS/CHoCH Move if Swept – When liquidity is taken, decide whether to move the structure line higher or consider it a structural break.
Move CHoCH/BOS – Relocate key points on the chart if the structure becomes too large.
FVG Concept
HTF FVG – Choose any timeframe from which you want to display FVG on your current chart
Three Types of FVG – Classic FVG, Double FVG, Implied Imbalance
Reaction to FVG – Show the market’s reaction to FVG on the chart
Mitigation Method – Select the fill method that suits your approach (Touch/Midline/Complete)
Remove Filled FVG – Remove FVGs from the chart once they have been filled
Combine FVG – Merge several consecutive FVGs into one
Length FVG – Adjust the number of candles that define the FVG
OrderBlock Concept
HTF OrderBlock – Choose any timeframe from which you want to display orderblocks on your current chart
Swing and Minor Orderblocks – Display only the orderblocks you need, whether from the Swing or Minor structure
Four Types of Order Blocks – Advanced OB, Classic OB, BTS/STB zones, Extremum Candle
Block Based on – Decide whether to base the orderblock on candle highs/lows or candle open/close
Mitigation Method – Define when an orderblock is considered filled (Touch/Midline/Complete)
Remove Blocks Older – Remove older orderblocks from the chart
Hide Overlap – Disable overlapping orderblocks when they appear in the same area
Eat Young Blocks – Reduce the size of an orderblock until it fully forms
Hide Distant Blocks – Remove orderblocks that are too far from the current price
Previous Highs & Lows
Four Level Types – Day, Week, Month, Quarter
Style Customization – Choose line color, line style, and transparency
Fibonacci Retracements
10 Template Options – Ten different bases on which you can build your Fibonacci grid
Up to 7 Levels – Add up to seven Fibonacci levels for your convenience
Fibo Inversion – Option to invert the Fibonacci grid
Style Customization – Choose line colors, line styles, and transparency
Additional Functions
Premium & Discount Zones – A popular concept we’ve incorporated to help identify potential trading areas within premium or discount prices
Equal Highs & Lows – High-liquidity levels where market makers may seek liquidity
Color Candles – Automatically colors candles based on the current trend
Market Structure ZigZag – Offers a clear visual of the zigzag pattern on which the structure is built
Key Point Labels – Displays important swing high/low points directly on the chart
General Styling – Customize any chart element, including size, style, color, and transparency
Alert Customization – Over 16 types of alerts, easily configured in a few clicks. Receive only the notifications you need. Custom alerts are also available for developers.
Next, we will provide a detailed overview of all the indicator’s features, accompanied by chart examples.
📈 Structure
What Is IDM?
IDM, or the Institutional Distribution Model, is an advanced concept within SMC that focuses on how institutional players distribute their positions in the market. By analyzing IDM, traders can better anticipate price movements and potential turning points, thereby gaining a meaningful edge in their trading.
In our structure concept, IDM can form under specific conditions. The market does not always provide a high-liquidity point to work with, so we’ve adopted a flexible approach. We generate IDM when a certain type of liquidity appears during the impulse and BOS break, allowing for a potential future liquidity sweep.
Below, I will provide an example that illustrates when IDM forms as a liquidity magnet within the structure - and when it does not.
As shown in the example above, we focus on the initial impulse after the BOS. If liquidity forms during this impulse - liquidity that needs to be taken out during the structural move - we mark an IDM level as a price magnet. However, if this liquidity does not appear, we do not create an IDM. In that case, the same point might serve as an FVG or play a different role, depending on your trading approach.
This concept makes the structure more flexible and better able to respond immediately to market movements and key structural points.
Above is an example on the chart illustrating what the structure looks like both with and without IDM. As you can see, when the structural move includes pullbacks and consolidation, there is an opportunity to form an IDM as a price magnet. However, if the impulses are strong and lack pullbacks, FVG becomes the only magnet in that move. Depending on the chart, our indicator adapts to the current market conditions and highlights potential liquidity collection points.
📊 Swing and Minor Structure
In the new version of the indicator, the minor structure and the swing structure differ from each other.
Swing structure - In this structure, as mentioned earlier, the IDM concept remains a price magnet and is formed at certain points on the chart if the conditions allow. If these points do not appear, IDM might not form at all.
Minor structure - Here, we have completely removed IDM and only kept BOS and CHoCH for structure formation. We found that for a minor structure, this approach allows faster reactions to trend changes, depending on market movements.
By making these adjustments, we have resolved the main issue of the advanced structure, which was the large distance between BOS and CHoCH that sometimes resulted in a month-long consolidation between these levels. In this version, those problems no longer occur.
If, for some reason, your settings result in a larger swing structure, you can still work with the minor structure using the same POI as in the swing structure. OrderBlock and FVG remain the primary drivers of order flow.
Shown above is a screenshot of the main structure settings you can adjust. These settings are highly flexible and can be tailored to fit a wide range of trading preferences.
⚖️ FVG Concept
A new feature of our indicator is the FVG concept. We automatically detect three types of FVG at the moment, which will be explained below.
FVG - the standard Fair Value Gap
Double FVG - a double FVG, also referred to as BPR (Balanced Price Range)
Implied Imbalance - a type of imbalance that arises from buyer or seller demand
Below, we will look at examples of the FVG types we currently identify.
All price inefficiencies work in real time, immediately appearing on the chart and allowing traders to quickly respond to FVG reactions.
We have also enhanced this concept by displaying FVG reactions on the chart. If an FVG triggers a reaction and the price responds to that range, we highlight it on the chart, so you can recognize the reaction and make timely trading decisions. A screenshot below shows how this looks in practice.
Below is a screenshot illustrating the main settings of this concept, along with detailed descriptions.
📦 OrderBlock Concept
OrderBlocks provide an effective way to identify areas of interest and make informed decisions. We have dedicated significant effort to refining this section’s functionality and have achieved strong results in doing so.
Order Block Types
Advanced OrderBlock – A specialized type of order block generated by our internal algorithm. This can help traders aim for tighter entries and potentially more favorable risk-reward ratios within a narrow price range.
OrderBlock – The classic type, formed at the highs or lows of a structure when a BOS or CHoCH occurs. It can still be an effective entry method but typically spans a wider price range.
Extremum Candle – Based on liquidity grabs. The candle creating this order block must collect liquidity before making an impulsive move that breaks the BOS or CHoCH.
BTS / STB (Buy To Sell / Sell To Buy) – This concept may appear when market makers manipulate price to buy or sell an asset. It often covers a larger price range because it relies on a brief impulsive move to form.
Each type of order block has its own strengths and weaknesses. We provide traders with the flexibility to choose which types suit their trading style and preferences.
Above is an example of how you can apply OrderFlow alongside our structure and orderblocks, which can produce solid results when combined with the Smart Money concept.
In this demonstration, we have highlighted the Advanced Orderblock as an illustration.
Above is a screenshot of all the settings related to this section. They can be customized to suit your specific needs, ensuring you only see what is genuinely relevant on your chart.
📏 Previous Highs and Lows
You can select four levels to display on the chart as some of the most liquid zones:
Daily Highs and Lows
Weekly Highs and Lows
Monthly Highs and Lows
Quarterly Highs and Lows
This feature helps you identify important levels on lower timeframes and focus on these zones for potential trading opportunities. Below is an example of how it appears on the chart.
Below, you can see the settings available in this section.
📐 Fibonacci Levels
Likewise, a new section in our indicator is Fibonacci Levels, a well-known tool recognized as a reliable source of important levels on the chart. We have added this functionality with the option to choose how you want to generate these levels and which specific levels you want to display.
You can plot Fibonacci levels based on the Swing structure, Minor structure, previous or current day, month, and more. In total, there are 10 different options for constructing the Fibonacci grid.
Above, you can see an example of how it appears on the chart, and below you will find the settings available in this section.
🈹 Premium and Discount
Another useful feature for all traders is the Premium and Discount zones based on structure. This makes it easy to identify areas of interest—whether in a discount or premium zone, or in an equilibrium area.
Below, you can also see the settings available in this section.
✅ Additional Function
We have also separated a few functions into their own section:
Color Candles – Colors the candles according to the current trend.
Market Structure ZigZag – Visually highlights the zigzag used to form the structure.
Key Point Labels – Displays the points on the chart from which the structure is built.
Equal Highs & Lows – Identifies equal highs and lows as areas of potential liquidity for larger market players, as price often aims to sweep these zones.
Below are a few screenshots showing how these features appear on the chart.
Color Candles
Market Structure ZigZag and Key Point Labels
Equal Highs & Lows
Below, you can see a screenshot displaying all the settings available in this section.
🎨 General Styling
We have devoted considerable effort to providing flexible customization for each element on the chart, so you can design the exact look you want. That’s why we created an additional section where you can adjust any element’s size, style, and more.
Combined with extensive color and transparency options, this feature provides a flexible appearance for the indicator on any chart.
Below, you can see the settings available in this section
🔔 Alert Customization
You can configure over 16 types of reactions to various events on the chart. Additionally, you can set up alerts to trigger at specific fill levels and explore numerous other alert options, as shown in the screenshot below.
🟠 Usage Examples
We have also prepared several examples of how to use the indicator. These are standard entry models taken from the classic Smart Money concept.
First Example
In the screenshot above, the market displays a downward structure until a manipulation occurs, followed by a CHoCH break. This is a standard entry model featuring an entry at the nearest FVG, a stop-loss placed beyond the manipulation, and a target at the nearest liquidity zone—whether session-based or, as in our case, a gap (one of the FVG types) that price commonly revisits.
This is considered a more aggressive entry because we only waited for a single confirmation of the trend change—the CHoCH break—and then entered immediately afterward. While the WinRate might be lower in such trades, the Risk-Reward ratio is typically very high if you correctly identify the manipulation.
Second Example
This approach is more conservative and less risky, typically offering a higher WinRate but with a lower Risk-Reward ratio.
Here, we use the 4H FVG as our decision point (POI). With the indicator, we plot the 4-hour FVG on our current chart without needing to switch back and forth between timeframes.
Once price reaches our POI, we look for an entry model that includes three confirmations:
First Confirmation – A CHoCH break.
Second Confirmation – A manipulation.
Third Confirmation – A second BOS break.
We wait for all these confirmations before entering the trade, ensuring our stop-loss is well-protected since the remaining liquidity has been swept and the 4-hour FVG has been fully filled.
Our target is the full fill of a higher timeframe FVG or other high-liquidity levels below.
In a conservative setup, it is crucial to allow a complete OrderFlow to develop, including manipulations and clear breaks of lower levels. This approach helps protect the trade and often results in a higher WinRate.
🟠 Disclaimer
Past performance is not indicative of future results. To trade successfully, it is crucial to have a thorough understanding of the market context and the specific situation at hand. Always conduct your own research and analysis before making any trading decisions.
To gain access to the indicator, please review the author's instructions below this post
lib_fvgLibrary "lib_fvg"
further expansion of my object oriented library toolkit. This lib detects Fair Value Gaps and returns them as objects.
Drawing them is a separate step so the lib can be used with securities. It also allows for usage of current/close price to detect fill/invalidation of a gap and to adjust the fill level dynamically. FVGs can be detected while forming and extended indefinitely while they're unfilled.
method draw(this)
Namespace types: FVG
Parameters:
this (FVG)
method draw(fvgs)
Namespace types: FVG
Parameters:
fvgs (FVG )
is_fvg(mode, precondition, filter_insignificant, filter_insignificant_atr_factor, live)
Parameters:
mode (int) : switch for detection 1 for bullish FVGs, -1 for bearish FVGs
precondition (bool) : allows for other confluences to block/enable detection
filter_insignificant (bool) : allows to ignore small gaps
filter_insignificant_atr_factor (float) : allows to adjust how small (compared to a 50 period ATR)
live (bool) : allows to detect FVGs while the third bar is forming -> will cause repainting
Returns: a tuple of (bar_index of gap bar, gap top, gap bottom)
create_fvg(mode, idx, top, btm, filled_at_pc, config)
Parameters:
mode (int) : switch for detection 1 for bullish FVGs, -1 for bearish FVGs
idx (int) : the bar_index of the FVG gap bar
top (float) : the top level of the FVG
btm (float) : the bottom level of the FVG
filled_at_pc (float) : the ratio (0-1) that the fill source needs to retrace into the gap to consider it filled/invalidated/ready for removal
config (FVGConfig) : the plot configuration/styles for the FVG
Returns: a new FVG object if there was a new FVG, else na
detect_fvg(mode, filled_at_pc, precondition, filter_insignificant, filter_insignificant_atr_factor, live, config)
Parameters:
mode (int) : switch for detection 1 for bullish FVGs, -1 for bearish FVGs
filled_at_pc (float)
precondition (bool) : allows for other confluences to block/enable detection
filter_insignificant (bool) : allows to ignore small gaps
filter_insignificant_atr_factor (float) : allows to adjust how small (compared to a 50 period ATR)
live (bool) : allows to detect FVGs while the third bar is forming -> will cause repainting
config (FVGConfig)
Returns: a new FVG object if there was a new FVG, else na
method update(this, fill_src)
Namespace types: FVG
Parameters:
this (FVG)
fill_src (float) : allows for usage of different fill source series, e.g. high for bearish FVGs, low vor bullish FVGs or close for both
method update(all, fill_src)
Namespace types: FVG
Parameters:
all (FVG )
fill_src (float)
method remove_filled(unfilled_fvgs)
Namespace types: FVG
Parameters:
unfilled_fvgs (FVG )
method delete(this)
Namespace types: FVG
Parameters:
this (FVG)
method delete_filled_fvgs_buffered(filled_fvgs, max_keep)
Namespace types: FVG
Parameters:
filled_fvgs (FVG )
max_keep (int) : the number of filled, latest FVGs to retain on the chart.
FVGConfig
Fields:
box_args (|robbatt/lib_plot_objects/36;BoxArgs|#OBJ)
line_args (|robbatt/lib_plot_objects/36;LineArgs|#OBJ)
box_show (series__bool)
line_show (series__bool)
keep_filled (series__bool)
extend (series__bool)
FVG
Fields:
config (|FVGConfig|#OBJ)
startbar (series__integer)
mode (series__integer)
top (series__float)
btm (series__float)
center (series__float)
size (series__float)
fill_size (series__float)
fill_lvl_target (series__float)
fill_lvl_current (series__float)
fillbar (series__integer)
filled (series__bool)
_fvg_box (|robbatt/lib_plot_objects/36;Box|#OBJ)
_fill_line (|robbatt/lib_plot_objects/36;Line|#OBJ)
Quantum Trend FVG System [ReyTradez]1️⃣ INTRODUCTION
The Quantum Trend FVG System provides a complete, structured framework for algorithmic trend detection and Fair Value Gap detection, combining smoothed trend evaluation, multi-layered price-action logic, and ATR-based filtering to deliver clear, data-driven market structure insights for trend-following, swing, and intraday trading.
🔹It combines two powerful techniques:
Trend Detector System: Uses smoothed Moving Averages to identify long-term and short-term market trends, helping traders align their trades with the dominant market direction.
FVG Detector System: Identifies Fair Value Gaps and confirms only meaningful gaps by combining ATR-based filtering with the three same-candle technique, which requires three consecutive same-direction candles to validate each FVG, increasing the probability of high-quality trading opportunities.
The Quantum Trend FVG System is engineered with a clear purpose: to deliver accurate, real-time identification of significant Fair Value Gaps and trend conditions that support advanced price-action and SMC-based analysis. While an FVG or trend signal should not be used in complete isolation, these structural events are essential for understanding market imbalance, liquidity displacement, and potential points of reaction. The system is designed to provide consistent, high-quality detection, giving traders a refined and reliable framework for interpreting market structure and anticipating future movement.
2️⃣ TREND DETECTOR SYSTEM
The Trend Detector uses a dual-SMA engine to determine market direction. A user-friendly slider controls sensitivity to make trends more reactive or smoother.
🔹Features:
Colors candles based on bullish or bearish trend
Fills the background with a smooth gradient between SMAs
Confirms trend direction for breakout and continuation trades
3️⃣ FAIR VALUE GAPS (FVG) DETECTOR SYSTEM
Detects high-quality FVGs validated by three consecutive same-direction candles. Only meaningful gaps are displayed, reducing noise.
🔹Bullish FVG Conditions:
3 consecutive bullish candles
Current low > high of 2 candles ago
Passes ATR-based minimum size filter
🔹Bearish FVG Conditions:
3 consecutive bearish candles
Current high < low of 2 candles ago
Passes ATR-based minimum size filter
🔹ATR-Based Filtering (Integrated in FVGs):
Filters out small or insignificant gaps that may not be tradable
ATR period defines market volatility used for comparison
Minimum FVG size is set relative to ATR to ensure only meaningful gaps are considered
4️⃣ SETTINGS OVERVIEW
🔹Trend Detector Settings:
Enable Trend Detector — toggles the Trend Detector system on or off;
Trend Detector Sensitivity — adjusts the responsiveness of the trend detection (0 = lowest sensitivity, 10 = highest sensitivity).
🔹FVG Detector Settings:
Show FVGs — toggles the display of Fair Value Gaps on the chart;
Extend FVGs — controls how far FVG boxes extend into the future;
Number of historical FVGs — sets the maximum number of FVG boxes to display;
Bullish FVG color — selects the color for bullish FVGs;
Bearish FVG color — selects the color for bearish FVGs.
🔹ATR Filter Settings:
ATR Period — sets the number of bars used to calculate ATR;
Min FVG size factor — defines the minimum FVG size relative to ATR required for validity (e.g., 0.5 means the FVG must be at least 50% of the ATR).
5️⃣ TRADING EXAMPLES
🟢 Long Setup Example
A Bullish Trend + valid Bullish FVG confirmed by strong displacement.
🔴 Short Setup Example
A Bearish Trend + valid Bearish FVG confirmed by strong displacement.
6️⃣ CONCLUSION
The Quantum Trend FVG System is designed to automatically detect significant Fair Value Gaps while analyzing the prevailing market trend through its Trend Detector System. By combining smoothed trend analysis with ATR-filtered FVG Detector System, it highlights high-probability zones where price may react, making it easier for traders to identify structurally important areas without manually tracking them.
🔹Traders can now:
✅ Quickly identify market trends
✅ Spot high-probability Fair Value Gaps
✅ Filter minor gaps using ATR
✅ Visualize trend momentum with gradient fills
✅ Maintain a clean, readable chart with historical FVG limits
⚠️ This indicator is not intended to signal exact entry points or guarantee that an FVG will act as a perfect buying or selling zone; rather, it streamlines the identification process and supports the implementation of systematic, rules-based trading strategies, allowing traders to incorporate trend and FVG analysis into their workflow more efficiently.
Advanced FVG Detector Pro📊 Advanced FVG Detector Pro - Smart Money Analysis Tool
Overview
The Advanced FVG Detector Pro is a sophisticated Pine Script v6 indicator designed to identify and track Fair Value Gaps (FVGs) with institutional-grade precision. This tool goes beyond basic gap detection by incorporating volume analysis, smart money scoring, and adaptive filtering to help traders identify high-probability trading opportunities.
What are Fair Value Gaps?
Fair Value Gaps (FVGs) are price inefficiencies that occur when the market moves so quickly that it leaves behind an imbalance or "gap" in price action. These gaps often act as magnets for future price movement as the market seeks to fill these inefficiencies. Professional traders and institutions closely monitor FVGs as they represent areas of potential support, resistance, and high-probability trade setups.
🎯 Key Features
1. Smart Money Scoring System
Proprietary algorithm that rates each FVG on a 0-100 scale Combines gap size, volume strength, price location, and trend alignment Filter out low-quality setups by setting minimum score thresholdsFocus on institutional-grade opportunities with scores above 70
2. Advanced Volume Validation
Validates FVGs with volume analysis to reduce false signals Only displays gaps formed during significant volume periods Customizable volume multiplier for different market conditions
Visual volume strength indicators on chart
3. Flexible Mitigation Options
Full Fill: Traditional complete gap closure Midpoint Touch: More aggressive entry strategy
Partial Fill: Customizable percentage-based mitigation (10-90%) Choose the strategy that matches your trading style
4. ATR-Based Adaptive Filtering
Automatically adjusts to market volatility using Average True Range Works consistently across any instrument, timeframe, or volatility regime No manual recalibration needed when switching markets Filters out noise while capturing meaningful gaps
5. Real-Time Statistics Dashboard
Live tracking of total active FVGs Bullish vs Bearish gap count Mitigation rate percentage
Average Smart Money Score Toggle on/off based on preference
6. Professional Visual Design
Clean, customizable color schemes Optional midline display for precise entry planning
Labels showing gap type, score, and volume strength Automatic extension of active gaps
Mitigated gaps change color for easy identification
📈 How to Use
For Day Traders:
Use 5-15 minute timeframes
Set ATR Multiplier to 0.15-0.25
Enable volume validation
Focus on FVGs with scores above 65
For Swing Traders:
Use 1H-4H timeframes
Set ATR Multiplier to 0.5-1.0
Use "Midpoint Touch" mitigation
Focus on FVGs with scores above 70
For Position Traders:
Use Daily timeframe
Set ATR Multiplier to 0.75-1.5
Use "Full Fill" mitigation
Focus on FVGs with scores above 75
🔧 Customization Options
Detection Settings:
Minimum FVG size percentage filter
ATR-based size filtering
Maximum number of gaps to display
Smart Money Score minimum threshold
Volume Analysis:
Volume validation toggle
Volume multiplier adjustment
Volume moving average period
Visual volume strength background
Mitigation Control:
Choose mitigation type (Full/Midpoint/Partial)
Set partial fill percentage
Auto-remove mitigated gaps
Control how long mitigated gaps remain visible
Visual Customization:
Bullish/Bearish/Mitigated colors
Show/hide midlines
Show/hide labels
Box extension length
Statistics dashboard toggle
🎓 Trading Strategy Ideas
1. FVG Retest Strategy
Wait for price to create a high-score FVG (70+)
Enter on the first retest of the gap
Place stop loss beyond the gap
Target the opposite side of the gap or next FVG
2. Confluence Trading
Combine FVGs with support/resistance levels
Look for FVGs near key moving averages (20/50 EMA)
Higher probability when FVG aligns with trendlines
Use multiple timeframe analysis
3. Breakout Confirmation
FVGs often form during strong breakouts
High-volume FVGs confirm breakout strength
Enter on mitigation of breakout FVG
Trail stops as new FVGs form in trend direction
⚡ Performance Optimizations
Efficient memory management for smooth chart performance
Optimized calculations run only once per bar
Smart array management prevents memory leaks
Works smoothly even with 100+ active FVGs
🔔 Alert System
Customizable alerts for new bullish FVGs
Customizable alerts for new bearish FVGs
Mitigation alerts for active gaps
Frequency control to avoid alert spam
💡 Pro Tips
Multi-Timeframe Approach: Identify major FVGs on higher timeframes (Daily/4H) and use lower timeframes (15M/5M) for precise entries
Volume Confirmation: The highest probability setups occur when FVGs form with 2x+ average volume
Trend Alignment: Trade FVGs in the direction of the major trend for best results
Patience Pays: Wait for price to return to the FVG rather than chasing breakouts
Risk Management: Always use stop losses beyond the FVG boundaries
📚 Educational Value
This indicator is perfect for:
Learning to identify institutional order flow
Understanding market microstructure
Developing price action trading skills
Recognizing supply and demand imbalances
Improving entry and exit timing
⚠️ Disclaimer
This indicator is a tool for technical analysis and should not be used as the sole basis for trading decisions. Always combine with proper risk management, fundamental analysis, and your own trading plan. Past performance does not guarantee future results.
🔄 Updates & Support
Regular updates will include:
Additional filtering options
Enhanced multi-timeframe analysis
More customization features
Performance improvements
📊 Best Pairs/Markets
Works excellently on:
Forex pairs (EUR/USD, GBP/USD, etc.)
Cryptocurrency (BTC, ETH, etc.)
Stock indices (SPX, NQ, etc.)
Individual stocks
Commodities (Gold, Oil, etc.)
Version Information
Version: 1.0
Pine Script: Version 6
Type: Overlay Indicator
Max Boxes: 500
Max Lines: 500
Momentum-Based Fair Value Gaps [BackQuant]Momentum-Based Fair Value Gaps
A precision tool that detects Fair Value Gaps and color-codes each zone by momentum, so you can quickly tell which imbalances matter, which are likely to fill, and which may power continuation.
What is a Fair Value Gap
A Fair Value Gap is a 3-candle price imbalance that forms when the middle candle expands fast enough that it leaves a void between candle 1 and candle 3.
Bullish FVG : low > high . This marks a bullish imbalance left beneath price.
Bearish FVG : high < low . This marks a bearish imbalance left above price.
These zones often act as magnets for mean reversion or as fuel for trend continuation when price respects the gap boundary and runs.
Why add momentum
Not all gaps are equal. This script measures momentum with RSI on your chosen source and paints each FVG with a momentum heatmap. Strong-momentum gaps are more likely to hold or propel continuation. Weak-momentum gaps are more likely to fill.
Core Features
Auto FVG Detection with size filters in percent of price.
Momentum Heatmap per gap using RSI with smoothing. Multiple palettes: Gradient, Discrete, Simple, and scientific schemes like Viridis, Plasma, Inferno, Magma, Cividis, Turbo, Jet, plus Red-Green and Blue-White-Red.
Bull and Bear Modes with independent toggles.
Extend Until Filled : keep drawing live to the right until price fully fills the gap.
Auto Remove Filled for a clean chart.
Optional Labels showing the smoothed RSI value stored at the gap’s birth.
RSI-based Filters : only accept bullish gaps when RSI is oversold and bearish gaps when RSI is overbought.
Performance Controls : cap how many FVGs to keep on chart.
Alerts : new bullish or bearish FVG, filled FVG, and extreme RSI FVGs.
How it works
Source for Momentum : choose Returns, Close, or Volume.
Returns computes percent change over a short lookback to focus on impulse quality.
RSI and Smoothing : RSI length and a small SMA smooth the signal to stabilize the color coding.
Gap Scan : each bar checks for a 3-candle bullish or bearish imbalance that also clears your minimum size filter in percent of price.
Heatmap Color : the gap is painted at creation with a color from your palette based on the smoothed RSI value, preserving the momentum signature that formed it.
Lifecycle : if Extend Unfilled is on, the zone projects forward until price fully trades through the far edge. If Auto Remove is on, a filled gap is deleted immediately.
How to use it
Scan for structure : turn on both bullish and bearish FVGs. Start with a moderate Min FVG Size percent to reduce noise. You will see stacked clusters in trends and scattered singletons in chop.
Read the colors : brighter or stronger palette values imply stronger momentum at gap formation. Weakly colored gaps are lower conviction.
Decide bias : bullish FVGs below price suggest demand footprints. Bearish FVGs above price suggest supply footprints. Use the heatmap and RSI value to rank importance.
Choose your playbook :
Mean reversion : target partial or full fills of opposing FVGs that were created on weak momentum or that sit against higher timeframe context.
Trend continuation : look for price to respect the near edge of a strong-momentum FVG, then break away in the direction of the original impulse.
Manage risk : in continuation ideas, invalidation often sits beyond the opposite edge of the active FVG. In reversion ideas, invalidation sits beyond the gap that should attract price.
Two trade playbooks
Continuation - Buy the hold of a bullish FVG
Context uptrend.
A bullish FVG prints with strong RSI color.
Price revisits the top of the gap, holds, and rotates up. Enter on hold or first higher low inside or just above the gap.
Invalidation: below the gap bottom. Targets: prior swing, measured move, or next LV area.
Reversion - Fade a weak bearish FVG toward fill
Context range or fading trend.
A bearish FVG prints with weak RSI color near a completed move.
Price fails to accelerate lower and rotates back into the gap.
Enter toward mid-gap with confirmation.
Invalidation: above gap top. Target: opposite edge for a full fill, or the gap midline for partials.
Key settings
Max FVG Display : memory cap to keep charts fast. Try 30 to 60 on intraday.
Min FVG Size % : sets a quality floor. Start near 0.20 to 0.50 on liquid markets.
RSI Length and Smooth : 14 and 3 are balanced. Increase length for higher timeframe stability.
RSI Source :
Returns : most sensitive to true momentum bursts
Close : traditional.
Volume : uses raw volume impulses to judge footprint strength.
Filter by RSI Extremes : tighten rules so only the most stretched gaps print as signals.
Heatmap Style and Palette : pick a palette with good contrast for your background. Gradient for continuous feel, Discrete for quick zoning, Simple for binary, Palette for scientific schemes.
Extend Unfilled - Auto Remove : choose live projection and cleanup behavior to match your workflow.
Reading the chart
Bullish zones sit beneath price. Respect and hold of the upper boundary suggests demand. Strong green or warm palette tones indicate impulse quality.
Bearish zones sit above price. Respect and hold of the lower boundary suggests supply. Strong red or cool palette tones indicate impulse quality.
Stacking : multiple same-direction gaps stacked in a trend create ladders. Ladders often act as stepping stones for continuation.
Overlapping : opposing gaps overlapping in a small region usually mark a battle zone. Expect chop until one side is absorbed.
Workflow tips
Map higher timeframe trend first. Use lower timeframe FVGs for entries aligned with the higher timeframe bias.
Increase Min FVG Size percent and RSI length for noisy symbols.
Use labels when learning to correlate the RSI numbers with your palette colors.
Combine with VWAP or moving averages for confluence at FVG edges.
If you see repeated fills and refills of the same zone, treat that area as fair value and avoid chasing.
Alerts included
New Bullish FVG
New Bearish FVG
Bullish FVG Filled
Bearish FVG Filled
Extreme Oversold FVG - bullish
Extreme Overbought FVG - bearish
Practical defaults
RSI Length 14, Smooth 3, Source Returns.
Min FVG Size 0.25 percent on liquid majors.
Heatmap Style Gradient, Palette Viridis or Turbo for contrast.
Extend Unfilled on, Auto Remove on for a clean live map.
Notes
This tool does not predict the future. It maps imbalances and momentum so you can frame trades with clearer context, cleaner invalidation, and better ranking of which gaps matter. Use it with risk control and in combination with your broader process.




















