Hi Friends,
I'm new to AFL, learning the things, I have written a AFL which takes long time in execution .
AFL is running in 1 min timeframe.
Code :
dn = DateNum();
newDay = dn != Ref( dn, -1 );
function get_buffer( price, trade_type)
{
// trade_type= 10 OR 20
buffer_price= Null;
if(price<=70)
{
mul =int(price);
round_val =price-mul;
if(trade_type==20)
{
if(round_val>=0.50){
buffer_price=mul+1.05;
}
else{
buffer_price=mul+0.55;
}
}
}
// else if ...
return buffer_price;
}
function getSLPrice(Price, Trade)
{
result=Null;
for( i = 1; i < BarCount-1; i++ )
{
if(Trade[i]==20 OR Trade[i]==10)
result[i]=get_buffer(price[i],trade[i]);
else if(NOT newDay[i])
result[i]=result[i-1];
}
return result;
}
trailingTime=Param("Trailing Minutes", 5, 5,30,1);
timeframe=in1Minute*trailingTime;
sl10min = TimeFrameCompress( High, timeframe );
TimeFrameSet(timeframe);
timeElapsed_t=10;
//SetBarsRequired(800,-2 );
dnt = DateNum();
newDayt = dnt != Ref( dnt, -1 );
High_15min=IIf(newDayt, Null, Ref(High,-1));
Low_15min=IIf(newDayt, Null, Ref(Low, -1));
for( i = 1; i < BarCount; i++ )
{
if (High_15min[i] !=0)
{
if(High_15min[i-1] <High_15min[i] AND sl10min [i]> High_15min[i])
High_15min[i]=High_15min[i-1];
}
if (Low_15min[i] !=0)
{
if(Low_15min[i-1] >Low_15min[i] AND sl10min [i]< Low_15min[i])
Low_15min[i]=Low_15min[i-1];
}
}
TimeFrameRestore();
High_15min_1 =TimeFrameExpand(High_15min, timeframe, expandFirst);
Low_15min_1 =TimeFrameExpand(Low_15min, timeframe, expandFirst);
// adding buffer price to traling sl as well.
TradeType=20;
High_15min_1 =getSLPrice(High_15min_1, TradeType);
TradeType=10;
Low_15min_1 =getSLPrice(Low_15min_1, TradeType);
SellTrailingSL =High_15min_1 ;
BuyTrailingSL =Low_15min_1 ;
Please help me to improve the performance of AFL.
Thanks