FVG Detector (Gholam version)The Fair Value Gap (FVG) Detector is a powerful tool designed to identify and highlight potential imbalance areas in the market. Fair Value Gaps, also known as "FVG" or "Liquidity Gaps," are price ranges where there has been little or no trading activity. These gaps can often act as key levels of support or resistance and may represent areas where price is likely to return to for a fill, providing potential trading opportunities.
This indicator automatically scans and marks these gaps on the chart, helping traders quickly spot areas of interest for potential reversals or continuation patterns.
Cari dalam skrip untuk "fvg"
FVG & IFVG [MTRX]This indicator automatically detects and plots Fair Value Gaps (FVG) and Inversion Fair Value Gaps (IFVG) on the chart. It highlights bullish and bearish imbalance zones, applies customizable mitigation levels, and includes filtering options to refine zone strength, helping traders identify potential price reaction areas with greater precision.
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").
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
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.
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!
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.
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!
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)
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)
Innotrade FVGThe Innotrade FVG indicator is a professional-grade tool designed to automatically identify, display, and manage Fair Value Gaps (FVGs).
What makes this indicator unique is its full lifecycle management. Unlike basic FVG tools that permanently clutter your chart, our script intelligently tracks an FVG from its creation to its conclusion:
ACTIVE: A new FVG is identified and drawn.
MITIGATED: The FVG changes color the moment price touches it, providing a visual confirmation.
TAKEN: The FVG is automatically removed from the chart once price has passed completely through it, keeping your analysis clean and focused on relevant market data.
This dynamic approach ensures your charts remain clear and that you are always focused on active, relevant imbalances.
█ CORE CONCEPT: WHAT IS A FAIR VALUE GAP (FVG)?
A Fair Value Gap represents a market inefficiency or imbalance. It is a three-candle pattern that occurs when price moves with significant force in one direction, leaving a gap between the first candle's high and the third candle's low (for a bullish FVG) or the first candle's low and the third candle's high (for a bearish FVG).
These gaps often act as a "magnet" for price, meaning the market has a high probability of returning to this area to "rebalance" the price action before continuing its trend.
█ KEY FEATURES
Full FVG Lifecycle Management: Automatically tracks FVGs from Active -> Mitigated -> Taken, keeping your charts pristine.
Robust Multi-Timeframe (MTF) Analysis : Detect FVGs on higher timeframes (e.g., 4H) while viewing a lower timeframe chart (e.g., 15m), allowing for high-precision entries based on key market structure.
Customizable Mitigation Alerts: Create an alert to be notified the moment price enters an FVG, so you never miss a potential trading opportunity.
Clean and Clear Visuals: Fully customizable colors for bullish, bearish, and mitigated FVGs allow you to tailor the indicator to your charting theme.
Efficient and Reliable Code: Built to handle all timeframe contexts correctly, ensuring the indicator is reliable whether you are analyzing the current chart timeframe or a higher one.
█ HOW TO USE THE INDICATOR
The primary function of this indicator is to highlight key areas of interest where price may return.
Bullish FVG (Green Box): This is an area of potential support. Traders often look for price to retrace back down into this box as a potential entry point for a long position.
Bearish FVG (Red Box): This is an area of potential resistance. Traders often look for price to rally back up into this box as a potential entry point for a short position.
Mitigated FVG (Gray Box): This indicates that price has already returned to test the FVG area. The imbalance has been at least partially filled.
Example Strategy:
Set the indicator to find FVGs on the 1-hour timeframe.
Switch to your 5-minute chart for execution.
When a green Bullish FVG appears on your chart (from the 1H timeframe), set an alert for its mitigation.
When the alert triggers, look for a bullish confirmation signal on the 5-minute chart to enter a long trade.
█ SETTINGS EXPLAINED
General Settings
Show FVGs: A master switch to turn the visibility of all FVG drawings on or off.
Timeframe for FVG Detection: Choose the timeframe on which the indicator will look for FVGs. Leave this blank to use your chart's current timeframe.
Enable Alerts on FVG Mitigation: This must be enabled to allow TradingView's alert system to work with this indicator.
Style Settings
Bullish FVG Color: Sets the color for newly formed bullish FVGs.
Bearish FVG Color: Sets the color for newly formed bearish FVGs.
Mitigated FVG Color: Sets the color that an FVG will turn into after being touched by price.
Extend Boxes into the Future: When checked, FVG boxes will continue to extend to the right until they are mitigated or taken.
Label Color / Label Size: Customizes the "FVG" text that appears on newly formed gaps.
MirPapa:ICT:HTF: FVG OB Threeple# MirPapa:ICT:HTF: FVG OB (Fair Value Gap Order Block)
**Version:** Pine Script® v6
**Author:** © goodia
**License:** MPL-2.0 (Mozilla Public License 2.0)
---
## Overview
“FVG OB” (Fair Value Gap Order Block) identifies higher-timeframe candle ranges where a gap (imbalance) exists between two non-consecutive candles, signaling potential institutional order blocks. This module draws bullish or bearish FVG OB boxes on your lower-timeframe chart, extends them until price interacts a specified number of times, and then finalizes (recolors) the box.
---
## Inputs
- **Enable FVG OB Boxes** (`bool`)
Toggle drawing of HTF FVG OB boxes on the chart.
- **Enable FVG OB Midlines** (`bool`)
Toggle drawing of a midpoint line inside each FVG OB box.
- **FVG OB Close Count** (`int` 1–10)
Number of HTF closes beyond the FVG range required to finalize (recolor) the box.
- **FVG OB Bull Color** (`color`)
Fill & border color for bullish FVG OB boxes.
- **FVG OB Bear Color** (`color`)
Fill & border color for bearish FVG OB boxes.
- **FVG OB Box Transparency** (`int` 1–100)
Opacity level for FVG OB box fills (higher = more transparent).
---
## How It Works
1. **HTF Data Retrieval**
- The script uses `request.security()` (via `GetHTFrevised()`) to fetch HTF OHLC and historical values:
- `_htfHigh3` (high three bars ago) and `_htfLow1` (low one bar ago) for bullish FVG OB.
- `_htfLow3` (low three bars ago) and `_htfHigh1` (high one bar ago) for bearish FVG OB.
- It also tracks the HTF `bar_index` on the lower timeframe to align drawing.
2. **FVG OB Detection**
- **Bullish FVG OB**: Occurs when the HTF low of the previous bar (`low `) is strictly above the HTF high of three bars ago (`high `), creating a gap.
- **Bearish FVG OB**: Occurs when the HTF high of the previous bar (`high `) is strictly below the HTF low of three bars ago (`low `), creating a gap.
3. **Box Creation**
- On each new HTF bar (`ta.change(time(HTF)) != 0`), if a bullish or bearish FVG OB condition is met, the script calls `CreateBoxData()` with:
- **Bullish**: `bottom = HTF low `, `top = HTF high `, `_isBull = true`.
- **Bearish**: `bottom = HTF low `, `top = HTF high `, `_isBull = false`.
- Midline toggled by input.
- A `BoxData` struct is created and stored in either the Bull or Bear array.
4. **Box Extension & Finalization**
- On **every LTF bar**, `ProcessBoxDatas(...)` iterates over all active FVG OB boxes:
1. **Extend Right Edge**: `box.set_right(bar_index)` ensures the box follows the latest bar.
2. **Record Volume Delta**: Tracks buy/sell volume inside the box.
3. **Touch Stage Update**: `modBoxUpdateStage()` increments `_stage` when price touches its “basePoint” (for FVG OB, the basePrice is one side of the gap).
4. **Finalize**: `setBoxFinalize()` checks if the configured number of closes beyond the FVG gap (`FVG OB Close Count`) has occurred. If so:
- `_isActive := false`
- Border and background colors are changed to the “Box Close Color” (input).
- Finalized boxes remain on screen semi-transparent, indicating that the FVG OB zone has been tested.
5. **Midline (Optional)**
- If “Enable FVG OB Midlines” is checked, `ProcessBoxDatas()` also extends a horizontal midpoint line inside the box with `line.set_x2(bar_index)`.
---
## Usage Instructions
1. **Installation**
- Copy the FVG OB section of the Pine Script into TradingView’s Pine Editor (ensure the library import is included).
- Click “Add to Chart.”
2. **Configure Inputs**
- Choose a Higher Time Frame via the dropdown (e.g., “4시간” maps to a 4H timeframe).
- Toggle “Enable FVG OB Boxes” and “Enable FVG OB Midlines.”
- Select colors for bullish and bearish boxes and set transparency.
- Adjust “FVG OB Close Count” to control how many closes beyond the gap finalize the box.
3. **Interpretation**
- **Active FVG OB Boxes** extend to the right until price closes beyond the gap range the specified number of times.
- When finalized, each box changes to the “Box Close Color,” signaling that institutional orders in that gap have likely been filled.
Enjoy precise visualization of higher-timeframe Fair Value Gap Order Blocks on your lower-timeframe chart!
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!
Fair Value Gap Oscillator | Flux Charts💎 GENERAL OVERVIEW
Introducing the new Fair Value Gap Oscillator (FVG Oscillator) indicator! This unique indicator identifies and tracks Fair Value Gaps (FVGs) in price action, presenting them in an oscillator format to reveal market momentum based on FVG strength. It highlights bullish and bearish FVGs while enabling traders to adjust detection sensitivity and apply volume and ATR-based filters for more precise setups. For more information about the process, check the "📌 HOW DOES IT WORK" section.
Features of the new FVG Oscillator:
Fully Customizable FVG Detection
An Oscillator Approach To FVGs
Divergence Markers For Potential Reversals
Alerts For Divergence Labels
Customizable Styling
📌 HOW DOES IT WORK?
Fair Value Gaps are price gaps within bars that indicate inefficiencies, often filled as the market retraces. The FVG Oscillator scans historical bars to identify these gaps, then filters them based on ATR or volume. Each FVG is marked as bullish or bearish according to the trend direction that preceded its formation.
An oscillator is calculated using recent FVGs with this formula :
1. The Oscillator starts as 0.
2. When a new FVG Appears, it contributes (FVG Width / ATR) to the oscillator of the corresponding type.
3. Each confirmed bar, the oscillator is recalculated as OSC = OSC * (1 - Decay Coefficient)
The oscillator aggregates and decays past FVGs, allowing recent FVG activity to dominate the signal. This approach emphasizes current market momentum, with oscillations moving bullish or bearish based on FVG intensity. Divergences are marked where FVG oscillations suggest potential reversals. Bullish Divergence conditions are as follows :
1. The current candlestick low must be the lowest of last 25 bars.
2. Net Oscillator (Shown in gray line by default) must be > 0.
3. The current Bullish FVG Oscillator value should be no more than 0.1 below the highest value from the last 25 bars.
Traders can use divergence signals to get an idea of potential reversals, and use the Net FVG Oscillator as a trend following marker.
🚩 UNIQUENESS
The Fair Value Gap Oscillator stands out by converting FVG activity into an oscillator format, providing a momentum-based visualization of FVGs that reveals market sentiment dynamically. Unlike traditional indicators that statically mark FVG zones, the oscillator decays older FVGs over time, showing only the most recent, relevant activity. This approach allows for real-time insight into market conditions and potential reversals based on oscillating FVG strength, making it both intuitive and powerful for momentum trading.
Another unique feature is the combination of customizable ATR and volume filters, letting traders adapt the indicator to match their strategy and market type. You can also set-up alerts for bullish & bearish divergences.
⚙️ SETTINGS
1. General Configuration
Decay Coefficient -> The decay coefficient for oscillators. Increasing this setting will result in oscillators giving the weight to recent FVGs, while decreasing it will distribute the weight equally to the past and recent FVGs.
2. Fair Value Gaps
Zone Invalidation -> Select between Wick & Close price for FVG Zone Invalidation.
Zone Filtering -> With "Average Range" selected, algorithm will find FVG zones in comparison with average range of last bars in the chart. With the "Volume Threshold" option, you may select a Volume Threshold % to spot FVGs with a larger total volume than average.
FVG Detection -> With the "Same Type" option, all 3 bars that formed the FVG should be the same type. (Bullish / Bearish). If the "All" option is selected, bar types may vary between Bullish / Bearish.
Detection Sensitivity -> You may select between Low, Normal or High FVG detection sensitivity. This will essentially determine the size of the spotted FVGs, with lower sensitivies resulting in spotting bigger FVGs, and higher sensitivies resulting in spotting all sizes of FVGs.
3. Style
Divergence Labels On -> You can switch divergence labels to show up on the chart or the oscillator plot.
MSS-FVG Fusion by Tren10xMSS-FVG Fusion Script by Tren10x
What the Script Does:
The MSS-FVG Fusion Script by Tren10x combines Market Structure Shifts (MSS) and Fair Value Gaps (FVG) to provide traders with strategic entry points, customizable features, and a comprehensive tool for trading analysis. It identifies shifts and breaks in market structure while pinpointing significant fair value gaps.
How the Script Works:
Strategic Entry Points:
The script's logic detects fair value gaps formed prior to a market structure shift and uses these gaps as optimal entry points, integrating the precision of MSS with the significance of FVGs
Accurate and Timely Entry Points:
By combining MSS and FVG, the script aims to offer more precise and timely entry points, enhancing the overall trading strategy.
Dynamic Features for Cleaner Approach:
Users can toggle between box fair value gaps and bar fair value gaps, providing a cleaner and more customizable approach to analyzing price action.
Display of Untested FVGs:
The script is designed to display only untested fair value gaps based on how they are filled. It differentiates between gaps filled by the body of a candle and those filled by the wick, ensuring that only gaps that have not been fully tested are highlighted.
Delete Wick Filled FVG highlights that the FVG should be deleted if the price only wicks through the FVG but does not close outside it, indicating that the gap has been tested but not fully filled.
Whereas Delete Body Filled FVG focuses on the scenario where the price action closes outside of the FVG, indicating that the gap has been fully filled. So in this screenshot above, there is a large wick through the FVG but no close below. Therefore, this FVG will remain until there is a close in the other direction.
Or choose both! Enabling both options will remove both body filled and wick filled FVGs from your chart, leaving only FVGs that are still fully or partially untested, such as the image above.
Features:
Market Structure Shifts (MSS):
Detects shifts in market structure to help anticipate potential trend reversals and capitalize on new trading opportunities.
Market Structure Breaks (MSB):
Highlights breaks in market structure, signaling potential continuation or reversal points in the market.
Fair Value Gaps (FVG):
Identifies gaps in price where the market has moved rapidly, pinpointing potential areas of support and resistance. Includes a 50% line of the FVG, which often acts as a key level.
Customization Options:
Text Customization: Add personalized text and customize aspects such as color, line style, text size, border color and style, and FVG bar width.
FVG Handling: Options to delete FVGs where the price has wicked through but did not close inside the box, or delete FVGs when the price has closed outside the box.
FVG Display Options: Choose between traditional FVG boxes or a cleaner FVG bar look.
Input Options: Set the number of FVGs and market structure indicators displayed on the chart.
How to Use the Script:
Add to Chart:
Load the MSS-FVG Fusion Script onto your TradingView chart.
Customize Settings:
Adjust text, colors, line styles, and other settings to fit your trading preferences.
Analyze the Chart:
Observe the highlighted MSS, MSB, and FVGs to identify potential entry and exit points.
Use the dynamic features to toggle between different FVG display options and focus on untested gaps.
Leverage the 50% lines of FVGs and other key levels to make informed trading decisions.
What Makes This Script Original:
This script is original because it integrates the strategic fusion of Market Structure Shifts (MSS) and Fair Value Gaps (FVG) for entry points, offers dynamic customization between box and bar FVGs, and highlights only untested gaps based on how they are filled, providing a tailored and actionable analysis.
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
10x HTF Candles Dynamic with LTF FVG and Key LevelsPurpose
The 10x HTF Candles Dynamic Pine Script is a versatile, all-in-one trading tool designed for TradingView to empower traders with actionable insights across multiple timeframes. It combines advanced price action analysis, Fair Value Gap (FVG) detection, market structure evaluation, and key level visualization into a single, highly customizable interface. Built for day traders, swing traders, and scalpers, this script enhances decision-making by providing a clear, multi-dimensional view of market dynamics, liquidity zones, and trend biases. Its purpose is to streamline technical analysis, reduce chart clutter, and deliver real-time, visually intuitive data to support precise trading strategies.
What the Script Does
How the Script Works:
The script leverages Pine Script v5’s advanced features to deliver a robust and efficient trading tool. Below is a step-by-step explanation of its functionality:
1. Initialization and Configuration:
- Initializes with @version=5, enabling dynamic requests, and sets limits for bars (500), lines, labels, boxes, and polylines to manage resources.
- Defines user inputs for candle settings, timeframe selection, FVG parameters, DWM levels, market structure table, and visual preferences.
- Dynamically calculates 10 higher timeframes based on the current chart timeframe (e.g., 1m chart → 5m, 15m, 60m, etc.) or allows custom timeframes.
2. Data Acquisition:
- Fetches OHLC data for up to 10 timeframes using request.security, storing it in optimized TfData objects (arrays for open, high, low, close).
- Loops through enabled timeframes to minimize redundant code, improving processing speed.
3. Candlestick Rendering:
- Draws HTF candlesticks at user-defined offsets, with customizable bullish/bearish colors, wick colors, and widths.
- Calculates bar types (Inside, Normal, Outside) and optionally labels them above candles for pattern analysis.
4. FVG Detection and Visualization:
- Scans for FVGs by comparing candle highs and lows across three bars (e.g., low of candle 1 > high of candle 3 for bullish FVG).
- Detects IFVGs based on user-selected methods (wick, close, or midpoint) and highlights them with distinct colors.
- Draws FVG boxes with configurable borders, midpoint lines, and labels, tracking mitigation status.
- Limits FVG display to a user-defined maximum (1–200) to maintain chart clarity.
5. Horizontal Levels and DWM Lines:
- Computes Highs, Lows, Midpoints, and Quarter Points for each timeframe, drawing lines with customizable styles and extensions.
- Plots DWM open, close, high, low, and control point lines, with optional alerts for high/low breaks.
- Supports session-based opening price lines (e.g., 09:30 Market Open) with similar customization.
6. Market Structure and Bias:
Calculates trend bias by comparing the current close to the midpoint of the timeframe’s range (highest high to lowest low).
Updates a market structure table with timeframe, bias, and premium/discount status, using color-coded cells for quick interpretation.
7. Countdown Timers:
- Converts timeframe strings to seconds and calculates the time remaining until the next candle using timenow.
- Renders countdown labels with timeframe names (e.g., “1h\n(00:45)”) at user-defined positions.
8. Optimization and Cleanup:
- Uses VisualElements UDTs to manage lines, wicks, and labels, reducing memory usage.
- Deletes outdated drawings when limits are exceeded, ensuring a clean and responsive chart.
- Employs loops and arrays to streamline repetitive tasks, enhancing performance.
How to Use the Script:
This script is user-friendly yet powerful, suitable for traders of all experience levels. Follow these steps to maximize its potential:
1. Add to TradingView:
- Copy the script into TradingView’s Pine Editor.
- Click “Add to Chart” to apply it to your active chart.
2. Customize Settings:
- Candle Settings: Adjust the number of candles (1–10), starting position, group spacing, bullish/bearish colors, wick colors, and candle width.
- Timeframe Settings: Enable/disable up to 10 timeframes, choosing dynamic (auto-selected) or custom timeframes (e.g., 3m, 60m, D).
- FVG Settings: Toggle FVG detection, set detection methods (wick/close/midpoint), adjust thresholds, and customize colors, borders, and midpoint lines.
- DWM Settings: Enable daily/weekly/monthly lines (open, close, high, low, midpoint), set colors, and configure alerts for high/low breaks.
- Market Structure Table: Show/hide columns for timeframe, trend bias, and premium/discount, and adjust table position (top-left, bottom-right, etc.).
- Countdown Timers: Enable timers, adjust offsets, and customize text/background colors.
- Label Settings: Configure price label precision, transparency, and offsets for clarity.
3.Interpret Visuals:
- Candlesticks: Analyze HTF candles to gauge trend direction and momentum across timeframes.
- FVGs: Look for unmitigated FVGs (colored boxes) as potential support/resistance zones or trade setups.
- Key Levels: Use Highs, Lows, Midpoints, and Quarter Points to identify breakout or reversal areas.
4. Market Structure Table: Check trend bias and premium/discount status to align trades with market conditions.
- DWM Lines: Monitor daily/weekly/monthly levels for institutional reference points.
- Countdown Timers: Time entries/exits based on upcoming candle formations.
5. Integrate with Strategy:
- Combine script insights with your trading plan (e.g., use FVGs for entries, key levels for stops/targets).
- Set alerts for high/low breaks or liquidity zone approaches to stay proactive.
- Export table data or screenshot visuals for documentation and analysis.
6. Optimize Performance:
Limit the number of candles, FVGs, and lines to match your device’s capabilities.
Regularly review settings to focus on the most relevant timeframes and features.
Why the Script is Original
The 10x HTF Candles Dynamic script stands out in the TradingView community due to its innovative design, comprehensive functionality, and trader-centric approach. Here’s what makes it unique:
1. Seamless Multi-Timeframe Integration:
- Unlike single-timeframe indicators, this script synthesizes data from up to 10 timeframes, offering a holistic view of market structure.
- Dynamic timeframe selection adapts to the chart’s timeframe, ensuring relevance across all trading styles.
2 . Advanced FVG and IFVG Detection:
- Provides granular control over FVG detection with three IFVG methods (wick, close, midpoint), a rarity in most scripts.
- Tracks mitigation status and highlights unmitigated FVGs, enabling traders to capitalize on high-probability setups.
- Visualizes FVGs with boxes, midpoint lines, and labels, enhancing clarity and usability.
3. Sophisticated Market Structure Analysis:
-The bias calculation, introduced in recent updates (2 days ago), uses a robust algorithm to assess trend direction based on range midpoints.
- The market structure table, with premium/discount zones (added 20 hours ago), offers a unique summary of market conditions, unmatched by standard indicators.
4. Comprehensive DWM and Session Support:
- Integrates daily, weekly, and monthly levels alongside session-based opening prices, catering to institutional and retail traders alike.
- Customizable alerts for high/low breaks add actionable functionality.
5. Visual Hierarchy and Clarity:
- Scales line widths and transparency by timeframe, prioritizing higher timeframes for strategic focus.
- Countdown timers provide real-time context, a feature rarely seen in multi-timeframe scripts.
6.Performance Optimization:
- Recent updates introduced loops and UDTs to reduce code redundancy and boost processing speed.
- Automated cleanup mechanisms prevent chart clutter, ensuring smooth operation even on low-resource devices.
7. High Customizability:
- Offers extensive settings for visuals, timeframes, FVGs, DWM lines, and alerts, accommodating diverse trading preferences.
- Balances complexity with accessibility, making it approachable for beginners and powerful for advanced users.
8.Continuous Evolution:
- Regular updates (e.g., bias filter table, premium/discount feature, code optimization) demonstrate ongoing commitment to improvement.
- Closed-source protection (noted 20 hours ago) ensures intellectual integrity while allowing free use, fostering trust in the TradingView community.
Conclusion
The 10x HTF Candles Dynamic Pine Script is a groundbreaking tool that redefines multi-timeframe analysis on TradingView. By combining candlestick visualization, FVG detection, market structure insights, DWM levels, and countdown timers, it provides traders with a comprehensive, real-time view of market dynamics. Its advanced optimization, customization options, and continuous updates make it a standout choice for traders seeking precision, clarity, and efficiency. Whether you’re scalping intraday moves or swing trading weekly trends, this script equips you with the tools to master the markets with confidence.
Internal BOS X FVG Algorithms - 1 Visi TraderInternal BOS X FVG Algorithms,
This strategy is based on 2 momentum combinations:
• Internal Break of Structure was formed together with Fair Value Gap (FVG)
Formula of Internal BOS X FVG Algorithms:
1. Break (Internal BOS) X Bullish FVG = Zone for BUY Setup
2. Break (Internal BOS) X Bearish FVG = Zone for SELL Setup
// ----------- Add-ons Setting ----------- //
Setting for Internal BOS X FVG Algorithms:
---------
#1: Internal Break of Structure Settings,
• Internal Swing:
The number of left and right Swing Intervals that are checked when searching for Swing Points. More Values = Less Swing Points plotted to be potential Internal BOS and Less Values = More Swing Points plotted to be potential Internal BOS.
• Internal BOS Color:
You can change the color of dotted line and text for Internal BOS ("Break") according to your favorites layout.
#2: Fair Value Gap Settings,
• FVG Min. Range (In Pips):
Input minimum range of Fair Value Gap in Pips, more value = less zone results.
• FVG Max. Range (In Pips):
Input maximum range of Fair Value Gap in Pips, less value = less zone results.
• Extended Right - FVG:
You can change the value of extended fair value gap zone according to your best preferences.
#3: FVG Color Settings,
• Bullish FVG:
Change color FVG for Bullish Fair Value Gap Zone.
• Bearish FVG:
Change color FVG for Bearish Fair Value Gap Zone.
#4: Mode FVG,
• FVG Variations:
- Global FVG = All Variations of Fair Value Gap Category
- Specific FVG = Variation based on last of 2 FVG's Candles in same color
#5: Trading Session,
• Session Hours:
You can adjust the trading hour according to the best session and volatility of pair assets that you want to trades.
---------
How to Entry (Instructions):
1. Buy Positions = Internal BOS ("Break") form together with Bullish FVG, wait for pullback on FVG Zone and then you can open positions. Set Stop Loss (SL) below FVG Zone and set Take Profit (TP) in minimum 1:2 RR - if price hit 1:1 RR you can set Breakeven for managing the trading risk.
2. Sell Positions = Internal BOS ("Break") form together with Bearish FVG, wait for pullback on FVG Zone and then you can open positions. Set Stop Loss (SL) above FVG Zone and set Take Profit (TP) in minimum 1:2 RR - if price hit 1:1 RR you can set Breakeven for managing the trading risk.
*Notes:
The best pair asset for this strategy is on Gold (XAU/USD) at NY Sessions (19.00 - 22.00 GMT+7) - Timeframe M1 (1 Minute).
--------
Best Regards,
- 1 VISI TRADER
Trading for Prosperity!
--------
DISCLAIMER: No reselling or any other forms of use are authorized for our documents, script / strategy, and the information published with them. This informational planning script / strategy is strictly for individual use and educational purposes only. This is not financial or investment advice. Investments are always made at your own risk and are based on your personal judgement. I am not responsible for any losses you may incur. Please invest wisely.*
Fair Value Gap [LuxAlgo]Fair value gaps (FVG) highlight imbalances areas between market participants and have become popular amongst technical analysts. The following script aims to display fair value gaps alongside the percentage of filled gaps and the average duration (in bars) before gaps are filled.
Users can be alerted when an FVG is filled using the alerts built into this script.
🔶 USAGE
In practice, FVG's highlight areas of support (bullish FVG) and resistances (bearish FVG). Once a gap is filled, suggesting the end of the imbalance, we can expect the price to reverse.
This approach is more contrarian in nature, users wishing to use a more trend-following approach can use the identification of FVG as direct signals, going long with the identification of a bullish FVG, and short with a bearish FVG.
🔹 Mitigation
By default, the script highlights the areas of only unmitigated FVG's. Users can however highlight the mitigation level of mitigated FVG's, that is the lower extremity of bullish FVG's and the upper extremity of bearish FVG's.
The user can track the evolution of a mitigated FVG's using the "Dynamic" setting.
🔹 Threshold
The gap height can be used to determine the degree of imbalance between buying and selling market participants. Users can filter fair value gaps based on the gap height using the "Threshold %" setting. Using the "Auto" will make use of an automatic threshold, only keeping more volatile FVG's.
🔶 DETAILS
We use the following rules for detecting FVG's in this script:
Bullish FVG
low > high(t-2)
close(t-1) > high(t-2)
(low - high(t-2)) / high(t-2) > threshold
Upper Bullish FVG = low
Lower Bullish FVG = high(t-2)
Bearish FVG
high < low(t-2)
close(t-1) < low(t-2)
(low(t-2) - high) / high < -threshold
Upper Bearish FVG = low(t-2)
Lower Bearish FVG = high
🔶 SETTINGS
Threshold %: Threshold percentage used to filter our FVG's based on their height.
Auto Threshold: Use the cumulative mean of relative FVG heights as threshold.
Unmitigatted Levels: Extent the mitigation level of the number of unmitigated FVG's set by the user.
Mitigation Levels: Show the mitigation levels of mitigated FVG's.
Timeframe : Timeframe of the price data used to detect FVG's.
Inverse FVG with Quadrants [Modified]# Inverse FVG with Quadrants
*Modified version of original indicator by **tradeforopp**
## Overview
This advanced Fair Value Gap (FVG) indicator identifies both regular and inverse fair value gaps with precision, displaying them in a visually intuitive quadrant-based system. The enhanced version now features automatic timeframe selection that aligns higher timeframe FVGs with your current chart period for multi-timeframe analysis.
## Key Features
### 🔹 Fair Value Gap Detection
- **Regular FVGs**: Identifies traditional bullish and bearish fair value gaps
- **Inverse FVGs**: Automatically detects and displays inverse fair value gaps when price closes through a regular FVG
- **Quadrant Display**: Shows only the relevant half of each FVG for cleaner visual analysis (upper quadrant for bullish patterns, lower quadrant for bearish)
### 🔹 Smart Timeframe Management
- **Auto Timeframe Selection**: Automatically selects the appropriate higher timeframe based on your current chart:
- 1min → 15min
- 3min → 30min
- 5min → 1h
- 15min → 4h
- 1h → Daily
- 4h → Weekly
- **Manual Override**: Optional manual timeframe selection still available
### 🔹 Visual Customization
- Adjustable colors for both regular and inverse FVGs
- Optional box extension
- Customizable display limits to prevent chart clutter
- Session filtering capabilities
### 🔹 Trading Signals
- FVGs provide potential support/resistance zones and price targets
- Inverse FVGs offer confirmation of trend continuation or reversal
- Alert conditions for new FVG creation, regular FVG, and inverse FVG events
## How to Use
1. Apply the indicator to your chart
2. Enable "Auto Timeframe Selection" for multi-timeframe analysis (recommended)
3. Adjust displacement settings to filter for more significant FVGs
4. Use regular FVGs as potential zones where price may return to fill the gap
5. Watch for inverse FVGs as confirmation signals when price breaks through regular FVGs
This refined indicator combines powerful FVG analysis with automatic timeframe alignment to provide traders with clear, actionable insights across multiple timeframes. Perfect for both intraday traders and swing traders looking for high-probability entry and exit points.
Credits to @tradeforopp for creating the original version of this indicator. This is a modified version with enhanced features while preserving the core functionality.
## Tips
- Blue boxes (FVG+) indicate bullish fair value gaps (potential support)
- Red boxes (FVG-) indicate bearish fair value gaps (potential resistance)
- When price closes through an FVG, watch for the inverse FVG as a confirmation signal
- Use the dashed centerline as a potential target within each FVG
MMXM ICT [TradingFinder] Market Maker Model PO3 CHoCH/CSID + FVG🔵 Introduction
The MMXM Smart Money Reversal leverages key metrics such as SMT Divergence, Liquidity Sweep, HTF PD Array, Market Structure Shift (MSS) or (ChoCh), CISD, and Fair Value Gap (FVG) to identify critical turning points in the market. Designed for traders aiming to analyze the behavior of major market participants, this setup pinpoints strategic areas for making informed trading decisions.
The document introduces the MMXM model, a trading strategy that identifies market maker activity to predict price movements. The model operates across five distinct stages: original consolidation, price run, smart money reversal, accumulation/distribution, and completion. This systematic approach allows traders to differentiate between buyside and sellside curves, offering a structured framework for interpreting price action.
Market makers play a pivotal role in facilitating these movements by bridging liquidity gaps. They continuously quote bid (buy) and ask (sell) prices for assets, ensuring smooth trading conditions.
By maintaining liquidity, market makers prevent scenarios where buyers are left without sellers and vice versa, making their activity a cornerstone of the MMXM strategy.
SMT Divergence serves as the first signal of a potential trend reversal, arising from discrepancies between the movements of related assets or indices. This divergence is detected when two or more highly correlated assets or indices move in opposite directions, signaling a likely shift in market trends.
Liquidity Sweep occurs when the market targets liquidity in specific zones through false price movements. This process allows major market participants to execute their orders efficiently by collecting the necessary liquidity to enter or exit positions.
The HTF PD Array refers to premium and discount zones on higher timeframes. These zones highlight price levels where the market is in a premium (ideal for selling) or discount (ideal for buying). These areas are identified based on higher timeframe market behavior and guide traders toward lucrative opportunities.
Market Structure Shift (MSS), also referred to as ChoCh, indicates a change in market structure, often marked by breaking key support or resistance levels. This shift confirms the directional movement of the market, signaling the start of a new trend.
CISD (Change in State of Delivery) reflects a transition in price delivery mechanisms. Typically occurring after MSS, CISD confirms the continuation of price movement in the new direction.
Fair Value Gap (FVG) represents zones where price imbalance exists between buyers and sellers. These gaps often act as price targets for filling, offering traders opportunities for entry or exit.
By combining all these metrics, the Smart Money Reversal provides a comprehensive tool for analyzing market behavior and identifying key trading opportunities. It enables traders to anticipate the actions of major players and align their strategies accordingly.
MMBM :
MMSM :
🔵 How to Use
The Smart Money Reversal operates in two primary states: MMBM (Market Maker Buy Model) and MMSM (Market Maker Sell Model). Each state highlights critical structural changes in market trends, focusing on liquidity behavior and price reactions at key levels to offer precise and effective trading opportunities.
The MMXM model expands on this by identifying five distinct stages of market behavior: original consolidation, price run, smart money reversal, accumulation/distribution, and completion. These stages provide traders with a detailed roadmap for interpreting price action and anticipating market maker activity.
🟣 Market Maker Buy Model
In the MMBM state, the market transitions from a bearish trend to a bullish trend. Initially, SMT Divergence between related assets or indices reveals weaknesses in the bearish trend. Subsequently, a Liquidity Sweep collects liquidity from lower levels through false breakouts.
After this, the price reacts to discount zones identified in the HTF PD Array, where major market participants often execute buy orders. The market confirms the bullish trend with a Market Structure Shift (MSS) and a change in price delivery state (CISD). During this phase, an FVG emerges as a key trading opportunity. Traders can open long positions upon a pullback to this FVG zone, capitalizing on the bullish continuation.
🟣 Market Maker Sell Model
In the MMSM state, the market shifts from a bullish trend to a bearish trend. Here, SMT Divergence highlights weaknesses in the bullish trend. A Liquidity Sweep then gathers liquidity from higher levels.
The price reacts to premium zones identified in the HTF PD Array, where major sellers enter the market and reverse the price direction. A Market Structure Shift (MSS) and a change in delivery state (CISD) confirm the bearish trend. The FVG then acts as a target for the price. Traders can initiate short positions upon a pullback to this FVG zone, profiting from the bearish continuation.
Market makers actively bridge liquidity gaps throughout these stages, quoting continuous bid and ask prices for assets. This ensures that trades are executed seamlessly, even during periods of low market participation, and supports the structured progression of the MMXM model.
The price’s reaction to FVG zones in both states provides traders with opportunities to reduce risk and enhance precision. These pullbacks to FVG zones not only represent optimal entry points but also create avenues for maximizing returns with minimal risk.
🔵 Settings
Higher TimeFrame PD Array : Selects the timeframe for identifying premium/discount arrays on higher timeframes.
PD Array Period : Specifies the number of candles for identifying key swing points.
ATR Coefficient Threshold : Defines the threshold for acceptable volatility based on ATR.
Max Swing Back Method : Choose between analyzing all swings ("All") or a fixed number ("Custom").
Max Swing Back : Sets the maximum number of candles to consider for swing analysis (if "Custom" is selected).
Second Symbol for SMT : Specifies the second asset or index for detecting SMT divergence.
SMT Fractal Periods : Sets the number of candles required to identify SMT fractals.
FVG Validity Period : Defines the validity duration for FVG zones.
MSS Validity Period : Sets the validity duration for MSS zones.
FVG Filter : Activates filtering for FVG zones based on width.
FVG Filter Type : Selects the filtering level from "Very Aggressive" to "Very Defensive."
Mitigation Level FVG : Determines the level within the FVG zone (proximal, 50%, or distal) that price reacts to.
Demand FVG : Enables the display of demand FVG zones.
Supply FVG : Enables the display of supply FVG zones.
Zone Colors : Allows customization of colors for demand and supply FVG zones.
Bottom Line & Label : Enables or disables the SMT divergence line and label from the bottom.
Top Line & Label : Enables or disables the SMT divergence line and label from the top.
Show All HTF Levels : Displays all premium/discount levels on higher timeframes.
High/Low Levels : Activates the display of high/low levels.
Color Options : Customizes the colors for high/low lines and labels.
Show All MSS Levels : Enables display of all MSS zones.
High/Low MSS Levels : Activates the display of high/low MSS levels.
Color Options : Customizes the colors for MSS lines and labels.
🔵 Conclusion
The Smart Money Reversal model represents one of the most advanced tools for technical analysis, enabling traders to identify critical market turning points. By leveraging metrics such as SMT Divergence, Liquidity Sweep, HTF PD Array, MSS, CISD, and FVG, traders can predict future price movements with precision.
The price’s interaction with key zones such as PD Array and FVG, combined with pullbacks to imbalance areas, offers exceptional opportunities with favorable risk-to-reward ratios. This approach empowers traders to analyze the behavior of major market participants and adopt professional strategies for entry and exit.
By employing this analytical framework, traders can reduce errors, make more informed decisions, and capitalize on profitable opportunities. The Smart Money Reversal focuses on liquidity behavior and structural changes, making it an indispensable tool for financial market success.
Arjo FVG Filtering With Alerts [neo.|]Fair Value Gaps (Also known as FVGs or Imbalances) can be simply described as a three candle pattern, where the second candle's body isn't completely covered by the wicks or body of the second and third candle. These areas represent movements in the market where either buyers or sellers were not able to get involved due to price in the form of wicks not revisiting those levels, and instead moving away from them.
As a result, they can be seen as potential areas of continuation given that price may want to continue in it's direction after it revisits them and offers Fair Value, since previously it made sharp moves away from those areas.
However what is important to note, and what FVG Filtering aims to address, is that there are three notable types of FVGs as described by Arjo, which are Perfect FVGs denoted as FVGp on the indicator and chart below, Expansion (FVGe), and Reversal (FVGr). As the names imply, they each serve different purposes with the FVGp being the likeliest to hold on mitigation, expansion meaning price is likely to not retrace into the FVG and reversal being the least likely for the FVG to hold.
The indicator is the first that automatically determines which one of the three underlying FVG types any particular FVG is, that way you can quickly make informed decisions based on the type of FVG you see appear on the chart.
As you may notice, the type depends primarily on the third candle, which demonstrates the true strength of any particular FVG, and is how the filtering occurs on this indicator, which compares the sizes of the second and third candle's bodies, in order to classify the FVG candle sequence as one of the three aforementioned types.
Color Options:
FVG Colors: Change the color of any bullish or bearish FVG type to easily distinguish between them.
Mitigated FVG Color: Apply colors to mitigated FVGs in order to avoid using ones that are no longer valid.
Text Color: Change the color of the text within the FVG to your liking.
Further styling options:
How many FVGs you want to be displayed: Changes the amount of FVGs displayed on your chart by limiting each type of FVG to the number you select.
How far you want the FVGs to extend: Modify the amount of bars forward that the FVG stretches out after it's inception.
Table options:
Show table: Display a table that will give you insights on how many FVGs were created of each type and what % they represent of the total.
Table text color: Modify the color of the text within the table.
Table border color: Modify the color of the border of the table.
Alerts:
Freely set alerts for any type of FVG you would like to see.