Plotting Multi Time Frame Signal on Screen

Dear Seniors,

I am trying to plot signal on screen when the buy or Short condition is true on multiple time frame, here is my amateur attempt by through low level graphic, however when i scroll the chart the result is not at per but on bar replay it does work.

however still i doubt that there must be efficient way to write it please find below the screen recording & code which i have attempted till now, any suggestion would be helpful.

Buyst = Ref((Buy_Cond_10 OR Buy_Cond_15 OR Buy_Cond_20 OR Buy_Cond_30),-1);
Shortst = Ref((Short_Cond_10 OR Short_Cond_15 OR Short_Cond_20 OR Short_Cond_30),-1);

GfxSelectFont("Calibri", 10,800);
GfxSetTextAlign( 6 );
GfxSetBkMode(0);
GfxSetTextColor(colorDefault);

If(Buy_Cond_30[BarCount-1])
GfxSelectSolidBrush(colorBrightGreen);
If(Short_Cond_30[BarCount-1])
GfxSelectSolidBrush(colorRed);
GfxTextOut( "30M", Status("pxwidth")/44, Status("pxheight")/16);
pxHeight = Status( "pxchartheight" );
xx = Status( "pxchartwidth");
x = 20;
x2 = 60;
y = pxHeight-650;
GfxRoundRect( x, y - 62, x2, y-50 , 7, 7 );

If(Buy_Cond_20[BarCount-1])
GfxSelectSolidBrush(colorBrightGreen);
If(Short_Cond_20[BarCount-1])
GfxSelectSolidBrush(colorRed);
GfxTextOut( "20M", Status("pxwidth")/23, Status("pxheight")/16);
pxHeight = Status( "pxchartheight" );
xx = Status( "pxchartwidth");
x = 60;
x2 = 100;
y = pxHeight-650;
GfxRoundRect( x, y - 62, x2, y-50 , 7, 7 );

If(Buy_Cond_15[BarCount-1])
GfxSelectSolidBrush(colorBrightGreen);
If(Short_Cond_15[BarCount-1])
GfxSelectSolidBrush(colorRed);
GfxTextOut( "15M", Status("pxwidth")/15.5, Status("pxheight")/16);
pxHeight = Status( "pxchartheight" );
xx = Status( "pxchartwidth");
x = 100;
x2 = 140;
y = pxHeight-650;
GfxRoundRect( x, y - 62, x2, y-50 , 7, 7 );

If(Buy_Cond_10[BarCount-1])
GfxSelectSolidBrush(colorBrightGreen);
If(Short_Cond_10[BarCount-1])
GfxSelectSolidBrush(colorRed);
GfxTextOut( "10M", Status("pxwidth")/11.5, Status("pxheight")/16);
pxHeight = Status( "pxchartheight" );
xx = Status( "pxchartwidth");
x = 140;
x2 = 180;
y = pxHeight-650;
GfxRoundRect( x, y - 62, x2, y-50 , 7, 7 );

ABC