OPEN-SOURCE SCRIPT
Atualizado DuoBlocks - ICT Order Block detector

DuoBlocks (ICT Order Block Detector)
(An ICT(Inner Circle Trading)-style Order Block(OB) tool that highlights only the most relevant and recent Demand/Supply zones using FVG and Engulfing based OB sources.)
Overview
DuoBlocks is an ICT-inspired Order Block detector that uses the mostly used two major order block types: FVG(Fair Value Gap) or Engulfing. There are many Order Block indicators out there, but I couldn’t find one that consistently highlights the most relevant, most recent OB relative to the current price without making the chart a mess and that's why so I built this script.

FVG-based OB (FVG-OB): OBs derived from 3-candle fair value gap logic.
Engulfing-based OB (Engulfing-OB): OBs derived from strong 2-candle reversal/displacement (engulf) logic.
Usage

FVG-OB (Fair Value Gap Order Blocks)
This script finds bullish/bearish FVGs and draws an Order Block zone from the candle that created the move. Think of these zones as your potential next support (bullish) and resistance (bearish) levels.
Engulfing-OB (Engulfing Order Blocks)
This script also finds strong bullish/bearish engulfing candles and draws an Order Block zone from the candle that got engulfed.
Same idea: treat them as potential next support (bullish) and resistance (bearish) levels.
**Use these zones like “next level” support/resistance areas. Don’t blindly buy/sell—wait for your own confirmation and manage risk properly.
Settings
Show FVG-OB
Toggle display of the selected FVG-based bullish/bearish OB (one per side).
Show Engulfing-OB
Toggle display of the selected Engulfing-based bullish/bearish OB (one per side).
Max Invalidation Attempts (FVG OB or Engulf OB)
Controls how many separate breach events a stored OB can absorb before it is marked invalid (discarded). The counting happens when either of below occurs.
Bullish OB: price prints a low below the OB bottom.
Bearish OB: price prints a high above the OB top.
Each time this happens, the OB’s invalidation counter increments by +1.
Once the counter reaches your Max Attempts, that OB is flagged as no longer live, so it will stop being eligible for selection. Then the script automatically falls through to the next best/next nearest valid OB in memory.
Right Extend (bars)
How far to extend the selected OB boxes to the right.
Lookback bars
Maximum historical bars scanned for detection. Lower values = faster/cleaner, higher values = more history retained.
Max stored OB per side
Maximum stored bullish and bearish OBs in memory (per source).
Bullish/Bearish OB Color
Controls border/midline coloring for bullish and bearish zones.
Disclaimer
This script is for educational and informational purposes only and does not constitute financial advice or investment recommendations. Trading cryptocurrencies and other financial instruments involves significant risk, and you are solely responsible for your own decisions based on your financial situation, objectives, and risk tolerance. The author assumes no liability for losses arising from the use of this indicator.
(An ICT(Inner Circle Trading)-style Order Block(OB) tool that highlights only the most relevant and recent Demand/Supply zones using FVG and Engulfing based OB sources.)
Overview
DuoBlocks is an ICT-inspired Order Block detector that uses the mostly used two major order block types: FVG(Fair Value Gap) or Engulfing. There are many Order Block indicators out there, but I couldn’t find one that consistently highlights the most relevant, most recent OB relative to the current price without making the chart a mess and that's why so I built this script.
FVG-based OB (FVG-OB): OBs derived from 3-candle fair value gap logic.
Engulfing-based OB (Engulfing-OB): OBs derived from strong 2-candle reversal/displacement (engulf) logic.
Usage
FVG-OB (Fair Value Gap Order Blocks)
This script finds bullish/bearish FVGs and draws an Order Block zone from the candle that created the move. Think of these zones as your potential next support (bullish) and resistance (bearish) levels.
Engulfing-OB (Engulfing Order Blocks)
This script also finds strong bullish/bearish engulfing candles and draws an Order Block zone from the candle that got engulfed.
Same idea: treat them as potential next support (bullish) and resistance (bearish) levels.
**Use these zones like “next level” support/resistance areas. Don’t blindly buy/sell—wait for your own confirmation and manage risk properly.
Settings
Show FVG-OB
Toggle display of the selected FVG-based bullish/bearish OB (one per side).
Show Engulfing-OB
Toggle display of the selected Engulfing-based bullish/bearish OB (one per side).
Max Invalidation Attempts (FVG OB or Engulf OB)
Controls how many separate breach events a stored OB can absorb before it is marked invalid (discarded). The counting happens when either of below occurs.
Bullish OB: price prints a low below the OB bottom.
Bearish OB: price prints a high above the OB top.
Each time this happens, the OB’s invalidation counter increments by +1.
Once the counter reaches your Max Attempts, that OB is flagged as no longer live, so it will stop being eligible for selection. Then the script automatically falls through to the next best/next nearest valid OB in memory.
Right Extend (bars)
How far to extend the selected OB boxes to the right.
Lookback bars
Maximum historical bars scanned for detection. Lower values = faster/cleaner, higher values = more history retained.
Max stored OB per side
Maximum stored bullish and bearish OBs in memory (per source).
Bullish/Bearish OB Color
Controls border/midline coloring for bullish and bearish zones.
Disclaimer
This script is for educational and informational purposes only and does not constitute financial advice or investment recommendations. Trading cryptocurrencies and other financial instruments involves significant risk, and you are solely responsible for your own decisions based on your financial situation, objectives, and risk tolerance. The author assumes no liability for losses arising from the use of this indicator.
Notas de Lançamento
.Notas de Lançamento
Added two features below.■ ATR-based OB Body Filter
Why needed
Some Order Blocks are formed from very small / weak candles (tiny bodies). These tend to produce low-quality zones and add noise. This filter rejects OB candidates when the source candle body is too small relative to ATR.
[engulf OB with the filter value 0.01]
[Engulf OB with the filter value 0.15]
Default tuned value
FVG OB (default: 0.01×ATR)
FVG is gap-driven and often represents a more event-like displacement. Even with a smaller source candle body, the gap structure itself can still be meaningful.
Engulf OB (default: 0.15×ATR)
Engulf setups can appear frequently with small bodies, especially in ranging conditions. These weak engulf cases tend to generate more noise, so the body threshold is stricter than FVG one by default.
Inputs
Reject tiny OB candles (ATR body filter) (default: ON)
ATR Length (default: 14)
Min body × ATR (FVG OB) (default: 0.01)
Min body × ATR (Engulf OB) (default: 0.15)
How to use
If you think the filter removes an order block that you think might be useful, turn this filter off or lower the filter value.
If you find an order block that might be just noise, increase the filter value so it could filter it out.
■ Multi-Exchange Consensus
Why needed
Most major exchanges look very similar, but during fast moves exchange-specific spikes / liquidation wicks can create an OB on one exchange only.
This feature compares the selected OB midline across BINANCE / OKX / BYBIT perps to separate:
Consensus OB (agree ≥ 2 exchanges): drawn in normal Bull/Bear colors (green/red)
Solo OB (current exchange only): drawn in gray to indicate lower cross-exchange confirmation
Inputs (Exchange Consensus)
Enable multi-exchange consensus (default: OFF)
Crypto perpetual futures ONLY. Compares selected OB mid values across BINANCE / OKX / BYBIT perps using ATR based tolerance value.
Mid tolerance (×ATR) (default: 0.25)
Tolerance used for agree counting.
tol = ATR(14) × tolAtrMult
Agree condition: abs(mid - refMid) <= tol
Solo-OB color (no consensus) (default: gray)
Color used when agree < 2 (OB detected only on the current exchange).
How to use
Enable when crypto trading perps to quickly see whether an OB is shared across exchanges to get additional potential confidence over the OB.
Green/Red = stronger confirmation (agree ≥ 2)
Gray = solo OB (local-only), treat with more caution
■ Code refactoring
code structure refactoring for cleaner layout for easier maintenance and future updates
Script de código aberto
Em verdadeiro espírito do TradingView, o criador deste script o tornou de código aberto, para que os traders possam revisar e verificar sua funcionalidade. Parabéns ao autor! Embora você possa usá-lo gratuitamente, lembre-se de que a republicação do código está sujeita às nossas Regras da Casa.
Aviso legal
As informações e publicações não se destinam a ser, e não constituem, conselhos ou recomendações financeiras, de investimento, comerciais ou de outro tipo fornecidos ou endossados pela TradingView. Leia mais nos Termos de Uso.
Script de código aberto
Em verdadeiro espírito do TradingView, o criador deste script o tornou de código aberto, para que os traders possam revisar e verificar sua funcionalidade. Parabéns ao autor! Embora você possa usá-lo gratuitamente, lembre-se de que a republicação do código está sujeita às nossas Regras da Casa.
Aviso legal
As informações e publicações não se destinam a ser, e não constituem, conselhos ou recomendações financeiras, de investimento, comerciais ou de outro tipo fornecidos ou endossados pela TradingView. Leia mais nos Termos de Uso.