Order Blocks Volume indicator

Category: Indicators By: Iván González Created: May 2, 2024, 9:52 AM
May 2, 2024, 9:52 AM
Indicators
21 Comments

Introduction

Order Blocks are critical concepts in technical analysis that help traders identify key areas where major market players have conducted significant buying or selling activities. These order blocks represent price levels at which there has been significant consolidation by institutional operators before a substantial price change. Identifying these can be crucial for determining efficient entry and exit points.

Theory of Order Blocks

An Order Block is essentially an accumulation of buy or sell orders that occur within a compact price range and can signal future price direction. These blocks are primarily categorized into two types:

  • Bullish Order Block: Forms after a downward movement, indicating an area where prices may be undervalued and where buyers might start to dominate.
  • Bearish Order Block: Develops after an upward movement and suggests an area where prices might be overvalued, attracting sellers.

The formation of these blocks indicates a pause before the market makes a significant move, making them strategic points for trading operations. There are several methodologies to calculate Order Blocks:

  • Volume-based pivots: Identify blocks where there is a significant increase in volume, suggesting an accumulation of orders.
  • Price-based pivots: Use price extremes to identify zones where the price has reacted strongly, suggesting a possible order accumulation.
  • Combination of volume and price: Analyzes both changes in volume and price for a more robust signal.

In the provided code, a volume-based pivot approach is used, where a peak in volume coinciding with a price direction change indicates the formation of an Order Block.

Indicator Configuration

The Order Block Detector indicator uses several settings to identify and visualize these important market levels:

  • length: Defines the number of bars to consider to identify a volume peak or trough, essential for determining an “Order Block”.
  • bullextlast and bearextlast: Set the number of bullish or bearish blocks to display, respectively.
  • mitigation: Decides whether the block is evaluated by the closing price or by the wick’s extreme, affecting the accuracy of the detected block.

Code of the Indicator

The code for ProRealTime facilitates the automatic implementation of the Order Block Detector. The script is designed to analyze market data and highlight areas where Order Blocks may be forming. It uses a combination of volume and price comparisons to detect these critical levels.

//----------------------------------------------------------------------//
//PRC_Order Block Detector
//version = 0
//30.04.24
//Iván González @ www.prorealcode.com
//Sharing ProRealTime knowledge
//----------------------------------------------------------------------//
//-----Settings---------------------------------------------------------//
length = 5 //Volume Pivot Length
bullextlast = 3 //Bullish OB
bearextlast = 3 //Bearish OB
mitigation = 0 //0=Wick 1=Close
//----------------------------------------------------------------------//
//-----Global elements--------------------------------------------------//
n=barindex

upper = highest[length](high)
lower = lowest[length](low)

if mitigation then
targetbull = lowest[length](close)
targetbear = highest[length](close)
else
targetbull = lower
targetbear = upper
endif

if high[length] > upper then
os = 0
elsif low[length] < lower then
os = 1
else
os = os[1]
endif
//----------------------------------------------------------------------//
//-----Pivot Points - Volume--------------------------------------------//
if volume < volume[length] and highest[length](volume)<volume[length] and volume[length]>highest[length](volume)[length+1] then
$phvol[t+1]=volume[length]
$phvolx[t+1]=barindex[length]
t=t+1
endif
phv = $phvol[t]
//----------------------------------------------------------------------//
//-----Get bullish/bearish order blocks coordinates---------------------//
//-----Bullish OB
if isset($phvol[t]) and phv<>phv[1] and os=1 then
$bulltop[m+1] = (high[length]+low[length])/2
$bullbtm[m+1] = low[length]
$bullavg[m+1] = ((high[length]+low[length])/2+low[length])/2
$bullleft[m+1] = barindex-length
$bullob[m+1] = low[length]
m=m+1
endif
//-----Bearish OB
if isset($phvol[t]) and phv<>phv[1] and os=0 then
$beartop[r+1] = high[length]
$bearbtm[r+1] = (high[length]+low[length])/2
$bearavg[r+1] = ((high[length]+low[length])/2+high[length])/2
$bearleft[r+1] = barindex-length
$bearob[r+1] = high[length]
r=r+1
endif
//----------------------------------------------------------------------//
//-----Remove mitigated order blocks------------------------------------//
if islastbarupdate then
//-----Set only last x Bullish OB not mitigated
t=0
for i=m downto 0 do
if targetbull > $bullbtm[i] then
$bullishTOP[T+1] = $bulltop[i]
$bullishBOT[T+1] = $bullbtm[i]
$bullishAVG[T+1] = $bullavg[i]
$bullishLEFT[T+1] = $bullleft[i]
t=t+1
drawrectangle($bullishLEFT[t],$bullishTOP[t],barindex,$bullishBOT[t])coloured("green")fillcolor("green",70)
drawsegment($bullishLEFT[t],$bullishAVG[t],barindex,$bullishAVG[t]) coloured("grey",70)style(dottedline,2)
if t >= bullextlast then
break
endif
endif
next
//-----Set only last x Bearish OB not mitigated
k=0
for j=r downto 0 do
if targetbear < $beartop[j] then
$bearishtop[k+1]=$beartop[j]
$bearishbot[k+1]=$bearbtm[j]
$bearishavg[k+1]=$bearavg[j]
$bearishleft[k+1]=$bearleft[j]
k=k+1
drawrectangle($bearishleft[k],$bearishtop[k],barindex,$bearishbot[k])coloured("red")fillcolor("red",70)
drawsegment($bearishleft[k],$bearishavg[k],barindex,$bearishavg[k]) coloured("grey",70)style(dottedline,2)
if k >= bearextlast then
break
endif
endif
next
endif
//----------------------------------------------------------------------//
return

Interpretation of Results

Interpreting detected Order Blocks is straightforward: a bullish block suggests a potential support area and an entry point for long positions, while a bearish block indicates resistance and an entry point for short positions. The trader should observe these blocks in conjunction with other technical analysis signals to validate and strengthen trading decisions.

Conclusions

Order Blocks are powerful tools for any technical trading arsenal. Their correct identification and analysis can provide traders with a significant advantage, offering entry and exit points based on the historical activity of the market’s most influential operators. With practice and integration of this indicator, traders can significantly improve their accuracy and operational efficiency.

Download
Filename: PRC_Order-Block-Detector.itf
Downloads: 439
Iván González Master
Operating in the shadows, I hack problems one by one. My bio is currently encrypted by a complex algorithm. Decryption underway...
Author’s Profile

Comments

Logo Logo
Loading...