You can simulate horizontal lines with price markers in your custom indicators by adding a plot that has the same value as the line, and that, except for the price marker, is invisible.
e.g.
IsOverlay = true;
PaintPriceMarkers = true;
// This plot supplies the price marker.
AddPlot(new Stroke(Brushes.Green, 1), PlotStyle.Line, "PriceMarker");
// Create the line
HorizontalLine AlertLine = Draw.HorizontalLine(this, tag, IsAutoScale, Price, Plots[0].Brush, Plots[0].DashStyleHelper, (int)Plots[0].Width);
// Set plot value equal to line.
Values[0][0] = Price;
//This prevents ghost lines from the price marker plot.
if (Values[0].IsValidDataPoint(1))
Values[0].Reset(1);
Only the marker will show up. If your line is moveable, code accordingly to update the price when the line is moved.
The attached image shows two lines, one above and one below the current price. They were created by this method.