OPEN-SOURCE SCRIPT
Diupdate HTF FVG BISI & SIBI

Built this because most FVG indicators either drown your chart in boxes or don't handle higher timeframe gaps properly on lower timeframe charts. This one does both — cleanly.
It pulls Fair Value Gaps from the 15-minute, 1-hour, and 4-hour timeframes and plots them directly onto whatever chart timeframe you're working on. Each FVG is drawn as a shaded zone with optional internal levels — the 50% consequent encroachment line, and the 25%/75% quadrant lines — so you can see your premium and discount zones inside the gap at a glance.
How it detects FVGs:
The indicator uses request.security() to read closed candle data from each higher timeframe. When candle 1's low is above candle 3's high, that's a BISI (Buyside Imbalance, Sellside Inefficiency — bullish). When candle 1's high is below candle 3's low, that's a SIBI (Sellside Imbalance, Buyside Inefficiency — bearish). Simple three-candle logic, nothing exotic. A minimum gap size filter (in ticks) is included so you're not cluttering the chart with insignificant gaps that price will blow through without reacting.
Overlap prevention:
One of the main issues with most FVG tools is they'll stack three or four boxes on top of each other in the same price zone when the market creates consecutive gaps. This indicator checks whether a new FVG shares price space with one already active in the same timeframe — if it does, the new one gets rejected. Once the original mitigates and clears, a fresh gap in the same area will plot normally. This keeps the chart readable without hiding real setups.
Mitigation logic:
FVGs don't stay on the chart forever. When price retraces into a gap beyond a configurable threshold (default 65%), the indicator considers it mitigated and removes the box, lines, and label entirely. For a BISI, it checks if price has pushed down through 65% of the gap from the top. For a SIBI, it checks if price has pushed up through 65% from the bottom. You can adjust this percentage to suit how aggressively you want gaps cleared — some traders prefer 50% (consequent encroachment), others want to see a deeper rebalancing before removal.
Display limit per timeframe:
You can set how many active FVGs are shown per timeframe (default 2, max 4). The indicator always prioritises the most recent gaps. Older unmitigated FVGs aren't deleted — they're just hidden. If a newer one gets mitigated and removed, the older one swaps back in automatically. This keeps the chart focused on what's immediately relevant while preserving the history behind the scenes.
Extension modes:
Three options depending on how you like your charts. "Extend to Current Bar" stretches each box forward to the live bar so the zone is always visible. "Extend Right" projects the box infinitely to the right. "No Extension" locks the box to the candles that formed it — useful if you prefer a static historical view.
Labels:
Each FVG gets a small label on the left edge showing its timeframe and type (e.g., "1H BISI" or "4H SIBI"). They sit at the 50% level of the gap so they're easy to spot without adding noise.
Settings at a glance:
Toggle each timeframe on/off independently
Customisable BISI and SIBI colours
CE line, 25%/75% lines — all optional
Minimum gap size filter (ticks)
Mitigation threshold (%)
Max active FVGs per timeframe
Three extension modes
What this doesn't do:
No alerts, no entry signals, no strategy automation. It's a pure visual mapping tool — it shows you where the inefficiencies are so you can make your own decisions about how to trade around them. Designed for discretionary traders who use FVGs as part of their top-down analysis, not as standalone triggers.
Works on any instrument and any chart timeframe. If you're viewing a 1-minute chart, you'll see the 15m, 1H, and 4H gaps mapped onto it. If you're on a 15-minute chart, only the 1H and 4H gaps will appear (since the 15m data matches the chart timeframe, those gaps show natively in price action anyway).
Enjoy. :)
It pulls Fair Value Gaps from the 15-minute, 1-hour, and 4-hour timeframes and plots them directly onto whatever chart timeframe you're working on. Each FVG is drawn as a shaded zone with optional internal levels — the 50% consequent encroachment line, and the 25%/75% quadrant lines — so you can see your premium and discount zones inside the gap at a glance.
How it detects FVGs:
The indicator uses request.security() to read closed candle data from each higher timeframe. When candle 1's low is above candle 3's high, that's a BISI (Buyside Imbalance, Sellside Inefficiency — bullish). When candle 1's high is below candle 3's low, that's a SIBI (Sellside Imbalance, Buyside Inefficiency — bearish). Simple three-candle logic, nothing exotic. A minimum gap size filter (in ticks) is included so you're not cluttering the chart with insignificant gaps that price will blow through without reacting.
Overlap prevention:
One of the main issues with most FVG tools is they'll stack three or four boxes on top of each other in the same price zone when the market creates consecutive gaps. This indicator checks whether a new FVG shares price space with one already active in the same timeframe — if it does, the new one gets rejected. Once the original mitigates and clears, a fresh gap in the same area will plot normally. This keeps the chart readable without hiding real setups.
Mitigation logic:
FVGs don't stay on the chart forever. When price retraces into a gap beyond a configurable threshold (default 65%), the indicator considers it mitigated and removes the box, lines, and label entirely. For a BISI, it checks if price has pushed down through 65% of the gap from the top. For a SIBI, it checks if price has pushed up through 65% from the bottom. You can adjust this percentage to suit how aggressively you want gaps cleared — some traders prefer 50% (consequent encroachment), others want to see a deeper rebalancing before removal.
Display limit per timeframe:
You can set how many active FVGs are shown per timeframe (default 2, max 4). The indicator always prioritises the most recent gaps. Older unmitigated FVGs aren't deleted — they're just hidden. If a newer one gets mitigated and removed, the older one swaps back in automatically. This keeps the chart focused on what's immediately relevant while preserving the history behind the scenes.
Extension modes:
Three options depending on how you like your charts. "Extend to Current Bar" stretches each box forward to the live bar so the zone is always visible. "Extend Right" projects the box infinitely to the right. "No Extension" locks the box to the candles that formed it — useful if you prefer a static historical view.
Labels:
Each FVG gets a small label on the left edge showing its timeframe and type (e.g., "1H BISI" or "4H SIBI"). They sit at the 50% level of the gap so they're easy to spot without adding noise.
Settings at a glance:
Toggle each timeframe on/off independently
Customisable BISI and SIBI colours
CE line, 25%/75% lines — all optional
Minimum gap size filter (ticks)
Mitigation threshold (%)
Max active FVGs per timeframe
Three extension modes
What this doesn't do:
No alerts, no entry signals, no strategy automation. It's a pure visual mapping tool — it shows you where the inefficiencies are so you can make your own decisions about how to trade around them. Designed for discretionary traders who use FVGs as part of their top-down analysis, not as standalone triggers.
Works on any instrument and any chart timeframe. If you're viewing a 1-minute chart, you'll see the 15m, 1H, and 4H gaps mapped onto it. If you're on a 15-minute chart, only the 1H and 4H gaps will appear (since the 15m data matches the chart timeframe, those gaps show natively in price action anyway).
Enjoy. :)
Catatan Rilis
Updated Detection Logic for 1H Still fixing 4H in meantime.
Catatan Rilis
Took out 4H logic due to too much over lap, personally i would draw my 4H if needed so you don't have irrelevant PD arrays active that arent close to price action and 1H is still great for Intra-day. Enjoy. Catatan Rilis
Fixed the H4 logic so all time frames should operate perfectly now Changed some visual work too
show_4h = input.bool(true, "Show 4H FVG", group=grp_tf)
max_fvgs = input.int(2, "Max Active FVGs per TF", minval=1, maxval=4, group=grp_tf)
min_ticks = input.int(5, "Minimum FVG Size (Ticks)", minval=1, group=grp_tf)
Catatan Rilis
*Visual Fix Skrip open-source
Dengan semangat TradingView yang sesungguhnya, pembuat skrip ini telah menjadikannya sebagai sumber terbuka, sehingga para trader dapat meninjau dan memverifikasi fungsinya. Salut untuk penulisnya! Meskipun Anda dapat menggunakannya secara gratis, perlu diingat bahwa penerbitan ulang kode ini tunduk pada Tata Tertib kami.
Pernyataan Penyangkalan
Informasi dan publikasi ini tidak dimaksudkan, dan bukan merupakan, saran atau rekomendasi keuangan, investasi, trading, atau jenis lainnya yang diberikan atau didukung oleh TradingView. Baca selengkapnya di Ketentuan Penggunaan.
Skrip open-source
Dengan semangat TradingView yang sesungguhnya, pembuat skrip ini telah menjadikannya sebagai sumber terbuka, sehingga para trader dapat meninjau dan memverifikasi fungsinya. Salut untuk penulisnya! Meskipun Anda dapat menggunakannya secara gratis, perlu diingat bahwa penerbitan ulang kode ini tunduk pada Tata Tertib kami.
Pernyataan Penyangkalan
Informasi dan publikasi ini tidak dimaksudkan, dan bukan merupakan, saran atau rekomendasi keuangan, investasi, trading, atau jenis lainnya yang diberikan atau didukung oleh TradingView. Baca selengkapnya di Ketentuan Penggunaan.