FVG Visual Trading ToolHow to Use the FVG Tool
1. Identify the FVG Zone
Bullish FVG: Look for green boxes that represent potential support zones. These are areas where price is likely to retrace before continuing upward.
Bearish FVG: Look for red boxes that represent potential resistance zones. These are areas where price is likely to retrace before continuing downward.
2. Set Up Your Trade
Entry: Place a limit order at the retracement zone (inside the FVG box). This ensures you enter the trade when the price retraces into the imbalance.
Stop-Loss (SL): Place your stop-loss just below the FVG box for bullish trades or just above the FVG box for bearish trades. The tool provides a suggested SL level.
Take-Profit (TP): Set your take-profit level at a 2:1 risk-reward ratio (or higher). The tool provides a suggested target level.
3. Let the Trade Run
Once your trade is set up, let it play out. Avoid micromanaging the trade unless market conditions change drastically.
Step-by-Step Example
Bullish FVG Trade
Identify the FVG:
A green box appears, indicating a bullish FVG.
The tool provides the target price (e.g., 0.6371) and the stop-loss level (e.g., 0.6339).
Set Up the Trade:
Place a limit buy order at the retracement zone (inside the green box).
Set your stop-loss just below the FVG box (e.g., 0.6339).
Set your take-profit at a 2:1 risk-reward ratio or the suggested target (e.g., 0.6371).
Monitor the Trade:
Wait for the price to retrace into the FVG zone and trigger your limit order.
Let the trade run until it hits the take-profit or stop-loss.
Bearish FVG Trade
Identify the FVG:
A red box appears, indicating a bearish FVG.
The tool provides the target price and the stop-loss level.
Set Up the Trade:
Place a limit sell order at the retracement zone (inside the red box).
Set your stop-loss just above the FVG box.
Set your take-profit at a 2:1 risk-reward ratio or the suggested target.
Monitor the Trade:
Wait for the price to retrace into the FVG zone and trigger your limit order.
Let the trade run until it hits the take-profit or stop-loss.
Key Features of the Tool in Action
Visual Clarity:
The green and red boxes clearly show the FVG zones, making it easy to identify potential trade setups.
Labels provide the target price and stop-loss level for quick decision-making.
Risk-Reward Management:
The tool encourages disciplined trading by providing predefined SL and TP levels.
A 2:1 risk-reward ratio ensures that profitable trades outweigh losses.
Hands-Off Execution:
By placing limit orders, you can let the trade execute automatically without needing to monitor the market constantly.
Best Practices
Trade in the Direction of the Trend:
Use higher timeframes (e.g., 4-hour or daily) to identify the overall trend.
Focus on bullish FVGs in an uptrend and bearish FVGs in a downtrend.
Combine with Confirmation Signals:
Look for additional confirmation, such as candlestick patterns (e.g., engulfing candles) or indicator signals (e.g., RSI, MACD).
Adjust Parameters for Volatility:
For highly volatile markets, consider increasing the stop-loss percentage to avoid being stopped out prematurely.
Avoid Overtrading:
Not every FVG is a good trading opportunity. Be selective and only trade setups that align with your strategy.
Backtest and Optimize:
Use historical data to test the tool and refine your approach before trading live.
Common Mistakes to Avoid
Entering Without Confirmation:
Wait for price to retrace into the FVG zone before entering a trade.
Avoid chasing trades that have already moved away from the zone.
Ignoring Risk Management:
Always use a stop-loss to protect your account.
Stick to a consistent risk-reward ratio.
Trading Against the Trend:
Avoid taking trades that go against the prevailing market trend unless there is strong evidence of a reversal.
Final Thoughts
The FVG Visual Trading Tool is a powerful aid for identifying high-probability trade setups. By following the steps outlined above, you can use the tool to trade with confidence and discipline. Remember, no tool guarantees success, so always combine it with sound trading principles and proper risk management
Cari dalam skrip untuk "fvg"
FVG OscillatorThe FVG Oscillator, developed by OmegaTools and available on TradingView, is a specialized analytical tool designed to offer traders insight into the market's potential direction through the lens of Fair Value Gaps (FVGs). This script combines traditional oscillator functionality with a unique focus on FVGs, providing a nuanced approach to understanding market dynamics.
Understanding FVGs and Their Importance:
Fair Value Gaps (FVGs) are identified when there's a discrepancy between the high price of one session and the low of the subsequent session (or vice versa), indicating areas where price movements have skipped over, creating a gap. These gaps often signal potential price movement areas, as markets may move to "fill" these gaps. The FVG Oscillator is designed to quantify these occurrences and their potential impact on market direction.
Key Features of the FVG Oscillator:
- Adjustable Lookback Period: Traders can set the number of bars back (defaulted at 50) to adjust the sensitivity of the oscillator to recent market activity.
- Visual Area Representation: The option to display areas of positive and negative FVG occurrences provides a visual representation of market sentiment over the selected period.
- Color Customisation: Users can personalize the oscillator's appearance with color selections for positive and negative movements, enhancing readability and analysis.
- Volume and ATR Confirmation: Incorporates volume data and Average True Range (ATR) filtering to verify FVG occurrences, adding a layer of validation to the identified gaps.
Operational Mechanism:
The oscillator tallies bullish FVG occurrences as positive values and bearish FVG occurrences as negative values over the specified lookback period. It then applies volume and ATR criteria to confirm the significance of these gaps. The final output is an oscillator line that reflects the net value of bullish versus bearish FVGs, alongside histograms that show the width (or significance) of long and short patterns based on confirmed FVGs.
How to Use the FVG Oscillator:
- After adding the FVG Oscillator to your TradingView chart, adjust the 'Bars Back' input to tailor the oscillator's sensitivity to your trading strategy.
- Use the net value line to gauge the overall market sentiment based on FVG occurrences; a higher net value suggests bullish sentiment, while a lower value indicates bearish sentiment.
- The histograms provide an additional layer of insight, highlighting the relative strength and significance of confirmed bullish and bearish FVGs.
Application in Trading:
The FVG Oscillator is intended as an analytical tool to complement your existing trading strategy. By offering a unique perspective on FVG occurrences and their potential market implications, the oscillator can help inform your trading decisions. However, traders are encouraged to combine this tool with other forms of analysis and employ sound risk management practices.
Originality and Usefulness:
This oscillator is original in its integration of FVG analysis with traditional oscillator metrics, offering traders a novel tool for market analysis. Its usefulness lies in its ability to provide a quantitative and visual representation of FVGs, aiding traders in identifying potential market movements.
Disclaimer:
It is important for traders to understand that the financial markets are inherently unpredictable, and the FVG Oscillator is not a predictive tool nor does it guarantee trading success. It should be used as part of a comprehensive trading strategy, incorporating additional market analysis and risk management practices. Remember, past performance does not necessarily predict future results, and trading involves risks, including the potential loss of capital.
FVG Breakout Lite by tradingbauhausExplanation of "FVG Breakout Lite by tradingbauhaus"
This script is a trading strategy built for TradingView that helps you spot and trade "Fair Value Gaps" (FVGs)—price areas where the market moved quickly, leaving a gap that might act as support or resistance later. It’s designed to catch breakout opportunities when the price moves strongly in one direction, with extra filters to make trades more reliable. Here’s how it works and how you can use it:
What It Does
1. Finds Fair Value Gaps (FVGs):
A "Bullish FVG" happens when the price jumps up quickly, leaving a gap below where it didn’t trade much (e.g., today’s low is higher than the high from two bars ago).
A "Bearish FVG" is the opposite: the price drops fast, leaving a gap above (e.g., today’s high is lower than the low from two bars ago).
The script draws colored boxes on your chart to show these gaps: green for bullish, red for bearish.
2. Spots Breakouts:
It looks for "strong" FVGs by comparing them to a trend (based on the highest highs and lowest lows over a set period).
If a bullish gap forms above the recent highs, or a bearish gap below the recent lows, it’s marked as a breakout opportunity.
3. Adds a Volume Check:
Trades only happen if the market’s volume is higher than usual (e.g., 1.2x the average volume over the last 20 bars). This helps ensure the breakout has real momentum behind it.
4. Trades Automatically:
Long Trades (Buy): If a bullish breakout FVG forms and volume is high, it buys at the current price.
Short Trades (Sell): If a bearish breakout FVG forms with high volume, it sells short.
Each trade comes with a stop loss (to limit losses) and a take profit (to lock in gains), both adjustable by you.
5. Shows Mitigation Lines (Optional):
If you turn on "Display Mitigation Zones," it draws lines at the edge of each breakout FVG. These lines show where the price might return to "fill" the gap later, helping you see key levels.
6. Includes Webull Costs:
The script factors in real trading fees from Webull, like tiny SEC and FINRA fees for selling, and a daily margin cost if you’re borrowing money to trade. These don’t show up on the chart but affect the strategy’s performance in backtesting.
How to Use It
1. Add to Your Chart:
Copy the script into TradingView’s Pine Editor, click "Add to Chart," and it’ll start drawing FVGs and running the strategy.
2. Customize Settings:
Trend Period (Default: 25): How many bars it looks back to define the trend. Longer periods mean fewer but stronger signals.
Volume Lookback (Default: 20) & Volume Threshold (Default: 1.2): Adjust how it measures "high volume." Increase the threshold for stricter trades.
Stop Loss % (Default: 1.5%) & Take Profit % (Default: 3%): Set how much you’re willing to lose or aim to gain per trade.
Margin Rate % (Default: 8.74%): Webull’s rate for borrowing money—lower it if your account qualifies for a better rate.
Display Mitigation Zones (Default: On): Toggle this to see or hide the gap lines.
Colors: Change the green (bullish) and red (bearish) shades to suit your chart.
3. Backtest It:
Go to the "Strategy Tester" tab in TradingView to see how it performs on past data. It’ll show trades, profits, losses, and Webull fees included.
4. Watch It Work:
Green boxes mean bullish FVGs; red boxes mean bearish FVGs. If volume spikes and the price breaks out, you’ll see trades happen automatically.
What to Expect
Visuals: You’ll see colored boxes for FVGs and optional lines showing where they start. These help you spot key price zones even if you’re not trading.
Trades: It’s selective—only trades when FVGs align with a breakout and volume confirms it. Expect fewer trades but with higher potential.
Risk: The stop loss keeps losses in check, while the take profit aims for a 2:1 reward-to-risk ratio by default (3% gain vs. 1.5% loss).
Costs: Webull’s fees are small but baked into the results, so you’re seeing a realistic picture of profits.
Tips for Users
Test it on a small timeframe (like 5-minute charts) for day trading or a larger one (like daily) for swing trading.
Play with the volume threshold—if you get too few trades, lower it (e.g., 1.1); if too many, raise it (e.g., 1.5).
Watch how price reacts to the mitigation lines—they’re often support or resistance zones traders target.
This strategy is lightweight, focused, and built for traders who like breakouts with a bit of confirmation. It’s not foolproof (no strategy is!), but it gives you a clear way to trade FVGs with some smart filters.
FVG - NibzDescription: Fair Value Gap (FVG) Indicator - Nibz
This Pine Script identifies and visualizes Fair Value Gaps (FVGs) on your TradingView chart. FVGs are price inefficiencies left behind when the market moves too quickly, skipping price levels that might not be tested. These gaps often act as magnets, attracting price for potential reversals or continuations.
The script works by detecting upward (bullish) and downward (bearish) price imbalances based on specific candlestick criteria and then marks these zones on your chart using customizable shaded boxes. This tool is essential for traders looking to identify key areas of market inefficiency that could signify support/resistance levels, potential reversal zones, or areas to monitor for market rebalancing.
How It Works
1. Bullish FVG Detection
The script identifies an upward imbalance when:
The low of the candlestick two bars back is less than or equal to the open of the previous bar.
The high of the current candlestick is greater than or equal to the close of the previous bar.
When this condition is met and the size of the imbalance is greater than zero, a green box is drawn from the low of the second candlestick back to the high of the current candlestick.
2. Bearish FVG Detection
The script identifies a downward imbalance when:
The high of the candlestick two bars back is greater than or equal to the open of the previous bar.
The low of the current candlestick is less than or equal to the close of the previous bar.
When this condition is met and the size of the imbalance is greater than zero, a red box is drawn from the low of the current candlestick to the high of the second candlestick back.
Customization Options
This script is highly customizable, allowing you to tailor the appearance of the FVG boxes to suit your trading style and chart aesthetics:
Bullish FVG:
Fill color and transparency.
Border color and transparency.
Bearish FVG:
Fill color and transparency.
Border color and transparency.
The settings are user-friendly, with intuitive sliders for transparency and color pickers for customization.
How to Use the Indicator
Adding the Script:
Add the indicator to your chart, and it will automatically mark bullish (green) and bearish (red) FVGs.
Interpreting FVGs:
Bullish FVGs (green zones): These often act as support or areas of potential price rebalancing on retracement.
Bearish FVGs (red zones): These often act as resistance or areas of interest for short entries.
Trade Ideas:
Use FVG zones to confirm other trade signals or strategies.
Watch for price interaction with these zones to time entries and exits.
Key Features
Automated detection of Fair Value Gaps.
Customizable visual representation to match your chart preferences.
Enhances trading precision by identifying price inefficiencies.
Suitable for scalping, day trading, or swing trading strategies.
This script provides a powerful tool to highlight important price levels and inefficiencies in the market, enabling traders to make informed decisions. Whether you're using it as a standalone indicator or combining it with other tools, the 'FVG - Nibz' indicator is a valuable addition to any trader's toolkit!
FVG Breakout/BreakdownThe FVG Breakout/Breakdown indicator is designed to identify potential breakout and breakdown opportunities in the market, based on the concept of Fair Value Gaps (FVGs). FVGs are areas where price moves too quickly, leaving behind gaps between candlesticks, often seen as areas of inefficiency or imbalance that the market tends to revisit.
Key Concepts:
Fair Value Gaps (FVG):
FVG occurs when a price gap is created between candlesticks, typically when the high of one candle is lower than the low of the previous candle (for a bearish FVG) or the low of one candle is higher than the high of the previous candle (for a bullish FVG).
These gaps represent an imbalance between buying and selling pressure, and the market often revisits them, making them valuable for identifying potential entry points.
Bullish FVG: This occurs when the low of the current candle is higher than the high of the previous candle.
Condition: low > high
Bearish FVG: This occurs when the high of the current candle is lower than the low of the previous candle.
Condition: high < low
Breakout/Breakdown Signals:
Breakout: A bullish breakout signal occurs when the price breaks above a defined resistance level after an FVG gap. This suggests that the market may continue moving higher.
Breakdown: A bearish breakdown signal occurs when the price breaks below a defined support level after an FVG gap. This suggests that the market may continue moving lower.
NWOG (New Week Opening Gap):
The NWOG can be used as an additional factor to confirm the FVG signal. The gap between Friday's close and Monday's open is a crucial level for identifying the start of a new move for the week.
NWOG helps to further refine the timing of breakout or breakdown signals, only triggering them when price moves relative to the Monday Open and shows a new direction.
FVG Positioning Average with 200EMA Auto Trading [Pakun]Description
Strategy Name and Purpose
FVG Positioning Average with 200EMA Auto Trading
This strategy uses Fair Value Gaps (FVG) combined with a 200-period Exponential Moving Average (EMA) and Average True Range (ATR) to generate trend-based trading signals. It is designed to help traders identify high-probability entry points by leveraging the gaps between fair value prices and current market prices.
Originality and Usefulness
This script combines multiple indicators to create a cohesive trading strategy that is greater than the sum of its parts. While FVG is a powerful tool on its own, combining it with the EMA and ATR adds layers of confirmation and risk management, enhancing its effectiveness. Here’s how the components work together:
Fair Value Gap (FVG): Identifies gaps in the market where price action has not fully filled, indicating potential reversal or continuation points.
200-period Exponential Moving Average (EMA): Acts as a trend filter to ensure trades are taken in the direction of the overall trend, improving the probability of success.
Average True Range (ATR): Used to filter out insignificant gaps and set dynamic stop-loss levels based on market volatility, enhancing risk management.
Entry Conditions
Long Entry
The close price crosses above the downtrend FVG.
The close price, FVG up average, and down average are all above the 200 EMA, indicating a strong bullish trend.
Short Entry
The close price crosses below the uptrend FVG.
The close price, FVG up average, and down average are all below the 200 EMA, indicating a strong bearish trend.
Exit Conditions
For long positions, the stop loss is set at the recent low, and the take profit is set at a point with a risk-reward ratio of 1:1.5.
For short positions, the stop loss is set at the recent high, and the take profit is set at a point with a risk-reward ratio of 1:1.5.
Risk Management
Account Size: 1,000,000 yen
Commission and Slippage: 2 pips commission and 1 pip slippage per trade
Risk per Trade: 10% of account equity
The stop loss is based on the recent low or recent high, ensuring trades are exited when the market moves against the position.
Settings Options
FVG Lookback: Set the lookback period for calculating FVGs.
Lookback Type: Choose the type of lookback (Bar Count or FVG Count).
ATR Multiplier: Set the multiplier for ATR to filter significant gaps.
EMA Period: Set the period for the EMA to adjust the trend filter sensitivity.
Show FVGs on Chart: Choose whether to display FVGs on the chart for visual confirmation.
Bullish/Bearish Color: Set the color for bullish and bearish FVGs to distinguish them easily.
Show Gradient Areas: Choose whether to display gradient areas to highlight the zones of interest.
Sufficient Sample Size
The strategy has been backtested with 113 trades, providing a sufficient sample size to evaluate its performance.
Notes
This strategy is based on historical data and does not guarantee future results.
Thoroughly backtest and validate results before using in live trading.
Market volatility and other external factors can affect performance and may not yield expected results.
Acknowledgment
This strategy uses the FVG Positioning Average Strategy indicator. Thanks to for their contribution.
Clean Chart Explanation
The script is published with a clean chart to ensure that its output is readily identifiable and easy to understand. No other scripts are included on the chart, and any drawings or images used are specifically to illustrate how the script works.
FVG (Nephew sam remake)Hello i am making my own FVG script inspired by Nephew Sam as his fvg code is not open source. My goal is to replicate his Script and then add in alerts and more functions. Thus, i spent few days trying to code. There is bugs such as lower time frame not showing higher time frame FVG.
This script automatically detects and visualizes Fair Value Gaps (FVGs) — imbalances between demand and supply — across multiple timeframes (15-minute, 1-hour, and 4-hour).
15m chart shows:
15m FVGs (green/red boxes)
1H FVGs (lime/maroon)
4H FVGs (faded green/red with borders) (Bugged For now i only see 1H appearing)
1H chart shows:
1H FVGs
4H FVGs
4H chart shows:
4H FVGs only
There is the function to auto close FVG when a future candle fully disrespected it.
You're welcome to:
🔧 Customize the appearance: adjust box colors, transparency, border style
🧪 Add alerts: e.g., when price enters or fills a gap
📅 Expand to Daily/Weekly: just copy the logic and plug in "D" or "W" as new layers
📈 Build confluence logic: combine this with order blocks, liquidity zones, or ICT concepts
🧠 Experiment with entry signals: e.g., candle confirmation on return to FVG
🚀 Improve performance: if you find a lighter way to track gaps, feel free to optimize!
ICT MTF FVG [MK]FVGs (Fair Value Gaps) are significant levels that may act as support or resistance to price. The script finds FVGs as per ICT trading system, then plots the full FVG to the right side of the chart. FVG boxes do not change size when they are semi-mitigated as its important to know where the original FVG midpoint lies. Plotting to the right side of price allows for a cleaner chart. The script is MTF and can display FVG boxes for the following timeframes. Chart, 5,10,15,30,1hr,4hr,8hr,12hr,D,W,M.
Below shows 1hr FVGs marked out. NOTE: this is not what the script does, this is for explanation only.
Below shows what the script will do. 1hr FVGs shown on 15min chart
FVG Alerts (Vortus)What are Fair Value Gaps (FVGs)?
Fair Value Gaps (FVGs) represent price inefficiencies where buying and selling volumes are imbalanced, creating gaps between the wicks of consecutive candles. These gaps often act as magnets for price, as markets tend to "fill" these gaps before resuming their trend.
FVGs can signal potential entry or exit points, making them a valuable tool for traders looking to exploit these price inefficiencies.
How to Use the Script to Add Alerts:
1. Add the Script to Your Chart:
Load the script into TradingView by pasting it into the Pine Script Editor, then apply it to your chart.
2. Adjust Your Settings:
In the "FVG Settings" section, decide whether you want gaps to be removed after their midpoint or full fill. You can also choose to identify gaps only after a candle has closed, adding a level of confirmation to your strategy.
Customize the colors for Bullish and Bearish FVGs under "Visual Settings" to match your chart's theme.
3. Set Up Your Alerts:
After adding the script to your chart, go to the "Alerts" section in TradingView.
Select either "Bullish FVG Filled" or "Bearish FVG Filled" from the "Condition" dropdown menu.
Configure the alert parameters such as frequency, expiration, and notification method according to your trading strategy.
4. Stay on Top of the Market:
Once set up, the script will automatically notify you when a Fair Value Gap is filled, keeping you informed of potential reversal or continuation opportunities without needing to constantly monitor the charts.
Feedback is Welcome
FVG in MACROGuided by ICT tutoring, I created this versatile indicator to scan the FVG in MACRO time.
This indicator combines the MACRO time with the Fair value GAP (FVG) in an alternative way, showing a simple way of viewing the FVG within the MACRO time, so you can have a clearer view of which direction the MACRO is influencing
''MACRO is a delivery time frame of the interbank price in which it undergoes a series of controls and is likely to move towards liquidity.''
The user has the possibility to:
- Choose the relevant MACRO time
- Choose whether to view all FVGs in the MACROS
- Choose to view only the First FVG at each MACRO
The indicator should be used as shown by the ICT in its concepts, during the MACRO time the price can consolidate or can head towards liquidity.
The probability that the direction is correct increases with respect for the FVG, in this way it is possible to evaluate the entry zone in the FVG and the Take profit zone for Liquidity
As in the following example:
FVG + OB + RSI Divergence + Volume Spikes🧠 FVG + OB + RSI Divergence + Volume Spikes – Market Structure Confluence Tool
This all-in-one indicator brings together four powerful market concepts into a single script designed to help traders identify high-probability trade setups with precision and clarity:
🔍 What It Does
✅ Fair Value Gaps (FVG)
Highlights inefficiencies in price action, showing where the market may return to “rebalance.”
✅ Order Blocks (OB)
Marks key institutional footprints — bullish and bearish order blocks based on engulfing candle structures.
✅ RSI Divergence
Detects both bullish and bearish divergences between price and RSI, signaling potential reversals.
✅ Volume Spikes
Flags bars where volume significantly exceeds the average — a common footprint of smart money.
🎯 How to Use
Use this tool to spot confluences between price inefficiencies (FVG), key reversal zones (OB), momentum shifts (RSI Divergence), and institutional interest (Volume Spikes). The best setups often occur when multiple signals align — especially at key support/resistance or trend zones.
⚙️ Inputs
RSI length (for divergence)
Volume spike sensitivity (multiplier)
Lookback for Order Blocks and FVGs
⚠️ Notes
This is a non-repainting tool.
Ideal for price action, SMC, ICT, and order flow traders.
Combine with your existing strategy and higher time frame bias for best results.
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.
Key Levels + IB + VAH/VAL + FVG The full TradingView Pine Script with:
⏰ Session time zone selection
🟩 Initial Balance (IB) with parameterized duration
📦 Fair Value Gaps (FVG)
📊 Simulated Volume Profile: VAH / VAL / POC
🔁 Extended key levels across full session
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
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)
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.
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
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.