[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

Your code is working fine. What is it that you are trying to do?

As written, your code is counting (on a bar by bar basis since you are 
working with arrays) the number of symbols that have a Null value for 
a Close.

Just add a Plot statement for the Count array and scroll back through 
time to see that the value will increase as more and more symbols run 
out of data. Be sure that at least 1 symbol in your group actually 
runs out of data before any of the others, or actually does have a 
Null value for Close at some point in its history.

Mike

--- In amibroker@xxxxxxxxxxxxxxx, "Paolo Cavatore" <pcavatore@xxx> 
wrote:
>
> 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@> 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/