Volume Order Blocks (VOB)

Volume Order Blocks (VOB)

Today, we are thrilled to feature a powerful and sophisticated indicator developed by BigBeluga: the Volume Order Blocks (VOB).

This indicator is designed to automatically identify and plot high-probability “Order Blocks” directly on your ProRealtime charts. These blocks represent significant zones of supply and demand, which often act as strong dynamic support or resistance levels.

How the Indicator Works (The Logic)

At its core, the VOB indicator identifies potential trend reversals and the price zones that trigger them. It combines trend analysis with price extremes to define these blocks.

1. The Trend Trigger (EMA Cross)

The indicator first establishes the medium-term trend using two Exponential Moving Averages (EMAs), a fast one and a slow one. A crossover of these EMAs signals a potential shift in the market direction and serves as the trigger for the indicator to start looking for a new order block.

2. Identifying Bullish Blocks (Demand)

When the indicator detects a bullish EMA crossover (the fast EMA crosses above the slow EMA), it signals that a new uptrend may be forming.

The indicator then scans the bars before this crossover to find the absolute lowest low price. This extreme low point, and the body of the candle that created it, represents the “Demand Block.” This zone is plotted as a green rectangle and extended into the future. The logic is that this was the last significant level where selling pressure was exhausted and demand took control.

3. Identifying Bearish Blocks (Supply)

Conversely, when the indicator detects a bearish EMA crossover (the fast EMA crosses below the slow EMA), it signals a potential new downtrend.

It scans the bars before this cross to find the absolute highest high price. This extreme high point forms the “Supply Block.” This zone is plotted as a red rectangle, representing the last significant level where buying pressure was exhausted and supply took over.

4. When is a Block “Broken” or Invalidated?

This is the most critical feature. A block remains active (and extended) on the chart until it is “broken” or “mitigated” by price.

  • A Bullish (Demand) Block is considered broken when price closes below its low.
  • A Bearish (Supply) Block is considered broken when price closes above its high.

This feature allows you to see exactly which zones are still active and which have failed.

5. Visuals & Chart Cleaning

The indicator also includes two features to improve usability:

  1. EMA Shadow: It can draw a colored cloud (or “shadow”) between the fast and slow EMAs, giving you a clear visual representation of the current trend.
  2. Overlap Detection: To prevent chart clutter, the indicator uses the Average True Range (ATR) to detect if two new blocks of the same type (e.g., two bullish blocks) are too close together. If they are, it intelligently removes the older, less relevant block.

How to Use the Volume Order Blocks Indicator

As Dynamic Support & Resistance

The most common use for VOB is to identify high-probability support (Demand) and resistance (Supply) levels.

  • When price pulls back to an active Demand Block (green), traders can watch for signs of rejection (bounces) as potential long entry signals.
  • When price rallies into an active Supply Block (red), traders can watch for signs of rejection as potential short entry signals.
  • The midline of the block (which can be toggled on) often acts as a significant level of interest (a 50% retracement) within the zone.

Identifying “Breaks of Structure” (BoS)

The invalidation of a block is just as important as the block itself.

  • When price decisively closes below a Demand Block, it signals a “Break of Structure” (BoS) to the downside. This suggests the trend is turning bearish.
  • When price decisively closes above a Supply Block, it signals a BoS to the upside, suggesting strong bullish momentum.

Indicator Settings and Configuration

This indicator comes with a wide range of settings to customize its behavior and appearance.

Main Settings

  • length1 (Default: 5): The period for the fast EMA.
  • length2 (Default: 18): The period for the slow EMA. Note: The code logic sets this to length1 + 13.
  • midL (Default: 1 – true): Set to 1 to display the 50% midline of the order blocks, or 0 to hide it.
  • trendShadow (Default: 1 – true): Set to 1 to display the colored cloud between the EMAs, or 0 to hide it.
  • showLastN (Default: 100): Sets the maximum number of historical blocks to draw on the chart. This helps manage chart performance.
  • showbroken (Default: 1 – true): A very useful setting for analysis. When set to 1 (true), the indicator will continue to display blocks after they have been broken (they will stop extending). Set to 0 (false) to have broken blocks disappear immediately.

Color Settings

The indicator provides full control over all visual elements:

  • col1R, col1G, col1B: RGB color for the bullish EMA shadow.
  • col2R, col2G, col2B: RGB color for the bearish EMA shadow.
  • bullColorR, bullColorG, bullColorB: RGB color for the Bullish (Demand) Blocks.
  • bearColorR, bearColorG, bearColorB: RGB color for the Bearish (Supply) Blocks.

ProRealtime Code

Share this

Risk disclosure:

