I need to draw a horizontal line for each session till the end of the session. The line should start from a specific time after the session starts and the timeframe of this candle is 3 minute. But my chart will be in a different timeframe let's say 15 min or 30 min. Example
My chart timeframe is 15 minutes, and I need to draw a horizontal line at the open price of lets say 9:33 with candle timeframe 3 minute. What I got so far is given below
This will draw the horizontal line at the given time
//@version=5
indicator("My Indicator", overlay=true)
var barCount = 0
count = ta.barssince(session.isfirstbar)
if session.islastbar
barCount := count
var openPrice = 0.0
openPrice := (hour== 9 and minute == 33) ? open : openPrice
DayOpen = request.security(syminfo.tickerid, "1", open)
plot(openPrice)
But this code will draw line only if the chart time is 3 minutes, if I switch to 15 min, then the above code won't draw the line.
//@version=5
indicator("Help openTF3m", overlay = true)
var barCount = 0
count = ta.barssince(session.isfirstbar)
if session.islastbar
barCount := count
var float openPrice = na
//openPrice := (hour(time) == 9 and minute(time) == 33 ) ? begin : openPrice
DayOpen = request.security(syminfo.tickerid, "1", open)
array<float> begin = request.security_lower_tf(syminfo.tickerid, "1", open)
int SizeArr = array.size(begin)
int tt = timestamp(year, month, dayofmonth, 09, 33, 00)
if time <= tt and tt <= (time_close - 1) and (timenow - time)/(60*1000) < 100000
i = SizeArr - (time_close("", 0) - tt)/(60*1000)
openPrice := array.get(begin, i)
plot(openPrice, "openPrice")
Note that:
The plots based on intrabar data may not appear on all available chart bars, as request.security_lower_tf()
can only access up to the most recent 100,000 intrabars available from the requested context. When executing this function on a chart bar that doesn’t have accessible intrabar data, it will return an empty array.