[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Endless loop in DO While in AFL library indicator



PureBytes Links

Trading Reference Links

I really like this piece of code( look at the bottom of the email) 
which I pulled from the AFL library.
It allows us to verify price within bollinger bands. I have been 
using it successfully on uptrending stocks which bounce off the 
signal line back toward the upper bollinger band. The range is 
usually a safe bet.

There is only one flaw in the AFL code.
If a ticker has too few quotes it goes into an endless loop.
( at least i think thatis what the problem is). I have tried to 
figure it out but have not been successful

INWK is a recent example. It returns an endless loop.
INWK is in an uptrending stock ( first week on the IBD top 100) 
appearing to be moving back to the 20 sma and preparing for a bounce. 

When i try to view it in Amibroker the indicator returns an 
endlessloop detected.
This is the exact error message ( below it is the actual AFL code):
----------------------------------------------------------
OuterPct = 100*( Sum( Over, LookBkPd ) + Sum( Under, 
LookBkPd ))/LookBkPd ;
 OP = LastValue(OuterPct) ;
 X=X+sign( OP - ExternalBarPct )*deltaX ;
 deltaX = deltaX/2 ;
---------------^
Error 14.
Endless loop detected in DO-WHILE loop
------------------------------------------------------------



This is the AFL indicator. Any help will be greatly appreciated.

// Daily Bar Chart
_SECTION_BEGIN("Elder Daily Chart with Envelope");
SetChartOptions(0,chartShowArrows|chartShowDates);
Plot( EMA(C,13),"EMA(13)",colorRed,styleLine);
PlotForeign(GetBaseIndex(),IndustryID
(1),colorGreen,styleLine|styleLeftAxisScale);
 LookBkPd = 100 ;
 AvgPd = 22 ;
 ExternalBarPct = 15 ;
 ConvergePct = 2 ;
 Middle = EMA( C,AvgPd ) ;
 Rng = HHV( H,LookBkPd ) - LLV( L,LookBkPd ) ;
 X = Rng ;
 deltaX = X/2 ;
 do
 {
 Over = H > Middle + X ;
 Under = L < Middle - X ;
 OuterPct = 100*( Sum( Over, LookBkPd ) + Sum( Under, 
LookBkPd ))/LookBkPd ;
 OP = LastValue(OuterPct) ;
 X=X+sign( OP - ExternalBarPct )*deltaX ;
 deltaX = deltaX/2 ;
 }
 while ( abs( OP - ExternalBarPct ) > ConvergePct ) ;
 Plot( Middle, "MA", colorLightGrey, styleLine|styleNoTitle ) ;
 Plot( Middle+X, "MA", colorBlue, styleDashed|styleNoTitle ) ;
 Plot( Middle-X, "MA", colorBlue, styleDashed|styleNoTitle ) ;
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %
g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( 
ROC( C, 1 ) ) ));
Plot( C, "Close", ParamColor("Color", colorBlack ), styleCandle | 
ParamStyle("Style") | GetPriceStyle() ); 
_SECTION_END();



Content-Description: "AVG certification"
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.409 / Virus Database: 268.14.11/542 - Release Date: 11/20/2006