Previous Day OHLC For ThinkOrSwim
This is a great script I have been using for awhile.
However, my charts have evolved a bit and I am looking to reduce the number of lines on my screen. Is there a way to modify this so the previous day candle OHLC lines only appear in the gray shaded premarket hours?
This is a great script I have been using for awhile.
However, my charts have evolved a bit and I am looking to reduce the number of lines on my screen. Is there a way to modify this so the previous day candle OHLC lines only appear in the gray shaded premarket hours?
Code:
input aggregationPeriod = AggregationPeriod.DAY;
input length = 1;
#input displace = -1;
input displace_amount = {default zero, negative_one};
input price = open;
def displacement;
switch (displace_amount) {
case zero:
displacement = 0;
case negative_one:
displacement = -1;}
input showOnlyLastPeriod = yes;
plot PrevDayOpen;
plot PrevDayHigh;
plot PrevDayLow;
plot PrevDayClose;
if showOnlyLastPeriod and !IsNaN(open(period = aggregationPeriod)[-1]) and !IsNaN(high(period = aggregationPeriod)[-1]) and !IsNaN(low(period = aggregationPeriod)[-1]) and !IsNaN(close(period = aggregationPeriod)[-1]){
PrevDayOpen = Double.NaN;
PrevDayHigh = Double.NaN;
PrevDayLow = Double.NaN;
PrevDayClose = Double.NaN;}else{
PrevDayOpen = Highest(open(period = aggregationPeriod)[displace_amount], length);
PrevDayHigh = Highest(high(period = aggregationPeriod)[displace_amount], length);
PrevDayLow = Highest(low(period = aggregationPeriod)[displace_amount], length);
PrevDayClose = Highest(close(period = aggregationPeriod)[displace_amount], length);}
PrevDayOpen.SetDefaultColor(GetColor(4));
PrevDayOpen.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
PrevDayHigh.SetDefaultColor(GetColor(4));
PrevDayHigh.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
PrevDayLow.SetDefaultColor(GetColor(4));
PrevDayLow.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
PrevDayClose.SetDefaultColor(GetColor(4));
PrevDayClose.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
input PlotOverNightExtremes = yes;
def o = open;
def h = high;
def l = low;
def c = close;
def v = volume;
def bar = BarNumber();
def GlobeX = GetTime() < RegularTradingStart(GetYYYYMMDD());
def vol = if GlobeX and !Globex[1]
then v
else if GlobeX
then vol[1] + v
else Double.NaN;
def GlobeX_Volume = vol;
def ONhigh = if GlobeX and !Globex[1]
then h
else if Globex and
h > ONhigh[1]
then h
else ONhigh[1];
def ONhighBar = if GlobeX and h == ONhigh
then Bar
else double.nan;
def ONlow = if GlobeX and !GlobeX[1]
then l
else if GlobeX and
l < ONlow[1]
then l
else ONlow[1];
def ONlowBar = if GlobeX and l == ONlow
then Bar
else double.nan;
def OverNightHigh = if BarNumber() == HighestAll(ONhighBar)
then ONhigh
else OverNightHigh[1];
def OverNightLow = if BarNumber() == HighestAll(ONlowBar)
then ONlow
else OverNightLow[1];
plot ONH = if OverNightHigh > 0
then OverNightHigh
else Double.NaN;
ONH.SetHiding(!PlotOverNightExtremes);
ONH.SetPaintingStrategy(PaintingStrategy.SQUARES);
ONH.SetDefaultColor(Color.BLUE);
ONH.HideBubble();
ONH.HideTitle();
plot ONL = if OverNightLow > 0
then OverNightLow
else Double.NaN;
ONL.SetHiding(!PlotOverNightExtremes);
ONL.SetPaintingStrategy(PaintingStrategy.SQUARES);
ONL.SetDefaultColor(Color.LIGHT_GRAY);
ONL.HideBubble();
ONL.HideTitle();
def MaxBar = Max(HighestAll(ONhighBar), HighestAll(ONlowBar));
##Sound Alerts
#alert ( (price crosses below PrevDayHigh) , "Price broke #it's Support for time period", Alert.BAR, #Sound.Ding);
#alert ( (price crosses above PrevDayHigh) , "Price broke #it's Resistance for time period", Alert.BAR,#Sound.Ding);
#alert ( (price crosses below PrevDayLow) , "Price broke #it's Support for time period", Alert.BAR, #Sound.Ding);
#alert ( (price crosses above PrevDayLow) , "Price broke #it's Resistance for time period", Alert.BAR,
#Sound.Ding);
#alert ( (price crosses below ONH) , "Price broke it's #Support for time period", Alert.BAR,
#Sound.Ding);
#alert ( (price crosses above ONH) , "Price broke it's #Resistance for time period", Alert.BAR,
#Sound.Ding);
#alert ( (price crosses below ONL) , "Price broke it's #Support for time period", Alert.BAR,
#Sound.Ding);
#alert ( (price crosses above ONL) , "Price broke it's #Resistance for time period", Alert.BAR,
#Sound.Ding);
#?
# End Code
Last edited by a moderator: