I 've been starting to dabble in writing some scripts for my day trading. I am currently stuck on how to get the premarket open price to stay as that. Currently what I have it shows the open then it follows the price action to the high side. It end up showing the PM high when the regular trading hrs start at 0930. Any help on this would be greatly appreciated!
//@version=5
indicator("testCYD PreMarket High/Low Mid", shorttitle="CYD PM H/L Mid", overlay=true)
t = time("1440", "0000-0930")
is_first = na(t[1]) and not na(t) or t[1] < t
ending_hour = input(defval=9, title="Ending Hour")
ending_minute = input(defval=29, title="Ending Minute")
day_high = float(na)
day_low = float(na)
if is_first and barstate.isnew and (hour < ending_hour or hour >= 16 or hour == ending_hour and minute < ending_minute)
day_high := high
day_low := low
day_low
else
day_high := day_high[1]
day_low := day_low[1]
day_low
if high > day_high and ((hour < ending_hour or hour >= 16) and hour < 16 or hour == ending_hour and minute < ending_minute)
day_high := high
day_high
if low < day_low and ((hour < ending_hour or hour >= 16) and hour < 16 or hour == ending_hour and minute < ending_minute)
day_low := low
day_low
plot(day_high, style=plot.style_line, color=#009688, linewidth=2, title="PM High")
plot((day_low + day_high) / 2, color=#fff9c4, linewidth=2, title="PM Mid")
plot(day_low, style=plot.style_line, color=#009688, linewidth=2, title="PM Low")
/////////////////
//Pre-Market Open
PMOTime = input.session('0400-0929:1234567', "Session", group="PreMarket Open")
PMOStyle = input.string ("Dashed", "Line Style", options=["Solid", "Dotted", "Dashed"], group="PreMarket Open")
PMOColor = input.color (#09b1d3, group="PreMarket Open")
tPMO = time ("1", PMOTime)
_PMOStyle = PMOStyle == "Solid" ? line.style_solid : PMOStyle == "Dotted" ? line.style_dotted : line.style_dashed
var line lne = na
var openPMO = 0.0
if tPMO
if not tPMO[1]
openPMO := open
else
openPMO := math.max(open, openPMO)
if openPMO != openPMO[1]
if barstate.isconfirmed
line.set_x2(lne, tPMO)
lne := line.new(tPMO, openPMO, last_bar_time + 14400000/2, openPMO, xloc.bar_time, extend.none, PMOColor, _PMOStyle, 2)
//===========================