Market Structure- ZigZag, Break of Structure & Order BlocksDescription:
This script is an all-in-one market structure tool designed for traders who follow price action, Smart Money Concepts (SMC), or institutional order flow. It combines Order Block detection , Break of Structure (BOS) , Internal Structure Shifts (CHoCH) , and a ZigZag swing framework to provide a clear and actionable view of market behavior.
Key Features:
Order Blocks (OB) :
-Detects Bullish (Green) and Bearish (Red) order blocks upon valid market structure shifts.
-Optional deletion of mitigated (touched) blocks to keep charts clean.
-Customizable block duration, fill color, and border color.
Break of Structure (BOS) :
-Marks BOS with horizontal dotted lines when price breaks previous swing highs/lows.
-Confirms new trends and structural shifts.
Internal Structure Shifts (CHoCH-like) :
-Detects early internal changes in direction before BOS.
-User-selectable logic: based on candle Open or High/Low.
-Plotted as small black triangle markers.
ZigZag Swings :
-Connects confirmed internal shifts with black zigzag lines.
-Visually simplifies trend structure and major swing points.
-Tracks last swing highs/lows for BOS validation.
Alerts :
-Bullish/Bearish Engulfments (OB signals)
-Internal Structure Shifts
-Bullish/Bearish Break of Structure
-OB Mitigation Events
Inputs & Settings :
-Show/Hide Bullish or Bearish Order Blocks
-Calculate internal shifts by: Open or High/Low
-Set order block fill and border colors
-Enable or disable automatic deletion of mitigated blocks
-Set duration for order block display
This tool is designed to support price action trading by visually mapping key structural changes and zones of interest directly on your chart. It is not intended to function as a standalone trading strategy , but rather as a supplementary tool to inform your own analysis and discretion.
Cari dalam skrip untuk "BOS"
ICT Gold Trading ToolFirst, I recall the original code had elements like Break of Structure, Fair Value Gaps, Premium/Discount Zones, Liquidity Pools, and Buy/Sell signals. The user had previous feedback pointing out issues in the code, like incorrect timeframe usage for BOS and FVG inaccuracies. They also suggested improvements, which were incorporated into a revised version.
So, the brief note should highlight the main components of the tool without getting too technical. The user probably wants this for a quick overview, maybe to share with others or for their own reference. They might be a trader familiar with ICT concepts, so using terms like BOS or FVG is okay without explaining each one.
I need to mention that the tool combines multiple ICT strategies into one indicator. It uses higher timeframes for BOS, which is important for structure. FVG detection was corrected in the revised code, so I should note that it identifies 3-candle patterns. The zones and liquidity pools help in identifying market extremes and areas where price might reverse. The buy/sell signals are based on a combination of BOS and zones, which adds confluence.
Also, the user might appreciate knowing that the tool is customizable with inputs for periods, making it adaptable to different trading styles. Emphasizing that it's for visual assistance and not standalone signals is crucial to remind users to use additional analysis.
TJR SEEK AND DESTROYTJR SEEK AND DESTROY – Intraday ICT Trading Tool
Built for day traders, TJR SEEK AND DESTROY combines Smart Money concepts like order blocks, fair value gaps, and liquidity sweeps with structure breaks and daily bias to pinpoint high-probability trades during US market hours (9:30–16:00). Ideal for scalping or intraday strategies on stocks, futures, or forex.
What Makes It Unique?
Unlike standalone ICT indicators, this script integrates:
Order Blocks with volume and range filters for precise support/resistance zones.
Fair Value Gaps (FVG) to spot pre-market price imbalances.
Break of Structure (BOS) and Liquidity Sweeps for trend and reversal signals.
A 1H MA-based Bias to align trades with the day’s direction.
BUY/SELL Labels triggered only when bias, BOS, and sweeps align, reducing noise.
How Does It Work?
Order Blocks: Marks zones with high volume (>1.5x 20-period SMA) and low range (<0.5x ATR20) as teal boxes—potential reversal points.
Fair Value Gap: Compares the prior day’s close to the current open (pre- or post-9:30), shown as a purple line and label (e.g., "FVG: 0.005").
Pivot Point: Calculates (prevHigh + prevLow + prevClose) / 3 from the prior day, plotted as an orange line for equilibrium.
Break of Structure: Detects crossovers of 5-bar highs/lows (gray lines), marked with red triangles.
Liquidity Sweeps: Tracks breaches of the prior day’s high/low (yellow lines), marked with yellow triangles.
Daily Bias: Uses 1H close vs. 20-period MA (blue line) for bullish (green background), bearish (red), or neutral (gray) context.
Signals: BUY (green label) when bias is bullish, price breaks up, and sweeps the prior high; SELL (red label) when bias is bearish, price breaks down, and sweeps the prior low.
How to Use It
Setup: Apply to 1M–15M charts for US session trading (9:30–16:00 EST).
Trading:
Wait for a BUY label after a yellow sweep triangle above the prior day’s high in a green (bullish) background.
Wait for a SELL label after a yellow sweep triangle below the prior day’s low in a red (bearish) background.
Use order blocks (teal boxes) as support/resistance for stop-loss or take-profit.
Markets: Best for SPY, ES futures, or forex pairs with US session volatility.
Underlying Concepts
Order Blocks: High-volume, low-range bars suggest institutional activity.
FVG: Gaps between close and open indicate imbalance to be filled.
BOS & Sweeps: Price breaking key levels signals momentum or stop-hunting.
Bias: 1H MA filters trades by broader trend.
Chart Setup
Displays order blocks (teal boxes), pivot (orange), open (purple), bias (colored background), BOS/sweeps (triangles), and signals (labels). Keep other indicators off for clarity.
Trading IQ - ICT LibraryLibrary "ICTlibrary"
Used to calculate various ICT related price levels and strategies. An ongoing project.
Hello Coders!
This library is meant for sourcing ICT related concepts. While some functions might generate more output than you require, you can specify "Lite Mode" as "true" in applicable functions to slim down necessary inputs.
isLastBar(userTF)
Identifies the last bar on the chart before a timeframe change
Parameters:
userTF (simple int) : the timeframe you wish to calculate the last bar for, must be converted to integer using 'timeframe.in_seconds()'
Returns: bool true if bar on chart is last bar of higher TF, dalse if bar on chart is not last bar of higher TF
necessaryData(atrTF)
returns necessaryData UDT for historical data access
Parameters:
atrTF (float) : user-selected timeframe ATR value.
Returns: logZ. log return Z score, used for calculating order blocks.
method gradBoxes(gradientBoxes, idColor, timeStart, bottom, top, rightCoordinate)
creates neon like effect for box drawings
Namespace types: array
Parameters:
gradientBoxes (array) : an array.new() to store the gradient boxes
idColor (color)
timeStart (int) : left point of box
bottom (float) : bottom of box price point
top (float) : top of box price point
rightCoordinate (int) : right point of box
Returns: void
checkIfTraded(tradeName)
checks if recent trade is of specific name
Parameters:
tradeName (string)
Returns: bool true if recent trade id matches target name, false otherwise
checkIfClosed(tradeName)
checks if recent closed trade is of specific name
Parameters:
tradeName (string)
Returns: bool true if recent closed trade id matches target name, false otherwise
IQZZ(atrMult, finalTF)
custom ZZ to quickly determine market direction.
Parameters:
atrMult (float) : an atr multiplier used to determine the required price move for a ZZ direction change
finalTF (string) : the timeframe used for the atr calcuation
Returns: dir market direction. Up => 1, down => -1
method drawBos(id, startPoint, getKeyPointTime, getKeyPointPrice, col, showBOS, isUp)
calculates and draws Break Of Structure
Namespace types: array
Parameters:
id (array)
startPoint (chart.point)
getKeyPointTime (int) : the actual time of startPoint, simplystartPoint.time
getKeyPointPrice (float) : the actual time of startPoint, simplystartPoint.price
col (color) : color of the BoS line / label
showBOS (bool) : whether to show label/line. This function still calculates internally for other ICT related concepts even if not drawn.
isUp (bool) : whether BoS happened during price increase or price decrease.
Returns: void
method drawMSS(id, startPoint, getKeyPointTime, getKeyPointPrice, col, showMSS, isUp, upRejections, dnRejections, highArr, lowArr, timeArr, closeArr, openArr, atrTFarr, upRejectionsPrices, dnRejectionsPrices)
calculates and draws Market Structure Shift. This data is also used to calculate Rejection Blocks.
Namespace types: array
Parameters:
id (array)
startPoint (chart.point)
getKeyPointTime (int) : the actual time of startPoint, simplystartPoint.time
getKeyPointPrice (float) : the actual time of startPoint, simplystartPoint.price
col (color) : color of the MSS line / label
showMSS (bool) : whether to show label/line. This function still calculates internally for other ICT related concepts even if not drawn.
isUp (bool) : whether MSS happened during price increase or price decrease.
upRejections (array)
dnRejections (array)
highArr (array) : array containing historical highs, should be taken from the UDT "necessaryData" defined above
lowArr (array) : array containing historical lows, should be taken from the UDT "necessaryData" defined above
timeArr (array) : array containing historical times, should be taken from the UDT "necessaryData" defined above
closeArr (array) : array containing historical closes, should be taken from the UDT "necessaryData" defined above
openArr (array) : array containing historical opens, should be taken from the UDT "necessaryData" defined above
atrTFarr (array) : array containing historical atr values (of user-selected TF), should be taken from the UDT "necessaryData" defined above
upRejectionsPrices (array) : array containing up rejections prices. Is sorted and used to determine selective looping for invalidations.
dnRejectionsPrices (array) : array containing down rejections prices. Is sorted and used to determine selective looping for invalidations.
Returns: void
method getTime(id, compare, timeArr)
gets time of inputted price (compare) in an array of data
this is useful when the user-selected timeframe for ICT concepts is greater than the chart's timeframe
Namespace types: array
Parameters:
id (array) : the array of data to search through, to find which index has the same value as "compare"
compare (float) : the target data point to find in the array
timeArr (array) : array of historical times
Returns: the time that the data point in the array was recorded
method OB(id, highArr, signArr, lowArr, timeArr, sign)
store bullish orderblock data
Namespace types: array
Parameters:
id (array)
highArr (array) : array of historical highs
signArr (array) : array of historical price direction "math.sign(close - open)"
lowArr (array) : array of historical lows
timeArr (array) : array of historical times
sign (int) : orderblock direction, -1 => bullish, 1 => bearish
Returns: void
OTEstrat(OTEstart, future, closeArr, highArr, lowArr, timeArr, longOTEPT, longOTESL, longOTElevel, shortOTEPT, shortOTESL, shortOTElevel, structureDirection, oteLongs, atrTF, oteShorts)
executes the OTE strategy
Parameters:
OTEstart (chart.point)
future (int) : future time point for drawings
closeArr (array) : array of historical closes
highArr (array) : array of historical highs
lowArr (array) : array of historical lows
timeArr (array) : array of historical times
longOTEPT (string) : user-selected long OTE profit target, please create an input.string() for this using the example below
longOTESL (int) : user-selected long OTE stop loss, please create an input.string() for this using the example below
longOTElevel (float) : long entry price of selected retracement ratio for OTE
shortOTEPT (string) : user-selected short OTE profit target, please create an input.string() for this using the example below
shortOTESL (int) : user-selected short OTE stop loss, please create an input.string() for this using the example below
shortOTElevel (float) : short entry price of selected retracement ratio for OTE
structureDirection (string) : current market structure direction, this should be "Up" or "Down". This is used to cancel pending orders if market structure changes
oteLongs (bool) : input.bool() for whether OTE longs can be executed
atrTF (float) : atr of the user-seleceted TF
oteShorts (bool) : input.bool() for whether OTE shorts can be executed
@exampleInputs
oteLongs = input.bool(defval = false, title = "OTE Longs", group = "Optimal Trade Entry")
longOTElevel = input.float(defval = 0.79, title = "Long Entry Retracement Level", options = , group = "Optimal Trade Entry")
longOTEPT = input.string(defval = "-0.5", title = "Long TP", options = , group = "Optimal Trade Entry")
longOTESL = input.int(defval = 0, title = "How Many Ticks Below Swing Low For Stop Loss", group = "Optimal Trade Entry")
oteShorts = input.bool(defval = false, title = "OTE Shorts", group = "Optimal Trade Entry")
shortOTElevel = input.float(defval = 0.79, title = "Short Entry Retracement Level", options = , group = "Optimal Trade Entry")
shortOTEPT = input.string(defval = "-0.5", title = "Short TP", options = , group = "Optimal Trade Entry")
shortOTESL = input.int(defval = 0, title = "How Many Ticks Above Swing Low For Stop Loss", group = "Optimal Trade Entry")
Returns: void (0)
displacement(logZ, atrTFreg, highArr, timeArr, lowArr, upDispShow, dnDispShow, masterCoords, labelLevels, dispUpcol, rightCoordinate, dispDncol, noBorders)
calculates and draws dispacements
Parameters:
logZ (float) : log return of current price, used to determine a "significant price move" for a displacement
atrTFreg (float) : atr of user-seleceted timeframe
highArr (array) : array of historical highs
timeArr (array) : array of historical times
lowArr (array) : array of historical lows
upDispShow (int) : amount of historical upside displacements to show
dnDispShow (int) : amount of historical downside displacements to show
masterCoords (map) : a map to push the most recent displacement prices into, useful for having key levels in one data structure
labelLevels (string) : used to determine label placement for the displacement, can be inside box, outside box, or none, example below
dispUpcol (color) : upside displacement color
rightCoordinate (int) : future time for displacement drawing, best is "last_bar_time"
dispDncol (color) : downside displacement color
noBorders (bool) : input.bool() to remove box borders, example below
@exampleInputs
labelLevels = input.string(defval = "Inside" , title = "Box Label Placement", options = )
noBorders = input.bool(defval = false, title = "No Borders On Levels")
Returns: void
method getStrongLow(id, startIndex, timeArr, lowArr, strongLowPoints)
unshift strong low data to array id
Namespace types: array
Parameters:
id (array)
startIndex (int) : the starting index for the timeArr array of the UDT "necessaryData".
this point should start from at least 1 pivot prior to find the low before an upside BoS
timeArr (array) : array of historical times
lowArr (array) : array of historical lows
strongLowPoints (array) : array of strong low prices. Used to retrieve highest strong low price and see if need for
removal of invalidated strong lows
Returns: void
method getStrongHigh(id, startIndex, timeArr, highArr, strongHighPoints)
unshift strong high data to array id
Namespace types: array
Parameters:
id (array)
startIndex (int) : the starting index for the timeArr array of the UDT "necessaryData".
this point should start from at least 1 pivot prior to find the high before a downside BoS
timeArr (array) : array of historical times
highArr (array) : array of historical highs
strongHighPoints (array)
Returns: void
equalLevels(highArr, lowArr, timeArr, rightCoordinate, equalHighsCol, equalLowsCol, liteMode)
used to calculate recent equal highs or equal lows
Parameters:
highArr (array) : array of historical highs
lowArr (array) : array of historical lows
timeArr (array) : array of historical times
rightCoordinate (int) : a future time (right for boxes, x2 for lines)
equalHighsCol (color) : user-selected color for equal highs drawings
equalLowsCol (color) : user-selected color for equal lows drawings
liteMode (bool) : optional for a lite mode version of an ICT strategy. For more control over drawings leave as "True", "False" will apply neon effects
Returns: void
quickTime(timeString)
used to quickly determine if a user-inputted time range is currently active in NYT time
Parameters:
timeString (string) : a time range
Returns: true if session is active, false if session is inactive
macros(showMacros, noBorders)
used to calculate and draw session macros
Parameters:
showMacros (bool) : an input.bool() or simple bool to determine whether to activate the function
noBorders (bool) : an input.bool() to determine whether the box anchored to the session should have borders
Returns: void
po3(tf, left, right, show)
use to calculate HTF po3 candle
@tip only call this function on "barstate.islast"
Parameters:
tf (simple string)
left (int) : the left point of the candle, calculated as bar_index + left,
right (int) : :the right point of the candle, calculated as bar_index + right,
show (bool) : input.bool() whether to show the po3 candle or not
Returns: void
silverBullet(silverBulletStratLong, silverBulletStratShort, future, userTF, H, L, H2, L2, noBorders, silverBulletLongTP, historicalPoints, historicalData, silverBulletLongSL, silverBulletShortTP, silverBulletShortSL)
used to execute the Silver Bullet Strategy
Parameters:
silverBulletStratLong (simple bool)
silverBulletStratShort (simple bool)
future (int) : a future time, used for drawings, example "last_bar_time"
userTF (simple int)
H (float) : the high price of the user-selected TF
L (float) : the low price of the user-selected TF
H2 (float) : the high price of the user-selected TF
L2 (float) : the low price of the user-selected TF
noBorders (bool) : an input.bool() used to remove the borders from box drawings
silverBulletLongTP (series silverBulletLevels)
historicalPoints (array)
historicalData (necessaryData)
silverBulletLongSL (series silverBulletLevels)
silverBulletShortTP (series silverBulletLevels)
silverBulletShortSL (series silverBulletLevels)
Returns: void
method invalidFVGcheck(FVGarr, upFVGpricesSorted, dnFVGpricesSorted)
check if existing FVGs are still valid
Namespace types: array
Parameters:
FVGarr (array)
upFVGpricesSorted (array) : an array of bullish FVG prices, used to selective search through FVG array to remove invalidated levels
dnFVGpricesSorted (array) : an array of bearish FVG prices, used to selective search through FVG array to remove invalidated levels
Returns: void (0)
method drawFVG(counter, FVGshow, FVGname, FVGcol, data, masterCoords, labelLevels, borderTransp, liteMode, rightCoordinate)
draws FVGs on last bar
Namespace types: map
Parameters:
counter (map) : a counter, as map, keeping count of the number of FVGs drawn, makes sure that there aren't more FVGs drawn
than int FVGshow
FVGshow (int) : the number of FVGs to show. There should be a bullish FVG show and bearish FVG show. This function "drawFVG" is used separately
for bearish FVG and bullish FVG.
FVGname (string) : the name of the FVG, "FVG Up" or "FVG Down"
FVGcol (color) : desired FVG color
data (FVG)
masterCoords (map) : a map containing the names and price points of key levels. Used to define price ranges.
labelLevels (string) : an input.string with options "Inside", "Outside", "Remove". Determines whether FVG labels should be inside box, outside,
or na.
borderTransp (int)
liteMode (bool)
rightCoordinate (int) : the right coordinate of any drawings. Must be a time point.
Returns: void
invalidBlockCheck(bullishOBbox, bearishOBbox, userTF)
check if existing order blocks are still valid
Parameters:
bullishOBbox (array) : an array declared using the UDT orderBlock that contains bullish order block related data
bearishOBbox (array) : an array declared using the UDT orderBlock that contains bearish order block related data
userTF (simple int)
Returns: void (0)
method lastBarRejections(id, rejectionColor, idShow, rejectionString, labelLevels, borderTransp, liteMode, rightCoordinate, masterCoords)
draws rejectionBlocks on last bar
Namespace types: array
Parameters:
id (array) : the array, an array of rejection block data declared using the UDT rejection block
rejectionColor (color) : the desired color of the rejection box
idShow (int)
rejectionString (string) : the desired name of the rejection blocks
labelLevels (string) : an input.string() to determine if labels for the block should be inside the box, outside, or none.
borderTransp (int)
liteMode (bool) : an input.bool(). True = neon effect, false = no neon.
rightCoordinate (int) : atime for the right coordinate of the box
masterCoords (map) : a map that stores the price of key levels and assigns them a name, used to determine price ranges
Returns: void
method OBdraw(id, OBshow, BBshow, OBcol, BBcol, bullishString, bearishString, isBullish, labelLevels, borderTransp, liteMode, rightCoordinate, masterCoords)
draws orderblocks and breaker blocks for data stored in UDT array()
Namespace types: array
Parameters:
id (array) : the array, an array of order block data declared using the UDT orderblock
OBshow (int) : the number of order blocks to show
BBshow (int) : the number of breaker blocks to show
OBcol (color) : color of order blocks
BBcol (color) : color of breaker blocks
bullishString (string) : the title of bullish blocks, which is a regular bullish orderblock or a bearish orderblock that's converted to breakerblock
bearishString (string) : the title of bearish blocks, which is a regular bearish orderblock or a bullish orderblock that's converted to breakerblock
isBullish (bool) : whether the array contains bullish orderblocks or bearish orderblocks. If bullish orderblocks,
the array will naturally contain bearish BB, and if bearish OB, the array will naturally contain bullish BB
labelLevels (string) : an input.string() to determine if labels for the block should be inside the box, outside, or none.
borderTransp (int)
liteMode (bool) : an input.bool(). True = neon effect, false = no neon.
rightCoordinate (int) : atime for the right coordinate of the box
masterCoords (map) : a map that stores the price of key levels and assigns them a name, used to determine price ranges
Returns: void
FVG
UDT for FVG calcualtions
Fields:
H (series float) : high price of user-selected timeframe
L (series float) : low price of user-selected timeframe
direction (series string) : FVG direction => "Up" or "Down"
T (series int) : => time of bar on user-selected timeframe where FVG was created
fvgLabel (series label) : optional label for FVG
fvgLineTop (series line) : optional line for top of FVG
fvgLineBot (series line) : optional line for bottom of FVG
fvgBox (series box) : optional box for FVG
labelLine
quickly pair a line and label together as UDT
Fields:
lin (series line) : Line you wish to pair with label
lab (series label) : Label you wish to pair with line
orderBlock
UDT for order block calculations
Fields:
orderBlockData (array) : array containing order block x and y points
orderBlockBox (series box) : optional order block box
vioCount (series int) : = 0 violation count of the order block. 0 = Order Block, 1 = Breaker Block
traded (series bool)
status (series string) : = "OB" status == "OB" => Level is order block. status == "BB" => Level is breaker block.
orderBlockLab (series label) : options label for the order block / breaker block.
strongPoints
UDT for strong highs and strong lows
Fields:
price (series float) : price of the strong high or strong low
timeAtprice (series int) : time of the strong high or strong low
strongPointLabel (series label) : optional label for strong point
strongPointLine (series line) : optional line for strong point
overlayLine (series line) : optional lines for strong point to enhance visibility
overlayLine2 (series line) : optional lines for strong point to enhance visibility
displacement
UDT for dispacements
Fields:
highPrice (series float) : high price of displacement
lowPrice (series float) : low price of displacement
timeAtPrice (series int) : time of bar where displacement occurred
displacementBox (series box) : optional box to draw displacement
displacementLab (series label) : optional label for displacement
po3data
UDT for po3 calculations
Fields:
dHigh (series float) : higher timeframe high price
dLow (series float) : higher timeframe low price
dOpen (series float) : higher timeframe open price
dClose (series float) : higher timeframe close price
po3box (series box) : box to draw po3 candle body
po3line (array) : line array to draw po3 wicks
po3Labels (array) : label array to label price points of po3 candle
macros
UDT for session macros
Fields:
sessions (array) : Array of sessions, you can populate this array using the "quickTime" function located above "export macros".
prices (matrix) : Matrix of session data -> open, high, low, close, time
sessionTimes (array) : Array of session names. Pairs with array sessions.
sessionLines (matrix) : Optional array for sesion drawings.
OTEtimes
UDT for data storage and drawings associated with OTE strategy
Fields:
upTimes (array) : time of highest point before trade is taken
dnTimes (array) : time of lowest point before trade is taken
tpLineLong (series line) : line to mark tp level long
tpLabelLong (series label) : label to mark tp level long
slLineLong (series line) : line to mark sl level long
slLabelLong (series label) : label to mark sl level long
tpLineShort (series line) : line to mark tp level short
tpLabelShort (series label) : label to mark tp level short
slLineShort (series line) : line to mark sl level short
slLabelShort (series label) : label to mark sl level short
sweeps
UDT for data storage and drawings associated with liquidity sweeps
Fields:
upSweeps (matrix) : matrix containing liquidity sweep price points and time points for up sweeps
dnSweeps (matrix) : matrix containing liquidity sweep price points and time points for down sweeps
upSweepDrawings (array) : optional up sweep box array. Pair the size of this array with the rows or columns,
dnSweepDrawings (array) : optional up sweep box array. Pair the size of this array with the rows or columns,
raidExitDrawings
UDT for drawings associated with the Liquidity Raid Strategy
Fields:
tpLine (series line) : tp line for the liquidity raid entry
tpLabel (series label) : tp label for the liquidity raid entry
slLine (series line) : sl line for the liquidity raid entry
slLabel (series label) : sl label for the liquidity raid entry
m2022
UDT for data storage and drawings associated with the Model 2022 Strategy
Fields:
mTime (series int) : time of the FVG where entry limit order is placed
mIndex (series int) : array index of FVG where entry limit order is placed. This requires an array of FVG data, which is defined above.
mEntryDistance (series float) : the distance of the FVG to the 50% range. M2022 looks for the fvg closest to 50% mark of range.
mEntry (series float) : the entry price for the most eligible fvg
fvgHigh (series float) : the high point of the eligible fvg
fvgLow (series float) : the low point of the eligible fvg
longFVGentryBox (series box) : long FVG box, used to draw the eligible FVG
shortFVGentryBox (series box) : short FVG box, used to draw the eligible FVG
line50P (series line) : line used to mark 50% of the range
line100P (series line) : line used to mark 100% (top) of the range
line0P (series line) : line used to mark 0% (bottom) of the range
label50P (series label) : label used to mark 50% of the range
label100P (series label) : label used to mark 100% (top) of the range
label0P (series label) : label used to mark 0% (bottom) of the range
sweepData (array)
silverBullet
UDT for data storage and drawings associated with the Silver Bullet Strategy
Fields:
session (series bool)
sessionStr (series string) : name of the session for silver bullet
sessionBias (series string)
sessionHigh (series float) : = high high of session // use math.max(silverBullet.sessionHigh, high)
sessionLow (series float) : = low low of session // use math.min(silverBullet.sessionLow, low)
sessionFVG (series float) : if applicable, the FVG created during the session
sessionFVGdraw (series box) : if applicable, draw the FVG created during the session
traded (series bool)
tp (series float) : tp of trade entered at the session FVG
sl (series float) : sl of trade entered at the session FVG
sessionDraw (series box) : optional draw session with box
sessionDrawLabel (series label) : optional label session with label
silverBulletDrawings
UDT for trade exit drawings associated with the Silver Bullet Strategy
Fields:
tpLine (series line) : tp line drawing for strategy
tpLabel (series label) : tp label drawing for strategy
slLine (series line) : sl line drawing for strategy
slLabel (series label) : sl label drawing for strategy
unicornModel
UDT for data storage and drawings associated with the Unicorn Model Strategy
Fields:
hPoint (chart.point)
hPoint2 (chart.point)
hPoint3 (chart.point)
breakerBlock (series box) : used to draw the breaker block required for the Unicorn Model
FVG (series box) : used to draw the FVG required for the Unicorn model
topBlock (series float) : price of top of breaker block, can be used to detail trade entry
botBlock (series float) : price of bottom of breaker block, can be used to detail trade entry
startBlock (series int) : start time of the breaker block, used to set the "left = " param for the box
includes (array) : used to store the time of the breaker block, or FVG, or the chart point sequence that setup the Unicorn Model.
entry (series float) : // eligible entry price, for longs"math.max(topBlock, FVG.get_top())",
tpLine (series line) : optional line to mark PT
tpLabel (series label) : optional label to mark PT
slLine (series line) : optional line to mark SL
slLabel (series label) : optional label to mark SL
rejectionBlocks
UDT for data storage and drawings associated with rejection blocks
Fields:
rejectionPoint (chart.point)
bodyPrice (series float) : candle body price closest to the rejection point, for "Up" rejections => math.max(open, close),
rejectionBox (series box) : optional box drawing of the rejection block
rejectionLabel (series label) : optional label for the rejection block
equalLevelsDraw
UDT for data storage and drawings associated with equal highs / equal lows
Fields:
connector (series line) : single line placed at the first high or low, y = avgerage of distinguished equal highs/lows
connectorLab (series label) : optional label to be placed at the highs or lows
levels (array) : array containing the equal highs or lows prices
times (array) : array containing the equal highs or lows individual times
startTime (series int) : the time of the first high or low that forms a sequence of equal highs or lows
radiate (array) : options label to "radiate" the label in connector lab. Can be used for anything
necessaryData
UDT for data storage of historical price points.
Fields:
highArr (array) : array containing historical high points
lowArr (array) : array containing historical low points
timeArr (array) : array containing historical time points
logArr (array) : array containing historical log returns
signArr (array) : array containing historical price directions
closeArr (array) : array containing historical close points
binaryTimeArr (array) : array containing historical time points, uses "push" instead of "unshift" to allow for binary search
binaryCloseArr (array) : array containing historical close points, uses "push" instead of "unshift" to allow the correct
binaryOpenArr (array) : array containing historical optn points, uses "push" instead of "unshift" to allow the correct
atrTFarr (array) : array containing historical user-selected TF atr points
openArr (array) : array containing historical open points
Breaker Blocks + Order Blocks confirm [TradingFinder] BBOB Alert🔵 Introduction
In the realm of technical analysis, various tools and concepts are employed to identify key levels on price charts. These tools assist traders in analyzing market trends with greater precision, enabling them to optimize their trading decisions. Among these tools, the Order Block and Breaker Block hold a significant place, serving as effective instruments for analyzing market structure.
🟣 Order Block
An Order Block refers to zones on a chart where large financial institutions and high-volume traders place their orders. Due to the substantial volume of buy or sell orders in these areas, they are often regarded as pivotal points for potential price reversals or temporary pauses in a trend. Order Blocks are particularly crucial when prices react to these zones after a strong market move, acting as strong support or resistance levels.
🟣 Breaker Block
On the other hand, a Breaker Block refers to areas on a chart that previously functioned as Order Blocks but where the price has managed to break through and continue in the opposite direction. These zones are typically recognized as key points where market trends might shift, helping traders identify potential reversal points in the market.
🟣 Overlapping Block (BBOB)
Now, imagine a scenario where these two essential concepts in technical analysis—Order Blocks and Breaker Blocks—overlap on a chart. Although this overlap is not specifically discussed within the ICT (Inner Circle Trader) trading framework, exploring and utilizing this overlap can provide traders with powerful insights into strong support and resistance zones. The combination of these two robust concepts can highlight critical areas in trading, potentially offering significant advantages in making informed trading decisions.
In this article, we will delve into the concept of this overlap, explaining how to utilize it in trading strategies. Additionally, we will analyze the potential outcomes and benefits of incorporating this concept into your trading decisions.
Bullish Overlapping Block (BBOB) :
Bearish Overlapping Block (BBOB) :
🔵 How to Use
The overlap between Order Blocks and Breaker Blocks is a compelling and powerful concept that can help traders identify key levels on the chart with a high probability of success. This overlap is particularly valuable because it combines two well-regarded concepts in technical analysis—zones of high order volume and critical market shifts.
🟣 Here’s how to effectively use this overlap in your trading
1. Dentifying the Overlapping Block : To make the most of the overlap between Order Blocks and Breaker Blocks, begin by identifying these zones separately. Order Blocks are areas where price typically reacts and reverses after a strong market move.
Breaker Blocks are areas where a previous Order Block has been breached, and the price continues in the opposite direction. When these two zones overlap on a chart, it’s crucial to pay close attention to this area, as it represents a high-probability reaction zone.
2. Analyzing the Overlapping Block : After identifying the overlap zone, carefully analyze price action within this region. Candlestick patterns and price behavior can provide essential clues.
If the price reaches this overlap zone and strong reversal patterns such as Pin Bars or Engulfing patterns are observed, it’s likely that this zone will act as a pivotal reversal point. In such cases, entering a trade with confidence becomes more feasible.
3. Entering the Trade : When sufficient signs of price reaction are present in the overlap zone, you can proceed to enter the trade. If the overlap zone is within an uptrend and bullish reversal signals are evident, a long position might be appropriate.
Conversely, if the overlap zone is in a downtrend and bearish reversal signals are observed, a short position would be more suitable.
4. Risk Management : One of the most critical aspects of trading in overlap zones is managing risk. To protect your capital, place your stop loss near the lowest point of the Order Block (for buy trades) or the highest point (for sell trades). This approach minimizes potential losses if the overlap zone fails to hold.
5. Price Targets : After entering the trade, set your price targets based on other key levels on the chart. These targets could include other support and resistance zones, Fibonacci levels, or pivot points.
Bullish Overlapping Block :
Bearish Overlapping Block :
🟣 Benefits of the Overlapping Block Between Order Block and Breaker Block
1. Enhanced Precision in Identifying Key Levels : The overlap between these two zones usually acts as a highly reliable area for price reactions, increasing the accuracy of identifying entry and exit points.
2. Reduced Trading Risk : Given the high importance of the overlap zone, the likelihood of making incorrect decisions is reduced, contributing to overall lower trading risk.
3. Increased Probability of Success : The overlap between Order Blocks and Breaker Blocks combines two powerful concepts, enhancing the likelihood of success in trades, as multiple indicators confirm the importance of the area.
4. Creation of Better Trading Opportunities : Overlap zones often provide traders with more robust trading opportunities, as these areas typically represent strong reversal points in the market.
5. Compatibility with Other Technical Tools : This concept seamlessly integrates with other technical analysis tools such as Fibonacci retracements, trend lines, and chart patterns, offering a more comprehensive market analysis.
🔵 Setting
🟣 Global Setting
Pivot Period of Order Blocks Detector : Enter the desired pivot period to identify the Order Block.
Order Block Validity Period (Bar) : You can specify the maximum time the Order Block remains valid based on the number of candles from the origin.
Mitigation Level Order Block : Determining the basic level of a Order Block. When the price hits the basic level, the Order Block due to mitigation.
Mitigation Level Breaker Block : Determining the basic level of a Breaker Block. When the price hits the basic level, the Breaker Block due to mitigation.
Mitigation Level Overlapping Block : Determining the basic level of a Overlapping Block. When the price hits the basic level, the Overlapping Block due to mitigation.
🟣 Overlapping Block Display
Show All Overlapping Block : If it is turned off, only the last Order Block will be displayed.
Demand Overlapping Block : Show or not show and specify color.
Supply Overlapping Block : Show or not show and specify color.
🟣 Order Block Display
Show All Order Block : If it is turned off, only the last Order Block will be displayed.
Demand Main Order Block : Show or not show and specify color.
Demand Sub (Propulsion & BoS Origin) Order Block : Show or not show and specify color.
Supply Main Order Block : Show or not show and specify color.
Supply Sub (Propulsion & BoS Origin) Order Block : Show or not show and specify color.
🟣 Breaker Block Display
Show All Breaker Block : If it is turned off, only the last Breaker Block will be displayed.
Demand Main Breaker Block : Show or not show and specify color.
Demand Sub (Propulsion & BoS Origin) Breaker Block : Show or not show and specify color.
Supply Main Breaker Block : Show or not show and specify color.
Supply Sub (Propulsion & BoS Origin) Breaker Block : Show or not show and specify color.
🟣 Order Block Refinement
Refine Order Blocks : Enable or disable the refinement feature. Mode selection.
🟣 Alert
Alert Name : The name of the alert you receive.
Alert Overlapping Block Mitigation :
On / Off
Message Frequency :
This string parameter defines the announcement frequency. Choices include: "All" (activates the alert every time the function is called), "Once Per Bar" (activates the alert only on the first call within the bar), and "Once Per Bar Close" (the alert is activated only by a call at the last script execution of the real-time bar upon closing). The default setting is "Once per Bar".
Show Alert Time by Time Zone :
The date, hour, and minute you receive in alert messages can be based on any time zone you choose. For example, if you want New York time, you should enter "UTC-4". This input is set to the time zone "UTC" by default.
🔵 Conclusion
The overlap between Order Blocks and Breaker Blocks represents a critical and powerful area in technical analysis that can serve as an effective tool for determining entry and exit points in trading.
These zones, due to the combination of two key concepts in technical analysis, hold significant importance and can help traders make more confident trading decisions.
Although this concept is not specifically discussed in the ICT framework and is introduced as a new idea, traders can achieve better results in their trades through practice and testing.
Utilizing the overlap between Order Blocks and Breaker Blocks, in conjunction with other technical analysis tools, can significantly improve the chances of success in trading.
Order Blocks & Breaker Blocks [TradingFinder] Signals + Alerts🔵 Introduction
Order Block and Breaker Block, are powerful tools in technical analysis. By understanding these concepts, traders can enhance their ability to predict potential price reversals and continuations, leading to more effective trading strategies.
Using historical price action, volume analysis, and candlestick patterns, traders can identify key areas where institutional activities influence market movements.
🟣 Demand Order Block and Supply Breaker Block
Demand Order Block : A Demand Order Block is formed when the price succeeds in breaking the previous high pivot.
Supply Breaker Block : A Supply Breaker Block is formed when the price succeeds in breaking the Demand Order Block. As a result, the Order Block changes its role and turns from the role of price support to resistance.
🟣 Supply Order Block and Demand Breaker Block
Supply Order Block : A Supply Order Block is formed when the price succeeds in breaking the previous low pivot.
Demand Breaker Block : A Demand Breaker Block is formed when the price succeeds in breaking the Supply Order Block. As a result, the Order Block changes its role and turns from the role of price resistance to support.
🔵 How to Use
🟣 Order Blocks (Supply and Demand)
Order blocks are zones where the likelihood of a price reversal is higher. In demand zones, buying opportunities arise, while in supply zones, selling opportunities can be explored.
The "Refinement" feature allows you to adjust the width of the order block to fit your trading strategy. There are two modes in the "Order Block Refine" feature: "Aggressive" and "Defensive." The primary difference between these modes is the width of the order block.
For risk-averse traders, the "Defensive" mode is ideal as it offers a lower loss limit and a higher reward-to-risk ratio.
Conversely, for traders who are willing to take more risks, the "Aggressive" mode is more suitable. This mode, with its wider order block width, caters to those who prefer entering trades at higher prices.
🟣 Breaker Blocks (Supply and Demand)
Trading based on breaker blocks is the same as order blocks and the price in these zones is likely to be reversed.
🔵 Setting
🟣 Global Setting
Pivot Period of Order Blocks Detector : Enter the desired pivot period to identify the Order Block.
Order Block Validity Period (Bar) : You can specify the maximum time the Order Block remains valid based on the number of candles from the origin.
Mitigation Level Order Block : Determining the basic level of a Order Block. When the price hits the basic level, the Order Block due to mitigation.
Mitigation Level Breaker Block : Determining the basic level of a Breaker Block. When the price hits the basic level, the Breaker Block due to mitigation.
Switching Colors Theme Mode : Three modes "Off", "Light" and "Dark" are included in this parameter. "Light" mode is for color adjustment for use in "Light Mode".
"Dark" mode is for color adjustment for use in "Dark Mode" and "Off" mode turns off the color adjustment function and the input color to the function is the same as the output color.
🟣 Order Block Display
Show All Order Block : If it is turned off, only the last Order Block will be displayed.
Demand Main Order Block : Show or not show and specify color.
Demand Sub (Propulsion & BoS Origin) Order Block : Show or not show and specify color.
Supply Main Order Block : Show or not show and specify color.
Supply Sub (Propulsion & BoS Origin) Order Block : Show or not show and specify color.
🟣 Breaker Block Display
Show All Breaker Block : If it is turned off, only the last Breaker Block will be displayed.
Demand Main Breaker Block : Show or not show and specify color.
Demand Sub (Propulsion & BoS Origin) Breaker Block : Show or not show and specify color.
Supply Main Breaker Block : Show or not show and specify color.
Supply Sub (Propulsion & BoS Origin) Breaker Block : Show or not show and specify color.
🟣 Order Block Refinement
Refine Order Blocks : Enable or disable the refinement feature. Mode selection.
🟣 Alert
Alert Name : The name of the alert you receive.
Alert Demand OB Mitigation :
On / Off
Alert Demand BB Mitigation :
On / Off
Alert Supply OB Mitigation :
On / Off
Alert Supply BB Mitigation :
On / Off
Message Frequency :
This string parameter defines the announcement frequency. Choices include: "All" (activates the alert every time the function is called), "Once Per Bar" (activates the alert only on the first call within the bar), and "Once Per Bar Close" (the alert is activated only by a call at the last script execution of the real-time bar upon closing). The default setting is "Once per Bar".
Show Alert Time by Time Zone :
The date, hour, and minute you receive in alert messages can be based on any time zone you choose. For example, if you want New York time, you should enter "UTC-4". This input is set to the time zone "UTC" by default.
Display More Info :
Displays information about the price range of the order blocks (Zone Price) and the date, hour, and minute under "Display More Info".
If you do not want this information to appear in the received message along with the alert, you should set it to "Off".
Protected Highs & Lows [TFO]This indicator presents an alternative approach to identify Market Structure. The logic used is derived from learning material created by @DaveTeaches
When quantifying Market Structure, it is common to use fractal highs and lows to identify "significant" swing pivots. When price closes through these pivots, we may identify a Market Structure Shift (MSS) for reversals or a Break of Structure (BOS) for continuations. The main difference with this "protected" logic is in how we determine the pivots/levels that are utilized to determine a valid MSS or BOS.
Nonetheless, the significance of our swing pivots is still governed by the input Pivot Strength parameter, which requires valid swing pivots to be compared to this many bars to the left and right of them. This is an optional parameter as it is traditionally set to 1 by default.
When identifying a BOS: When price closes below a valid swing low, we look back from the current bar to find the highest high that was made in that range. This becomes our protected high; similarly, when price closes above a valid swing high, we look back from the current bar to find the lowest low that was made in that range, which then becomes our protected low.
Note these valid highs and lows are the first swing pivots created after a MSS/BOS. For example, when price makes a bullish BOS/MSS and then trades away, a swing high is formed. This first swing high is what needs to be traded through to see a valid BOS.
When identifying a MSS: If the current trend is bearish and we're looking for a bullish reversal, we would need price to close above the most recent protected high. When this happens, we still look back to find the lowest low that was created in that range, and make that our new protected low. Likewise when looking for a bearish reversal, price would need to close below the most recent protected low, which would then give us a new protected high as a result (the highest point in that range).
The Trend Candles option allows users to easily visualize the current state of Market Structure with bullish and bearish colors. Users may also show BOS and MSS labels if desired.
Show Protected Highs & Lows will annotate the protected highs and lows, just note that the labels themselves are plotted in the past due to the lookback function required to identify them.
Lastly, the Show Protected Trail option will draw a line to essentially indicate a trailing stop-like line to denote the most recent protected low (if bullish) or protected high (if bearish).
I am simply a student of Dave's concepts, so please feel free to leave feedback if you are familiar with his concepts and have suggestions/improvements.
Market Structure [TFO]The purpose of this indicator is to provide a simple approach to Market Structure. When price is closing over swing highs, we may categorize that as bullish structure; and when price is closing below swing lows, we may categorize that as bearish structure.
We can easily find swing highs and lows via the following built-in Pine Script functions:
ta.pivothigh()
ta.pivotlow()
We can pass in our Pivot Strength parameter to determine the size/significance of these pivots. The lowest value of 1 will validate a swing high when a given high is larger than that of 1 bar to the left and right of it. A pivot strength of 3, for example, would validate a swing high only when a high is larger than that of the 3 bars to the left and right of it, making it much more selective.
In any case, we can simply track the most recent swing highs and lows and check for when price through them. Enabling the Show Pivots option will mark all the swing highs and lows that are being considered for future structure breaks.
If the trend is bearish and we begin closing over swing highs, that would mark a Market Structure Shift (MSS). If the trend is already bullish and we are closing over swing highs, that would mark a Break of Structure (BOS), and vice versa for bearish conditions. MSS essentially signifies reversals in Market Structure while BOS signifies continuations.
Users may also create alerts for Any/Bull/Bear BOS or MSS. Simply create a new alert, select this indicator, and select the desired BOS or MSS criteria.
ICT Concepts [LuxAlgo]The ICT Concepts indicator regroups core concepts highlighted by trader and educator "The Inner Circle Trader" (ICT) into an all-in-one toolkit. Features include Market Structure (MSS & BOS), Order Blocks, Imbalances, Buyside/Sellside Liquidity, Displacements, ICT Killzones, and New Week/Day Opening Gaps.
🔶 SETTINGS
🔹 Mode
When Present is selected, only data of the latest 500 bars are used/visualized, except for NWOG/NDOG
🔹 Market Structure
Enable/disable Market Structure.
Length: will set the lookback period/sensitivity.
In Present Mode only the latest Market Structure trend will be shown, while in Historical Mode, previous trends will be shown as well:
You can toggle MSS/BOS separately and change the colors:
🔹 Displacement
Enable/disable Displacement.
🔹 Volume Imbalance
Enable/disable Volume Imbalance.
# Visible VI's: sets the amount of visible Volume Imbalances (max 100), color setting is placed at the side.
🔹 Order Blocks
Enable/disable Order Blocks.
Swing Lookback: Lookback period used for the detection of the swing points used to create order blocks.
Show Last Bullish OB: Number of the most recent bullish order/breaker blocks to display on the chart.
Show Last Bearish OB: Number of the most recent bearish order/breaker blocks to display on the chart.
Color settings.
Show Historical Polarity Changes: Allows users to see labels indicating where a swing high/low previously occurred within a breaker block.
Use Candle Body: Allows users to use candle bodies as order block areas instead of the full candle range.
Change in Order Blocks style:
🔹 Liquidity
Enable/disable Liquidity.
Margin: sets the sensitivity, 2 points are fairly equal when:
'point 1' < 'point 2' + (10 bar Average True Range / (10 / margin)) and
'point 1' > 'point 2' - (10 bar Average True Range / (10 / margin))
# Visible Liq. boxes: sets the amount of visible Liquidity boxes (max 50), this amount is for Sellside and Buyside boxes separately.
Colour settings.
Change in Liquidity style:
🔹 Fair Value Gaps
Enable/disable FVG's.
Balance Price Range: this is the overlap of latest bullish and bearish Fair Value Gaps.
By disabling Balance Price Range only FVGs will be shown.
Options: Choose whether you wish to see FVG or Implied Fair Value Gaps (this will impact Balance Price Range as well)
# Visible FVG's: sets the amount of visible FVG's (max 20, in the same direction).
Color settings.
Change in FVG style:
🔹 NWOG/NDOG
Enable/disable NWOG; color settings; amount of NWOG shown (max 50).
Enable/disable NDOG ; color settings; amount of NDOG shown (max 50).
🔹 Fibonacci
This tool connects the 2 most recent bullish/bearish (if applicable) features of your choice, provided they are enabled.
3 examples (FVG, BPR, OB):
Extend lines -> Enabled (example OB):
🔹 Killzones
Enable/disable all or the ones you need.
Time settings are coded in the corresponding time zones.
🔶 USAGE
By default, the indicator displays each feature relevant to the most recent price variations in order to avoid clutter on the chart & to provide a very similar experience to how a user would contruct ICT Concepts by hand.
Users can use the historical mode in the settings to see historical market structure/imbalances. The ICT Concepts indicator has various use cases, below we outline many examples of how a trader could find usage of the features together.
In the above image we can see price took out Sellside liquidity, filled two bearish FVGs, a market structure shift, which then led to a clean retest of a bullish FVG as a clean setup to target the order block above.
Price then fills the OB which creates a breaker level as seen in yellow.
Broken OBs can be useful for a trader using the ICT Concepts indicator as it marks a level where orders have now been filled, indicating a solidified level that has proved itself as an area of liquidity. In the image above we can see a trade setup using a broken bearish OB as a potential entry level.
We can see the New Week Opening Gap (NWOG) above was an optimal level to target considering price may tend to fill / react off of these levels according to ICT.
In the next image above, we have another example of various use cases where the ICT Concepts indicator hypothetically allow traders to find key levels & find optimal entry points using market structure.
In the image above we can see a bearish Market Structure Shift (MSS) is confirmed, indicating a potential trade setup for targeting the Balanced Price Range imbalance (BPR) below with a stop loss above the buyside liquidity.
Although what we are demonstrating here is a hindsight example, it shows the potential usage this toolkit gives you for creating trading plans based on ICT Concepts.
Same chart but playing out the history further we can see directly after price came down to the Sellside liquidity & swept below it...
Then by enabling IFVGs in the settings, we can see the IFVG retests alongside the Sellside & Buyside liquidity acting in confluence.
Which allows us to see a great bullish structure in the market with various key levels for potential entries.
Here we can see a potential bullish setup as price has taken out a previous Sellside liquidity zone and is now retesting a NWOG + Volume Imbalance.
Users also have the option to display Fibonacci retracements based on market structure, order blocks, and imbalance areas, which can help place limit/stop orders more effectively as well as finding optimal points of interest beyond what the primary ICT Concepts features can generate for a trader.
In the above image we can see the Fibonacci extension was selected to be based on the NWOG giving us some upside levels above the buyside liquidity.
🔶 DETAILS
Each feature within the ICT Concepts indicator is described in the sub sections below.
🔹 Market Structure
Market structure labels are constructed from price breaking a prior swing point. This allows a user to determine the current market trend based on the price action.
There are two types of Market Structure labels included:
Market Structure Shift (MSS)
Break Of Structure (BOS)
A MSS occurs when price breaks a swing low in an uptrend or a swing high in a downtrend, highlighting a potential reversal. This is often labeled as "CHoCH", but ICT specifies it as MSS.
On the other hand, BOS labels occur when price breaks a swing high in an uptrend or a swing low in a downtrend. The occurrence of these particular swing points is caused by retracements (inducements) that highlights liquidity hunting in lower timeframes.
🔹 Order Blocks
More significant market participants (institutions) with the ability of placing large orders in the market will generally place a sequence of individual trades spread out in time. This is referred as executing what is called a "meta-order".
Order blocks highlight the area where potential meta-orders are executed. Bullish order blocks are located near local bottoms in an uptrend while bearish order blocks are located near local tops in a downtrend.
When price mitigates (breaks out) an order block, a breaker block is confirmed. We can eventually expect price to trade back to this breaker block offering a new trade opportunity.
🔹 Buyside & Sellside Liquidity
Buyside / Sellside liquidity levels highlight price levels where market participants might place limit/stop orders.
Buyside liquidity levels will regroup the stoploss orders of short traders as well as limit orders of long traders, while Sellside liquidity levels will regroup the stoploss orders of long traders as well as limit orders of short traders.
These levels can play different roles. More informed market participants might view these levels as source of liquidity, and once liquidity over a specific level is reduced it will be found in another area.
🔹 Imbalances
Imbalances highlight disparities between the bid/ask, these can also be defined as inefficiencies, which would suggest that not all available information is reflected by the price and would as such provide potential trading opportunities.
It is common for price to "rebalance" and seek to come back to a previous imbalance area.
ICT highlights multiple imbalance formations:
Fair Value Gaps: A three candle formation where the candle shadows adjacent to the central candle do not overlap, this highlights a gap area.
Implied Fair Value Gaps: Unlike the fair value gap the implied fair value gap has candle shadows adjacent to the central candle overlapping. The gap area is constructed from the average between the respective shadow and the nearest extremity of their candle body.
Balanced Price Range: Balanced price ranges occur when a fair value gap overlaps a previous fair value gap, with the overlapping area resulting in the imbalance area.
Volume Imbalance: Volume imbalances highlight gaps between the opening price and closing price with existing trading activity (the low/high overlap the previous high/low).
Opening Gap: Unlike volume imbalances opening gaps highlight areas with no trading activity. The low/high does not reach previous high/low, highlighting a "void" area.
🔹 Displacement
Displacements are scenarios where price forms successive candles of the same sentiment (bullish/bearish) with large bodies and short shadows.
These can more technically be identified by positive auto correlation (a close to open change is more likely to be followed by a change of the same sign) as well as volatility clustering (large changes are followed by large changes).
Displacements can be the cause for the formation of imbalances as well as market structure, these can be caused by the full execution of a meta order.
🔹 Kill Zones
Killzones represent different time intervals that aims at offering optimal trade entries. Killzones include:
- New York Killzone (7:9 ET)
- London Open Killzone (2:5 ET)
- London Close Killzone (10:12 ET)
- Asian Killzone (20:00 ET)
🔶 Conclusion & Supplementary Material
This script aims to emulate how a trader would draw each of the covered features on their chart in the most precise representation to how it's actually taught by ICT directly.
There are many parallels between ICT Concepts and Smart Money Concepts that we released in 2022 which has a more general & simpler usage:
ICT Concepts, however, is more specifically aligned toward the community's interpretation of how to analyze price 'based on ICT', rather than displaying features to have a more classic interpretation for a technical analyst.
Zendog V3 backtest DCA bot 3commasMAJOR UPDATE:
- Update to Pinescript v5
- MAJOR refactor for the logic of how orders are placed. BO order is placed when the condition is first encountered and we are not in a deal.
The extra SO orders (if based on price movement) are all placed on the next candle after BO order, instead of each being placed one after another.
Take profit (if percentage) and Stop loss are placed on the first candle after BO order because if BO and TP are on the same candle TV does not execute properly.
These changes should improve strategy accuracy when multiple prices are hit by the same candle.
- NEW FEATURE: Support to Stop deal using an external indicator (i.e. stop long deal when RSI > 80)
- NEW FEATURE: Support to trigger Safety orders using an external indicator (i.e. trigger each additional SO when RSI < 10, regardless of price movement)
The price movement logic may be implemented in the indicator that plots start / end signals. The SO size is calculated using the configuration of steps.
- NEW FEATURE: Safety order command for 3commas bot. This is implemented using Add funds in the quote currency (for pair BTCUSDT the quote currency is USDT)
The SO size is calculated using the configuration of steps, for exact order size (and price) use the built-in Steps table.
- NEW FEATURE: Addition of extra columns to the steps table: Required price for TP, Required % change for TP, Required % change for BEP (Breakeven point)
- Update to steps table to remove prices when Safety orders are not based on % price change
- The code is opensource. I will not be able to sustain merges for the script, but feel free to use and develop your own version and ping me on discord to review them
and maybe include in the original script
Smart Money Breakout Signals [AlgoAlpha]Introducing the Smart Money Breakout Signals, a cutting-edge trading indicator designed to identify key structural shifts and breakout opportunities in the market. This tool leverages a blend of smart money concepts like Break of Structure (BOS) and Change of Character (CHoCH) to provide traders with actionable insights into market direction and potential entry or exit points.
Key Features :
✨ Market Structure Analysis : Automatically detects and labels BOS and CHoCH for trend confirmation and reversals.
🎨 Customizable Visualization : Tailor bullish and bearish colors for breakout lines and signals to suit your preferences.
📊 Dynamic Take-Profit Targets : Displays three tiered take-profit levels based on breakout volatility.
🔔 Real-Time Alerts : Stay ahead of the game with notifications for bullish and bearish breakouts.
📋 Performance Dashboard : Monitor signal statistics, including win rates and total signals, directly on your chart.
How to Use :
Add the Indicator : Add the script to your favourites ⭐ and customize settings like market structure horizon and confirmation type.
Monitor Breakouts : Observe BOS and CHoCH labels to identify potential trend shifts. Use the breakout lines and tiered take-profit levels to plan trades effectively.
Set Alerts : Enable alerts for bullish or bearish breakouts to act on opportunities without constant monitoring.
How It Works :
The indicator identifies market structure by analyzing pivot highs and lows over a user-defined time horizon. A breakout is confirmed based on either candle closes or wicks surpassing previous pivot points. Upon detection, the script generates signals with breakout lines and calculates take-profit targets based on the distance from the breakout level. A built-in dashboard tracks performance metrics like total signals and win rates, giving traders real-time feedback on strategy effectiveness.
Volumetric Rejection Blocks [UAlgo]The Volumetric Rejection Blocks is designed to help traders identify and visualize key price levels where volumetric rejections occur, which may indicate a shift in market sentiment. These rejections can signal potential trend reversals or areas where price action is likely to face support or resistance. By drawing rejection blocks based on volumetric strength, the indicator allows users to observe where significant buying or selling pressure has been exerted, which can be used as a reference point for future price action.
Also indicator dynamically calculates swing highs and lows, analyzes bullish and bearish strengths based on volume-weighted price movements, and displays rejection blocks on the chart. Each rejection block represents an area where the price attempted to move beyond a certain level but faced rejection, either on a close or wick basis. This can be particularly useful for traders who rely on market structure and order flow to make informed decisions about entering or exiting trades.
🔶 Key Features
Swing Length Customization: Allows users to define the swing length, helping tailor the sensitivity of the swing high and low detection to the specific market conditions.
Rejection Block Visualization: Displays up to the last 10 rejection blocks based on user settings, clearly marking areas of significant bullish or bearish rejections.
Volumetric Strength Analysis: The indicator calculates bullish and bearish strength for each rejection block, based on volume-weighted price movements over the last few bars, giving insight into the intensity of the rejection.
Violation Check Type: Offers two options for violation detection—"Close" and "Wick". This allows traders to specify whether a price level is considered broken only if it closes beyond the level or if any wick breaches it.
Bullish and Bearish Block Coloring: Rejection blocks are colored to represent bullish (green) and bearish (red) rejection areas. The color transparency can be adjusted for clear visibility overlaid on the price chart.
Market Structure Labels: Labels and lines marking "Market Structure Shift" (MSS) and "Break of Structure" (BOS) are displayed, giving traders context about significant market structure changes.
🔶 Interpreting the Indicator
Rejection Blocks: These colored blocks on the chart indicate areas where the price faced significant buying or selling pressure. A green block suggests a bullish rejection (support zone), where buyers absorbed the sell-off, potentially pushing the price upward. Conversely, a red block indicates a bearish rejection (resistance zone), where sellers overpowered buyers, potentially driving the price lower.
Strength Analysis: The width of the green and red sections within a rejection block represents the relative bullish and bearish strengths. A wider green section indicates stronger bullish support, while a wider red section suggests more robust bearish resistance. This helps traders gauge the likelihood of price holding or breaching these levels.
Market Structure Shift (MSS) and Break of Structure (BOS): The indicator automatically detects and labels significant changes in market structure. An "MSS" label indicates the first break, suggesting a potential shift in trend direction. A "BOS" label indicates a subsequent confirmation in trend direction, allowing traders to recognize potential trend continuations.
Violation Check: Traders can choose how to interpret breaks of these rejection blocks. Using the "Close" option provides a more conservative approach, requiring a close beyond the level for confirmation. The "Wick" option is more aggressive, treating any wick beyond the level as a break.
🔶 Disclaimer
Use with Caution: This indicator is provided for educational and informational purposes only and should not be considered as financial advice. Users should exercise caution and perform their own analysis before making trading decisions based on the indicator's signals.
Not Financial Advice: The information provided by this indicator does not constitute financial advice, and the creator (UAlgo) shall not be held responsible for any trading losses incurred as a result of using this indicator.
Backtesting Recommended: Traders are encouraged to backtest the indicator thoroughly on historical data before using it in live trading to assess its performance and suitability for their trading strategies.
Risk Management: Trading involves inherent risks, and users should implement proper risk management strategies, including but not limited to stop-loss orders and position sizing, to mitigate potential losses.
No Guarantees: The accuracy and reliability of the indicator's signals cannot be guaranteed, as they are based on historical price data and past performance may not be indicative of future results.
SMC Order Block & Liquidity EntryThe SMC Order Block and Liquidity Trap Entry Strategy script uses Smart Money Concepts (SMC), which analyze institutional actions in the market, to assist traders in identifying high-probability trades. In order to help traders match their entry with institutional activity, this script highlights important regions of interest, including order blocks, liquidity zones, and indications for Break of Structure (BOS) or Change of Character (CHoCH).
The fundamental ideas of this approach, which focuses on regions where institutions frequently make sizable orders or sweep liquidity, are based on SMC principles. Order blocks, which are frequently important support or resistance zones when institutions are involved, are the final bullish or bearish candle before a significant price move in the other direction. There are liquidity zones that show where retail stop-loss orders build up (above recent highs or below recent lows), such as Buy-Side Liquidity (BSL) and Sell-Side Liquidity (SSL). Before changing the direction of the price, institutions could target these zones, giving traders possible chances.
The script depicts liquidity levels above or below recent highs and lows, automatically finds order blocks within a specified lookback time, and looks for BOS (a continuation signal) or CHoCH (a reversal signal). When liquidity retests inside an order block coincide with BOS or CHoCH circumstances, entry signals are produced. While short entries are triggered when the price breaks below the order block and SSL, long entry alerts are triggered when the price breaks above the order block and BSL.
Smart Money Concepts IndicatorBEST ICT AND SMC INDICATOR
The **Smart Money Concepts Indicator** is designed to enhance trading decisions by incorporating key principles from Smart Money Concepts (SMC), focusing on the detection of market structure changes, liquidity zones, order flow, and order blocks. This indicator is particularly useful for traders looking to understand market dynamics and make informed trading decisions based on advanced market analysis.
#### Key Features:
1. **Break of Structure (BOS)**:
- Identifies upward and downward breaks in market structure, indicating potential trend reversals.
- Visual markers on the chart help traders spot these critical levels.
2. **Change of Character (CHOCH)**:
- Detects significant changes in market direction, highlighting potential shifts in momentum.
- Clearly labeled signals indicate when the market may be changing its character.
3. **Order Blocks**:
- Highlights order blocks, which are key areas where significant buying or selling has occurred.
- Provides visual cues for potential support and resistance zones.
4. **Liquidity Zones**:
- Marks liquidity zones, indicating areas where buy-side or sell-side liquidity may be targeted.
- Helps traders understand where the market might draw liquidity.
5. **Dynamic Take Profit and Stop Loss Levels**:
- Calculates and plots take profit (TP) and stop loss (SL) levels based on the Average True Range (ATR) for adaptive risk management.
- Customizable multipliers allow traders to adjust levels based on their risk tolerance.
6. **Order Flow Analysis**:
- Displays bullish and bearish order flow signals based on candle close relative to open.
- Provides insights into market sentiment and potential future price action.
#### How to Use:
- **Identifying Entry and Exit Points**: Use BOS and CHOCH signals to find potential entry points, while leveraging TP and SL levels for risk management.
- **Market Analysis**: Analyze order blocks and liquidity zones to make informed decisions on market behavior.
- **Visual Confirmation**: The clear visual cues provided by the indicator make it easier to interpret market movements and align trades with institutional behavior.
#### Conclusion:
The Smart Money Concepts Indicator is an invaluable tool for traders looking to enhance their understanding of market structure and make more informed trading decisions. By integrating advanced concepts like BOS, CHOCH, and liquidity analysis, this indicator helps traders navigate the complexities of the market with greater confidence.
ICT Panther (By Obicrypto) V1 ICT Panther Indicator: Full and Detailed Description
The ICT Panther Indicator, created by Obicrypto, is an advanced technical analysis tool designed specifically for traders looking to identify key price action events based on institutional trading techniques, particularly in the context of the Inner Circle Trader (ICT) methodology. This indicator helps traders spot market structure breaks, order blocks, and potential trade opportunities driven by institutional behaviors in the market. Here's a detailed breakdown of its features and how it works:
What Does the ICT Panther Indicator Do?
1. Market Structure Breaks (MSB) Identification:
The ICT Panther identifies critical points where the market changes direction, commonly referred to as a break of structure (BoS). When the price breaks above or below certain key levels (based on highs and lows or opens and closes), it signals a potential shift in market sentiment. These break-of-structure points are essential for traders to determine whether the market is likely to continue its trend or reverse.
2. Order Blocks Visualization:
The indicator plots demand (bullish) and supply (bearish) boxes, which represent areas where institutional traders might place significant buy or sell orders. These zones, known as order blocks, are areas where the price tends to pause or reverse, giving traders key insights into potential entry and exit points. The indicator shows these areas graphically as colored boxes on the chart, which can be used to plan trades based on market structure and price action.
3. Pivot Point Detection:
The ICT Panther identifies important pivot points by tracking higher highs and lower lows. These pivot points are critical in determining the strength of a trend and can help traders confirm the direction of the market. The indicator uses a unique algorithm to detect two levels of pivot points:
- First-Order Pivots: Major pivot points where the price makes notable highs and lows.
- Second-Order Pivots: Smaller pivot points, useful for detecting microtrends within the larger market structure.
4. Bullish and Bearish Break of Structure Lines:
When a significant market structure break (BoS) occurs, the indicator will automatically draw red lines (for bearish break of structure) and green lines (for bullish break of structure) at key price levels. These lines help traders quickly see where institutional moves have occurred in the past and where potential future price moves could originate from.
5. Tested and Filled Boxes:
The ICT Panther also has a built-in mechanism to dim previously tested order blocks. When the price tests an order block (returns to a previous demand or supply zone), the box's color dims to indicate that the area has already been tested, reducing its significance. If the price fully fills an order block, the box stops plotting, providing a clear and clutter-free chart.
Key Features
1. Market Structure Break (MSB) Trigger:
- The indicator allows users to select between highs/lows or opens/closes as the trigger for market structure breaks. This flexibility lets traders adjust the indicator to suit their personal trading style or the behavior of specific assets.
2. Order Block Detection and Visualization:
- The tool automatically plots bullish and bearish demand and supply boxes, representing institutional order blocks on the chart. These boxes provide visual cues for areas of potential price action, where institutional traders might be active.
3. Second-Order Pivot Highlighting:
- The ICT Panther offers an option to plot second-order pivots, highlighting smaller pivot points within the larger market structure. These pivots can be helpful for short-term traders who need to react to smaller price movements while still keeping the larger trend in mind.
4. Box Test and Fill Delays:
- Users can configure delays for box tests and box fills, meaning the indicator will only mark a box as tested or filled after a certain number of bars. This prevents false signals and helps confirm that a zone is truly significant in the market.
5. Customization and Visual Clarity:
- The indicator is highly customizable, allowing users to turn on or off various features like:
- Displaying second-order pivots.
- Highlighting candles that broke structure.
- Plotting market structure broke lines.
- Showing or hiding tested and filled demand boxes.
- Setting custom delays for box testing and filling to suit different market conditions.
6. Tested and Filled Order Block Visualization:
- The indicator visually adjusts the tested and filled order blocks, dimming tested zones and removing filled zones to avoid clutter on the chart. This ensures that traders can focus on active trading opportunities without distractions from historical data.
How Does It Work?
1. Detecting Market Structure Breaks (BoS):
- The indicator continuously tracks the market for key price action signals. When the price breaks through previous highs or lows (or opens and closes, depending on your selection), the indicator marks this as a break of structure. This is a critical signal used by institutional traders and retail traders alike to determine potential future price movements.
2. Order Block Identification:
- Whenever a bullish break of structure occurs, the indicator plots a green demand box to show the area where institutional buyers might have placed significant orders. Similarly, for a bearish break of structure, it plots a red supply box representing areas where institutional sellers are active.
3. Pivot Analysis and Tracking:
- As the market moves, the indicator continuously updates first-order and second-order pivot points based on highs and lows. These points help traders identify whether the market is trending or consolidating. Traders can use these pivot points in combination with the order blocks to make informed trading decisions.
4. Box Testing and Filling:
- When the price retests an existing order block, the box dims to show it has been tested. If the price fully fills the box, it is no longer shown, which helps traders focus on the most relevant, untested order blocks.
Benefits for Traders
- Improved Decision-Making: With clear visuals and advanced logic based on institutional trading strategies, this indicator provides a deeper understanding of market structure and price action.
- Reduced Clutter: The indicator intelligently manages the display of order blocks and pivot points, ensuring that traders focus only on the most relevant information.
- Adaptability: Whether you are a swing trader or a day trader, the ICT Panther can be adjusted to fit your trading style, offering robust and flexible tools for tracking market structure and order blocks.
- Institutional Edge: By identifying institutional-level order blocks and market structure breaks, traders using this indicator can trade in line with the strategies of large market participants.
Who Should Use the ICT Panther Indicator?
This indicator is ideal for:
- Crypto, Forex, and Stock Traders who want to incorporate institutional trading concepts into their strategies.
- Technical Analysts looking for precise tools to measure the market structure and price action.
- ICT Traders who follow the Inner Circle Trader methodology and want an advanced tool to automate and enhance their analysis.
- Price Action Traders seeking a reliable indicator to track pivot points, order blocks, and market structure breaks.
The ICT Panther Indicator is a powerful, versatile tool that brings institutional trading techniques to the fingertips of retail traders. Whether you are looking to identify key market structure breaks, order blocks, or crucial pivot points, this indicator offers detailed visualizations and customizable options to help you make more informed trading decisions. With its ability to track the activities of institutional traders, the ICT Panther Indicator equips traders with the insights needed to stay ahead of the market and trade with confidence.
With the ICT Panther Indicator, traders can follow the movements of institutional money, making it easier to predict market direction and capitalize on high-probability trading opportunities.
Enjoy it and share it with your friends!
Price Action Volumetric Breaker Blocks [UAlgo]The Price Action Volumetric Breaker Blocks indicator is designed to identify and visualize significant price levels in the market. It combines concepts of price action, volume analysis, and market structure to provide traders with a comprehensive view of potential support and resistance areas. This indicator identifies "breaker blocks," which are price zones where the market has shown significant interest in the past.
These blocks are created based on swing highs and lows, and are further analyzed using volume data to determine their strength. The indicator also tracks market structure shifts, providing additional context to price movements.
By visualizing these key levels and market structure changes, traders can gain insights into potential areas of price reversal or continuation, helping them make more informed trading decisions.
🔶 Key Features
Dynamic Breaker Block Identification: The indicator automatically detects and draws breaker blocks based on swing highs and lows. These blocks represent areas of potential support and resistance.
Volume-Weighted Strength Analysis: Each breaker block is analyzed using volume data to determine its bullish and bearish strength. This is visually represented by the proportion of green (bullish) and red (bearish) coloring within each block.
Market Structure Break (MSB) and Break of Structure (BOS): The indicator identifies and labels Market Structure Breaks (MSB) and Break of Structure (BOS) events, providing context to larger market trends.
Customizable Settings:
- Adjustable swing length for identifying pivot points
- Option to show a specific number of recent breaker blocks
- Choice between wick or close price for violation checks
- Toggle to hide overlapping blocks for cleaner analysis
Violation Detection: Automatically detects when a breaker block has been violated (broken through), either by wick or close price, depending on user settings.
Overlap Control: Provides an option to hide overlapping order blocks, ensuring that the chart remains clean and easy to read when multiple blocks are detected in close proximity.
🔶 Interpreting Indicator
Breaker Blocks:
Breaker blocks are key areas where the price moves through and invalidates a previously identified order block. The indicator detects a breaker block when the price violates an order block by exceeding its high or low (depending on whether it's a bullish or bearish block). This violation is determined by either the wick or the close of a candle, depending on the user's selection in the "Violation Check" setting. When a breaker block is detected, the indicator removes the violated order block from the chart, signaling that the zone is no longer relevant for future price action.
Bullish Breaker Block: This occurs when a bearish order block (red) is violated by the price closing above the block’s top boundary or when the wick surpasses this level. It signals that a prior bearish structure has been invalidated, and the market may shift to a bullish trend.
Bearish Breaker Block: This occurs when a bullish order block (teal) is violated by the price closing below the block’s bottom boundary or when the wick drops below it. It suggests that a previous bullish structure has been broken, indicating potential bearish momentum.
Market Structure Labels:
"MSB" (Market Structure Break) labels indicate a potential change in trend direction.
"BOS" (Break of Structure) labels confirm the continuation of the current trend after breaking a significant level.
Block Strength:
A block with more green indicates stronger bullish interest.
A block with more red indicates stronger bearish interest.
The relative sizes of the green and red portions show the balance of power between buyers and sellers at that level.
🔶 Disclaimer
Use with Caution: This indicator is provided for educational and informational purposes only and should not be considered as financial advice. Users should exercise caution and perform their own analysis before making trading decisions based on the indicator's signals.
Not Financial Advice: The information provided by this indicator does not constitute financial advice, and the creator (UAlgo) shall not be held responsible for any trading losses incurred as a result of using this indicator.
Backtesting Recommended: Traders are encouraged to backtest the indicator thoroughly on historical data before using it in live trading to assess its performance and suitability for their trading strategies.
Risk Management: Trading involves inherent risks, and users should implement proper risk management strategies, including but not limited to stop-loss orders and position sizing, to mitigate potential losses.
No Guarantees: The accuracy and reliability of the indicator's signals cannot be guaranteed, as they are based on historical price data and past performance may not be indicative of future results.
Pure Price Action ICT Tools [LuxAlgo]The Pure Price Action ICT Tools indicator is designed for pure price action analysis, automatically identifying real-time market structures, liquidity levels, order & breaker blocks, and liquidity voids.
Its unique feature lies in its exclusive reliance on price patterns, without being constrained by any user-defined inputs, ensuring a robust and objective analysis of market dynamics.
🔶 MARKET STRUCTURES
A Market Structure Shift, also known as a Change of Character (CHoCH), is a pivotal event in price action analysis indicating a potential change in market sentiment or direction. An MSS occurs when the price reverses from an established trend, signaling that the prevailing trend may be losing momentum and a reversal might be underway. This shift is often identified by key technical patterns, such as a higher low in a downtrend or a lower high in an uptrend, which indicate a weakening of the current trend's strength.
A Break of Structure typically indicates the continuation of the current market trend. This event occurs when the price decisively moves beyond a previous swing high or low, confirming the strength of the prevailing trend. In an uptrend, a BOS is marked by the price breaking above a previous high, while in a downtrend, it is identified by the price breaking below a previous low.
While a Market Structure Shift (MSS) can indicate a potential trend reversal and a Break of Structure (BOS) often confirms trend continuation, they do not assure a complete reversal or continuation. MSS and BOS levels can also function as liquidity zones or areas of price consolidation rather than definitively signaling a change in market direction. Traders should approach these signals cautiously and validate them with additional factors before making trading decisions. For further details on other components of the tool, please refer to the following sections.
🔶 ORDER & BREAKER BLOCKS
Order and Breaker Blocks are key concepts in price action analysis that help traders identify significant levels in the market structure.
Order Blocks are specific price zones where significant buying or selling activity has occurred. These zones often represent the actions of large institutional traders or market makers, who execute substantial orders that impact the market.
Breaker Blocks are specific price zones where a strong reversal occurs, causing a break in the prevailing market structure. These blocks indicate areas where the price encountered significant resistance or support, leading to a reversal.
In summary, Order and Breaker Blocks are essential tools in price action analysis, providing insights into significant market levels influenced by institutional trading activities. These blocks help traders make informed decisions about potential support and resistance levels, trend reversals, and breakout confirmations.
🔶 BUYSIDE & SELLSIDE LIQUIDITY
Both buy-side and sell-side liquidity zones are critical for identifying potential turning points in the market. These zones are where significant buying or selling interest is concentrated, influencing future price movements.
In summary, buy-side and sell-side liquidity provide crucial insights into market demand and supply dynamics, helping traders make informed decisions based on the availability of orders at different price levels.
🔶 LIQUIDITY VOIDS
Liquidity voids are gaps or areas on a price chart where there is a lack of trading activity. These voids represent zones with minimal to no buy or sell orders, often resulting in sharp price movements when the market enters these areas.
In summary, liquidity voids are crucial areas on a price chart characterized by a lack of trading activity. These voids can lead to rapid price movements and increased volatility, making them essential considerations for traders in their analysis and decision-making processes.
🔶 SWING POINTS
Reversal price points are commonly referred to as swing points. Traders often analyze historical swing points to discern market trends and pinpoint potential trade entry and exit points.
Do note that in this script these are subject to backpainting, that is they are not located where they are detected.
The detection of swing points and the unique feature of this script rely exclusively on price action, eliminating the need for numerical user-defined settings. The process begins with detecting short-term swing points:
Short-Term Swing High (STH): Identified as a price peak surrounded by lower highs on both sides.
Short-Term Swing Low (STL): Recognized as a price trough surrounded by higher lows on both sides.
Intermediate-term and long-term swing points are detected using the same approach but with a slight modification. Instead of directly analyzing price candles, previously detected short-term swing points are utilized. For intermediate-term swing points, short-term swing points are analyzed, while for long-term swing points, intermediate-term ones are used.
This method ensures a robust and objective analysis of market dynamics, offering traders reliable insights into market structures. Detected swing points serve as the foundation for identifying market structures, buy-side/sell-side liquidity levels, and order and breaker blocks presented with this tool.
In summary, swing points are essential elements in technical analysis, helping traders identify trends, support, and resistance levels, and optimal entry and exit points. Understanding swing points allows traders to make informed decisions based on the natural price movements in the market.
🔶 SETTINGS
🔹 Market Structures
Market Structures: Toggles the visibility of the market structures, both shifts and breaks.
Detection: An option that allows users to detect market structures based on the significance of swing levels, including short-term, intermediate-term, and long-term.
Market Structure Labels: Controls the visibility of labels that highlight the type of market structure.
Line Style: Customizes the style of the lines representing the market structure.
🔹 Order & Breaker Blocks
Order & Breaker Blocks: Toggles the visibility of the order & breaker blocks.
Detection: An option that allows users to detect order & breaker blocks based on the significance of swing levels, including short-term, intermediate-term, and long-term.
Last Bullish Blocks: Number of the most recent bullish order/breaker blocks to display on the chart.
Last Bearish Blocks: Number of the most recent bearish order/breaker blocks to display on the chart.
Use Candle Body: Allows users to use candle bodies as order block areas instead of the full candle range.
🔹 Buyside & Sellside Liquidity
Buyside & Sellside Liquidity: Toggles the visibility of the buyside & sellside liquidity levels.
Detection: An option that allows users to detect buy-side & sell-side liquidity based on the significance of swing levels, including short-term, intermediate-term, and long-term.
Margin: Sets margin/sensitivity for a liquidity level detection.
Visible Levels: Controls the amount of the liquidity levels/zones to be visualized.
🔹 Liquidity Voids
Liquidity Voids: Enable display of both bullish and bearish liquidity voids.
Threshold Multiplier: Defines the multiplier for the threshold, which is hard-coded to the 200-period ATR range.
Mode: Controls the lookback length for detection and visualization. Present considers the last X bars specified in the option, while Historical includes all available data.
Label: Enable display of a label indicating liquidity voids.
🔹 Swing Highs/Lows
Swing Highs/Lows: Toggles the visibility of the swing levels.
Detection: An option that allows users to detect swing levels based on the significance of swing levels, including short-term, intermediate-term, and long-term.
Label Size: Control the size of swing level labels.
🔶 RELATED SCRIPTS
Pure-Price-Action-Structures.
Market-Structures-(Intrabar).
Buyside-Sellside-Liquidity.
Order-Breaker-Blocks.
Pure Price Action Structures [LuxAlgo]The Pure Price Action Structures indicator is a pure price action analysis tool designed to automatically identify real-time market structures.
The indicator identifies short-term, intermediate-term, and long-term swing highs and lows, forming the foundation for real-time detection of shifts and breaks in market structure.
Its distinctive/unique feature lies in its reliance solely on price patterns, without being limited by any user-defined input, ensuring a robust and objective analysis of market dynamics.
🔶 USAGE
Market structure is a crucial aspect of understanding price action. The script automatically identifies real-time market structure, enabling traders to comprehend market trends more easily. It assists traders in recognizing both trend changes and continuations.
Market structures are constructed from three sets of swing points, short-term swings, intermediary swings, and long-term swings. Market structures associated with longer-term swing points are indicative of longer-term trends.
A market structure shift (MSS), also known as a change of character (CHoCH), is a significant event in price action analysis that may signal a potential shift in market sentiment or direction. Conversely, a break of structure (BOS) is another significant event in price action analysis that typically indicates a continuation of the prevailing trend.
However, it's important to note that while an MSS can be the first indication of a trend reversal and a BOS signifies a continuation of the prevailing trend, they do not guarantee a complete reversal or continuation of the trend.
In some cases, MSS and BOS levels may also act as liquidity zones or areas of price consolidation, rather than indicating a definitive change in market direction or continuation. Traders should approach them with caution and consider additional factors to confirm the validity of the signal before making trading decisions.
🔶 DETAILS
🔹 Market Structures
Market structures are based on the analysis of price action and aim to identify key levels and patterns in the market, where swing point detection is one of the core concepts within ICT trading methodologies and teachings.
Swing points are automatically detected solely based on market movements, without any reliance on user-defined input.
🔹 Utilizing Swing Points
Swing points are not identified in real time as they occur. While short-term swing points may be displayed with a delay of at most one bar, the identification of intermediate and long-term swing points depends entirely on market movements. Furthermore, detection is not limited by any user-defined input but relies solely on pure price action. Consequently, swing points are not typically utilized in real-time trading scenarios.
Traders often analyze historical swing points to discern market trends and pinpoint potential entry and exit points for their trades. By identifying swing highs and lows, traders can:
Recognize Trends: Swing highs and lows help traders identify the direction of the trend. Higher swing highs and higher swing lows indicate an uptrend, while lower swing highs and lower swing lows indicate a downtrend.
Identify Support and Resistance Levels: Swing highs often serve as resistance levels, known in ICT terminology as Buyside Liquidity Levels, while swing lows function as support levels, also referred to in ICT terminology as Sellside Liquidity Levels. Traders can utilize these levels to strategize entry and exit points for their trades.
Spot Reversal Patterns: Swing points can form various reversal patterns, such as double tops or bottoms, head and shoulders patterns, and triangles. Recognizing these patterns can signal potential trend reversals, allowing traders to adjust their strategies accordingly.
Set Stop Loss and Take Profit Levels: In the context of ICT teachings, swing levels represent specific price levels where a concentration of buy or sell orders is anticipated. Traders can target these liquidity levels/pools to accumulate or distribute their positions, essentially using swing points to establish stop loss and take profit levels for their trades.
Overall, swing points provide valuable information about market dynamics and can assist traders in making more informed trading decisions.
🔶 SETTINGS
🔹 Structures
Swings and Size: Toggles the visibility of the structure's highs and lows, assigns an icon corresponding to the structures, and controls the size of the icons.
Market Structures: Toggles the visibility of the market structures.
Market Structure Labels: Controls the visibility of labels that highlight the type of market structure.
Line Style and Width: Customizes the style and width of the lines representing the market structure.
Swing and Line Colors: Customizes colors for the icons representing highs and lows, and the lines and labels representing the market structure.
🔶 RELATED SCRIPTS
Market-Structures-(Intrabar).
Buyside-Sellside-Liquidity.
Time - Bar StatusCandlestick analysis
The Indicator "Bar Status" will display the current open candle state and the last three close candles state based on the logic below.
Abbreviations.
OC = Open Candle (if in no state listed below)
FB = False Break
BO = Break Out
IN = Inside Bar
FBR = False Break Reversal
Logic:
OC = This is the current open candle yet to close. Its status will change as it progresses through time until close.
Green False Break Revers (FBR) = bar Close is higher than previous bar Close AND bar High is higher than previous bar High AND bar Low is lower than previous bar Low.
Green False Break (FB) = bar Close is lower than previous bar High AND bar High is higher than previous bar High.
Green Breakout (BO) = bar Close is higher than previous bar Close AND bar High is higher than previous bar High.
Green Inside Bar (IN) = bar High is lower than previous bar High AND bar Low is higher than previous bar Low.
Red False Break Revers (FBR) = bar Close is lower than previous bar Close AND bar Low is lower than previous bar Low AND bar High is Higher than previous bar High.
Red False Break (FB) = bar Close is higher than previous bar Low AND bar Low is lower than previous bar Low.
Red Breakout (BO) = bar Close is lower than previous bar Close AND bar Low is lower than previous bar Low.
Red Inside Bar (IN) = bar High is lower than previous bar High AND bar Low is higher than previous bar Low.
The end column is the current open candle/bar.
The second from the end column is the last closed candle/bar.
The third from the end column is the second closed candle/bar.
The forth from the end column is the third closed candle/bar.
=============================================================
Also Includes candle countdown timer, of various candles. i.e. 4 hour, 1 hour, 15min, 5 min.
Smart Money Setup 01 [TradingFinder]Double Order Blocks Proof🔵 Introduction
The Price Action, styled as the "Smart Money Concept" or "SMC," was introduced by Mr. David J. Crouch in 2000 and is one of the most modern technical styles in the financial world. In financial markets, Smart Money refers to capital controlled by major market players (central banks, funds, etc.), and these traders can accurately predict market trends and achieve the highest profits.
In the "Smart Money" style, various types of "order blocks" can be traded. This indicator uses a type of "order block" originating from "BoS" (Breakout of Structure). The most important feature of this indicator is the confirmation of two order blocks.
🟣 Important
For example, after the first "BoS" and the formation of the first Order Block, if a second "BoS" occurs before touching the price of the first Order Block and the formation of the second Order Block, a trading setup with 2 order blocks is formed, which confirms the dominant market trend.
For a better understanding of this subject, see the explanations in the following two images.
Bullish Setup Details :
Bearish Setup Details :
🔵 How to Use
After adding the indicator to the chart, you should wait for the formation of the trading setup. You can observe different trading positions by changing the "Time Frame" and "Pivot Period." Generally, the higher the "Time Frame" and "Pivot Period," the more valid the formed setup is.
Bullish Setup Details on Chart :
Bearish Setup Details on Chart :
You can access the "Pivot Period" input through the settings.
ICT Donchian Smart Money Structure (Expo)█ Concept Overview
The Inner Circle Trader (ICT) methodology is focused on understanding the actions and implications of the so-called "smart money" - large institutions and professional traders who often influence market movements. Key to this is the concept of market structure and how it can provide insights into potential price moves.
Over time, however, there has been a notable shift in how some traders interpret and apply this methodology. Initially, it was designed with a focus on the fractal nature of markets. Fractals are recurring patterns in price action that are self-similar across different time scales, providing a nuanced and dynamic understanding of market structure.
However, as the ICT methodology has grown in popularity, there has been a drift away from this fractal-based perspective. Instead, many traders have started to focus more on pivot points as their primary tool for understanding market structure.
Pivot points provide static levels of potential support and resistance. While they can be useful in some contexts, relying heavily on them could provide a skewed perspective of market structure. They offer a static, backward-looking view that may not accurately reflect real-time changes in market sentiment or the dynamic nature of markets.
This shift from a fractal-based perspective to a pivot point perspective has significant implications. It can lead traders to misinterpret market structure and potentially make incorrect trading decisions.
To highlight this issue, you've developed a Donchian Structure indicator that mirrors the use of pivot points. The Donchian Channels are formed by the highest high and the lowest low over a certain period, providing another representation of potential market extremes. The fact that the Donchian Structure indicator produces the same results as pivot points underscores the inherent limitations of relying too heavily on these tools.
While the Donchian Structure indicator or pivot points can be useful tools, they should not replace the original, fractal-based perspective of the ICT methodology. These tools can provide a broad overview of market structure but may not capture the intricate dynamics and real-time changes that a fractal-based approach can offer.
It's essential for traders to understand these differences and to apply these tools correctly within the broader context of the ICT methodology and the Smart Money Concept Structure. A well-rounded approach that incorporates fractals, along with other tools and forms of analysis, is likely to provide a more accurate and comprehensive understanding of market structure.
█ Smart Money Concept - Misunderstandings
The Smart Money Concept is a popular concept among traders, and it's based on the idea that the "smart money" - typically large institutional investors, market makers, and professional traders - have superior knowledge or information, and their actions can provide valuable insight for other traders.
One of the biggest misunderstandings with this concept is the belief that tracking smart money activity can guarantee profitable trading.
█ Here are a few common misconceptions:
Following Smart Money Equals Guaranteed Success: Many traders believe that if they can follow the smart money, they will be successful. However, tracking the activity of large institutional investors and other professionals isn't easy, as they use complex strategies, have access to information not available to the public, and often intentionally hide their moves to prevent others from detecting their strategies.
Instantaneous Reaction and Results: Another misconception is that market movements will reflect smart money actions immediately. However, large institutions often slowly accumulate or distribute positions over time to avoid moving the market drastically. As a result, their actions might not produce an immediate noticeable effect on the market.
Smart Money Always Wins: It's not accurate to assume that smart money always makes the right decisions. Even the most experienced institutional investors and professional traders make mistakes, misjudge market conditions, or are affected by unpredictable events.
Smart Money Activity is Transparent: Understanding what constitutes smart money activity can be quite challenging. There are many indicators and metrics that traders use to try and track smart money, such as the COT (Commitments of Traders) reports, Level II market data, block trades, etc. However, these can be difficult to interpret correctly and are often misleading.
Assuming Uniformity Among Smart Money: 'Smart Money' is not a monolithic entity. Different institutional investors and professional traders have different strategies, risk tolerances, and investment horizons. What might be a good trade for a long-term institutional investor might not be a good trade for a short-term professional trader, and vice versa.
█ Market Structure
The Smart Money Concept Structure deals with the interpretation of price action that forms the market structure, focusing on understanding key shifts or changes in the market that may indicate where 'smart money' (large institutional investors and professional traders) might be moving in the market.
█ Three common concepts in this regard are Change of Character (CHoCH), and Shift in Market Structure (SMS), Break of Structure (BMS/BoS).
Change of Character (CHoCH): This refers to a noticeable change in the behavior of price movement, which could suggest that a shift in the market might be about to occur. This might be signaled by a sudden increase in volatility, a break of a trendline, or a change in volume, among other things.
Shift in Market Structure (SMS): This is when the overall structure of the market changes, suggesting a potential new trend. It usually involves a sequence of lower highs and lower lows for a downtrend, or higher highs and higher lows for an uptrend.
Break of Structure (BMS/BoS): This is when a previously defined trend or pattern in the price structure is broken, which may suggest a trend continuation.
A key component of this approach is the use of fractals, which are repeating patterns in price action that can give insights into potential market reversals. They appear at all scales of a price chart, reflecting the self-similar nature of markets.
█ Market Structure - Misunderstandings
One of the biggest misunderstandings about the ICT approach is the over-reliance or incorrect application of pivot points. Pivot points are a popular tool among traders due to their simplicity and easy-to-understand nature. However, when it comes to the Smart Money Concept and trying to follow the steps of professional traders or large institutions, relying heavily on pivot points can create misconceptions and lead to confusion. Here's why:
Delayed and Static Information: Pivot points are inherently backward-looking because they're calculated based on the previous period's data. As such, they may not reflect real-time market dynamics or sudden changes in market sentiment. Furthermore, they present a static view of market structure, delineating pre-defined levels of support and resistance. This static nature can be misleading because markets are fundamentally dynamic and constantly changing due to countless variables.
Inadequate Representation of Market Complexity: Markets are influenced by a myriad of factors, including economic indicators, geopolitical events, institutional actions, and market sentiment, among others. Relying on pivot points alone for reading market structure oversimplifies this complexity and can lead to a myopic understanding of market dynamics.
False Signals and Misinterpretations: Pivot points can often give false signals, especially in volatile markets. Prices might react to these levels temporarily but then continue in the original direction, leading to potential misinterpretation of market structure and sentiment. Also, a trader might wrongly perceive a break of a pivot point as a significant market event, when in fact, it could be due to random price fluctuations or temporary volatility.
Over-simplification: Viewing market structure only through the lens of pivot points simplifies the market to static levels of support and resistance, which can lead to misinterpretation of market dynamics. For instance, a trader might view a break of a pivot point as a definite sign of a trend, when it could just be a temporary price spike.
Ignoring the Fractal Nature of Markets: In the context of the Smart Money Concept Structure, understanding the fractal nature of markets is crucial. Fractals are self-similar patterns that repeat at all scales and provide a more dynamic and nuanced understanding of market structure. They can help traders identify shifts in market sentiment or direction in real-time, providing more relevant and timely information compared to pivot points.
The key takeaway here is not that pivot points should be entirely avoided or that they're useless. They can provide valuable insights and serve as a useful tool in a trader's toolbox when used correctly. However, they should not be the sole or primary method for understanding the market structure, especially in the context of the Smart Money Concept Structure.
█ Fractals
Instead, traders should aim for a comprehensive understanding of markets that incorporates a range of tools and concepts, including but not limited to fractals, order flow, volume analysis, fundamental analysis, and, yes, even pivot points. Fractals offer a more dynamic and nuanced view of the market. They reflect the recursive nature of markets and can provide valuable insights into potential market reversals. Because they appear at all scales of a price chart, they can provide a more holistic and real-time understanding of market structure.
In contrast, the Smart Money Concept Structure, focusing on fractals and comprehensive market analysis, aims to capture a more holistic and real-time view of the market. Fractals, being self-similar patterns that repeat at different scales, offer a dynamic understanding of market structure. As a result, they can help to identify shifts in market sentiment or direction as they happen, providing a more detailed and timely perspective.
Furthermore, a comprehensive market analysis would consider a broader set of factors, including order flow, volume analysis, and fundamental analysis, which could provide additional insights into 'smart money' actions.
█ Donchian Structure
Donchian Channels are a type of indicator used in technical analysis to identify potential price breakouts and trends, and they may also serve as a tool for understanding market structure. The channels are formed by taking the highest high and the lowest low over a certain number of periods, creating an envelope of price action.
Donchian Channels (or pivot points) can be useful tools for providing a general view of market structure, and they may not capture the intricate dynamics associated with the Smart Money Concept Structure. A more nuanced approach, centered on real-time fractals and a comprehensive analysis of various market factors, offers a more accurate understanding of 'smart money' actions and market structure.
█ Here is why Donchian Structure may be misleading:
Lack of Nuance: Donchian Channels, like pivot points, provide a simplified view of market structure. They don't take into account the nuanced behaviors of price action or the complex dynamics between buyers and sellers that can be critical in the Smart Money Concept Structure.
Limited Insights into 'Smart Money' Actions: While Donchian Channels can highlight potential breakout points and trends, they don't necessarily provide insights into the actions of 'smart money'. These large institutional traders often use sophisticated strategies that can't be easily inferred from price action alone.
█ Indicator Overview
We have built this Donchian Structure indicator to show that it returns the same results as using pivot points. The Donchian Structure indicator can be a useful tool for market analysis. However, it should not be seen as a direct replacement or equivalent to the original Smart Money concept, nor should any indicator based on pivot points. The indicator highlights the importance of understanding what kind of trading tools we use and how they can affect our decisions.
The Donchian Structure Indicator displays CHoCH, SMS, BoS/BMS, as well as premium and discount areas. This indicator plots everything in real-time and allows for easy backtesting on any market and timeframe. A unique candle coloring has been added to make it more engaging and visually appealing when identifying new trading setups and strategies. This candle coloring is "leading," meaning it can signal a structural change before it actually happens, giving traders ample time to plan their next trade accordingly.
█ How to use
The indicator is great for traders who want to simplify their view on the market structure and easily backtest Smart Money Concept Strategies. The added candle coloring function serves as a heads-up for structure change or can be used as trend confirmation. This new candle coloring feature can generate many new Smart Money Concepts strategies.
█ Features
Market Structure
The market structure is based on the Donchian channel, to which we have added what we call 'Structure Response'. This addition makes the indicator more useful, especially in trending markets. The core concept involves traders buying at a discount and selling or shorting at a premium, depending on the order flow. Structure response enables traders to determine the order flow more clearly. Consequently, more trading opportunities will appear in trending markets.
Structure Candles
Structure Candles highlight the current order flow and are significantly more responsive to structural changes. They can provide traders with a heads-up before a break in structure occurs
-----------------
Disclaimer
The information contained in my Scripts/Indicators/Ideas/Algos/Systems does not constitute financial advice or a solicitation to buy or sell any securities of any type. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
My Scripts/Indicators/Ideas/Algos/Systems are only for educational purposes!
VWAP & Breakout Volume ConfirmHow the TradingView Indicator Works (Explained Simply)
VWAP Line (Orange)
It plots the Volume Weighted Average Price for the day.
Price above VWAP = bullish zone
Price below VWAP = bearish zone
Volume Spike Detection (Red Triangle)
It calculates the average volume over the last 20 candles.
If the current volume is 1.5× that average, it plots a red triangle under the candle.
Helps confirm if a move has real momentum or not.
Breakout Confirmation (Green Label ‘BO’)
Checks if price breaks above the last 10-bar high (for upside breakout) or below the last 10-bar low (for downside breakout).
If a breakout happens and the volume spike is present, it plots a green “BO” label above the candle.
This tells you the breakout is strong and likely to follow through.
RDBRB Strategy with Filters + Cooldowns + LabelsRDBRB Strategy with Filters + Cooldowns
This script implements the RDBRB (Rally-Drop-Base-Retest-Breakout) strategy, a classic price action setup designed to identify structured trade opportunities using volume, volatility bands, and trend alignment. It’s ideal for traders looking for clean, rule-based entries across any timeframe.
🧠 Core Components
Rally & Drop Detection
Identifies short-term momentum shifts using moving average crossovers:
✅ Ra = Rally (bullish crossover)
🔻 Dr = Drop (bearish crossunder)
Base Formation
A statistical base is defined using a moving average with a standard deviation envelope (Upper/Lower BB). This forms the foundation for breakout or retest setups.
Retest Zone (RT)
When price returns to the lower band (but stays below the base), it suggests a potential re-accumulation or reaction zone before a breakout.
Breakout Confirmation (BO)
A breakout is validated when:
Price crosses above the upper band
Volume exceeds the 20-bar average by a threshold multiplier
RSI is above a bullish momentum level
Price is trending above the longer-term EMA
⏱️ Smart Cooldown Logic
Each signal (Rally, Drop, Retest, Breakout) has an independent cooldown timer to prevent multiple triggers within a short range, filtering out noise and duplicate signals:
Customizable cooldown periods via input settings
Ensures signals are meaningful and not clustered
💡 Visual Markers
All signals are shown as small, color-coded labels:
Ra : Green label below bar
Dr : Red label above bar
RT : Yellow label below bar
BO : Green breakout label below bar
Bands and base are plotted for structure reference.
🛠️ Customizable Settings
Cooldown periods for each signal type
MA lengths, volume and RSI thresholds
Trend filter and base calculation inputs
This script is ideal for price action traders who want a clean, structured method to trade consolidations and trend continuations while avoiding over-signaling. Use it on any timeframe and combine with higher-timeframe confirmation for best results.