Modify code to show High/Low lines only in present session

R

rlohmeyer

New member
I am using code kindly shared by #Nube that plots Highs and Lows for 1. the previous RTH Session 2. The present RTH Session and 3. the Overnight (Globex) session. Code and image is below. The lines presently extend across the whole chart. I am wondering if it is possible to modify the code so that the High and Low lines only show in the Present Session. Thanks for any help extended.

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);
 
BenTen

BenTen

Administrative
Staff
VIP
I assume you want the previous day's high and low plotted onto the current day session only? If so, try this code:

Code:
# Plot Yesterday's High and Low

input ShowTodayOnly = yes;
def Today = if GetDay() == GetLastDay() then 1 else 0;

input aggregationPeriod = AggregationPeriod.DAY;
def high = high(period = aggregationPeriod);
def low = low(period = aggregationPeriod);

# Plot yesterday's high / low
plot h1 = if ShowTodayOnly and !Today then Double.NaN else high(period = aggregationPeriod)[1];
plot l1 = if ShowTodayOnly and !Today then Double.NaN else low(period = aggregationPeriod)[1];
 
R

rlohmeyer

New member
This is very helpful...thankyou. From various code slices I have gobbled together a swing trading/support_resistance levels indicator I will use daily. I will post it to see if anyone else wants to use it.
 
V

vensonom

New member
@BenTen any idea how i can add RTH Mid and 24h Mid to this study ? take difference of HighRTH and LowRTH / divide by 2 ? but then it wont be a running line which reflect the mid of the range as it develops , right ?
 
V

vensonom

New member
i tired this to plot mids but nothing is plotting. is it bcoz its sunday today ?

plot
midRTH = RTHhigh-RTHlow/2;
midRTH.SetDefaultColor(Color.white);

plot
midGlobex = GlobexHigh-GlobexLow/2;
midGlobex.SetDefaultColor(Color.yellow);
 

Similar threads

Top