#Svanoy
#Previous_Days_H_O_L_C w/premarket H_L
#Previous days High, Open, Close, and Low w/premarket High and Low.
input sPeriod = {default DAY};
def varhigh = high(period = sPeriod)[1];
def varlow = low(period = sPeriod)[1];
def varopen = open(period = sPeriod)[1];
def varclose = close(period = sPeriod)[1];
def premarketopen = 0400;
def premarketclose = 0930;
def premarket = secondsFromTime(premarketopen)>=0 and secondsTillTime(premarketclose)>0;
def premarkethigh;
if secondsFromTime(premarketopen)==0 {
premarkethigh = high;
}else if premarket and high>=premarkethigh[1]{
premarkethigh = high;
}else{
premarkethigh = premarkethigh[1];}
def premarketlow;
if secondsFromTime(premarketopen)==0 {
premarketlow = low;
}else if premarket and low<=premarketlow[1]{
premarketlow = low;
}else{
premarketlow = premarketlow[1];}
def pmh = fold ipmh = 0 to 1 while !IsNaN(close[10]) do premarkethigh;
def pml = fold ipml = 0 to 1 while !IsNaN(close[10]) do premarketlow;
def h = fold ih = 0 to 1 while !IsNaN(close[10]) do varhigh;
def l = fold il = 0 to 1 while !IsNaN(close[10]) do varlow;
def o = fold io = 0 to 1 while !IsNaN(close[10]) do varopen;
def c = fold ic = 0 to 1 while !IsNaN(close[10]) do varclose;
plot PMHigh = if pmh > 1 and !premarket then pmh else Double.NaN;
PMHigh.SetPaintingStrategy(PaintingStrategy.DASHES);
PMHigh.SetDefaultColor(Color.LIME);
plot PMLow = if pml > 1 and !premarket then pml else Double.NaN;
PMLow.SetPaintingStrategy(PaintingStrategy.DASHES);
PMLow.SetDefaultColor(Color.PINK);
plot DayHigh = if h > 1 then h else Double.NaN;
DayHigh.SetPaintingStrategy(PaintingStrategy.DASHES);
DayHigh.SetDefaultColor(Color.LIGHT_GREEN);
plot DayLow = if l > 1 then l else Double.NaN;
DayLow.SetPaintingStrategy(PaintingStrategy.DASHES);
DayLow.SetDefaultColor(Color.LIGHT_RED);
plot DayOpen = if o > 1 then o else Double.NaN;
DayOpen.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
DayOpen.AssignValueColor(if varopen >= varclose then Color.GREEN else Color.RED);
plot DayClose = if c > 1 then c else Double.NaN;
DayClose.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
DayClose.AssignValueColor(if varopen >= varclose then Color.RED else Color.GREEN);
AddChartBubble(IsNaN(PMHigh) and IsNaN(close),pmh[1],"PreMarket High",Color.WHITE,yes);
AddChartBubble(IsNaN(PMLow) and IsNaN(close),pml[1],"PreMarket Low",Color.WHITE,no);
AddChartBubble(IsNaN(DayHigh),h[1],"Prev Day High",Color.WHITE,yes);
AddChartBubble(IsNaN(DayLow),l[1],"Prev Day Low",Color.WHITE,no);
AddChartBubble(IsNaN(DayOpen),o[1],"Prev Day Open",Color.WHITE,if o>=c then yes else no);
AddChartBubble(IsNaN(DayClose),c[1],"Prev Day Close",Color.WHITE, if o>=c then no else yes);