Ah. You will not be able to convert your horizontal line into vertical line like that, because your X axis and Y axis will never match in scale. At least I have no idea how to do that from inside OnBarUpdate().
What you need to do is render your line in OnRender() method (NT8) or Plot(NT7).
I assume you probably using NT7.
In Plot() you can draw same line, but because you are drawing using X,Y coordinates of chart (instead of TIME\VALUE), you can easily convert your line into vertical line and it will be exactly same length pixel wise.
Here is an example:
public override void Plot(Graphics graphics, Rectangle bounds, double min, double max)
{
int hLineX1 = ChartControl.GetXByBarIdx(BarsArray[0], lineBarIndexStart);
int hLineX2 = ChartControl.GetXByBarIdx(BarsArray[0], lineBarIndexEnd);
int hLineY = ChartControl.GetYByValue(this, linePrice);
// now draw verical line at the end of this horizonal line
int horiLineLen = hLineX2-hLineX1;
graphics.DrawLine(myPen, hLineX2, hLineY , hLineX2 , hLineY-horiLineLen); // draw it up
}
hope this helps.
look up the rest in help or google. I think this function (GetXByBarIdx) is undocumented in help, but you can find it in their NT forums.