ICT (Inner Circle Trader) Indicator

Category: Indicators By: @toniyecla Created: October 10, 2024, 10:28 AM
October 10, 2024, 10:28 AM
Indicators
4 Comments

1. Introduction

The ICT (Inner Circle Trader) market analysis is known for identifying key moments within trading sessions that offer great opportunities due to volatility and liquidity. This ICT indicator is designed to highlight those time windows, known as Kill Zones, where price movements tend to be more pronounced. These periods correspond to the start of major global trading sessions: Asia, London, New York, and the London close.

Additionally, the ICT indicator also plots zones known as Silver Bullets, which are specific moments within sessions where the market tends to make a significant move. Another important tool in ICT analysis is the identification of Fair Value Gaps (FVG), areas where price moves quickly leaving regions with little trading, indicating imbalance and possible reversal zones.

2. Description of the ICT Indicator

The ICT indicator aims to provide visual information about the most relevant trading sessions of the day, helping traders identify areas with a higher probability of significant movements. The main features are:

  • Kill Zones: Four key periods of the day are highlighted, each representing the start of a major trading session.
    • Asian Kill Zone: From 08:00 PM to 10:00 PM (NY UTC -4).
    • London Kill Zone: From 02:00 AM to 05:00 AM (NY UTC -4).
    • New York Kill Zone: From 07:00 AM to 09:00 AM (NY UTC -4).
    • London Close Kill Zone: From 10:00 AM to 12:00 PM (NY UTC -4).
  • Silver Bullet: These are smaller windows of opportunity within the London and New York sessions, where a sharp price movement can be detected in a short period.
    • London Open Silver Bullet: 03:00 AM – 04:00 AM (NY UTC -4).
    • AM Session Silver Bullet: 10:00 AM – 11:00 AM (NY UTC -4).
    • PM Session Silver Bullet: 02:00 PM – 03:00 PM (NY UTC -4).
  • Fair Value Gaps (FVG): These are areas on the chart where price hasn’t interacted within a range of bars, creating an imbalance. These zones are automatically plotted and allow traders to identify potential entry or reversal points.

3. Features and Elements of the Indicator

Kill Zones

The Kill Zones are times of day when institutional traders are most active, often leading to higher volatility in prices. This indicator automatically highlights these periods so that traders can stay alert for potential trading opportunities.

  • Asian Kill Zone: This zone spans from 8:00 PM to 10:00 PM New York time, which corresponds to the opening of the Asian session. It’s a period where liquidity accumulates before the London session.
  • London Kill Zone: This period activates from 2:00 AM to 5:00 AM New York time, marking the start of the London session, considered one of the most volatile times of the day.
  • New York Kill Zone: It stretches from 7:00 AM to 9:00 AM New York time, just before the New York Stock Exchange opens. It’s a key time for volatility due to high institutional trading activity.
  • London Close Kill Zone: This zone activates from 10:00 AM to 12:00 PM New York time, when the London session approaches its close, and European institutions finalize their trades, often causing sharp price movements.

Silver Bullet

The Silver Bullets are smaller periods within the Kill Zones where rapid movements with little retracement occur. Both the London and New York sessions are especially prone to these moves, and they are marked on the chart for traders to be ready for entry opportunities.

Fair Value Gaps (FVG)

The concept of Fair Value Gaps is essential to ICT analysis. These zones are created when the market moves quickly, leaving price areas untraded, indicating an imbalance. The ICT indicator automatically identifies these zones on the chart.

bullish FVG occurs when the price rises sharply, leaving a gap between the low of bar 3 and the high of bar 1. Conversely, a bearish FVG is created when the price drops rapidly, leaving a gap between the high of bar 3 and the low of bar 1.

4. Configuration and Customization

The ICT indicator is highly customizable, allowing traders to adjust various settings to suit their needs:

  • diferenciahoraria: This setting adjusts the time difference between the platform and New York (UTC -4), adapting to the user’s geographical location.
  • drawbackground: Enables or disables the background colors that indicate the Kill Zones, providing a clear visual representation of these periods on the chart.
  • drawareas: Activates the display of specific areas for Kill Zones and Silver Bullets, outlining the exact time and price range.
  • drawsignals: Enables visual signals, showing text and boxes that identify the Kill Zones and Silver Bullets.
  • drawclosinglevels: This option displays post-close price levels, showing lines at key prices after the close of major sessions.
  • rangofvg: Defines the minimum size for identifying a Fair Value Gap. If the gap between the high and low exceeds this value, the indicator will mark it on the chart.
  • rangosegmentosfvg: Allows the division of FVGs into smaller segments, facilitating analysis within these zones.
  • opacidad: Controls the transparency of drawn areas and backgrounds, allowing the user to adjust visibility based on their preference.

