Global Trading Sessions Overlay Indicator

Global Trading Sessions Overlay Indicator

Global Trading Sessions Overlay

Introduction

The Global Trading Sessions Overlay indicator is designed to help traders visualize the active trading hours of the major financial markets: Asia, Europe, and the USA. By displaying the opening, closing, and lunch break periods of these key markets, the indicator enhances the trader’s ability to monitor market dynamics based on time zones. This tool is particularly useful for identifying high-volume periods and overlaps between major sessions, where liquidity is often at its peak.

Indicator Description

This indicator highlights the different trading sessions—Asia (Tokyo), Europe, and the USA—directly on the price chart. It also provides visual markers for the lunch breaks in each market, and the overlaps between European and US sessions.

By using different background colors, the trader can quickly identify the active market at any given time:

  • Black for the Asian session.
  • Green for the European session.
  • Blue for the American session.

Moreover, during periods of overlap between the US and European markets, a distinct blue-green overlay will appear, indicating higher potential trading activity.

Configuration

The Global Trading Sessions Overlay indicator provides several customizable options to tailor it to your specific needs:

  • EspHorarioVerano: A Boolean setting that determines whether to account for daylight savings time in Spain. This ensures the Asian and European sessions start and end at the correct times.
  • NYHorarioVerano: Similar to the Spanish daylight savings option, this Boolean flag adjusts the US session based on whether New York is observing daylight savings.
  • LuchTime: This option controls whether or not to highlight the lunch breaks in the Asian, European, and US sessions. Lunch breaks are generally periods of lower trading activity and are shown with a lower-opacity background color.
  • Opacidad: This variable adjusts the transparency of the background colors for each session, making it easier to blend the indicator with your existing chart setup. A higher value increases the opacity, while a lower value makes the background more transparent.

Colors and Visual Markers

Each trading session is marked by a specific color, providing a quick and clear visual cue for traders:

  • Asian Session (Tokyo): Displayed in black with varying opacity levels to distinguish between normal trading hours and lunch breaks. The session starts at 01:00 or 02:00 depending on the Spanish daylight savings setting, and lunch is indicated by a lighter shade of black.
  • European Session: The European trading hours are shown with a green background, starting at 09:00 and ending at 17:30. A brief lunch period, if enabled, is represented by a lighter green color from 13:00 to 13:02.
  • US Session: The US session is represented by a blue background. Depending on the daylight savings settings for New York, the session starts at either 14:30 or 15:30, with a lunch break in lighter blue from 16:45 to 18:30 or 17:45 to 19:30.
  • Overlap between European and US Sessions: When the US and European sessions overlap, a blue-green background appears, marking this period as a highly active time for trading.

Conclusion

The Global Trading Sessions Overlay is a powerful tool for traders who want to stay aware of market activity across different time zones. By clearly marking the key trading sessions and lunch breaks, this indicator makes it easier to plan trades during times of peak liquidity and volume. The customizable options provide flexibility to adjust the visuals according to personal preferences, and the session overlap highlight is particularly helpful for identifying high-activity periods.

Share this

