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

[amibroker] Re: How to Skip Empty Symbols when looping through wishlist



PureBytes Links

Trading Reference Links

Having changed 
IIf(IsNull(myforeign), Count, Count++);
into
Count = Count + IIf(IsNull(myforeign), 1, 0);
is not working either.

It really seems like IsNull function doesn't return True for empty 
symbols.

New entire code below

// EmptySymbols finder
// retrive comma-separated list of symbols
// from Group 0
list = CategoryGetSymbols(categoryGroup, 0);

Count = 0;

for( i = 0; ( sym = StrExtract( list, i ) ) != ""; i++ )
{
SetForeign(sym);
myforeign = C;
RestorePriceArrays();

//if the symbol is empty Count is not increased
Count = Count + IIf(IsNull(myforeign), 1, 0);

_TRACE("symbol " + sym);
_TRACE("Count " + Count);
_TRACE("IsNull " + IsNull(myforeign));

}


--- In amibroker@xxxxxxxxxxxxxxx, "Mike" <sfclimbers@xxx> wrote:
>
> Actually, you are running into a documented side effect of IIF 
usage. 
> 
> Specifically; the IIF statement always executes BOTH the true and 
the 
> false branches of the code. So, you will always have your Count++ 
code 
> executed regardless of the value of the IsNull expression.
> 
> Refer to the user guide for details:
> http://www.amibroker.com/guide/afl/afl_view.php?id=72
> 
> Mike
> 
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "Paolo Cavatore" <pcavatore@> 
> wrote:
> >
> > Does anyone know how to skip empty symbols when looping through a 
> > list of them?
> > 
> > The code below shows that IsNull function doesn't return TRUE for 
> > empty symbols.
> > 
> > Thanks,
> > 
> > paolo
> > 
> > // EmptySymbols finder
> > // retrive comma-separated list of symbols
> > // from Group 0
> > list = CategoryGetSymbols(categoryGroup, 0); 
> > 
> > Count = 0;
> > 
> >    for( i = 0; ( sym = StrExtract( list, i ) ) != ""; i++ ) 
> >    { 
> >         SetForeign(sym);      
> > 	myforeign = C;
> > 	RestorePriceArrays();
> > 	
> > 	//if the symbol is empty Count is not increased
> > 	IIf(IsNull(myforeign), Count, Count++);
> >         _TRACE("symbol " + sym);
> >         _TRACE("Count " + Count);
> >         _TRACE("IsNull " + IsNull(myforeign));
> > 
> >     }
> >
>



------------------------------------

**** IMPORTANT ****
This group is for the discussion between users only.
This is *NOT* technical support channel.

*********************
TO GET TECHNICAL SUPPORT from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com
*********************

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

For other support material please check also:
http://www.amibroker.com/support.html

*********************************
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/