5. Practical Application

This indicator is especially useful for traders following the ICT strategy. The clear visual representation of Kill Zones, combined with Silver Bullets and Fair Value Gaps, allows traders to make informed decisions during key market moments. Below are some examples of how to use the indicator:

  • During the Asian session: If the indicator marks a Kill Zone during the Asian session and price shows accumulation within an FVG, it could be a good opportunity to prepare a trade for the London session.
  • At the New York open: The New York Kill Zone is known for its high volatility. Identifying a Silver Bullet during this period may offer an excellent opportunity to take advantage of a sharp, significant move.

6. Conclusion

The ICT indicator is a powerful tool for traders who follow Inner Circle Trader concepts. By visually highlighting key volatility zones, Silver Bullets, and Fair Value Gaps, the indicator helps traders identify opportunities more clearly. With its multiple customization options, this indicator adapts to individual trader needs, providing dynamic and clear visual analysis.

This indicator is ideal for use in combination with other technical analysis tools, and its flexibility allows it to be integrated into various trading strategies.

// Author: toniyecla - contact@rescommunesomnium.com

// basado en los conceptos de The Inner Circle Trader - https://www.youtube.com/@InnerCircleTrader

diferenciahoraria = 6
drawbackground = 1
drawareas = 1
drawsignals = 1
drawclosinglevels=1
rangofvg = 0
rangosegmentosfvg = 4
drawfvg=1

once fvg = 1
once opacidad = 1
once NbBar = 1
MyDay=openday
dayminutes = 1440*(MyDay-MyDay[1])
MyHour=openhour
hourminutes = 60*(MyHour-MyHour[1])
MyMin=openminute
barminutes = MyMin - MyMin[1] + hourminutes + dayminutes
barminutes=abs(barminutes)
Mybarminutes = lowest[NbBar](barminutes)[1]

if (Mybarminutes <= 60 and opensecond = 0) then

periodos = 60 / Mybarminutes

if (opensecond <> opensecond[1]) then
periodos = 60 * 4
endif

//// KILL ZONES

// ICT Asian Kill Zone (08:00 PM - 10:00 PM, NY UTC -4)
asian = 22 + diferenciahoraria
// ICT London Kill Zone (02:00 AM - 05:00 AM, NY UTC -4)
london = 5 + diferenciahoraria
// ICT New York Kill Zone (07:00 AM - 09:00 AM, NY UTC -4)
ny = 9 + diferenciahoraria
// ICT London Close Kill Zone (10:00 AM - 12:00 PM, NY UTC -4)
londonclose = 12 + diferenciahoraria

if (asian > 23) then
asian = asian - 24
endif

if (london > 23) then
london = london - 24
endif

if (ny > 23) then
ny = ny - 24
endif

if (londonclose > 23) then
londonclose = londonclose - 24
endif

// BACKGROUND

if drawbackground then
if (hour[1] = asian - 2 or hour[1] = asian - 1) then
backgroundcolor(0, 0, 0, 16 * opacidad)
endif
if (hour[1] = london - 3 or hour[1] = london - 2 or hour[1] = london - 1) then
backgroundcolor(0, 64, 0, 24 * opacidad)
endif
if (hour[1] = ny - 2 or hour[1] = ny - 1) then
backgroundcolor(0, 0, 64, 32 * opacidad)
endif
if (hour[1] = londonclose - 2 or hour[1] = londonclose - 1) then
backgroundcolor(0, 64, 0, 24 * opacidad)
endif
endif

// AREAS

if drawareas then
if (hour[1] = asian and minute[1] = 0) or (hour[1] = london and minute[1] = 0) or (hour[1] = ny and minute[1] = 0) or (hour[1] = londonclose and minute[1] = 0) then
if (hour[1] = london) then
x0 = barindex[periodos * 3]
y0 = highest[periodos * 3](high[1])
x1 = barindex[1]
y1 = lowest[periodos * 3](low[1])
else
x0 = barindex[periodos * 2]
y0 = highest[periodos * 2](high[1])
x1 = barindex[1]
y1 = lowest[periodos * 2](low[1])
endif

DRAWRECTANGLE(x0, y0, x1, y1) coloured(255, 255, 255, 96) bordercolor(255, 255, 255, 0)
endif
endif

// SIGNAL

