I'd like to have the lines for yesterday' high, low, and middle range to only appear for yesterday and not plot today. Here's what I have so far:
input ShowTodayOnly = yes;
def Today = if GetDay() == GetLastDay() then 1 else 0;
def Yhigh = if ShowTodayOnly and !Today then Double.NaN else high(period = "day")[1];
def Ylow = if ShowTodayOnly and !Today then Double.NaN else low(period = "day")[1];
def GlobeX = GetTime() < RegularTradingStart(GetYYYYMMDD());
Plot Yesterday_High = Yhigh;
Yesterday_High.SetStyle(Curve.Firm);
Yesterday_High.AssignValueColor(Color.Red);
def Y_Mid = (Yhigh + Ylow) /2;
Plot Y_Middle = if GlobeX is true then Y_mid else double.nan;
Y_Middle.SetStyle(Curve.Firm);
Y_Middle.AssignValueColor(Color.Violet);
Plot Yesterday_Low = Ylow;
Yesterday_Low.SetStyle(Curve.Firm);
Yesterday_Low.AssignValueColor(Color.Green);
input ShowTodayOnly = yes;
def Today = if GetDay() == GetLastDay() then 1 else 0;
def Yhigh = if ShowTodayOnly and !Today then Double.NaN else high(period = "day")[1];
def Ylow = if ShowTodayOnly and !Today then Double.NaN else low(period = "day")[1];
def GlobeX = GetTime() < RegularTradingStart(GetYYYYMMDD());
Plot Yesterday_High = Yhigh;
Yesterday_High.SetStyle(Curve.Firm);
Yesterday_High.AssignValueColor(Color.Red);
def Y_Mid = (Yhigh + Ylow) /2;
Plot Y_Middle = if GlobeX is true then Y_mid else double.nan;
Y_Middle.SetStyle(Curve.Firm);
Y_Middle.AssignValueColor(Color.Violet);
Plot Yesterday_Low = Ylow;
Yesterday_Low.SetStyle(Curve.Firm);
Yesterday_Low.AssignValueColor(Color.Green);