```
#Month_HL_PriorMonth_HL_ShowTodayOnly
#Based upon TOS aggregationperiod.month which only uses Regular Trading Hours
input showtodayonly = yes;
plot monhigh = if IsNaN(close) or showtodayonly and !IsNaN(close(period = AggregationPeriod.MONTH)[-1])
then Double.NaN
else high(period = AggregationPeriod.MONTH)
;
monhigh.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
monhigh.SetDefaultColor(Color.GREEN);
plot monlow = if IsNaN(close) or
showtodayonly and !IsNaN(close(period = AggregationPeriod.MONTH)[-1])
then Double.NaN
else low(period = AggregationPeriod.MONTH);
monlow.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
monlow.SetDefaultColor(Color.RED);
plot priormonhigh = if IsNaN(close) or
showtodayonly and !IsNaN(close(period = AggregationPeriod.MONTH)[-1])
then Double.NaN
else high(period = AggregationPeriod.MONTH)[1]
;
priormonhigh.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
priormonhigh.SetDefaultColor(Color.GREEN);
plot priormonlow = if IsNaN(close) or
showtodayonly and !IsNaN(close(period = AggregationPeriod.MONTH)[-1])
then Double.NaN
else low(period = AggregationPeriod.MONTH)[1];
priormonlow.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
priormonlow.SetDefaultColor(Color.RED);
input showbubbles = yes;
input bubblemover = 3;
def b = bubblemover;
def b1 = b + 1;
AddChartBubble(showbubbles and IsNaN(close[b]) and !IsNaN(close[b1]), monhigh[b1], "MH", Color.GREEN);
AddChartBubble(showbubbles and IsNaN(close[b]) and !IsNaN(close[b1]), priormonhigh[b1], "PMH", Color.GREEN);
AddChartBubble(showbubbles and IsNaN(close[b]) and !IsNaN(close[b1]), monlow[b1], "ML", Color.RED);
AddChartBubble(showbubbles and IsNaN(close[b]) and !IsNaN(close[b1]), priormonlow[b1], "PML", Color.RED);
```