Search the web
Sign In
New User? Sign Up
amibroker · AmiBroker User's List
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Want your group to be featured on the Yahoo! Groups website? Add a group photo to Flickr.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
How to Skip Empty Symbols when looping through wishlist   Message List  
Reply | Forward Message #132236 of 143798 |
Re: [amibroker] Re: How to Skip Empty Symbols when looping through wishlist

OK... Your code works fine. Your group 0 is probably empty if it doesn't. Try this and see in the title the number of tickers you have in the group:


// EmptySymbols finder

// retrive comma-separated list of symbols

// from Group 0

list = CategoryGetSymbols( categoryGroup, 0 );

NumSymbols = StrCount( List, "," );

Count = 0;


for ( i = 0; ( sym = StrExtract( list, i ) ) != "" AND i < 100; i++ )

{

    SetForeign( sym );

    myforeign = C;

    RestorePriceArrays();

    //if the symbol is empty Count is not increased

    Count = i - IIf( IsNull( myforeign ), 1, 0 );

    _TRACE( "Count " + Count + ", Symbol: " + Sym + WriteIf( IsNull( myforeign ), "Null", "" ) );

}


Title = "\n" + "NumSymbols: " + NumSymbols + "\n" + "Count: " + Count + "\n";



Friday, November 21, 2008, 6:47:10 AM, you wrote:


> I'm trying to know how many symbols are not empy in my universe on a 

> bar-by-bar basis...the following code now seems to be working.


> Thanks for every hint


> p


> // 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 = i - IIf(IsNull(myforeign), 1, 0);


> _TRACE("symbol " + sym);

> _TRACE("Count " + Count);

> _TRACE("IsNull " + IsNull(myforeign));


> }


> Plot(Count, "Count", colorRed, styleLine | styleThick);


> --- In amibroker@yahoogroups.com, "Mike" <sfclimbers@...> wrote:


>> 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@yahoogroups.com, "Paolo Cavatore" <pcavatore@> 

>> 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@yahoogroups.com, "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@yahoogroups.com, "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@yahoogroups.com 

>     mailto:amibroker-fullfeatured@yahoogroups.com


> <*> To unsubscribe from this group, send an email to:

>     amibroker-unsubscribe@yahoogroups.com


> <*> Your use of Yahoo! Groups is subject to:

>     http://docs.yahoo.com/info/terms/





Fri Nov 21, 2008 12:07 pm

psytek2
Offline Offline
Send Email Send Email

Forward
Message #132236 of 143798 |
Expand Messages Author Sort by Date

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...
Paolo Cavatore
pcavatore
Offline Send Email
Nov 17, 2008
11:27 am

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...
Mike
sfclimbers
Offline Send Email
Nov 17, 2008
9:54 pm

Having changed IIf(IsNull(myforeign), Count, Count++); into Count = Count + IIf(IsNull(myforeign), 1, 0); is not working either. It really seems like IsNull...
Paolo Cavatore
pcavatore
Offline Send Email
Nov 19, 2008
9:35 am

Re: [amibroker] Re: How to Skip Empty Symbols when looping through wishlist symbols are strings, try Count = Count + (myforeign != "");...
Herman
psytek2
Offline Send Email
Nov 19, 2008
11:11 am

This is not working since I'm not trying to count null string symbols but symbols whit no data in it regards, p Re: [amibroker] Re: How to Skip Empty Symbols...
Paolo Cavatore
pcavatore
Offline Send Email
Nov 21, 2008
11:38 am

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)...
Mike
sfclimbers
Offline Send Email
Nov 19, 2008
8:22 pm

I'm trying to know how many symbols are not empy in my universe on a bar-by-bar basis...the following code now seems to be working. Thanks for every hint p //...
Paolo Cavatore
pcavatore
Offline Send Email
Nov 21, 2008
11:47 am

Re: [amibroker] Re: How to Skip Empty Symbols when looping through wishlist OK... Your code works fine. Your group 0 is probably empty if it doesn't. Try this...
Herman
psytek2
Offline Send Email
Nov 21, 2008
12:07 pm

I think that your code is now wrong. It was correct the way you had it before. Consider the scenario where you have 10 symbols, and any number of the initial...
Mike
sfclimbers
Offline Send Email
Nov 21, 2008
10:45 pm

Hi Mike, you're perfectly right. I managed to get a solution with this which looks the same as yours. thanks for every suggestion. paolo // EmptySymbols finder...
Paolo Cavatore
pcavatore
Offline Send Email
Nov 28, 2008
2:08 pm
Advanced

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help