ICT NEW YORK MIDNIGHT OPEN AND 8.30 AM OPENTHIS SCRPT SHOWS NEW YORK MIDNIGHT OPEN PRICE AND 8.30 AM OPEN PRICE (AM SESSION)
you can use this script in forex, indices and your platform timezone should be exchange market time or new york time
Tìm kiếm tập lệnh với "ict"
ICT EverythingVersion 1.0
Global Settings
• Timezone Selection
• Hide Indicator Above Specified Time
Thematic Override
• Override Colors For Dark Theme ( Colors Set for White Theme by Default )
• Override Session Highlighting Color
Session Options
• Show Historical Sessions
• Enable/Disable Session Highlighting
• Session Specific Visibility
• Session's Crucial Time Vertical Lines w/ Options
NY Midnight Line Options
• Show Historical NY Midnight Vertical Lines
• Midnight Verticle Line Options
• Show Historical NY Midnight Price Lines
• Midnight Price Line Options
Opening Price Line Options
• New York 8:30 AM Price Line Settings
• Equities Open 9:30 AM Price Line Settings
• Option to Display Historical Price Lines
HTF Levels
• Weekly Open
• Monthly Open
label Settings
• Show/Hide Label Text
• Show/Hide Label
Day of Week
• Show Day of Week at the bottom of chart w/ Time Co-ordinates Selection
••• Message Me For Link to Frequently Updated Version of This Indicator •••
ICT - high low indicatorthis script is for new traders who are now getting into ICT trading, simply turn it on and it marks the previous 3 daily highs and lows, 3 weekly highs and lows, and the 3 monthly highs and lows.
ict newyork kill zone for Indian timethis is a indicator for ict New York kill zone for India standard time
[KVA] ICT Dealing rangesNaive aproach of Dynamic Detection of Dealing Ranges:
The script dynamically identifies dealing ranges based on sequences of upward or downward price movements. It uses arrays to track the highest highs and lowest lows after detecting two consecutive up or down bars, a fundamental step towards understanding market structure and potential shifts in momentum.
ICT Concept: Order Blocks & Fair Value Gaps. This aspect can be linked to the identification of order blocks (bullish or bearish) and fair value gaps. Order blocks are essentially the last bearish or bullish candle before a significant price move, which this script could approximate by identifying the highs and lows of potential reversal zones.
Red and Green Ranges for Bullish and Bearish Movements:
The script separates these movements into red (bearish) and green (bullish) ranges, effectively categorizing potential areas of selling and buying pressure.
ICT Concept: Liquidity Pools. Red ranges could be indicative of areas where selling might occur, potentially leading to liquidity pools below these ranges. Conversely, green ranges might indicate potential buying pressure, with liquidity pools above. These areas are critical for ICT traders, as they often represent zones where price may return to "hunt" for liquidity.
Horizontal Lines for High and Low Points:
The indicator draws horizontal lines at the high and low points of these ranges, offering visual cues for significant levels.
ICT Concept: Breaker Blocks & Mitigation Sequences. The high and low points of these ranges can be seen as potential breaker blocks or areas for future mitigation sequences. In ICT terms, breaker blocks are areas where institutional orders have overwhelmed retail stop clusters, creating potential entry points for trend continuation or reversal. The high and low points marked by the indicator could serve as references for these sequences, where price might return to retest these levels.
Customizability and Historical Depth:
With inputs like rangePlot and maxBarsBack, the indicator allows for customization of the number of ranges to display and how far back in the chart history it looks to identify these ranges. This flexibility is crucial for tailoring the analysis to different trading strategies and timeframes.
ICT Concept: Market Structure Analysis. The ability to adjust the depth and number of ranges plotted caters to a detailed market structure analysis, an essential component of ICT methodology. Traders can adjust these parameters to better understand the distribution of buying and selling pressure over time and how actions have shaped price movements.
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
Opening Range Gap + Std Dev [starclique]The ICT Opening Range Gap is a concept taught by Inner Circle Trader and is discussed in the videos: 'One Trading Setup For Life' and 2023 ICT Mentorship - Opening Range Gap Repricing Macro
ORGs, or Opening Range Gaps, are gaps that form only on the Regular Trading Hours chart.
The Regular Trading Hours gap occurs between 16:15 PM - 9:29 AM EST (UTC-4)
These times are considered overnight trading, so it is useful to filter the PA (price action) formed there.
The RTH option is only available for futures contracts and continuous futures from CME Group.
To change your chart to RTH, first things first, make sure you’re looking at a futures contract for an asset class, then on the bottom right of your chart, you’ll see ETH (by default) - Click on that, and change it to RTH.
Now your charts are filtering the price action that happened overnight.
To draw out your gap, use the Close of the 4:14 PM candle and the open of the 9:30 AM candle.
How is this concept useful?
Well, It can be used in many ways.
---
How To Use The ORG
One of the ways you can use the opening range gap is simply as support and resistance
If we extend out the ORG from the example above, we can see that there is a clean retest of the opening range gap high after breaking structure to the upside and showing acceptance outside of the gap after consolidating within it.
The ORG High (4:14 Candle Close in this case) was used as support.
We then see an expansion to the upside.
Another way to implement the ORG is by using it as a draw on liquidity (magnet for price)
In this example, if we looked to the left, there was a huge ORG to the downside, leaving a massive gap.
The market will want to rebalance that gap during the regular trading hours.
The market rallies higher, rejects, comes down to clear the current days ORG low, then closes.
That is one example of how you can combine liquidity & ICT market structure concepts with Opening Range Gaps to create a story in the charts.
Now let’s discuss standard deviations.
---
Standard Deviations
Standard Deviations are essentially projection levels for ranges / POIs (Point of Interests)
By this I mean, if you have a range, and you would like to see where it could potentially expand to, you’d place your fibonacci retracement tool on and high and low of the range, then use extension levels to find specific price points where price might reject from.
Since 0 and 1 are your Range High and Low respectively, your projection levels would be something like 1.5, 2, 2.5, and 3, for the extension from your 1 Fib Level, and -0.5, -1, -1.5, and -2 for your 0 Fib level.
The -1 and 2 level produce a 1:1 projection of your range low and high, meaning, if you expect price to expand as much as it did from the range low to range high, then you can project a -1 and 2 on your Fib, and it would show you what ICT calls “symmetrical price”
Now, how are standard deviations relevant here?
Well, if you’ve been paying attention to ICT’s recent videos, you would’ve caught that he’s recently started using Standard Deviation levels on breakers.
So my brain got going while watching his video on ORGs, and I decided to place the fib on the ORG high and low and see what it’d produce.
The results were very interesting.
Using this same example, if we place our fib on the ORG High and Low, and add some projection levels, we can see that we rejected right at the -2 Standard Deviation Level.
---
You can see that I also marked out the EQ (Equilibrium, 50%, 0.5 of Fib) of the ORG. This is because we can use this level as a take profit level if we’re using an old ORG as our draw.
In days like these, where the gap formed was within a consolidation, and it continued to consolidate within the ORG zone that we extended, we can use the EQ in the same way we’d use an EQ for a range.
If it’s showing acceptance above the EQ, we are bullish, and expect the high of the ORG to be tapped, and vice versa.
---
Using The Indicator
Here’s where our indicator comes in play.
To avoid having to do all this work of zooming in and marking out the close and open of the respective ORG candles, we created the Opening Range Gap + Standard Deviations Indicator, with the help of our dedicated Star Clique coder, a1tmaniac.
With the ORG + STD DEV indicator, you will be able to view ORG’s and their projections on the ETH (Electronic Trading Hours) chart.
---
Features
Range Box
- Change the color of your Opening Range Gap to your liking
- Enable or disable the box from appearing using the checkbox
Range Midline
- Change the color of your Opening Range Gap Equilibrium
- Enable or disable the midline from appearing using the checkbox
Std. Dev
- Add whichever standard deviation levels you’d like.
- By default, the indicator comes with 0.5, 1, 1.5, and 2 standard deviation levels.
- Ensure that you add a comma ( , ) in between each standard deviation level
- Enable or disable the standard deviations from appearing using the opacity of the color (change to 0%)
Labels / Offset
- Adjust the offset of the label for the Standard Deviations
- Enable or disable the Labels from appearing using the checkbox
Time
- Adjust the time used for the indicators range
- If you’d like to use this for a Session or ICT Killzone instead, adjust the time
- Adjust the timezone used for the time referenced
- Options are UTC, US (UTC-4, New York Local Time) or UK (UTC+1, London Time)
- By default, the indicator is set to US
Buyside & Sellside Liquidity [LuxAlgo]The Buyside & Sellside Liquidity indicator aims to detect & highlight the first and arguably most important concept within the ICT trading methodology, Liquidity levels.
🔶 SETTINGS
🔹 Liquidity Levels
Detection Length: Lookback period
Margin: Sets margin/sensitivity for a liquidity level detection
🔹 Liquidity Zones
Buyside Liquidity Zones: Enables display of the buyside liquidity zones.
Margin: Sets margin/sensitivity for the liquidity zone boundaries.
Color: Color option for buyside liquidity levels & zones.
Sellside Liquidity Zones: Enables display of the sellside liquidity zones.
Margin: Sets margin/sensitivity for the liquidity zone boundaries.
Color: Color option for sellside liquidity levels & zones.
🔹 Liquidity Voids
Liquidity Voids: Enables display of both bullish and bearish liquidity voids.
Label: Enables display of a label indicating liquidity voids.
🔹 Display Options
Mode: Controls the lookback length of detection and visualization, where Present assumes last 500 bars and Historical assumes all data available to the user
# Visible Levels: Controls the amount of the liquidity levels/zones to be visualized.
🔶 USAGE
Definitions of Liquidity refer to the availability of orders at specific price levels in the market, allowing transactions to occur smoothly.
In the context of Inner Circle Trader's teachings, liquidity mainly relates to stop losses or pending orders and liquidity level/pool, highlighting a concentration of buy or sell orders at specific price levels. Smart money traders, such as banks and other large institutions, often target these liquidity levels/pools to accumulate or distribute their positions.
There are two types of liquidity; Buyside liquidity and Sellside liquidity .
Buyside liquidity represents a level on the chart where short sellers will have their stops positioned, and Sellside liquidity represents a level on the chart where long-biased traders will place their stops.
These areas often act as support or resistance levels and can provide trading opportunities.
When the liquidity levels are breached at which many stop/limit orders are placed have been traded through, the script will create a zone aiming to provide additional insight to figure out the odds of the next price action.
Reversal: It’s common that the price may reverse course and head in the opposite direction, seeking liquidity at the opposite extreme.
Continuation: When the zone is also broken it is a sign for continuation price action.
It's worth noting that ICT concepts are specific to the methodology developed by Michael J. Huddleston and may not align with other trading approaches or strategies.
🔶 DETAILS
Liquidity voids are sudden changes in price when the price jumps from one level to another. Liquidity voids will appear as a single or a group of candles that are all positioned in the same direction. These candles typically have large real bodies and very short wicks, suggesting very little disagreement between buyers and sellers. The peculiar thing about liquidity voids is that they almost always fill up.
🔶 ALERTS
When an alert is configured, the user will have the ability to be notified in case;
Liquidity level is detected/updated.
Liquidity level is breached.
🔶 RELATED SCRIPTS
ICT-Concepts
ICT-Macros
Imbalance-Detector
Weekly Power 3Did you know there is a simple line you can place on your chart to immediately make the weeks price action more understandable? Its called the Weekly Open Line. And its the opening price of the trading week. It was created by The Inner Circle Trader (ICT) and incorporates another one of his concepts called Power 3.
The Weekly Power 3 indicator takes the idea of the Weekly Open Line and builds a suite of intelligent and dynamic tools around it that will immediately help the user to start understanding how price moves within the trading week context.
Features
Static Weekly Open Line
Intelligent Days of the Week Text
Dynamic Weekly High Line
Dynamic Weekly Low Line
Weekly High Candle Label (highest candle of the week)
Weekly Low Candle Label (lowest candle of the week)
Best Odds High of the Week Zone Line & Text
Best Odds Low of the Week Zone Line & Text
Components
The primary feature is a line that forms on the weekly open price and grows as the week progresses. Additionally, lines are created for the highest and lowest prices of the week so the weekly profile can be easily recognized. A dynamic label marks each weeks highest and lowest point. This will automatically move as prices expand throughout the week.
A very useful component of the Weekly Power 3 indicator is the Days of the Week text. Each Day of the Week text is displayed in the middle of each trading day and also the user can specify in the Settings whether to position the text at the high or low of the weeks price range. Additionally, there is a Buffer setting that allows the user to move the Days of the Week text up or down to prevent chart overlapping.
To help the user visualize the span of time with the best odds of forming the weekly highs or weekly lows, according to ICT, this indicator adds at static line and optional label into the charts future that projects the span from Tuesday’s London Open to Wednesday’s New York. Having a static line out in the future on your chart really helps to picture where price could be drawn to based solely around time of the week.
Premise
ICT says that the weekly open price is the most important level that price reacts to across the five days of a trading week. If the week profile is expected to be bullish then price many times goes below the weekly open line at the beginning of the week and above it later in the week (a.k.a Bullish Power 3). Consequently, if the week is anticipated to be a bearish week, price often times starts the week high and then goes lower throughout the week (a.k.a Bearish Power 3).
ICT always specifies that the weekly high or weekly low have the best odds of forming between the Tuesday’s London Open and Wednesday’s New York Open.
Inputs and Style
Like all scripts publish by Infinity Trading, everything in the indicator is customizable by the user. Every label, line, or text can be individually toggled ON or OFF so the user has complete control over the elements they want displayed on their chart. All of the lines can be individually adjusted by color, line style, or line width. The color and text color on the high and low of the week labels can be individually changed. The text in the chart (day of the week & best odds zones text) each have a “buffer” value. This allows the user to individually move the text up or down on the chart to declutter the chart. And lastly, the day of the week text can be positioned above or below the weeks price action and the text will dynamically move higher or lower as price expands throughout the week.
Previous weeks have all of the Weekly Power 3 markups so it's easy to study past price action and identify trends.
Gallery
View the weeks price action
View multiple weeks price action
Visualize future price action
Range Projections [TFO]The purpose of this indicator is to see how often price reached certain standard deviations from a selected time range. The inspiration for this was to study ICT (Inner Circle Trader) concepts regarding the Central Bank Dealer’s Range (CBDR), which is 2:00 pm - 8:00 pm New York local time according to ICT Core Content. However, the idea and data collection could certainly be applied to any range of time.
The main settings of this indicator are session time, range type, and the standard deviation filter. The session time is the window of price that will be utilized for range projections. The range type can be either body or wick (on the current timeframe). The standard deviation filter is used to eliminate sessions whose ranges (from high to low) are greater than the desired/input number of standard deviations from all available session ranges.
In this example, the time range is set to 16:00 - 20:00, or the time between the New York session close and the Asia session open. Our standard deviations are set to 1, 2, 2.5, and 4. Now, by taking this session’s price range and extrapolating these extensions from the initial range, we can use these levels to see if and how price interacts with them before the next 16:00 - 20:00 session.
Furthermore, we can enable the Data Table to analyze how often price trades to these levels for the sessions that are deemed valid (determined by the standard deviation filter). This time our standard deviations are set to 1, 2, 3, and 4.
This concept can theoretically be applied to any window of time. ICT has mentioned that, in instances where the CBDR is too large, the Asia range may be used instead. We can observe that the indicator behaves the same way when we change the session to the Asia range, 20:00 - 00:00.
Liquidity Engulfing & Displacement [MsF]Japanese below / 日本語説明は英文の後にあります。
-------------------------
*This indicator is based on upslidedown's "Liquidity Engulfing Candles ". It's a very cool indicator. thank you.
It has 2 functions: show the Liquidity Engulfing on HTF and candle color change when displacement occurs.
=== Function description ===
1. Liquidity Engulfing on HTF
This indicator gives Liquidity Engulfing signals not only for the current candle, but also for H4 and H1 on HTF.
You can use that a bullish engulfing on H1 is a BOS on m5 and on H4 is a BOS on m15. It uses the theory of stop hunt from ICT.
Also, It's possible to fire alert.
2. Displacement
Change the color display of the candlesticks when a bullish candleStick or bearish candleStick is attached. Furthermore, by enabling the "Require FVG" option, you can easily discover the FVG (Fair Value Gap). It is a very useful function for ICT trading.
When H1 candle takes liquidity from one side and moves with an explosive move to the other side of the previous candle (displacement), it creates break of market structure on M5. Entry on discount FVG or OTE with stop loss at or below the stop hunt wick.
=== Parameter description ===
- Liquidity engulfing candles(LEC) SETTING
- Show H1 LEC … Whether to show LEC for H1
- Show H4 LEC … Whether to show LEC for H4
- Show Current LEC … Whether to show LEC for current timeframe
- Apply Stop Hunt Wick Filter … Require candle wick into prior candle retracement zone
- Apply Close Filter … Require LL/HH on candle in order to print a valid engulfing signal
- DISPLACEMENT SETTING
- Require FVG … Draw only when FVG occurs
- Displacement Type … Displacement from open to close? or from high to low?
- Displacement Length … Period over which to calculate the standard deviation
- Displacement Strength … The larger the number, the stronger the displacement detected
-------------------------
2つの機能があります: 上位足のLiquidity engulfing(流動性獲得)を表示することと、大きな変位が発生したときにローソク足の色を変更することです。
=== 機能説明 ===
1. 上位足のLiquidity engulfing
このインジケーターは、現在のローソク足だけでなく、上位足の H4 および H1 に対してもLiquidity engulfingシグナルを提供します。
H1はm5、H4はm15での使用を推奨します。これはICTのストップハント理論を活用しています。また、アラートを発することも可能です。
2. 変位(DISPLACEMENT)
大きな陽線、陰線を付けた場合に、そのローソク足をカラー表示を変更します。
さらに"Require FVG"オプションを有効にすることで、FVG(Fair Value Gap)を容易に発見することができます。ICTトレードにを行うにあたり大変有用な機能となっています。
=== パラメータの説明 ===
- Liquidity engulfing candles(LEC) SETTING
- Show H1 LEC … H1のLECを表示するかどうか
- Show H4 LEC … H4のLECを表示するかどうか
- Show Current LEC … 現在の期間の LEC を表示するかどうか
- Apply Stop Hunt Wick Filter … ハラミ足、もしくは包み足になっている場合のみに検知させる
- Apply Close Filter … 1つ前のローソクよりも終値で超えていた場合のみに検知させる
- DISPLACEMENT SETTING
- Require FVG … FVG発生時のみ描画する
- Displacement Type … openからcloseまでの変位か?highからlowまでの変位か?
- Displacement Length … 標準偏差を計算する期間
- Displacement Strength … 変位の強さ(数字が大きいほど強い変位を検出)
AsianRange and KillZonesAsia Range Shadow Box and ICT Killzones
If you watch ICT on youtube you will know what to do with this :-)
I had found a lot of great ideas but none of them completely had what I was personally looking for so I put all of the great ideas I had found and added my own twist to it.
I wanted a easily customizable indicator that did the following
- Showed the Asia Range (customizable time)
- Allowed Asia range high and low to be extended
- Fill the asia range or just have it outlined
- The ability to have 4 customizable zones (default to ICT kill zones) but you can make them whatever you want
- Ability to turn off various zones if you want (Maybe you just want a New York Session and thats it)
I also place a "Max timeframe to display" - Personally I don't want this showing on anything over a 60min chart so you can adjust that parameter (in minutes) to your liking.
This was also fully converted to pine v4
I hope in a future revision to take use of the new "box" feature to get a cleaner box around Asia session.
Premium & Discount Delta Volume [BigBeluga]Premium & Discount Delta Volume is an advanced volume-based tool that helps traders identify zones of market imbalances by using the concepts of premium and discount pricing, commonly taught by ICT trader. It calculates and highlights periods where the market is trading at a premium (selling pressure is stronger) or a discount (buying pressure is stronger) and dynamically plots these zones over time. The indicator also calculates delta volume between buying and selling within these zones, showing shifts in market sentiment and potential areas for reversals or continuations.
🔵 IDEA
The Premium & Discount Delta Volume indicator is rooted in the ICT (Inner Circle Trader) concept of premium and discount zones. This concept divides the price action into two key zones:
Premium Zone : This area is where the market is trading at a level where sellers dominate, leading to more selling pressure. The idea is that the price is overvalued, and a potential drop could occur as the market reverts to a balanced state.
Discount Zone : This area is where the market is undervalued, with buyers dominating and applying upward pressure. Prices in this area often indicate opportunities to buy into strength as the market moves back to equilibrium.
At the core of the indicator is the delta volume, which measures the difference between buying and selling pressure within the premium and discount zones. When the delta volume is negative, it signals a downtrend with more selling pressure, while a positive delta volume signals an uptrend with more buying pressure. These zones and their associated delta values update dynamically, providing traders with real-time insights into market strength and potential price reversals.
The equilibrium in the middle of the premium and discount zones represents the balance point between buyers and sellers. When price moves away from equilibrium, it either enters the premium zone (potentially overbought) or the discount zone (potentially oversold), helping traders make more informed decisions based on volume and price structure.
🔵 KEY FEATURES & USAGE
Premium & Discount Zones:
The indicator automatically identifies and plots premium and discount zones on the chart. Premium zones count only negative (selling) volume, while discount zones count only positive (buying) volume. These zones are key areas of interest for identifying potential price reversals or continuations based on volume pressure.
Dynamic Delta Volume Calculation:
The indicator calculates delta volume between the premium and discount zones, showing the imbalance between buyers and sellers. A positive delta volume inside the discount zone suggests strong buying pressure, while a negative delta inside the premium zone suggests strong selling pressure. This helps traders quickly identify trends or market exhaustion.
Up Trend:
Down Trend:
Real-time Updates & Equilibrium Line:
The zones update dynamically every 100 bars or after price crosses them, ensuring that traders always have the most relevant market data. The equilibrium line in the middle of the zones helps traders gauge whether the market is balanced or moving into overbought (premium) or oversold (discount) territory.
Macro and Local Period Calculations:
The indicator allows traders to customize two different periods for analysis: a smaller lookback period (e.g., 50 bars) for short-term price action and a macro period (e.g., 200 bars) for larger trends. Each period has its own premium and discount zones, allowing for a multi-timeframe view of market strength.
Macro:
Both:
Color-coded background for Volume Pressure:
The background color of the smaller period premium and discount box changes based on delta volume. A positive delta turns the background blue, indicating higher buy pressure, while a negative delta turns the background red, signaling higher sell pressure.
🔵 CUSTOMIZATION
Toggle Premium & Discount: Traders can choose to display support and resistance levels based on the high and low points of the premium and discount zones.
Premium & Discount Lookback Period: Traders can adjust the lookback period to define the length of price action to be analyzed for premium and discount zones. A shorter period focuses on more recent market activity, while a longer period provides a broader view of trends.
Macro Highs/Lows Period: The indicator also offers a macro lookback period for identifying larger market trends and key levels of buying or selling volume.
Toggle Macro Levels: Macro levels help identify long-term price extremes, and traders can toggle this feature on or off as needed.
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.
Volume Gaps and ImbalancesThis Pine script indicator is designed to visually depict price inefficiencies, as identified by Volume Imbalances (VI) or Gaps. A Volume Gap is a scenario where the wicks of two successive candles don’t intersect, while an Imbalance occurs when only the wicks overlap, leaving the bodies apart. These zones of inefficiency frequently act as magnets for price, with the market striving rebalance in accordance with ICT principles.
Relevance:
Volume Gaps/Imbalances are zones of highly inefficient price delivery as per ICT concepts and represent a very strong draw to price. Price will often seek to rebalance those zones to ensure efficient price delivery. Consequently, these zones can provide good targets for entries in the opposite direction or take profit targets for previous entries in the direction of the Gap/Imbalance.
How It Works:
The indicator keeps track of all Gaps/Imbalances from the beginning of the available history. It automatically removes all mitigated Gaps/Imbalances, which are situations where the price has at least reached the bottom of a bullish gap or the top of a bearish gap.
On the last bar, the most recent valid gaps are highlighted with a box drawn from the start to the end of the gap. The start of a bullish gap is determined by the highest price of the previous candle’s open or close, while for bearish gaps, it’s the lowest price of the previous candle’s open or close. Conversely, the end of a bullish gap is the lowest price of the current candle’s open or close, and for bearish gaps, it’s the highest price of the current candle’s open or close.
To enhance the indicator’s speed and minimize chart noise, only the most recent gaps will be displayed, up to the limit set in the indicator settings.
Each displayed VI/GAP will indicate the size of the imbalance in ticks. For imbalances greater than 3 ticks, which represent stronger draws of liquidity, the color transparency will be reduced, and the text will be made more prominent. Volume Gaps are also marked with a 🧲 emoji for easy visual identification.
The indicator will automatically extend the boxes representing valid imbalances to the current bar for as long as the imbalance is not mitigated.
If an imbalance has been tapped, but not mitigated, the indicator will append 🚩emoji to denote that the imbalance has been partially mitigated and may no longer have as strong of a draw for price.
Configurability:
A user may configure the number of imbalances to show, the setting applies to bullish/bearish imbalances individually. This setting can be set to any value from 1 – 50.
Appearance wise, color, style and color transparency of each box representing an imbalance can be configured. The imbalance box label can be configured by setting the text size, along with the vertical & horizontal alignment.
What makes this indicator different:
Designed with high performance in mind, to reduce impact on chart render time.
Only keeps valid imbalances on the chart, with a limit on the # drawn
Indicates the size of the gap and provides visual markets to denote stronger, weaker and partially mitigated gaps
Propulsion Blocks | Flux Charts💎 GENERAL OVERVIEW
Introducing our new Propulsion Blocks indicator! This new indicator can find & render ICT's propulsion blocks in the current ticker. It's highly customizable with detection, invalidation and style settings. For more information, please visit the "HOW DOES IT WORK ?" section.
Features of the new Propulsion Blocks indicator :
Render Bullish & Bearish Propulsion Blocks
Customizable Algorithm
Enable / Disable Historic Zones
Visual Customizability
📌 HOW DOES IT WORK ?
Order blocks occur when there is a high amount of market orders exist on a price range. It is possible to find order blocks using specific formations on the chart. One of which this indicator uses requires a large engulfing candlestick right after another one of the opposite direction. Then if the price comes back to retest the area that two candlesticks create, then it's an order block pattern.
Propulsion blocks are a specific type of order block used in the trading methodology. They build on the concept of order blocks and aim to identify potential areas for strong price movements. They are detected when a candlestick wicks to any existing order block, retesting it. Then a strong momentum in the direction of the order block is needed for the propulsion block to get created. Check this example :
You can use them as entry / exit points, or for confirmations for your trades. For example, a successful retest attempt to a bullish propulsion block might hint a strong bullish momentum. This indicator works best when used together with other ICT concepts.
🚩UNIQUENESS
Propulsion blocks can help traders identify key levels in a chart, and can be used mainly for confirmation. This indicator can identify and show them automatically in your chart, and provides customization settings for order & propulsion block detection and invalidation. Another capability of the indicator is that it combines overlapping order & propulsion blocks so you will have a clean look at the chart without any overlapping zones.
⚙️SETTINGS
1. General Configuration
Show Historic Zones -> This setting will hide invalidated propulsion blocks if enabled.
Max Distance To Last Bar -> This setting defines the maximum range that the indicator will find propulsion blocks to the past. Higher options will make older zones visible.
Zone Invalidation -> Select between Wick & Close price for Order Block & Propulsion Block Invalidation.
Swing Length -> Swing length is used when finding order block formations. Smaller values will result in finding smaller order blocks.
Hourly Opening PriceThe Inner Circle Trader has noted that the Opening Price of every Hourly candle can be used in a Power Of 3 (PO3) context.
If Bullish, buy BELOW the hourly open.
If Bearish, sell ABOVE the hourly open.
The Power of 3 ICT model also know as "AMD" is a transformative trading strategy, ingeniously designed to streamline your time analyzing charts by focusing on three pivotal phases in market behavior: accumulation, manipulation, and distribution.
The ICT Power of Three Model dissects the market maker’s algorithm for price delivery into three pivotal actions: Accumulation, Manipulation, and Distribution. Accumulation involves smart money gathering positions before a price surge, while manipulation sees the market creating deceptive movements to trigger stops. Finally, distribution occurs as smart money offloads positions, often catching less informed traders off-guard. This strategy is a critical tool for traders to understand market makers’ maneuvers and to strategically position themselves in the market.
This indicator plots a line at the opening price of each hour and extends it on the chart for the duration of the hour. Each hour starts a new line.
You also have the option of extending the midnight opening price line across the entire trading day.
Investify360 ICT IndicatorThe Investify360 ICT Indicator is designed to follow the ICT (Inner Circle Trader) strategy. It provides essential buy and sell signals based on price movements relative to a simple moving average (SMA). The indicator is built to be beginner-friendly with clear labels and color-coded signals.
Key Features
Simple Moving Average (SMA):
The script calculates a simple moving average based on a user-defined period (length), defaulting to 14 periods. This moving average helps smooth out price data and identify trends.
Buy and Sell Signals:
Buy Signal: A buy signal is generated when the current price (src, defaulting to the close price) crosses above the SMA. This event is typically interpreted as a potential upward trend.
Sell Signal: A sell signal is generated when the current price crosses below the SMA. This event is often interpreted as a potential downward trend.
These signals are visually represented on the chart with up and down labels respectively.
Labels and Colors:
Buy Signal: Displayed with an up label (BUY) in green color.
Sell Signal: Displayed with a down label (SELL) in red color.
The colors for these signals can be customized through the script inputs (buyColor and sellColor).
Beginner-Friendly Labels:
To assist beginners, the script includes a label at the start of the chart indicating the position of the moving average line (MA Line). This label is shown on the first bar to clarify the purpose of the plotted line.
Plotting the Moving Average:
The SMA is plotted on the chart with a yellow line, making it easily distinguishable. The moving average line helps traders visualize the trend direction.
Market Structure (Intrabar) [LuxAlgo]The Market Structure (Intrabar) indicator is designed to automatically detect and highlight real-time intrabar market structures, a core component of the Smart Money Concepts methodology.
🔶 USAGE
The proposed indicator gives a detailed picture of the most recent candle lower timeframe trends, highlighting market structures within them.
This can be particularly useful to assess the price dynamic within the most recent candle. For example, we can see how pronounced a trend is by the number of opposite bullish/bearish market structures formed within the candle.
Users can select the intrabar timeframe of interest from the "Intrabar Timeframe" setting, using a timeframe significantly lower than the chart timeframe will return more intrabar candles and potentially more market structures.
🔹 Dashboard
Users have access to a dashboard returning useful statistics such as the number of formed CHoCH's and BOS's from the intrabar prices. These can be indicative of how predominant a trend is within the intrabar data or if there exist multiple trends.
🔶 DETAILS
Market structures allow determining trend continuations as well as trend reversals in the market through two distinct structures:
🔹 Change of Character (CHoCH)
A change of character (CHoCH) refers to a shift in the market behavior of a security that is driven by changes in the underlying supply and demand dynamics. CHoCH's are indicative of confirmed reversals.
🔹 Break of Structure (BoS)
The break of structure (BoS) refers to the point at which a key level of support or resistance is broken. BOS's are indicative of confirmed trend continuations.
🔶 SETTINGS
🔹Inside the Bar Market Structure
Intrabar Timeframe: Lower timeframe setting option, if set to 'Auto' the script will determine the lower timeframe based on the chart timeframe.
Intrabar Market Structure, Length: Toggles the visibility of the break of structures and change of characters. Length defines the detection length of the swing levels.
Intrabar Swing Levels: Toggles the visibility of the swing levels, including a color customization option for highs and lows.
Intrabar Statistics: Toggles the visibility of the dashboard. Some further statistical details are presented in the tooltips of the table cells
🔹 General
Market Structure Colors: Color customization option for the break of structure and change of character lines and labels.
Intrabar Candle Colors: Color customization option for intrabar candles.
Intrabar Candles Horizontal Offset: Adjusting the intrabar candles horizontal position
Dashboard: Dashboard position and size customization option
🔶 LIMITATIONS
Please note that seconds-based intervals are available for premium and professional plan holders, which implies that the seconds-based intervals usage of the indicator may not be available for all users depending on their subscription plan.
🔶 RELATED SCRIPTS
Smart-Money-Concepts
ICT-Concepts
Liquidity-Finder ICT / SMCIn the context of ICT and the Smart Money Concept, liquidity is likely viewed as a crucial factor for determining the strength and sustainability of a market move. Smart Money is often associated with large institutional traders who have the ability to influence liquidity.
Liquidity Sweep:
A liquidity sweep in this context might involve Smart Money intentionally executing trades across various price levels to assess market depth and liquidity. This information can be used to identify potential areas of interest for Smart Money to initiate or exit positions without causing significant price disruptions.
Stop Hunt:
Stop hunting is a concept that Smart Money traders may employ to deliberately trigger stop orders in the market. By doing so, they can create temporary price movements that allow them to accumulate or liquidate positions at more favorable prices before the market reacts.
Smart Money Concept (SMC):
The Smart Money Concept revolves around the idea that large institutional traders (Smart Money) have superior information and resources compared to retail traders. Understanding the behavior of Smart Money, as taught in ICT and SMC, involves analyzing market dynamics, order flow, and liquidity to make more informed trading decisions.
Liquidating:
Liquidating refers to the process of selling or closing out existing positions. In the context of Smart Money, the term could imply that institutional traders are actively managing their positions, either taking profits or cutting losses strategically based on their analysis of market conditions.
The Indicator
The Indicator show open liquidity as solid lines and liquidates liquidity as dashed lines
Is able to send alerts for liquidity level was liquidated, liquidity level was dipped or the next close is on the other side
Session Sweeps [LuxAlgo]The Session Sweeps indicator combines ICT-based features for a complete trading methodology involving market sessions, market structure, and fair value gaps to find optimal entry conditions for trading price action.
Traders frequently tend to place stop/limit orders at the high and low points of major trading sessions such as Asian (Tokyo), European (London), and North American (New York), resulting in the establishment of liquidity pools at those particular levels. The Session Sweeps indicator is crafted to recognize and underscore occurrences of session sweeps or liquidity sweeps during these major trading sessions.
🔶 USAGE
Default settings utilize major forex trading sessions, yet users can select their preferred opening and closing times, rename the sessions, or adjust the colors. It's important to note that the specified times for each session align with the respective local timezones: Asian (Tokyo) UTC+9, European (London) UTC, and North American (New York) UTC-5.
If the price briefly crosses either the highest or lowest point of a market session. These movements, aiming at triggering stop losses, suggest potential shifts in the market direction. Detecting such movements is the fundamental purpose and core functionality of the script.
🔹Market Structure Shifts
A Market Structure Shift refers to a change in market direction, either from an uptrend to a downtrend or vice versa. A part of a common entry model when using session sweeps is waiting for the formation of a CHoCH after a session sweep.
🔹Fair Value Gaps
A Fair Value Gap (FVG) holds particular appeal for price action traders, emerging when there are inefficiencies or imbalances in the market, often a result of uneven buying and selling activity. The underlying concept of FVGs is that the market tends to revisit these inefficiencies before resuming its trajectory in alignment with the initial impulsive move.
After the formation of a CHoCH traders can enter a position when the price enters the area of a Fair Value Gap (FVG).
🔹Setup Examples
This entry setup is commonly used by ICT traders and is shared for informational & educational purposes only.
Long Positions (5-Minute Timeframe):
Wait for the previous session's low to be swept.
Look for a Bullish Choch.
Find a Bullish FVG formed by or before the Choch.
Entry Point: At the FVG.
Take Profit (TP): At the session high or aim for a 1:2 Risk-Reward Ratio.
Stop Loss (SL): At the session low or nearest Swing Low.
Take partial profits at intermediate swings, but don’t shift SL prematurely.
Short Positions (5-Minute Timeframe):
Wait for the previous session's high to be swept.
Look for a Bearish Choch.
Find a FVG formed by or before the Choch.
Entry Point: At the FVG.
Take Profit (TP): At the previous session's low or aim for a 1:2 RR.
Stop Loss (SL): At the session high or nearest Swing High.
Take partial profits at intermediate swings, but don’t shift SL prematurely.
🔶 SETTINGS
🔹Session Sweeps
Buyside Sweep Zones, Color, and Margin: toggles the visibility of bullside sweep zones, customizes the associated color, and sets the margin value defining the range of a bullside sweep zone.
Sellside Sweep Zones, Color, and Margin: toggles the visibility of sell-side sweep zones, customizes the associated color, and sets the margin value defining the range of a sell-side sweep zone.
Sweep Margin Length: specifies the maximum allowed length of a sweep zone invalidation, the length over which the price slightly invalidated the margin range.
Detect Sweeps Once per Session: if enabled will detect only once a sweep zone within a session.
Hide Fake Sweep Zones, and Color: controls the visibility and color of the fake sweep zones.
🔹Sessions
Session (Asia, London, New York AM, and New York PM), Start Time, and End Time: enables or disables the visibility of the named market session range, and customization of the session hours.
Color: color customization option of the named session.
Extend Max/Min: extends the highest and lowest price levels of the named session until the end of the next enabled session. This option is recommended to be enabled when sweep zone detection is activated to observe the relationship between the sweep zone and previous session extreme levels.
Extend Mid: extends the mean price levels of the named session until the end of the next enabled session. The extended line may serve as potential support and resistance levels.
Fill: enables/disables background coloring of the named session.
New York DST | London DST: enabling this option initiates Daylight Saving Time (DST) for New York or London. Note: Daylight Saving Time is not applied to the Asian (Tokyo) session.
Sessions Extreme Lines | Sessions Names: toggles the visibility of the highest and lowest price levels, as well as the names, for all market sessions.
Session Lines Width: sets the width of the lines for all sessions.
Session Fill Transparency: sets the background color transparency of the range for all sessions.
🔹Market Structure Shifts
Market Structure Shifts: toggles the visibility of market structure shifts, also known as change of character (CHoCH).
Detection Length: specifies the detection length.
Market Structure Shifts; Bull & Bear: color customization options.
🔹Fair Value Gaps
Fair Value Gaps: toggles the visibility of the fair value gaps.
Fair Value Gap Width Filter: specifies the filtering multiplier; additional details can be found in the tooltip of the respective input option.
Bullish & Bearish Imbalance: color customization options.
🔹Sessions Tabular View
Sessions Tabular View: toggles the visibility of the tabular view of the sessions, displaying date &time, status, and countdown counter.
Hide if not Forex Market Instrument: checks the market and automatically enables/disables the option based on the market instrument.
Table Text Size & Position: size and placement customization options
🔶 LIMITATIONS
Please be aware that fair value gap filtering cannot be applied to the initial 144 candles (with a fixed-length ATR) as the ATR value necessary for filtering won't be available during this period.
🔶 RELATED SCRIPTS
Buyside-Sellside-Liquidity
Sessions
Liquidity-Voids-FVG
Thank you to our community for the recommendation of this script. To explore additional conceptual scripts and related content, we invite you to visit >>> LuxAlgo-Scripts .
One Setup for Life ICTGuided by ICT tutoring, I create this versatile 'One Trading Set Up For Life' indicator
This indicator shows a different way of viewing the "Highs and Lows" of Previous Sessions, drawing from the current day until 09:30 AM, the time at which the Highs and Lows of the previous day's sessions can be taken into consideration for a Reversal or for a Take profit.
Levels tested after 9.30am will be blocked so you have a good and clear view of the levels affected
Timing Session =
London: 02:00 to 05:00
New York: 9.30am to 12.30pm
Lunch: 12.30pm to 1pm
PM Session: 1.30pm to 4pm
The user has the possibility to:
- Choose to view sessions or not
- Choose to show levels from previous sessions
- Choose to show today's session levels
- Choose between 08:30 and 09:30 the starting time for the Liquidity taken
- Choose to view High and Low only from the previous day
- See both the name of the Sessions and the price of the levels
The indicator must be used as ICT shows in its concepts, the indicator takes into consideration both previous sessions and today's sessions, and the session levels can be used both for a reversal and for a possible Take Profit like the example here under
Reversal =
Possible Take Profit =
If something is not clear, comment below and I will reply as soon as possible.