Risk disclosure:

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

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

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

  1. Alai-n • 6 days ago #

    Thank you

  2. @toniyecla • 6 days ago #

    Una pequeña actualización: esta tercera versión marca el HIGH y el LOW de la sesión de ASIA con una línea

    // Author: toniyecla – contact@rescommunesomnium.com

    // VARIABLES A AÑADIR
    // EspHorarioVerano (boolean) false
    // NYHorarioVerano (boolean) false
    // LunchTime (boolean) true
    // AsianMaxMin (boolean) false

    // DEFPARAM DrawOnLastBarOnly = True
    ONCE opacidad = 1

    // ASIA (solo Tokio)

    if EspHorarioVerano then
    ONCE AsianStart = 020000
    ONCE AsianEnd = 080000
    ONCE AsianLunchStart = 043000
    ONCE AsianLunchEnd = 053000
    else
    ONCE AsianStart = 010000
    ONCE AsianEnd = 070000
    ONCE AsianLunchStart = 033000
    ONCE AsianLunchEnd = 043000
    endif

    ONCE AsianSession = 0
    ONCE AsianHigh = 0
    ONCE AsianLow = 999999
    ONCE AsianBarindex = 999999

    if time > AsianStart and time <= AsianEnd then
    AsianSession = 1
    AsianHigh = max(AsianHigh, high)
    AsianLow = min(AsianLow, low)
    AsianBarindex = min(AsianBarindex, barindex[1])

    backgroundcolor(0, 0, 0, 16 * opacidad)
    endif

    if LunchTime then
    if time > AsianLunchStart and time <= AsianLunchEnd then
    backgroundcolor(0, 0, 0, 8 * opacidad)
    endif
    endif

    if AsianMaxMin and time > AsianEnd and AsianSession = 1 then
    drawsegment(AsianBarindex, AsianHigh, barindex, AsianHigh) coloured(0, 0, 0, 64)
    drawsegment(AsianBarindex, AsianLow, barindex, AsianLow) coloured(0, 0, 0, 64)

    AsianSession = 0
    AsianHigh = 0
    AsianLow = 999999
    AsianBarindex = 999999
    endif

    // EUROPE

    ONCE EuropeStart = 090000
    ONCE EuropeEnd = 173000
    ONCE EuropeLunchStart = 130000
    ONCE EuropeLunchEnd = 130200

    if (time > EuropeStart and time <= EuropeEnd) then
    backgroundcolor(0, 64, 0, 24 * opacidad)
    endif

    if (LunchTime) then
    if time > EuropeLunchStart and time <= EuropeLunchEnd then
    backgroundcolor(0, 64, 0, 16 * opacidad)
    endif
    endif

    // USA

    if (EspHorarioVerano = NYHorarioVerano) then
    ONCE USAStart = 153000
    ONCE USAEnd = 220000
    ONCE USALunchStart = 174500
    ONCE USALunchEnd = 193000
    else
    ONCE USAStart = 143000
    ONCE USAEnd = 210000
    ONCE USALunchStart = 164500
    ONCE USALunchEnd = 183000
    endif

    if (time > USAStart and time <= USAEnd) then
    backgroundcolor(0, 0, 64, 32 * opacidad)
    endif

    // horario estimado NYSE no hace pausa oficial para comer
    if (LunchTime) then
    if time > USALunchStart and time <= USALunchEnd then
    backgroundcolor(0, 0, 64, 16 * opacidad)
    endif
    endif

    // OVERLAPS

    if time > USAStart and time <= EuropeEnd then
    backgroundcolor(0, 48, 64, 32 * opacidad)
    endif

    RETURN

  3. @toniyecla • 6 days ago #

    captura:

    https://www.prorealcode.com/wp-content/uploads/2024/10/sesiones_v3.png

  4. @toniyecla • 6 days ago #

    y más opciones: añade una línea también en sesiones EUROPA y USA (configurable) y un texto o leyenda:

  5. @toniyecla • 6 days ago #

    // Author: toniyecla – contact@rescommunesomnium.com

    // VARIABLES
    // EspHorarioVerano (boolean) false
    // NYHorarioVerano (boolean) false
    // LunchTime (boolean) true
    // AsianMaxMin (boolean) false
    // EuropeMaxMin (boolean) false
    // USAMaxMin (boolean) false

    // DEFPARAM DrawOnLastBarOnly = True
    ONCE opacidad = 1

    // ASIA (solo Tokio)

    if EspHorarioVerano then
    ONCE AsianStart = 020000
    ONCE AsianEnd = 080000
    ONCE AsianLunchStart = 043000
    ONCE AsianLunchEnd = 053000
    else
    ONCE AsianStart = 010000
    ONCE AsianEnd = 070000
    ONCE AsianLunchStart = 033000
    ONCE AsianLunchEnd = 043000
    endif

    ONCE AsianSession = 0
    ONCE AsianHigh = 0
    ONCE AsianLow = 999999
    ONCE AsianBarindex = 999999

    if time > AsianStart and time <= AsianEnd then
    AsianSession = 1
    AsianHigh = max(AsianHigh, high)
    AsianLow = min(AsianLow, low)
    AsianBarindex = min(AsianBarindex, barindex[1])

    backgroundcolor(0, 0, 0, 16 * opacidad)
    endif

    if LunchTime then
    if time > AsianLunchStart and time <= AsianLunchEnd then
    backgroundcolor(0, 0, 0, 8 * opacidad)
    endif
    endif

    if AsianMaxMin and time > AsianEnd and AsianSession = 1 then
    drawsegment(AsianBarindex, AsianHigh, barindex, AsianHigh) coloured(0, 0, 0, 64)
    drawsegment(AsianBarindex, AsianLow, barindex, AsianLow) coloured(0, 0, 0, 64)

    pos = (barindex-AsianBarindex)/2
    if pos > 0 then
    drawtext(“ASIAN SESSION”, barindex[round(pos)], AsianHigh+16, Dialog, Standard, 8) coloured(0, 0, 0, 128)
    endif

    AsianSession = 0
    AsianHigh = 0
    AsianLow = 999999
    AsianBarindex = 999999
    endif

    // EUROPE

    ONCE EuropeStart = 090000
    ONCE EuropeEnd = 173000
    ONCE EuropeLunchStart = 130000
    ONCE EuropeLunchEnd = 130200

    ONCE EuropeSession = 0
    ONCE EuropeHigh = 0
    ONCE EuropeLow = 999999
    ONCE EuropeBarindex = 999999

    if (time > EuropeStart and time <= EuropeEnd) then
    EuropeSession = 1
    EuropeHigh = max(EuropeHigh, high)
    EuropeLow = min(EuropeLow, low)
    EuropeBarindex = min(EuropeBarindex, barindex[1])

    backgroundcolor(0, 64, 0, 24 * opacidad)
    endif

    if (LunchTime) then
    if time > EuropeLunchStart and time <= EuropeLunchEnd then
    backgroundcolor(0, 64, 0, 16 * opacidad)
    endif
    endif

    if EuropeMaxMin and time > EuropeEnd and EuropeSession = 1 then
    drawsegment(EuropeBarindex, EuropeHigh, barindex, EuropeHigh) coloured(0, 0, 0, 64)
    drawsegment(EuropeBarindex, EuropeLow, barindex, EuropeLow) coloured(0, 0, 0, 64)

    pos = (barindex-EuropeBarindex)/2
    if pos > 0 then
    drawtext(“EUROPE SESSION”, barindex[round(pos)], EuropeHigh+16, Dialog, Standard, 8) coloured(0, 0, 0, 128)
    endif

    EuropeSession = 0
    EuropeHigh = 0
    EuropeLow = 999999
    EuropeBarindex = 999999
    endif

    // USA

    if (EspHorarioVerano = NYHorarioVerano) then
    ONCE USAStart = 153000
    ONCE USAEnd = 220000
    ONCE USALunchStart = 174500
    ONCE USALunchEnd = 193000
    else
    ONCE USAStart = 143000
    ONCE USAEnd = 210000
    ONCE USALunchStart = 164500
    ONCE USALunchEnd = 183000
    endif
    ONCE USASession = 0
    ONCE USAHigh = 0
    ONCE USALow = 999999
    ONCE USABarindex = 999999

    if (time > USAStart and time <= USAEnd) then
    USASession = 1
    USAHigh = max(USAHigh, high)
    USALow = min(USALow, low)
    USABarindex = min(USABarindex, barindex[1])

    backgroundcolor(0, 0, 64, 32 * opacidad)
    endif

    // horario estimado NYSE no hace pausa oficial para comer
    if (LunchTime) then
    if time > USALunchStart and time <= USALunchEnd then
    backgroundcolor(0, 0, 64, 16 * opacidad)
    endif
    endif

    if USAMaxMin and time > USAEnd and USASession = 1 then
    drawsegment(USABarindex, USAHigh, barindex, USAHigh) coloured(0, 0, 0, 64)
    drawsegment(USABarindex, USALow, barindex, USALow) coloured(0, 0, 0, 64)

    pos = (barindex-USABarindex)/2
    if pos > 0 then
    drawtext(“USA SESSION”, barindex[round(pos)], USAHigh+16, Dialog, Standard, 8) coloured(0, 0, 0, 128)
    endif

    USASession = 0
    USAHigh = 0
    USALow = 999999
    USABarindex = 999999
    endif

    // OVERLAPS

    if time > USAStart and time <= EuropeEnd then
    backgroundcolor(0, 48, 64, 32 * opacidad)
    endif

    RETURN