No information on this site is investment advice or a solicitation to buy or sell any financial instrument. Past performance is not indicative of future results. Trading may expose you to risk of loss greater than your deposits and is only suitable for experienced investors who have sufficient financial means to bear such risk.

ProRealTime ITF files and other attachments : How to import ITF files into ProRealTime platform?

PRC is also on YouTube, subscribe to our channel for exclusive content and tutorials

avatar
Register or

Likes

avatar
Related users ' posts
Nicolas
7 years ago
BSTrend
v10.3
BSTrend
10
Indicators
Florian Legeard C’est à dire sur le prix et non sur le temps ? Merci
Rohit82189 bstrend repaints
Nicolas No, it doesn't repaint.
cfta Hi Fulvio, many thanks for sharing this clever indicator, much appreciated. As Pepsmile ment...
cfta Sorry adding the PRT to code didn't work in the above comment so I guess we will have to set...
juanj Something appears to be wrong with this formula as graphing t shows t to almost never be wit...
Nicolas
7 years ago
Maxime Baudin Interesting, Thank you! :)
franck-david Bonjour Nicolas , actuellement je me forme grace a vos videos tres tres bien expliques mer...
Nicolas Merci. ça n'est pas le lieu pour poser ce genre de question :) Merci d'utiliser le forum Pro...
Vonasi Discussion on this indicator/filter can be found here: https://www.prorealcode.com/topic/121...
Domenec Claro Juanjo de todas maneras en deinversoratrader.com tienes estsos osciladores evolucionad...
Dron Hola Domenec, en la descripción hablas del indicador velas de colores, no lo encuentro en la...
Domenec Hola Dron mira en el blog deinversoratrader.com en formacion indicadores ahi hay varios grat...
Geronima Ortiz I watched the video three times, but I can not put the npips parameter as a variable. I do...
Geronima Ortiz I think the video is for an old version of prorealtime, the images do not correspond at all ...
Nicolas indicator1 = CALL “PRC_StopReversal”[npips, 1] and define npips in the optimization window ...
Caribeengeek Bonjour j’avais vu que vous proposiez d’écrire des codes pour ceux qui s’y connaisse pas Mai...
Caribeengeek Les devises unité
Nicolas Merci d'utiliser le forum pour les demandes de programmation personnalisée
ullle73 nicolas, can you somehome make this to be in the background of the price chart?
jonpt88 none did that yet right?
Nicolas You can ask for a code modification on forums, please open a new topic with your request.
Toto le Heros Thanks Nicolas. I read somewhere that in the calculation, we should round the value of the A...
Nicolas aADX = round(adx[10])
bolsatrilera
8 years ago
Rainbow Oscillator
Rainbow Oscillator
1
Indicators
Maxime Baudin Interesting, thanks! Combine this indicator with the bollinger bands there is enough to make...
supertiti Bonsoir à tous For those who like me want to calibrate this indicator on a scale of 0 to ...
verdi55 You can find me at www.FXautomate.com Ahh. So i got it ? 4 different supertrends without th...
juanj What? This has nothing to do with the website. The site is simply a service to help people ...
Nicolas Advertising is allowed,as long as people are helping others and if provided services are abo...
styrke Hello Nicolas, Nice screener, I appreciate the way you always try to condense at maximum th...
Nicolas There's no particular reason. RSI is widely use with its default period and results seems re...
Vonasi I noticed a couple of typo errors in the code. The list of variables lines 4 to 11 should be...
Genotik Thank you for your important contribution this week which is much appreciated! Happy New Yea...
Vonasi No problem. I hope they are useful to someone. Happy and hopefully prosperous New Year to y...
DarioMazza Hi Vonasi, i have a question for you, the comand "pricetype" where did you found it in the ...
Vonasi PriceType is just a variable that I use. The value decides what type of price is used in the...
Vonasi I noticed a couple of typo errors in the code. The list of variables lines 4 to 11 should be...
Nicolas
8 years ago
Trinity Impulse
Trinity Impulse
5
Indicators
ribou ah d'accord merci beaucoup
domenico nlevel1 non modifica la curva al variare del suo valore
tiger_man_no1 Very nice ; what is the best period input date for DAILY CHART ?
Nicolas
8 years ago
Genotik Merci !
WarningTrading Comment peut on la comparer ? comme ceci ? cela ne me donne plus le message d'erreur manque...
sally31120 Bonjour, je n'arrive pas à créer ce screener close > supertrend extended2[1] la réponse...
Nicolas voir ce sujet pour un screener basé sur Supertrend Extended: https://www.prorealcode.com/top...
Marcel For those who are interested, I post trade opportunities with this indicator on Twitter. (@M...
swapping Thank you for sharing, best regards

Top