1️⃣ Session & ORB Detection
In Pine Script:
pinescript
Copy
Edit
in_session = time(timeframe.period, session + ":23456", sTimeZone) != na
if is_first
orbHigh := high; orbLow := low
else
orbHigh := orbHigh[1]; orbLow := orbLow[1]
...
ProRealTime equivalent (server time used):
prorealcode
Copy
Edit
// Inputs
StartTime = 143000 // 09:30 EST
EndTime = 150000 // 10:00 EST
// Variables
once orbHigh = 0
once orbLow = 0
once started = 0
if time >= StartTime and time < EndTime then
if started = 0 then
orbHigh = high
orbLow = low
started = 1
else
orbHigh = max(orbHigh, high)
orbLow = min(orbLow, low)
endif
else
started = 0 // reset for next session
endif
started flags first bar of session.
After setup, orbHigh and orbLow track max/min.
2️⃣ Drawing the Range Box & Center Line
In Pine:
pinescript
Copy
Edit
dailyBox := box.new(...)
box.set_*()
// center line with line.new()
ProRealTime uses drawrectangle:
prorealcode
Copy
Edit
if started = 1 then
drawrectangle("", barindex - bars_in_session + 1, orbLow, barindex, orbHigh) coloured boxColor
if showCenterLine then
mid = (orbHigh + orbLow)/2
drawline("", barindex - bars_in_session + 1, mid, barindex, mid) coloured rangeCenterColor
endif
endif
Use only empty "" names.
bars_in_session matches number of bars in defined session length.
3️⃣ Plotting Horizontal ORB Levels & Targets
In Pine, they use line.new() and arrays for many targets:
pinescript
Copy
Edit
orbHighLine := line.new(...)
line.set_x2(...)
ProRealTime is simpler — use multiple plot calls:
prorealcode
Copy
Edit
plot1( orbHigh, "ORB High", orbHighColor )
plot2( orbLow, "ORB Low", orbLowColor )
plot3( (orbHigh+orbLow)/2, "Mid", orbMidColor )
range = orbHigh - orbLow
target50 = orbHigh + range * 0.5
plot4(target50, "Target 50%", orb50Color)
target100 = orbHigh + range * 1.0
plot5(target100, "Target 100%", orb100Color)