Hi Patrick, Thanks for the hint Patrick. This is indeed the simplest way to do it.
Regards Richard --- In [email protected], "NW Trader" <ta4cha...@...> wrote: > > Hi Richard, > > Take a look at the BarsSince() function. E.g. BarsSince(Cross(RSI(2), 90)); > used in an exploration. You could than sort that column for the most recent > or oldest. I'm not in AB at the moment, so haven't tested this, but think > it's pretty straightforward (and faster than looping). If you wanted, you > could also include this in a title so you would see the info on a stock by > stock basis. > > Peace and Justice --- Patrick > ----- Original Message ----- > From: Richard > To: [email protected] > Sent: Friday, January 08, 2010 3:12 PM > Subject: [amibroker] Re: RSI(2) and AddToComposite > > > Hello All, > > I have been following this post with interest. Thank you to everyone for > the contribution. I have a question related to this subject. > What is the simplest way to count how many days/bars the RSI(2) signal > stays below/above certain level? For instance - count bars IF (RSI(2) < 5). > Do I need to use looping code or "cum" may do the job? > > Regards > Richard > > --- In [email protected], "NW Trader" <ta4charts@> wrote: > > > > 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_blogspot@> 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 > > > > > > > ------------------------------------ > > **** 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 >