if drawsignals then
if (IsLastBarUpdate = 1) then
if (hour[1] = asian - 2 or hour[1] = asian - 1) then
DRAWRECTANGLE(-5, -24, -138, -40) coloured(255, 255, 255, 255) bordercolor(255, 255, 255, 0) anchor(TOPRIGHT)
drawtext("ASIAN KILL ZONE", -71, -31, SansSerif, Standard, 8) coloured(0, 0, 0, 255) anchor(TOPRIGHT)
endif
if (hour[1] = london - 3 or hour[1] = london - 2 or hour[1] = london - 1) then
DRAWRECTANGLE(-5, -24, -138, -40) coloured(255, 255, 255, 255) bordercolor(255, 255, 255, 0) anchor(TOPRIGHT)
drawtext("LONDON KILL ZONE", -71, -31, SansSerif, Standard, 8) coloured(0, 0, 0, 255) anchor(TOPRIGHT)
endif
if (hour[1] = ny - 2 or hour[1] = ny - 1) then
DRAWRECTANGLE(-5, -24, -138, -40) coloured(255, 255, 255, 255) bordercolor(255, 255, 255, 0) anchor(TOPRIGHT)
drawtext("NEW YORK KILL ZONE", -71, -31, SansSerif, Standard, 8) coloured(0, 0, 0, 255) anchor(TOPRIGHT)
endif
if (hour[1] = londonclose - 2 or hour[1] = londonclose - 1) then
DRAWRECTANGLE(-5, -24, -138, -40) coloured(255, 255, 255, 255) bordercolor(255, 255, 255, 0) anchor(TOPRIGHT)
drawtext("LONDON CLOSE KILL ZONE", -71, -31, SansSerif, Standard, 8) coloured(0, 0, 0, 255) anchor(TOPRIGHT)
endif
endif
endif

//// SILVER BULLET

// The London Open Silver Bullet (03:00 AM - 04:00 AM, NY UTC -4)
london = 4 + diferenciahoraria
// The AM session Silver Bullet (10:00 AM - 11:00 AM, NY UTC -4)
am = 11 + diferenciahoraria
// The PM session Silver Bullet (02:00 PM - 03:00 PM, NY UTC -4)
pm = 15 + diferenciahoraria

if (london > 23) then
london = london - 24
endif

if (am > 23) then
am = am - 24
endif

if (pm > 23) then
pm = pm - 24
endif

// BACKGROUND

if drawbackground then
if (hour[1] = london - 1) then
backgroundcolor(255, 255, 0, 24 * opacidad)
endif
if (hour[1] = am - 1) then
backgroundcolor(255, 255, 0, 24 * opacidad)
endif
if (hour[1] = pm - 1) then
backgroundcolor(255, 255, 0, 24 * opacidad)
endif
endif

// AREAS

if drawareas then
if (hour[1] = london and minute[1] = 0) or (hour[1] = am and minute[1] = 0) or (hour[1] = pm and minute[1] = 0) then
x0 = barindex[periodos]
y0 = highest[periodos](high[1])
x1 = barindex[1]
y1 = lowest[periodos](low[1])

DRAWRECTANGLE(x0, y0, x1, y1) coloured(0, 0, 0, 0) bordercolor(0, 0, 0, 64) STYLE(dottedline1, 1)
endif
endif

// SIGNAL

if drawsignals then
if (IsLastBarUpdate = 1) then
if (hour[1] = london - 1) then
DRAWRECTANGLE(-5, -5, -138, -21) coloured(0, 0, 0, 0) bordercolor(0, 0, 0, 255) STYLE(dottedline1, 1) anchor(TOPRIGHT)
drawtext("LONDON SILVER BULLET", -71, -12, SansSerif, Standard, 8) coloured(0, 0, 0, 255) anchor(TOPRIGHT)
endif
if (hour[1] = am - 1) then
DRAWRECTANGLE(-5, -5, -138, -21) coloured(0, 0, 0, 0) bordercolor(0, 0, 0, 255) STYLE(dottedline1, 1) anchor(TOPRIGHT)
drawtext("AM SESSION SILVER BULLET", -71, -12, SansSerif, Standard, 8) coloured(0, 0, 0, 255) anchor(TOPRIGHT)
endif
if (hour[1] = pm - 1) then
DRAWRECTANGLE(-5, -5, -138, -21) coloured(0, 0, 0, 0) bordercolor(0, 0, 0, 255) STYLE(dottedline1, 1) anchor(TOPRIGHT)
drawtext("PM SESSION SILVER BULLET", -71, -12, SansSerif, Standard, 8) coloured(0, 0, 0, 255) anchor(TOPRIGHT)
endif
endif
endif

//// FVG

