input aggregationPeriod = AggregationPeriod.DAY;
input length = 1;
#input displace = -1;
input displace_amount = {default zero, negative_one};
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(CreateColor(116, 189, 239));
PrevDayOpen.SetPaintingStrategy(PaintingStrategy.LINE);
PrevDayOpen.SetStyle(Curve.LONG_DASH);
PrevDayHigh.SetDefaultColor(CreateColor(0, 255, 255));
PrevDayHigh.SetPaintingStrategy(PaintingStrategy.LINE);
PrevDayLow.SetDefaultColor(CreateColor(0, 255, 255));
PrevDayLow.SetPaintingStrategy(PaintingStrategy.LINE);
PrevDayClose.SetDefaultColor(CreateColor(116, 189, 239));
PrevDayClose.SetPaintingStrategy(PaintingStrategy.LINE);
PrevDayClose.SetStyle(Curve.LONG_DASH);