Hi
@Mytrades1979, I found a way to extend the lines and have updated the script. I've also marked the lunch time range. Please let me know if you need any further assistance.
###############################################
#Asian
def midn = 0000;
def midnite = if (SecondsFromTime(midn) == 0) then 1 else 0;
def Asian_afterbegin = 1800;
#def Asian_Q1_afterend = 2359;
def Asian_aftermarket = SecondsFromTime(Asian_afterbegin[1]) >= 0 and (SecondsFromTime(midn) == 0) >= 0;
#DefineGlobalColor("Asian Color", (CreateColor(204, 255, 204)));
DefineGlobalColor("Asian Color", (color.White));
#AddLabel(yes, "Asian", (GlobalColor("Asian Color")));
###############################################
#LONDON
def London_afterbegin = midn;
def London_afterend = 0600;
def London_aftermarket = SecondsFromTime(London_afterbegin) >= 0 and SecondsTillTime(London_afterend) >= 0;
DefineGlobalColor("London Color", (CreateColor(153, 153 ,255)));
#AddLabel(yes, "London", (GlobalColor("London Color")));
###############################################
#NY AM
def NY_AM_afterbegin = 0600;
def NY_AM_afterend = 1200;
def NY_AM_aftermarket = SecondsFromTime(NY_AM_afterbegin) >= 0 and SecondsTillTime(NY_AM_afterend) >= 0;
DefineGlobalColor("NY_AM Color", (CreateColor(0, 153, 255)));
#AddLabel(yes, "NY_AM", (GlobalColor("NY_Lunch Color")));
###############################################
#NY Lunch
def NY_Lunch_afterbegin = 1100;
def NY_Lunch_afterend = 1300;
def NY_Lunch_aftermarket = SecondsFromTime(NY_Lunch_afterbegin) >= 0 and SecondsTillTime(NY_Lunch_afterend) >= 0;
DefineGlobalColor("NY_Lunch Color", (CreateColor(255, 153, 102)));
#AddLabel(yes, "NY_Lunch", (GlobalColor("NY_PM Color")));
###############################################
###############################################
#NY PM
def NY_PM_afterbegin = 1200;
def NY_PM_afterend = 1800;
def NY_PM_aftermarket = SecondsFromTime(NY_PM_afterbegin) >= 0 and SecondsTillTime(NY_PM_afterend) >= 0;
DefineGlobalColor("NY_PM Color", (CreateColor(255, 153, 102)));
#AddLabel(yes, "NY_PM", (GlobalColor("NY_PM Color")));
###############################################
declare hide_on_daily;
input PlotOverNightExtremes = yes;
input DisplayPriceBubbleOnHiLowBar = yes;
input DisplayPriceBubbleOnRightEdge = yes; #Haven't figured this out yet..JQ
def numberOfTicks = 1;
#############################################################################################################################################
def Asian_o = open;
def Asian_h = high;
def Asian_l = low;
def Asian_c = close;
def Asian_v = volume;
def Asian_bar = BarNumber();
#Asian Code
def Asian_GlobeX = Asian_aftermarket;
def Asian_vol = if Asian_GlobeX and !Asian_GlobeX[1]
then Asian_v
else if Asian_GlobeX
then Asian_vol[1] + Asian_v
else Double.NaN;
def Asian_GlobeX_Volume = Asian_vol;
def Asian_ONhigh = if Asian_GlobeX and !Asian_GlobeX[1]
then Asian_h
else if Asian_GlobeX and
Asian_h > Asian_ONhigh[1]
then Asian_h
else Asian_ONhigh[1];
def Asian_ONhighBar = if Asian_GlobeX and Asian_h == Asian_ONhigh
then Asian_bar
else Double.NaN;
def Asian_ONlow = if Asian_GlobeX and !Asian_GlobeX[1]
then Asian_l
else if Asian_GlobeX and
Asian_l < Asian_ONlow[1]
then Asian_l
else Asian_ONlow[1];
def Asian_ONlowBar = if Asian_GlobeX and Asian_l == Asian_ONlow
then Asian_bar
else Double.NaN;
def Asian_OverNightHigh = if BarNumber() == HighestAll(Asian_ONhighBar)
then Asian_ONhigh
else Asian_OverNightHigh[1];
def Asian_OverNightLow = if BarNumber() == HighestAll(Asian_ONlowBar)
then Asian_ONlow
else Asian_OverNightLow[1];
#
plot Asian_ONH = if Asian_OverNightHigh > 0
then Asian_OverNightHigh
else Double.NaN;
Asian_ONH.SetHiding(!PlotOverNightExtremes);
#ONH.SetPaintingStrategy(PaintingStrategy.SQUARES);
#ONH.SetDefaultColor(Color.Light_Gray);
Asian_ONH.SetDefaultColor(GlobalColor("Asian Color"));
#ONH.HideBubble();
#ONH.HideTitle();
#ONH.Hide();
#
plot Asian_ONL = if Asian_OverNightLow > 0
then Asian_OverNightLow
else Double.NaN;
Asian_ONL.SetHiding(!PlotOverNightExtremes);
#ONL.SetPaintingStrategy(PaintingStrategy.SQUARES);
#ONL.SetDefaultColor(Color.Light_Gray);
Asian_ONL.SetDefaultColor(GlobalColor("Asian Color"));
#ONL.Hide();
def Asian_High_plus_tick = Asian_ONH + numberOfTicks * TickSize();
def Asian_Low_plus_tick = Asian_ONL - numberOfTicks * TickSize();
#AddCloud(Asian_High_plus_tick, Asian_ONH, GlobalColor("Asian Color"), GlobalColor("Asian Color"));
#AddCloud(Asian_Low_plus_tick, Asian_ONL, GlobalColor("Asian Color"), GlobalColor("Asian Color"));
#############################################################################################################################################
#London Code
def London_o = open;
def London_h = high;
def London_l = low;
def London_c = close;
def London_v = volume;
def London_bar = BarNumber();
def London_GlobeX = London_aftermarket;
def London_vol = if London_GlobeX and !London_GlobeX[1]
then London_v
else if London_GlobeX
then London_vol[1] + London_v
else Double.NaN;
def London_GlobeX_Volume = London_vol;
def London_ONhigh = if London_GlobeX and !London_GlobeX[1]
then London_h
else if London_GlobeX and
London_h > London_ONhigh[1]
then London_h
else London_ONhigh[1];
def London_ONhighBar = if London_GlobeX and London_h == London_ONhigh
then London_bar
else Double.NaN;
def London_ONlow = if London_GlobeX and !London_GlobeX[1]
then London_l
else if London_GlobeX and
London_l < London_ONlow[1]
then London_l
else London_ONlow[1];
def London_ONlowBar = if London_GlobeX and London_l == London_ONlow
then London_bar
else Double.NaN;
def London_OverNightHigh = if BarNumber() == HighestAll(London_ONhighBar)
then London_ONhigh
else London_OverNightHigh[1];
def London_OverNightLow = if BarNumber() == HighestAll(London_ONlowBar)
then London_ONlow
else London_OverNightLow[1];
#
plot London_ONH = if London_OverNightHigh > 0
then London_OverNightHigh
else Double.NaN;
London_ONH.SetHiding(!PlotOverNightExtremes);
#ONH.SetPaintingStrategy(PaintingStrategy.SQUARES);
#ONH.SetDefaultColor(Color.Light_Gray);
London_ONH.SetDefaultColor(GlobalColor("London Color"));
#ONH.HideBubble();
#ONH.HideTitle();
#ONH.Hide();
#
plot London_ONL = if London_OverNightLow > 0
then London_OverNightLow
else Double.NaN;
London_ONL.SetHiding(!PlotOverNightExtremes);
#ONL.SetPaintingStrategy(PaintingStrategy.SQUARES);
#ONL.SetDefaultColor(Color.Light_Gray);
London_ONL.SetDefaultColor(GlobalColor("London Color"));
#ONL.Hide();
def London_High_plus_tick = London_ONH + numberOfTicks * TickSize();
def London_Low_plus_tick = London_ONL - numberOfTicks * TickSize();
#AddCloud(London_High_plus_tick, London_ONH, GlobalColor("London Color"), GlobalColor("London Color"));
#AddCloud(London_Low_plus_tick, London_ONL, GlobalColor("London Color"), GlobalColor("London Color"));
#############################################################################################################################################
#NY_AM Code
def NY_AM_o = open;
def NY_AM_h = high;
def NY_AM_l = low;
def NY_AM_c = close;
def NY_AM_v = volume;
def NY_AM_bar = BarNumber();
def NY_AM_GlobeX = NY_AM_aftermarket;
def NY_AM_vol = if NY_AM_GlobeX and !NY_AM_GlobeX[1]
then NY_AM_v
else if NY_AM_GlobeX
then NY_AM_vol[1] + NY_AM_v
else Double.NaN;
def NY_AM_GlobeX_Volume = NY_AM_vol;
def NY_AM_ONhigh = if NY_AM_GlobeX and !NY_AM_GlobeX[1]
then NY_AM_h
else if NY_AM_GlobeX and
NY_AM_h > NY_AM_ONhigh[1]
then NY_AM_h
else NY_AM_ONhigh[1];
def NY_AM_ONhighBar = if NY_AM_GlobeX and NY_AM_h == NY_AM_ONhigh
then NY_AM_bar
else Double.NaN;
def NY_AM_ONlow = if NY_AM_GlobeX and !NY_AM_GlobeX[1]
then NY_AM_l
else if NY_AM_GlobeX and
NY_AM_l < NY_AM_ONlow[1]
then NY_AM_l
else NY_AM_ONlow[1];
def NY_AM_ONlowBar = if NY_AM_GlobeX and NY_AM_l == NY_AM_ONlow
then NY_AM_bar
else Double.NaN;
def NY_AM_OverNightHigh = if BarNumber() == HighestAll(NY_AM_ONhighBar)
then NY_AM_ONhigh
else NY_AM_OverNightHigh[1];
def NY_AM_OverNightLow = if BarNumber() == HighestAll(NY_AM_ONlowBar)
then NY_AM_ONlow
else NY_AM_OverNightLow[1];
#
plot NY_AM_ONH = if NY_AM_OverNightHigh > 0
then NY_AM_OverNightHigh
else Double.NaN;
NY_AM_ONH.SetHiding(!PlotOverNightExtremes);
#ONH.SetPaintingStrategy(PaintingStrategy.SQUARES);
#ONH.SetDefaultColor(Color.Light_Gray);
NY_AM_ONH.SetDefaultColor(GlobalColor("NY_AM Color"));
#ONH.HideBubble();
#ONH.HideTitle();
NY_AM_ONH.Hide();
#
plot NY_AM_ONL = if NY_AM_OverNightLow > 0
then NY_AM_OverNightLow
else Double.NaN;
NY_AM_ONL.SetHiding(!PlotOverNightExtremes);
#ONL.SetPaintingStrategy(PaintingStrategy.SQUARES);
#ONL.SetDefaultColor(Color.Light_Gray);
NY_AM_ONL.SetDefaultColor(GlobalColor("NY_AM Color"));
NY_AM_ONL.Hide();
def NY_AM_High_plus_tick = NY_AM_ONH + numberOfTicks * TickSize();
def NY_AM_Low_plus_tick = NY_AM_ONL - numberOfTicks * TickSize();
#AddCloud(NY_AM_High_plus_tick, NY_AM_ONH, GlobalColor("NY_AM Color"), GlobalColor("NY_AM Color"));
#AddCloud(NY_AM_Low_plus_tick, NY_AM_ONL, GlobalColor("NY_AM Color"), GlobalColor("NY_AM Color"));
#############################################################################################################################################
#############################################################################################################################################
#NY_Lunch Code
def NY_Lunch_o = open;
def NY_Lunch_h = high;
def NY_Lunch_l = low;
def NY_Lunch_c = close;
def NY_Lunch_v = volume;
def NY_Lunch_bar = BarNumber();
def NY_Lunch_GlobeX = NY_Lunch_aftermarket;
def NY_Lunch_vol = if NY_Lunch_GlobeX and !NY_Lunch_GlobeX[1]
then NY_Lunch_v
else if NY_Lunch_GlobeX
then NY_Lunch_vol[1] + NY_Lunch_v
else Double.NaN;
def NY_Lunch_GlobeX_Volume = NY_Lunch_vol;
def NY_Lunch_ONhigh = if NY_Lunch_GlobeX and !NY_Lunch_GlobeX[1]
then NY_Lunch_h
else if NY_Lunch_GlobeX and
NY_Lunch_h > NY_Lunch_ONhigh[1]
then NY_Lunch_h
else NY_Lunch_ONhigh[1];
def NY_Lunch_ONhighBar = if NY_Lunch_GlobeX and NY_Lunch_h == NY_Lunch_ONhigh
then NY_Lunch_bar
else Double.NaN;
def NY_Lunch_ONlow = if NY_Lunch_GlobeX and !NY_Lunch_GlobeX[1]
then NY_Lunch_l
else if NY_Lunch_GlobeX and
NY_Lunch_l < NY_Lunch_ONlow[1]
then NY_Lunch_l
else NY_Lunch_ONlow[1];
def NY_Lunch_ONlowBar = if NY_Lunch_GlobeX and NY_Lunch_l == NY_Lunch_ONlow
then NY_Lunch_bar
else Double.NaN;
def NY_Lunch_OverNightHigh = if BarNumber() == HighestAll(NY_Lunch_ONhighBar)
then NY_Lunch_ONhigh
else NY_Lunch_OverNightHigh[1];
def NY_Lunch_OverNightLow = if BarNumber() == HighestAll(NY_Lunch_ONlowBar)
then NY_Lunch_ONlow
else NY_Lunch_OverNightLow[1];
#
plot NY_Lunch_ONH = if NY_Lunch_OverNightHigh > 0
then NY_Lunch_OverNightHigh
else Double.NaN;
NY_Lunch_ONH.SetHiding(!PlotOverNightExtremes);
#ONH.SetPaintingStrategy(PaintingStrategy.SQUARES);
#ONH.SetDefaultColor(Color.Light_Gray);
NY_Lunch_ONH.SetDefaultColor(GlobalColor("NY_Lunch Color"));
#ONH.HideBubble();
#ONH.HideTitle();
#NY_Lunch_ONH.Hide();
#
plot NY_Lunch_ONL = if NY_Lunch_OverNightLow > 0
then NY_Lunch_OverNightLow
else Double.NaN;
NY_Lunch_ONL.SetHiding(!PlotOverNightExtremes);
#ONL.SetPaintingStrategy(PaintingStrategy.SQUARES);
#ONL.SetDefaultColor(Color.Light_Gray);
NY_Lunch_ONL.SetDefaultColor(GlobalColor("NY_Lunch Color"));
#NY_Lunch_ONL.Hide();
def NY_Lunch_High_plus_tick = NY_Lunch_ONH + numberOfTicks * TickSize();
def NY_Lunch_Low_plus_tick = NY_Lunch_ONL - numberOfTicks * TickSize();
#AddCloud(NY_Lunch_High_plus_tick, NY_Lunch_ONH, GlobalColor("NY_Lunch Color"), GlobalColor("NY_Lunch Color"));
#AddCloud(NY_Lunch_Low_plus_tick, NY_Lunch_ONL, GlobalColor("NY_Lunch Color"), GlobalColor("NY_Lunch Color"));
#############################################################################################################################################
#NY_PM Code
def NY_PM_o = open;
def NY_PM_h = high;
def NY_PM_l = low;
def NY_PM_c = close;
def NY_PM_v = volume;
def NY_PM_bar = BarNumber();
def NY_PM_GlobeX = NY_PM_aftermarket;
def NY_PM_vol = if NY_PM_GlobeX and !NY_PM_GlobeX[1]
then NY_PM_v
else if NY_PM_GlobeX
then NY_PM_vol[1] + NY_PM_v
else Double.NaN;
def NY_PM_GlobeX_Volume = NY_PM_vol;
def NY_PM_ONhigh = if NY_PM_GlobeX and !NY_PM_GlobeX[1]
then NY_PM_h
else if NY_PM_GlobeX and
NY_PM_h > NY_PM_ONhigh[1]
then NY_PM_h
else NY_PM_ONhigh[1];
def NY_PM_ONhighBar = if NY_PM_GlobeX and NY_PM_h == NY_PM_ONhigh
then NY_PM_bar
else Double.NaN;
def NY_PM_ONlow = if NY_PM_GlobeX and !NY_PM_GlobeX[1]
then NY_PM_l
else if NY_PM_GlobeX and
NY_PM_l < NY_PM_ONlow[1]
then NY_PM_l
else NY_PM_ONlow[1];
def NY_PM_ONlowBar = if NY_PM_GlobeX and NY_PM_l == NY_PM_ONlow
then NY_PM_bar
else Double.NaN;
def NY_PM_OverNightHigh = if BarNumber() == HighestAll(NY_PM_ONhighBar)
then NY_PM_ONhigh
else NY_PM_OverNightHigh[1];
def NY_PM_OverNightLow = if BarNumber() == HighestAll(NY_PM_ONlowBar)
then NY_PM_ONlow
else NY_PM_OverNightLow[1];
#
plot NY_PM_ONH = if NY_PM_OverNightHigh > 0
then NY_PM_OverNightHigh
else Double.NaN;
NY_PM_ONH.SetHiding(!PlotOverNightExtremes);
#ONH.SetPaintingStrategy(PaintingStrategy.SQUARES);
#ONH.SetDefaultColor(Color.Light_Gray);
NY_PM_ONH.SetDefaultColor(GlobalColor("NY_PM Color"));
#ONH.HideBubble();
#ONH.HideTitle();
#NY_PM_ONH.Hide();
#
plot NY_PM_ONL = if NY_PM_OverNightLow > 0
then NY_PM_OverNightLow
else Double.NaN;
NY_PM_ONL.SetHiding(!PlotOverNightExtremes);
#ONL.SetPaintingStrategy(PaintingStrategy.SQUARES);
#ONL.SetDefaultColor(Color.Light_Gray);
NY_PM_ONL.SetDefaultColor(GlobalColor("NY_PM Color"));
#NY_PM_ONL.Hide();
def NY_PM_High_plus_tick = NY_PM_ONH + numberOfTicks * TickSize();
def NY_PM_Low_plus_tick = NY_PM_ONL - numberOfTicks * TickSize();
#AddCloud(NY_PM_High_plus_tick, NY_PM_ONH, GlobalColor("NY_PM Color"), GlobalColor("NY_PM Color"));
#AddCloud(NY_PM_Low_plus_tick, NY_PM_ONL, GlobalColor("NY_PM Color"), GlobalColor("NY_PM Color"));