Hi
i wrote this afl with Not really "messy chart" for me 
@JEETU i dont know if it is very close what you try to do.
_SECTION_BEGIN("xFibo Ver 2");
// Fibonacci Retracements using Gfx* functions by Panos 05-07-2018
// EXAMPLE xFiboRetracements("P6",colorBlue ) ;
Plot( C, "Price", colorDefault, styleCandle );
GfxSetOverlayMode( 1 );
GfxSetCoordsMode( 1 ); // bar/price mode (instead of pixel)
function xFiboRetracements( StudyID, Color )
{
trendline = Study(StudyID, GetChartID() );
bi =BarIndex();
X0= StartX = LastValue( ValueWhen( ExRem( trendline, 0 ), BarIndex() ) );
X1= EndX = LastValue( ValueWhen( trendline, BarIndex()) ); // printf("X1 StartX = %g,\n X1 EndX = %g\n", StartX, EndX );
Y0= StartY = LastValue( ValueWhen( ExRem( trendline, 0 ), trendline ) );
Y1= EndY = LastValue( ValueWhen( trendline, trendline ) ); // printf("\nY1 StartY = %g,\nY2 EndY = %g\n", StartY, EndY );
LineY = ( Y1 - Y0 ) ;
//y0 = Y1;
y382 = Y1 - ( LineY * 0.382 );
y50 = Y1 - ( LineY * 0.50 );
y618 = Y1 - ( LineY * 0.618 ); // 61.8%
y786 = Y1 - ( LineY * 0.786 ); // 78.6%
Y100 = Y0;
y112 = Y0 - ( LineY * 0.128 ); // 1.128
y127 = Y0 - ( LineY * 0.272 ); // 1.272
y161 = Y0 - ( LineY * 0.618 ); // 1.618%
GfxSelectPen( Color );
Bars= bi[x1]-bi[x0];
if( ParamToggle( "Measuring X & Y ", "No|Yes" )) ext= Bars; else ext= 0;
GfxMoveTo( X0, y1 ); GfxLineTo( X1+ext, y1 ); // 0%
GfxMoveTo( X0, y100 ); GfxLineTo( X1, y100 ); // 100%
if( ParamToggle( "Show Fibo Retracements? ", "No|Yes" ) )
{
GfxMoveTo( X0, y382); GfxLineTo( X1, y382 ); // 38.2%
GfxMoveTo( X0, y50 ); GfxLineTo( X1, y50 ); // 50%
GfxMoveTo( X0, y618 ); GfxLineTo( X1, y618 ); // 61.8%
GfxMoveTo( X0, y786 ); GfxLineTo( X1, y786 ); // 78.6%
GfxMoveTo( X0, y112 ); GfxLineTo( X1, y112 ); // 112.8%
GfxMoveTo( X0, y127 ); GfxLineTo( X1, y127 ); // 127%
GfxMoveTo( X0, y161 ); GfxLineTo( X1, y161 ); // 161.8%
}
if( ParamToggle( "Show Fibo number? ", "No|Yes" ) )
{
GfxSelectFont( "Tahoma", 8 );
GfxSetBkMode( colorDefault );
GfxSetTextColor( colorBrown );
GfxTextOut( "0%", X1, y1 );
GfxTextOut( "100%", X1, y100 );
GfxSetTextColor( ColorRGB( 100, 200, 100 ) );
GfxTextOut( "38.2%", X1, y382 );
GfxTextOut( "50%", X1, y50 );
GfxTextOut( "61.8%", X1, y618 );
GfxTextOut( "78.6%", X1, y786 );
GfxSetTextColor( colorBlueGrey );
GfxTextOut( "112.8%", X1, y112 );
GfxTextOut( "127%", X1, y127 );
GfxTextOut( "161.8%", X1, y161 );
}
GfxsetBkMode( colorDefault );
GfxSetTextColor( colorAqua );
if( ParamToggle( "Bars,Change,% ? ", "No|Yes" ) )
{ // TrendLine Bars , Change ,Percent
InfoPosition= Y1 + ( LineY * 0.10 );
perc = NumToStr(abs(((y1-y0)/(y0+1e-9 ))*100),1.2);
InfoTxt = "Change: "+abs(LineY)+ ",("+ perc + " % ), Bars: "+ Bars+"";
GfxTextOut( InfoTxt, x0-5, InfoPosition );
}
if( ParamToggle( "Bars between X & Y ", "No|Yes" )) GfxTextOut( "Bars: "+Bars , X0+Bars/3, Y1 );
if( ParamToggle( "Show Gfx Rectangle ", "No|Yes" ) )
{
GfxFillSolidRect( BarCount +3, y112, BarCount +50, y127, color );
// GfxFillSolidRect( BarCount -1, y112, Status("pxwidth")-80, y127, color ); // also with Pixels
// Text inside Rectangle box
GfxSetTextColor( colorGold);
GfxSelectFont( "Tahoma", 10 );
GfxTextOut( StrFormat("%g - %g",y112,y127 ), BarCount +4, y112+(y127-y112)/2);
}
}
xFiboRetracements("P1",colorDarkOliveGreen ) ;
xFiboRetracements("P2",colorDarkGreen ) ;
xFiboRetracements("P3",colorDarkTeal ) ;
xFiboRetracements("P4",colorBlueGrey ) ;
_SECTION_END();