@Fossil I couldn't reply earlier because I've been busy today (and unfortuantelly the day is not over yet
... ) but modyfing the code was really simple. Take into account, that It was made on the go and for this reason it's not the most sophisticated solution, but rather one of the simplest 
I would rather plot those values directly on the chart, but if you want them to be visible on the Y-axis area it requires adding only 3-4 additional lines of code:
Condition = C < Ref( C, -1 ) * 0.98; // Any condition
fvbi = Status( "firstvisiblebarindex" );
lvbi = Status( "lastvisiblebarindex" );
pxchr = Status( "pxchartright" );
LVBI = LastVisibleValue( BarIndex() );
GfxSetZOrder(-1);
GfxSelectFont( "Arial narrow", 9, 700, False );
for( i = fvbi; i <= Min( lvbi, BarCount - 1 ) ; i++ )
{
if( Condition[i] )
{
RandomColor = ColorHSB( mtRandom() * 255, 255, 255 );
Spot = H[i];
GfxSetCoordsMode( 1 );
GfxSelectPen( RandomColor, 2 );
GfxSelectSolidBrush( RandomColor );
GfxCircle( i, Spot, -6 );
GfxMoveTo( i, Spot );
GfxLineTo( Min( i + 5, lvbi ), Spot );
GfxSetCoordsMode( 2 );
GfxSetTextColor( RandomColor );
GfxTextOut( "" + Spot, pxchr + 4, Spot );
}
}
Plot( C, "C", colorDefault, styleCandle );

Displaying those values precisely in the Y-axis area requires x coordinates expressed in pixels (not bars) so convertion from bars to pixels would be natural (and would give more visual posssibilities of presenting the outcome) but as I wanted to keep the code simple I used Status("pxchartright")
and GfxSetCoordsMode(2)
(X coordinate is pixel, Y coordinate is price) instead. So there are two different GfxSetCoordsModes in the code.
Regards