need help in placing order with a 30 second delay in amibroker

Hi I found 3 code which which plots buy and sell upto my mark. I want to automate so i need a solution to compare between the 3 afl and plot buy sell order . I would like to know whether there is a way to use 3 seperate charts and create conditon formating . if there is a way please let me know.
below is the code in which I want to compare if cb2 == (cb1 or cb3) plot signal instantly and check within 3 candles for the condition . if signal generated in two different candles plot instantly without waiting for next candle and if signal generated in same candle wait for 15 seconds. `

_SECTION_BEGIN(“MA1”);
P = ParamField(“Price field”,-1);
Periods = Param(“Periods”, 15, 2, 300, 1, 10 );
Plot( MA( P, Periods ), _DEFAULT_NAME(), ParamColor( “Color”, colorCycle ), ParamStyle(“Style”) );
_SECTION_END();

_SECTION_BEGIN(“MA”);
P = ParamField(“Price field”,-1);
Periods = Param(“Periods”, 15, 2, 200, 1 );
Plot( MA( P, Periods ), _DEFAULT_NAME(), ParamColor( “Color”, colorCycle ), ParamStyle(“Style”) | styleNoRescale );
_SECTION_END();

_SECTION_BEGIN(“Mid MA”);
P = ParamField(“Price field”,-1);
Periods = Param(“Periods”, 45, 2, 300, 1 );
Plot( MA( P, Periods ), _DEFAULT_NAME(), ParamColor( “Color”, colorCycle ), ParamStyle(“Style”) | styleNoRescale );
_SECTION_END();

_SECTION_BEGIN(“Long MA”);
P = ParamField(“Price field”,-1);
Periods = Param(“Periods”, 100, 2, 400, 1 );
Plot( MA( P, Periods ), _DEFAULT_NAME(), ParamColor( “Color”, colorCycle ), ParamStyle(“Style”) | styleNoRescale );
_SECTION_END();

_SECTION_BEGIN(“BBands”);
P = ParamField(“Price field”,-1);
Periods = Param(“Periods”, 15, 2, 300, 1 );
Width = Param(“Width”, 2, 0, 10, 0.05 );
Color = ParamColor(“Color”, colorLightGrey );
Style = ParamStyle(“Style”) | styleNoRescale | styleNoRescale;
Plot( BBandTop( P, Periods, Width ), “BBTop” + _PARAM_VALUES(), Color, Style );
Plot( BBandBot( P, Periods, Width ), “BBBot” + _PARAM_VALUES(), Color, Style );
_SECTION_END();

_SECTION_BEGIN(“Price Interpretation”);
movshort = ParamField(“Short Time MA”, 8 );
movmed = ParamField(“Mid Time MA”, 9 );
movlong = ParamField(“Long Time MA”, 10 );
btop = ParamField(“BBTop”, 11 );
bbot = ParamField(“BBBottom”, 12 );
if( Status(“action”) == actionCommentary )
{
width = btop - bbot;
lslop = LinRegSlope( C, 30 ) + 100;
lslo = LLV( lslop, 90 );
lshi = HHV( lslop, 90 );
lswidth = lshi - lslo;
trend = 100*( lslop - lslo )/lswidth;

mawidth = MA( width, 100 );
relwidth = 100*(width - mawidth)/mawidth;

_N( tname = Name()+"("+FullName()+")" );

printf(“Price and moving averages:\n”);
printf( tname + " has closed " + WriteIf( C > movshort, “above” , “below” ) + " its Short time moving average. ");

printf("\nShort time moving average is currently " + WriteIf( movshort > movmed, “above”, “below”) + " mid-time, AND " + WriteIf( movshort > movlong, “above”, “below” ) + " long time moving averages.");

printf("\nThe relationship between price and moving averages is: "+
WriteIf( C > movshort AND movshort > movmed, “bullish”,
WriteIf( C < movshort AND movshort < movmed, “bearish”, “neutral” ) ) + " in short-term, and "+
WriteIf( movshort > movmed AND movmed > movlong , “bullish”,
WriteIf( movshort < movmed AND movmed < movlong, “bearish”, “neutral” ) ) + " in mid-long term. ");

printf("\n\nBollinger Bands:\n");
printf(tname+ " has closed " +
WriteIf( C < bbot, "below the lower band by " +
WriteVal( 100 *( bbot-C )/ width, 1.1 ) + “%%. " +
WriteIf( trend < 30, " This combined with the steep downtrend can suggest that the downward trend in prices has a good chance of continuing. However, a short-term pull-back inside the bands is likely.”,
WriteIf( trend > 30 AND trend < 70, “Although prices have broken the lower band and a downside breakout is possible, the most likely scenario for “+tname+” is to continue within current trading range.”, “” ) ), “” ) +

WriteIf( C > btop, "above the upper band by " +
WriteVal( 100 *( C- btop )/ width, 1.1 ) + “%%. " +
WriteIf( trend > 70, " This combined with the steep uptrend suggests that the upward trend in prices has a good chance of continuing. However, a short-term pull-back inside the bands is likely.”,
WriteIf( trend > 30 AND trend < 70, “Although prices have broken the upper band and a upside breakout is possible, the most likely scenario for “+tname+” is to continue within current trading range.”, “” ) ), “” ) +

WriteIf( C < btop AND ( ( btop - C ) / width ) < 0.5,
"below upper band by " +
WriteVal( 100 *( btop - C )/ width, 1.1 ) + "%%. ",
WriteIf( C < btop AND C > bbot , "above bottom band by " +
WriteVal( 100 *( C - bbot )/ width, 1.1 ) + "%%. ", “” ) ));

printf("\n"+
WriteIf( ( trend > 30 AND trend < 70 AND ( C > btop OR C < bbot ) ) AND abs(relwidth) > 40,
“This picture becomes somewhat unclear due to the fact that Bollinger Bands are currently”,
"Bollinger Bands are " )+
WriteVal( abs( relwidth ), 1.1 ) + “%% " +
WriteIf( relwidth > 0, “wider” , “narrower” ) +
" than normal.”);

printf("\n");

printf(
WriteIf( abs( relwidth ) < 40, “The current width of the bands (alone) does not suggest anything conclusive about the future volatility or movement of prices.”,"")+
WriteIf( relwidth < -40, "The narrow width of the bands suggests low volatility as compared to " + tname + “'s normal range. Therefore, the probability of volatility increasing with a sharp price move has increased for the near-term. “+
“The bands have been in this narrow range for " + WriteVal(BarsSince(Cross(-40,relwidth)),1.0) + " bars. The probability of a significant price move increases the longer the bands remain in this narrow range.” ,””)+
WriteIf( relwidth > 40, "The large width of the bands suggest high volatility as compared to " + tname + “'s normal range. Therefore, the probability of volatility decreasing and prices entering (or remaining in) a trading range has increased for the near-term. “+
“The bands have been in this wide range for " + WriteVal(BarsSince(Cross(relwidth,40)),1.0) + " bars.The probability of prices consolidating into a less volatile trading range increases the longer the bands remain in this wide range.” ,””));

printf("\n\nThis commentary is not a recommendation to buy or sell. Use at your own risk.");
}
_SECTION_END();

_SECTION_BEGIN(“Volume1”);
Plot( Volume, _DEFAULT_NAME(), ParamColor(“Color”, colorBlueGrey ), ParamStyle( “Style”, styleHistogram | styleOwnScale | styleThick, maskHistogram ), 2 );
_SECTION_END();

_SECTION_BEGIN(“NICK MA Swing”);
SetBarsRequired(200,0);

GraphXSpace = 5;
SetChartOptions(0,chartShowArrows|chartShowDates);
k = Optimize(“K”,Param(“K”,1,0.25,5,0.25),0.25,5,0.25);
Per= Optimize(“atr”,Param(“atr”,4,3,20,1),3,20,1);
HACLOSE=(O+H+L+C)/4;
HaOpen = AMA( Ref( HaClose, -1 ), 0.5 );
HaHigh = Max( H, Max( HaClose, HaOpen ) );
HaLow = Min( L, Min( HaClose, HaOpen ) );
PlotOHLC( HaOpen, HaHigh, HaLow, HaClose, “” + Name(), colorBlack, styleCandle | styleNoLabel );
j=Haclose;

//=======================================================================================================================
//=========================Indicator==============================================================================================
f=ATR(14);

rfsctor = WMA(H-L, Per);

revers = k * rfsctor;

Trend = 1;
NW[0] = 0;

for(i = 1; i < BarCount; i++)
{
if(Trend[i-1] == 1)
{
if(j[i] < NW[i-1])
{
Trend[i] = -1;
NW[i] = j[i] + Revers[i];
}
else
{
Trend[i] = 1;
if((j[i] - Revers[i]) > NW[i-1])
{
NW[i] = j[i] - Revers[i];
}
else
{
NW[i] = NW[i-1];
}
}
}
if(Trend[i-1] == -1)
{
if(j[i] > NW[i-1])
{
Trend[i] = 1;
NW[i] = j[i] - Revers[i];
}
else
{
Trend[i] = -1;
if((j[i] + Revers[i]) < NW[i-1])
{
NW[i] = j[i] + Revers[i];
}
else
{
NW[i] = NW[i-1];
}
}
}
}

//===============system================

Plot(NW, “”, IIf(Trend == 1, 27, 4), 4);
CB1=Cover=Cross(j,nw);
CS1=Short=Cross(nw,j);
SellPrice1=ValueWhen(CS1,C,1);
BuyPrice1=ValueWhen(CB1,C,1);
Long=Flip(CB1,CS1);
Shrt=Flip(CS1,CB1 );
_SECTION_END();

dist = 2ATR(1); //0.8
dist1 = 4ATR(1); //1.2
for( i = 0; i < BarCount; i++ )
{
if( CB1[i] )
{
PlotText( “Buy:” + BuyPrice1[i] , i, L[ i ]-dist[i], colorLime);
}
if( CS1[i] )
{
PlotText( “Sell:” + sellprice1[ i ] , i, H[ i ]+dist1[i], colorred);
}
}

PlotShapes(IIf(CB1, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-40);
PlotShapes(IIf(CB1, shapeSquare, shapeNone),colorLime, 0,L, Offset=-50);
PlotShapes(IIf(CB1, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-45);
PlotShapes(IIf(CS1, shapeSquare, shapeNone),colorRed, 0, H, Offset=40);
PlotShapes(IIf(CS1, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50);
PlotShapes(IIf(CS1, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-45);
_SECTION_END();

_SECTION_BEGIN(“PPO”);
//Further understanding of PPO indicator visit www.Stockchart.com
PPOShort = Param(“PPO Short Period”, 8, 1, 150, 1);
PPOLong = Param(“PPO Long Period”, 17, 1, 150, 1);
PPOsignal = Param(“PPOsignal”, 9, 1, 150, 1);
PPO = (EMA(C, PPOShort ) - EMA(C, PPOLong ))/ EMA(C, PPOLong );
PPOS = (EMA(ppo, PPOsignal ));
Val=ppo-PPOS ;
Plot( PPO , “ppo”, colorGreen, styleLine| styleThick );
Plot ( PPOS ,“PPO Signal”, colorOrange, styleLine| styleThick );
dynamic_color = IIf( Val> 0, colorGreen, colorRed );
Plot( Val, “PPO Histogram”, dynamic_color, styleHistogram | styleThick );
CB2=Cross(PPO,PPOS);
CS2=Cross(PPOS,PPO);

shape = CB2 * shapeHollowUpArrow + CS2 * shapeHollowDownArrow;
CB2=ExRem(CB2, CS2);
CS2=ExRem(CS2, CB2);

PlotShapes( shape, IIf( CB2, colorLime, colorRed ), 0,IIf( CB2, Ref(PPO,-1)*0.9, Ref(PPO,-1)*1.05) );
_SECTION_END();

Odd=13;
CoefOdd=round(Odd/2);

Even=12;
Coefeven=Even/2;
Coefeven2=Coefeven+1;

CongestionPercent=2.8;

TriangularOdd=MA(MA(C,CoefOdd),CoefOdd);
TriangularEven=MA(MA(C,Coefeven),Coefeven2);

finalMov_avg=IIf(Odd > even,triangularOdd,TriangularEven);

Color=colorBrightGreen;
tickercolor=colorWhite;

Plot(finalMov_avg,"",IIf(C < finalmov_avg,colorRed,Color),styleLine|styleThick);
Plot(C,"",tickercolor,styleCandle);

Title=Name()+"…"+"( “+WriteIf(Odd > even,WriteVal(Odd,1),WriteVal(even,1))+” ) Period “+EncodeColor(Color)+“Triangular”+WriteIf(Odd > even,“ODD”,“EVEN”)+” Moving Average"+"…"+EncodeColor(colorBlack)+ WriteIf(C < finalMov_avg,“Close is “+EncodeColor(colorRed)+“Below”+EncodeColor(colorBlack)+” Moving Average by “,“Close is”+EncodeColor(colorBrightGreen)+” Above”+EncodeColor(colorBlack)+" Moving Average by “)+”("+WriteVal(((C/finalMov_avg)-1)*100,1.1)+"% )"+"\n"+WriteIf(finalmov_avg-Ref(finalmov_avg,-1)>0," Slope Of Average is UP : “,“Slope Of Average is DOWN :”)+WriteIf((((C/finalMov_avg)-1)*100 <= CongestionPercent AND ((C/finalMov_avg)-1)*100 >= -CongestionPercent),EncodeColor(colorYellow)+” with Price Congestion / Divergence to Average “,”")+"\n"+WriteIf(Ref(C,-1) < Ref(finalmov_avg,-1) AND C > finalmov_avg,EncodeColor(colorGreen)+“Possible Change in Trend From Down to Up”+"\n"+" OR Short Term Correction of Previous Trend",WriteIf(Ref(C,-1) > Ref(finalmov_avg,-1) AND C < finalmov_avg,EncodeColor(colorRed)+“Possible Change in Trend From Up to Down “+”\n”+" OR Short Term Correction to Previous Trend",""))+"\n"+WriteIf(C > finalmov_avg,EncodeColor(colorGreen)+“Close has been above Moving Average ( “+WriteVal(BarsSince(C < finalmov_avg),1)+” ) Bars”,EncodeColor(colorRed)+“Close has been Below Moving Average ( “+WriteVal(BarsSince(C > finalmov_avg),1)+” ) Bars”)+"\n"+EncodeColor(colorBlack)+“The average # of Bars Above ( “+WriteVal(round(Cum(BarsSince(C < finalmov_avg)/Cum(1))),1)+” )”+"\n"+“The average # of Bars Below ( “+WriteVal(round(Cum(BarsSince(C > finalmov_avg)/Cum(1))),1)+” )”;
_SECTION_BEGIN(“AFL Example”);

SetBarsRequired(10000,10000); /* this ensures that the charts include all bars AND NOT just those on screen */
SetFormulaName(“Sample System”); /*name it for backtest report identification /
SetTradeDelays( 1, 1, 1, 1 ); / delay entry/exit by one bar /
SetOption( “initialequity”, 100000 ); / starting capital /
PositionSize = -10; / trade size will be 10% of available equty /
SetOption( “MaxOpenPositions”, 6 ); / I don’t want to comit more than 60% of Equity at any one time /
SetOption( “PriceBoundChecking”, 1 ); / trade only within the chart bar’s price range /
SetOption( “CommissionMode”, 2 ); / set commissions AND costs as $ per trade /
SetOption( “CommissionAmount”, 32.95 ); / commissions AND cost */
SetOption( “UsePrevBarEquityForPosSizing”, 1 ); /set the use of last bars equity for trade size/
PositionScore = 100/C; /*Set the order for which stock trades when get mulitple signals in one bar in backtesting */

LongPer = Param(“Long Period”, 50, 30, 100, 5 ); /* select periods with parameter window */
ShortPer = Param(“Short Period”, 5, 3, 10, 1 );

LongMA = EMA( C, LongPer );
ShortMA = EMA( C, ShortPer );
LastHigh = HHV( H, LongPer );

Buy1 = Cross( ShortMA, LongMA ) AND H > Ref( LastHigh, -1 );

Sell1 = Cross( LongMA, ShortMA );

Buy = Ref(buy1,-1);
sell = ref(sell1,-1);

Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);

Filter = Buy OR Sell;
AddTextColumn( FullName(), “Company Name” );
AddColumn( Buy, “Buy”, 1 );
AddColumn( Sell, “Sell”, 1 );
AddColumn( C, “Close”, 1.3 );
AddColumn( H, “High”, 1.3 );
AddColumn( LastHigh, “HHV”, 1.3 );
AddColumn( LongMA, “Long MA”, 1,3 );
AddColumn( ShortMA, “Short MA”, 1,3 );

GraphXSpace = 10;
//Plot( C, " Close Price", colorGrey50, styleBar );
Plot( LongMA, " EMA(C,"+WriteVal(LongPer,1)+")", colorBrown, styleLine|styleNoRescale );
Plot( ShortMA, " EMA(C,"+WriteVal(ShortPer,1)+")", colorBlue, styleLine|styleNoRescale );
Plot( Ref(Lasthigh,-1), " HHV(H,"+WriteVal(LongPer,1)+")", colorRed, styleNoLine|styleDots|styleNoRescale );
//PlotShapes( shapeUpArrowBuy, colorGreen, 0, L, -10 );
//PlotShapes( shapeDownArrowSell, colorRed, 0, H, -10 );
Title = " {{NAME}} {{DATE}} {{INTERVAL}} “+_DEFAULT_NAME()+” Chart values : {{VALUES}} ";
_SECTION_END();
no=Param( “Swing”, 5, 1, 55 );
res=HHV(H,no);
sup=LLV(L,no);
tsl=IIf(ValueWhen(IIf(C>Ref(res,-1),1,IIf(C<Ref(sup,-1),-1,0))!=0,IIf(C>Ref(res,-1),1,IIf(C<Ref(sup,-1),-1,0)),1)==1,sup,res);

Buy = Cross(C,res) ;
Sell = Cross(sup,C) ;

Buy = ref(Buy,-1);
Sell = Ref(Sell,-1);

_SECTION_END();

a=C;
g=(EMA(Close,3) * (2 / 4 - 1)-EMA(Close,5) * (2 / 6 - 1)) / (2 /4- 2 /6);
e=Ref(tsl,-1);
Buy = Cross(C,tsl) ;
Sell = Cross(tsl,C) ;
SellPrice=ValueWhen(Sell,e,1);
BuyPrice=ValueWhen(Buy,e,1);
Long=Flip(Buy,Sell);
Shrt=Flip(Sell,Buy );
Filter=Buy OR Sell;
CB3 = Cross(C,tsl) ;
CS3 = Cross(tsl,C) ;

shape = CB3 * shapeUpArrow + CS3 * shapeDownArrow;
PlotShapes( shape, IIf( Buy, colorGreen, colorRed ),0, IIf( Buy, Low, High ) );
a1=Ref(tsl,-1);

dist = 2ATR(1); //0.8
dist1 = 4ATR(1); //1.2
for( i = 0; i < BarCount; i++ )
{
if( Buy[i] )
{
PlotText( “Buy:” + BuyPrice[ i ] + "\nTgt: " + (a1[i]*1.005) + "\nSL: " + (tsl[i]*0.9975), i, L[ i ]-dist[i], colorLime);
}
if( Sell[i] )
{
PlotText( “Sell:” + SellPrice[ i ] + "\nT: " + (a1[i]*0.995) + "\nSL: " + (tsl[i]*1.0025), i, H[ i ]+dist1[i], colorred);
}
}

`

can you share what the code is in or your requirement is; in simple language? lol i am not able to understand it only

I want the signal generated for buy sell order to wait for 30 seconds and reconfirm the signal . if true then execute the order. now it waits for the candle to complete.
thanks for helping .

Aren’t the indicator values calculated after the candle closes? I mean let’s consider Simple Moving Average, it is calculated on the basis of the close price (default) right?

So the close price will be available after candle closing only if I’m not wrong.