Code:

```
# Globex, RTH and prior RTH High and Low
# v0.02 11.12.18 will plot prior RTH during current RTH
# Nube
# inputs
input showOnlyLastPeriod = yes;
# univerals
def na = Double.NaN;
def bn = BarNumber();
def h = high;
def l = low;
# subscript for getting prior value of a BarNumber() defined variable
script prior {
input prior = close;
def priorOf = if prior != prior[1] then prior[1] else priorOf[1];
plot priorBar = priorOf;
}
# variables
def cb = HighestAll(if !IsNaN(h) then bn else na);
def time = GetTime();
def rts = RegularTradingStart(GetYYYYMMDD());
def rte = RegularTradingEnd(GetYYYYMMDD());
def RTH = if time crosses above rts
then bn else RTH[1];
def globex = if time crosses above rte
then bn else globex[1];
def priorRTH = prior(RTH);
def priorGlobex = prior(globex);
def hRTH = HighestAll(RTH);
def hGX = HighestAll(globex);
def hPRTH = HighestAll(priorRTH);
def hPGX = HighestAll(priorGlobex);
def gXhigh = HighestAll(if bn >= hGX && bn < hRTH
then h else if hRTH < hGX && bn >= hGX then h else na);
def gXlow = LowestAll(if bn >= hGX && bn < hRTH
then l else if hRTH < hGX && bn >= hGX then l else na);
def RTHhigh = HighestAll(if bn >= hRTH && bn < hGX
then h else if hGX < hRTH && bn >= hRTH then h else na);
def RTHlow = LowestAll(if bn >= hRTH && bn < hGX
then l else if hGX < hRTH && bn >= hRTH then l else na);
def priorRTHhigh = HighestAll(if bn >= hPRTH
&& bn < if hGX < hRTH then hGX else hPGX then h else na);
def priorRTHlow = LowestAll(if bn >= hPRTH
&& bn < if hGX < hRTH then hGX else hPGX then l else na);
plot
GlobexHigh = gXhigh;
GlobexHigh.SetDefaultColor(Color.LIGHT_GREEN);
plot
GlobexLow = gXlow;
GlobexLow.SetDefaultColor(Color.LIGHT_RED);
plot
HighRTH = RTHhigh;
HighRTH.SetDefaultColor(Color.GREEN);
plot
LowRTH = RTHlow;
LowRTH.SetDefaultColor(Color.RED);
plot
PreviousHighRTH = priorRTHhigh;
PreviousHighRTH.SetDefaultColor(Color.DARK_GREEN);
plot
PreviousLowRTH = priorRTHlow;
PreviousLowRTH.SetDefaultColor(Color.DARK_RED);
```