# - - BEGIN SCRIPT
# - - Study Name: MrSB_PriceLevels
# – - Version: 1.2
# – - Release Date: May 15, 2015
# – - Author: [email protected]
# – - Source: MrStockBoto.com
# - - Purpose: Displays lines for yesterday's High, Low and Close
# and today's High, Low and Open. Also displays bubbles
# at far right of chart identifyin the lines.
# Values Dislayed at top
# Green indicates current close is above corresponding Line
# Red indicates current close is below corresponding Line
input HighestChartDisplay = AggregationPeriod.FIFTEEN_MIN;
input BubbleOffset = -6;
input ShowValuesAtTop = yes;
input ShowBubbles = yes;
plot yOpen = if GetAggregationPeriod() > HighestChartDisplay then no else
Highest(open(period = AggregationPeriod.DAY)[1], 1);
yOpen.DefineColor("yOpen”, Color.GRAY);
yOpen.SetStyle(Curve.SHORT_DASH);
yOpen.SetLineWeight(1);
yOpen.HideBubble();
plot yHigh = if GetAggregationPeriod() > HighestChartDisplay then no else
Highest(high(period = AggregationPeriod.DAY)[1], 1);
yHigh.DefineColor("yHigh”, Color.GRAY);
yHigh.SetStyle(Curve.SHORT_DASH);
yHigh.SetLineWeight(1);
yHigh.HideBubble();
plot yLow = if GetAggregationPeriod() > HighestChartDisplay then no else
Lowest(low(period = AggregationPeriod.DAY)[1], 1);
yLow.DefineColor("yLow”, Color.GRAY);
yLow.SetStyle(Curve.SHORT_DASH);
yLow.SetLineWeight(1);
yLow.HideBubble();
plot yClose = if GetAggregationPeriod() > HighestChartDisplay then no else
close(period = AggregationPeriod.DAY)[1];
yClose.DefineColor("yClose”, Color.GRAY);
yClose.SetStyle(Curve.SHORT_DASH);
yClose.SetLineWeight(1);
yClose.HideBubble();
plot tHigh = if GetAggregationPeriod() > HighestChartDisplay then no else
Highest(high(period = AggregationPeriod.DAY)[0], 1);
tHigh.DefineColor("tHigh”, Color.GRAY);
tHigh.SetStyle(Curve.SHORT_DASH);
tHigh.SetLineWeight(1);
tHigh.HideBubble();
plot tLow = if GetAggregationPeriod() > HighestChartDisplay then no else
Lowest(low(period = AggregationPeriod.DAY)[0], 1);
tLow.DefineColor("tLow”, Color.GRAY);
tLow.SetStyle(Curve.SHORT_DASH);
tLow.SetLineWeight(1);
tLow.HideBubble();
plot tOpen = if GetAggregationPeriod() > HighestChartDisplay then no else
open(period = AggregationPeriod.DAY);
tOpen.DefineColor("tOpen”, Color.GRAY);
tOpen.SetStyle(Curve.SHORT_DASH);
tOpen.SetLineWeight(1);
tOpen.HideBubble();
def sameDay = if GetDay()[1] == GetDay() then yes else no;
def highestBarNumber = highestAll(if !isNaN(close) then barNumber() else Double.NaN);
def BubbleBar = if ShowBubbles and GetAggregationPeriod() <= HighestChartDisplay
and ((BarNumber() == highestBarNumber - bubbleOffset) or !SameDay)
then yes else no;
def LastBar = (bubbleOffset * -1) + 1;
# Using TakeValueColor in AddChartBubble makes the bubble stay same color as the line when
# you change the line color via TOS's Edit Studies
AddChartBubble(BubbleBar, yOpen[lastBar], "Y O", yOpen.TakeValueColor(), yes);
AddChartBubble(BubbleBar, yHigh[lastBar], "Y H", yHigh.TakeValueColor(), yes);
AddChartBubble(BubbleBar, yLow[lastBar], "Y L", yLow.TakeValueColor(), yes);
AddChartBubble(BubbleBar, yClose[lastBar], "Y C", yClose.TakeValueColor(), yes);
AddChartBubble(BubbleBar, tOpen[lastBar], "T O", tOpen.TakeValueColor(), yes);
AddChartBubble(BubbleBar, tHigh[lastBar], "T H", tHigh.TakeValueColor(), yes);
AddChartBubble(BubbleBar, tLow[lastBar], "T L", tLow.TakeValueColor(), yes);
AddLabel(ShowValuesAtTop, "Yesterday ", Color.CYAN);
AddLabel(ShowValuesAtTop, "Open: " + AsText(yOpen, NumberFormat.TWO_DECIMAL_PLACES),
if close > yOpen then Color.GREEN else Color.RED);
AddLabel(ShowValuesAtTop, "High: " + AsText(yHigh, NumberFormat.TWO_DECIMAL_PLACES),
if close > yHigh then Color.GREEN else Color.RED);
AddLabel(ShowValuesAtTop, "Low: " + AsText(yLow, NumberFormat.TWO_DECIMAL_PLACES),
if close > yHigh then Color.GREEN else Color.RED);
AddLabel(ShowValuesAtTop, "Close: " + AsText(yClose, NumberFormat.TWO_DECIMAL_PLACES),
if close > yClose then Color.GREEN else Color.RED);
AddLabel(ShowValuesAtTop, "Today ", Color.CYAN);
AddLabel(ShowValuesAtTop, "Open: " + AsText(tOpen, NumberFormat.TWO_DECIMAL_PLACES),
if close > tOpen then Color.GREEN else Color.RED);
AddLabel(ShowValuesAtTop, "High: " + AsText(tHigh, NumberFormat.TWO_DECIMAL_PLACES), Color.CYAN);
AddLabel(ShowValuesAtTop, "Low: " + AsText(tLow, NumberFormat.TWO_DECIMAL_PLACES), Color.CYAN);
# - - END SCRIPT