if drawfvg then
if (hour[1] = 9 and minute[2] = 0) or (hour[1] = 15 and minute[2] = 30 + Mybarminutes) then
fvg = 0
endif

alcista = close[2] > open[2]

if (alcista) then
maximo = low[1]
minimo = high[3]

if (maximo-minimo > rangofvg) then
if (fvg = 1) then
drawrectangle(barindex[2], maximo, barindex + 1, minimo) coloured (0,157,157,32) bordercolor (0,153,153,0)
if (maximo-minimo > rangosegmentosfvg) then
drawsegment(barindex[2], maximo - (maximo - minimo) / 2, barindex + 1, maximo - (maximo - minimo) / 2) coloured (255,255,255,96)
drawsegment(barindex[2], maximo - (maximo - minimo) / 4, barindex + 1, maximo - (maximo - minimo) / 4) coloured (255,255,255,96)
drawsegment(barindex[2], minimo + (maximo - minimo) / 4, barindex + 1, minimo + (maximo - minimo) / 4) coloured (255,255,255,96)
endif
else // opening fvg
drawrectangle(barindex[2], maximo, barindex + 10000, minimo) coloured (0,157,157,24) bordercolor (0,153,153,0)
if (maximo-minimo > rangosegmentosfvg) then
drawsegment(barindex[2], maximo - (maximo - minimo) / 2, barindex + 1, maximo - (maximo - minimo) / 2) coloured (255,255,255,96)
drawsegment(barindex[2], maximo - (maximo - minimo) / 4, barindex + 1, maximo - (maximo - minimo) / 4) coloured (255,255,255,96)
drawsegment(barindex[2], minimo + (maximo - minimo) / 4, barindex + 1, minimo + (maximo - minimo) / 4) coloured (255,255,255,96)
endif
endif

if (maximo-minimo > 1.5 or maximo < 10000) then // dibuja también el siguiente en caso de ser muy pequeño, <10000 evita el SP500
fvg = 1
endif
endif
else
maximo = low[3]
minimo = high[1]

if (maximo-minimo > rangofvg) then
if (fvg = 1) then
drawrectangle(barindex[2], maximo, barindex + 1, minimo) coloured (255,0,0,32) bordercolor (255,102,102,0)
if (maximo-minimo > rangosegmentosfvg) then
drawsegment(barindex[2], maximo - (maximo - minimo) / 2, barindex + 1, maximo - (maximo - minimo) / 2) coloured (255,255,255,96)
drawsegment(barindex[2], maximo - (maximo - minimo) / 4, barindex + 1, maximo - (maximo - minimo) / 4) coloured (255,255,255,96)
drawsegment(barindex[2], minimo + (maximo - minimo) / 4, barindex + 1, minimo + (maximo - minimo) / 4) coloured (255,255,255,96)
endif
else // opening fvg
drawrectangle(barindex[2], maximo, barindex + 10000, minimo) coloured (255,0,0,24) bordercolor (255,102,102,0)
if (maximo-minimo > rangosegmentosfvg) then
drawsegment(barindex[2], maximo - (maximo - minimo) / 2, barindex + 1, maximo - (maximo - minimo) / 2) coloured (255,255,255,96)
drawsegment(barindex[2], maximo - (maximo - minimo) / 4, barindex + 1, maximo - (maximo - minimo) / 4) coloured (255,255,255,96)
drawsegment(barindex[2], minimo + (maximo - minimo) / 4, barindex + 1, minimo + (maximo - minimo) / 4) coloured (255,255,255,96)
endif
endif

if (maximo-minimo > 1.5 or maximo < 10000) then // dibuja también el siguiente en caso de ser muy pequeño, <10000 evita el SP500
fvg = 1
endif
endif
endif
endif

//// CLOSING LEVELS

if drawclosinglevels then
// linea en precio post-cierre a las 17.45 hora europea
if (hour[1] = 17 and minute[1] = 45 + Mybarminutes) or (hour[1] = 18 and minute[1] = 0 and Mybarminutes = 15) then
drawray(barindex[2], close[2], barindex[1], close[2]) coloured(0, 128, 0, 64) STYLE(dottedline3, 1)
endif

// linea en precio post-cierre a las 16.15 hora americana
if (hour[1] = 22 and minute[1] = 15 + Mybarminutes) then
drawray(barindex[2], close[2], barindex[1], close[2]) coloured(0, 0, 128, 64) STYLE(dottedline3, 1)
endif
endif

endif

return

Download
Filename: ICT-1.itf
Downloads: 283
@toniyecla New
Currently debugging life, so my bio is on hold. Check back after the next commit for an update.
Author’s Profile

Comments

Logo Logo
Loading...