avatar
Register or

Likes

avatar avatar avatar
Related users ' posts
Suzu Yuk Regarding line68, //-- with indicator "properties", add coloured fill between euroOFF and...
manual_ice As far as I know, it is not possible to include "fill" inside an indicator. But, since ve...
rama what is oohline
Vonasi From the indicator description above: 'The space between sessions can be either blank or hav...
amitoverseas40 Hi Vonasi, would you be kind enough to provide an indicator to only displays the wicks i.e. ...
denmar Awesome. Thank you.
hartgeld Hallo Atxeel, sehr interessanter Code, habe das installiert und funktioniert. Danke! Kannst ...
atxeel Hallo hartgeld, die Ziele sind schlicht, bspw. die Range beträgt 10 Punkte, dann ist das Zie...
AlexWoe89 Hi, thanks for the code. Do you have an idea, if you can also draw pre-market data on char...
Thomas Hello swapping. Very good idea. Can I use and modify the code? I would like to add a few mor...
Razz Hello swapping the indicator is very good! Can you tell me how I can add 2 lines in the dist...
swapping Hello wanjpt, I do not see how to do it because the calculation is for 12 candles of 5mn onl...
wanjpt Thanks swapping.
Thomas @wanjpt https://www.prorealcode.com/prorealtime-indicators/opening-range-eur-with-close-and...

Top