Skip to content
UTC --:--:-- Your time --:-- Checking market
Blogs

Forex Market Session Indicator Download

Pradip FX · · 4 min read

Last updated

A Forex Market Session Indicator is a trading tool that displays the active trading sessions on your chart, helping you identify when major global forex markets are open.

//@version=5
indicator("FX Market Sessions - Nepal Time (Auto Box Start)", overlay=true, max_boxes_count=500)

// Inputs for sessions (in UTC+5:45)
showAsian  = input.bool(true, "Show Asian Session Box")
showLondon = input.bool(true, "Show London Session Box")
showNY     = input.bool(true, "Show New York Session Box")

asianSession  = input.session("0000-0915", "Asian Session (UTC+5:45)")
londonSession = input.session("1215-2015", "London Session (UTC+5:45)")
nySession     = input.session("1745-2345", "New York Session (UTC+5:45)")

// Colors
asianColor  = input.color(color.new(color.orange, 80), "Asian Background Color")
asianBorder = input.color(color.new(color.orange, 0), "Asian Border Color")

londonColor  = input.color(color.new(color.green, 80), "London Background Color")
londonBorder = input.color(color.new(color.green, 0), "London Border Color")

nyColor     = input.color(color.new(color.blue, 80), "New York Background Color")
nyBorder    = input.color(color.new(color.blue, 0), "New York Border Color")

// Check if timeframe is Daily or higher (to prevent boxes from covering entire chart)
isDailyOrHigher = timeframe.in_seconds() >= 86400  // 86400 seconds = 1 day

// Detect sessions (exclude Daily and higher timeframes)
inAsian  = not isDailyOrHigher and not na(time(timeframe.period, asianSession, "UTC+5:45"))
inLondon = not isDailyOrHigher and not na(time(timeframe.period, londonSession, "UTC+5:45"))
inNY     = not isDailyOrHigher and not na(time(timeframe.period, nySession, "UTC+5:45"))

// Asian session vars
var float asianHigh = na
var float asianLow = na
var box   asianBox = na

// London session vars
var float londonHigh = na
var float londonLow = na
var box   londonBox = na

// NY session vars
var float nyHigh = na
var float nyLow = na
var box   nyBox = na

// ---- Asian Session ----
if showAsian
    if inAsian
        if na(asianBox)
            asianHigh := high
            asianLow := low
            asianBox := box.new(time, asianHigh, time, asianLow, xloc=xloc.bar_time, bgcolor=asianColor, border_color=asianBorder)
        else
            asianHigh := math.max(asianHigh, high)
            asianLow := math.min(asianLow, low)
            box.set_top(asianBox, asianHigh)
            box.set_bottom(asianBox, asianLow)
            box.set_right(asianBox, time)
    else
        if not na(asianBox)
            box.set_right(asianBox, time)
            asianBox := na

// ---- London Session ----
if showLondon
    if inLondon
        if na(londonBox)
            londonHigh := high
            londonLow := low
            londonBox := box.new(time, londonHigh, time, londonLow, xloc=xloc.bar_time, bgcolor=londonColor, border_color=londonBorder)
        else
            londonHigh := math.max(londonHigh, high)
            londonLow := math.min(londonLow, low)
            box.set_top(londonBox, londonHigh)
            box.set_bottom(londonBox, londonLow)
            box.set_right(londonBox, time)
    else
        if not na(londonBox)
            box.set_right(londonBox, time)
            londonBox := na

// ---- New York Session ----
if showNY
    if inNY
        if na(nyBox)
            nyHigh := high
            nyLow := low
            nyBox := box.new(time, nyHigh, time, nyLow, xloc=xloc.bar_time, bgcolor=nyColor, border_color=nyBorder)
        else
            nyHigh := math.max(nyHigh, high)
            nyLow := math.min(nyLow, low)
            box.set_top(nyBox, nyHigh)
            box.set_bottom(nyBox, nyLow)
            box.set_right(nyBox, time)
    else
        if not na(nyBox)
            box.set_right(nyBox, time)
            nyBox := na

What It Shows

The indicator typically highlights four main trading sessions:

  • Sydney session (Asian-Pacific market)
  • Tokyo session (Asian market)
  • London session (European market)
  • New York session (North American market)

These sessions are usually displayed as colored boxes, vertical lines, or shaded areas on your price chart, making it easy to see which markets are currently active.

Why Traders Use It

Different sessions have distinct characteristics:

  • Volatility patterns – The London and New York sessions typically see the most price movement, while Sydney and Tokyo tend to be quieter
  • Liquidity levels – More traders active means tighter spreads and better trade execution
  • Session overlaps – When London and New York overlap (usually 8am-12pm EST), you often see the highest volume and volatility
  • Currency pair behavior – EUR/USD is most active during London/NY hours, while AUD/JPY moves more during Asian sessions

Practical Application

Traders use these indicators to:

  • Time their entries when their preferred pairs are most active
  • Avoid trading during low-liquidity periods when spreads widen
  • Identify potential breakout opportunities at session opens
  • Plan their trading schedule around specific market hours

The indicator automatically adjusts for your local timezone, so you always know which sessions are active relative to your clock.

For session timing click here

Learn more: who we are · the risk disclaimer · contact us.

Educational content, not financial advice. Leveraged trading can lose more than your deposit.

Leave a Reply