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/
|