Hi all Below (and attached) is another way to address the issue. While it may run much faster on longer watchlists, it does suffer from one problem that I haven't figured out how to address -- the total number of issues with RSI(2) over 90 is at the top of the column, however I haven't figured out how to export that total to use in creating a chart to track how the number compares to other market indices (something I'd like to do, preferably in a chart). If anyone else out there has solved this, I'd be grateful for some direction or code as I have several other instances of list totals that I'd like to chart.
Thanks in advance for any solution. Peace and Justice --- Patrick //=============================================================================== // Find the total number of issues with RSI(2) over 90 // Run in Exploration against a watchlist (or industry, group, etc) to generate the total number of issues with RSI(2) over 90 // Runs on ver 5.2 or higher and also generates a column with the RSI(2) value sorted from high to low RSI2_90 = RSI(2) > 90; Filter = 1; ADDCOLUMN( C, "LAST", 3.2, COLORYELLOW,COLORBLUE, 75) ; ADDCOLUMN( RSI2_90 , "RSI(2) > 90" , 1.0 , COLORWHITE,COLORGREEN , 75); ADDCOLUMN( RSI(2) , "RSI(2) " , 3.2, COLORDARKGREEN, COLORLIGHTGREY, 100 ); ADDSUMMARYROWS( 1, 1.0 , 4 ); SETSORTCOLUMNS( -4, -5 ) ; ----- Original Message ----- From: bistrader To: [email protected] Sent: Friday, January 08, 2010 10:48 AM Subject: [amibroker] Re: RSI(2) and AddToComposite I believe you could also start with something like the following, with your rsi code added, and do via regular bactest, plot or whatever. function CountWatchList( listnum ) { // retrive comma-separated list of symbols in watch list list = CategoryGetSymbols( categoryWatchlist, listnum ); Count = 0; // just in case there are no watch list members for( i = 0; ( sym = StrExtract( list, i ) ) != ""; i++ ) { Count = Count + 1; } return Count; } Count = CountWatchList(10); //Filter = 1; //AddColumn(Count, "Count", 5.3); //Plot or whatever here --- In [email protected], "woodshedder_blogspot" <woodshedder_blogs...@...> wrote: > > Wern, I think this will work for you. You'll need to use the scan feature. It is also going to compute a universe count for you as well. You can of course tweak the universe parameters any way you like. > > Regards, > Wood > > Buy = Sell = 0; > Universe = 0; > RSI2Count = 0; > AV10=MA(V,10); > RSI2=RSI(2); > > // Scan and Count Universe > for (i=1; i<BarCount; i++) > { > if (C[i]>1 AND AV10[i]>100000) > Universe[i] = Universe[i] + 1; > } > AddToComposite (Universe, "~Universe", "X"); > Plot ( Foreign("~Universe", "X"), "Universe",6,1); > > // Scan and Count RSI2 > 90 > for (i=1; i<BarCount; i++) > { > if (C[i]>1 AND AV10[i]>100000 AND RSI2>90) > RSI2Count[i] = RSI2Count[i] + 1; > } > AddToComposite (RSI2Count, "~RSI2Count", "X"); > Plot ( Foreign("~RSI2Count", "X"), "RSI2Count",6,1); > > --- In [email protected], "wernkra" <WKRAG@> wrote: > > > > Hi there, > > > > is there a way to count the number of stocks which are at a certain RSI(2) threshold? > > I'd like to plot the number of stocks with RSI(2) > 90. > > > > I guess that could be done with AddtoComposite. > > > > How would I do that? > > > > Thanks. > > > > Wern > > > ------------------------------------ **** IMPORTANT PLEASE READ **** This group is for the discussion between users only. This is *NOT* technical support channel. TO GET TECHNICAL SUPPORT send an e-mail directly to SUPPORT {at} amibroker.com TO SUBMIT SUGGESTIONS please use FEEDBACK CENTER at http://www.amibroker.com/feedback/ (submissions sent via other channels won't be considered) For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG: http://www.amibroker.com/devlog/ Yahoo! Groups Links
