frien_dd
Pine Script Rookie
Pine Script Rookie
Posts: 7
Joined: December 11th, 2020
Location: United Kingdom

Symbol Exchange time Syncing to indicator

Good afternoon all,

I have been working on the below script on crypto currencies to see how market opening times could affect price action.

I would like to take it a step further and enable its use on non crypto currencies. But the issue I have is that the alignment changes depending on the symbols timezone.

So for example the below aligns as to my idea for BTCUSD but GBPNZD (which is UTC-5) the alignment is off.

Has anyone coded this before?


Code: Select all

//@version=4
study("Initial Balance Markets Time Zones", overlay=true)

// User adjustment inputs
offset_val = input(title="Label Offset", type=input.integer, defval=20)
backcolor = input(false, title="Optional background colour Price Action (PA) above or below all IB highs/lows")

// Asia Start
time_int_01 = input("0000-0100:1234567", "Asia", input.session)

in_time_int_01 = time(timeframe.period, time_int_01)

var highe_01 = 0.0
var lowe_01  = 10e10
if in_time_int_01
    if not in_time_int_01[1]
        highe_01 := high
        lowe_01  := low
    else
        highe_01 := max(high, highe_01)
        lowe_01  := min(low, lowe_01)

plot(not in_time_int_01 ? highe_01 : na, title="Asia High", color=color.purple, linewidth=2, style=plot.style_linebr)
plotshape(not in_time_int_01 ? highe_01 : na, style=shape.labelup, location=location.absolute, color=color.purple,  textcolor=color.white, show_last=1, text="Asia/UTC High",  offset = offset_val, transp=20, title="Asia/UTC High")

plot(not in_time_int_01 ? lowe_01  : na, title="Asia Low",  color=color.purple,  linewidth=2, style=plot.style_linebr)
plotshape(not in_time_int_01 ? lowe_01 : na, style=shape.labeldown, location=location.absolute, color=color.purple,  textcolor=color.white, show_last=1, text="Asia/UTC Low",  offset = offset_val, transp=20, title="Asia/UTC Low")
// Asia Finish


// London Start
time_int_02 = input("0800-0900:1234567", "London", input.session)

in_time_int_02 = time(timeframe.period, time_int_02)

var highe_02 = 0.0
var lowe_02  = 10e10
if in_time_int_02
    if not in_time_int_02[1]
        highe_02 := high
        lowe_02  := low
    else
        highe_02 := max(high, highe_02)
        lowe_02  := min(low, lowe_02)

plot(not in_time_int_02 ? highe_02 : na, title="London High", color=color.yellow, linewidth=2, style=plot.style_linebr)
plotshape(not in_time_int_02 ? highe_02 : na, style=shape.labelup, location=location.absolute, color=color.yellow,  textcolor=color.white, show_last=1, text="London High",  offset = offset_val, transp=20, title="London High")

plot(not in_time_int_02 ? lowe_02  : na, title="London Low",  color=color.yellow,  linewidth=2, style=plot.style_linebr)
plotshape(not in_time_int_02 ? lowe_02  : na, style=shape.labeldown, location=location.absolute, color=color.yellow,  textcolor=color.white, show_last=1, text="London Low",  offset = offset_val, transp=20, title="London Low")
// London Finsh


// New York Start
time_int_03 = input("1430-1530:1234567", "New York", input.session)

in_time_int_03 = time(timeframe.period, time_int_03)

var highe_03 = 0.0
var lowe_03  = 10e10
if in_time_int_03
    if not in_time_int_03[1]
        highe_03 := high
        lowe_03  := low
    else
        highe_03 := max(high, highe_03)
        lowe_03  := min(low, lowe_03)

plot(not in_time_int_03 ? highe_03 : na, title="New York High", color=color.blue, linewidth=2, style=plot.style_linebr)
plotshape(not in_time_int_03 ? highe_03 : na, style=shape.labelup, location=location.absolute, color=color.blue,  textcolor=color.white, show_last=1, text="New York High",  offset = offset_val, transp=20, title="New York High")

plot(not in_time_int_03 ? lowe_03  : na, title="New York Low",  color=color.blue,  linewidth=2, style=plot.style_linebr)
plotshape(not in_time_int_03 ? lowe_03  : na, style=shape.labeldown, location=location.absolute, color=color.blue,  textcolor=color.white, show_last=1, text="New York Low",  offset = offset_val, transp=20, title="New York Low")
// New York Finish


// Background colors
AsiaAboveHigh = close>(highe_01)
LondonAboveHigh = close>(highe_02)
NewYorkAboveHigh = close>(highe_03)

Buy = AsiaAboveHigh and LondonAboveHigh and NewYorkAboveHigh
bgcolor(Buy and backcolor ? color.green : na, transp=95, title='Check Chart Buy Signal above all IB High')

AsiaBelowLow = close<(lowe_01)
LondonBelowLow = close<(lowe_02)
NewYorkBelowLow = close<(lowe_03)

Sell = AsiaBelowLow and LondonBelowLow and NewYorkBelowLow
bgcolor(Sell and backcolor ? color.red : na, transp=95, title='Check Chart Sell Signal below all IB Low')


// Condition Alerts
alertcondition(Buy==1 ? Buy : na, title="Buy Alert", message="Check Chart Buy Signal above all IB High, {{close}}")
alertcondition(Sell==1 ? Sell :na, title="Sell Alert", message="Check Chart Sell Signal below all IB Low, {{close}}")

frien_dd
Pine Script Rookie
Pine Script Rookie
Posts: 7
Joined: December 11th, 2020
Location: United Kingdom

Re: Symbol Exchange time Syncing to indicator

This is where I am currently with this script. I am trying to read the output from the GMTOffset to change the input for time_int_01.

Any advice guidance will be gratefully received.

Code: Select all

//@version=4
study("Initial Balance Testing GMT", overlay=true)

var int GMTOffset = hour(timenow) - hour(timenow, "GMT")


time_int_minus5 = input("1900-2000:1234567", "Asia IB Range", input.session)
time_int_minus4 = input("2000-2100:1234567", "Asia IB Range", input.session)
time_int_minus3 = input("2100-2200:1234567", "Asia IB Range", input.session)
time_int_minus2 = input("2200-2300:1234567", "Asia IB Range", input.session)
time_int_minus1 = input("2300-0000:1234567", "Asia IB Range", input.session)

time_int_0 = input("0000-0100:1234567", "Asia IB Range", input.session)

time_int_01 = time_int_minus5

if GMTOffset == 0
    time_int_0 := time_int_01

if GMTOffset == -1
    time_int_minus1 := time_int_01

if GMTOffset == -2
    time_int_minus2 := time_int_01

if GMTOffset == -3
    time_int_minus3 := time_int_01

if GMTOffset == -4
    time_int_minus4 := time_int_01

if GMTOffset == -5
    time_int_minus5 := time_int_01
    

// Asia START //
//////////////////////////////////// Initial Balance Asia Start
//time_int_01 = input("0000-0100:1234567", "Asia IB Range", input.session)

in_time_int_01 = time(timeframe.period, time_int_01)

var highe_01 = 0.0
var lowe_01  = 10e10
if in_time_int_01
    if not in_time_int_01[1]
        highe_01 := high
        lowe_01  := low
    else
        highe_01 := max(high, highe_01)
        lowe_01  := min(low, lowe_01)
plotAsia = plot(highe_01, title=" Asia IB High", color=color.white, linewidth=1, style=plot.style_linebr)

//////////////////////////////////// Initial Balance Asia Finish

Return to “Pine Script Q&A”