Yes, you've got the problem exactly right - finding the top 20 stocks, in volume, for a given day. I think to do this you would need to compare each stock in the index to every other stock in the index, or utilize some loop to do it - but it's beyond me.
--- In [email protected], "areehoi" <aree...@...> wrote: > > Droskill, > As I interpreted the MAAD indicator it is based on the high volume stocks -- > top 20. In other words a A/D line based on the 20 high volume stocks each > day. Yesterday these were the top 25 High volume stocks: > Ticker Close Close-1 Volume > BAC 11.94 13.22 433248704 > SPY 89.28 92.04 251876992 > FAZ 5.44 4.71 237738400 > FAS 8.03 9.53 228983504 > C 3 3.17 204409200 > QQQQ 35.08 36.16 137701504 > XLF 11.34 12.04 133198304 > GE 11.52 12.1 102410800 > WFC 22.51 24.19 82112400 > EEM 30.6 31.75 80986096 > MSFT 23.28 24.07 71293296 > INTC 15.68 16.01 70840304 > JPM 32.87 35 70389200 > ETFC 1.19 1.26 61451700 > PFE 14.79 15 58470900 > F 5.38 5.72 57614800 > IWM 49.49 51.31 54877200 > UYG 3.58 4 54439000 > AIG 1.39 1.53 49126000 > CSCO 18.41 18.92 46180600 > AA 10.02 11 44634100 > SSO 24.66 26.23 44414800 > RF 3.84 4.13 43220400 > SKF 46.34 41.83 41821700 > VALE 16.98 18.54 41812300 > > Sometime back I developed (with the help of others) an Advance/Decline, NewHi > NewLo indicator/composite. Here is the formula: > // Breadth of Stocks > // Develops 4 composites that can be plotted or manipulated as you wish > // How to Run > // 1) Select Group - Stocks or Market -NYSE,Nasdq, AMEX (or all stocks/ETF's) > // 2) Select an issue with a long history in the current ticker window > // 3) Set APPLY TO to use filter Market - Stocks > // 4) Set RANGE to one bar... 1 n last quotations > // 5) Press SCAN > > //===================52 Weeks New High -Lows================================== > NHi = (C> HHV(Ref(C,-1),251)); > NLo = (C< LLV(Ref(C,-1),251)); > AddToComposite(IIf(C > HHV(Ref(C, -1), 251), 1,0), "~StocksNewHi", "X"); > //Find New Highs over the past 52 weeks. > AddToComposite(IIf(C < LLV(Ref(C, -1), 251), 1,0), "~StocksNewLo", "X"); > //Same for lows next. > NewHigh = Foreign("~StocksNewHi","X"); > NewLow = Foreign("~StocksNewLo","X"); > > DIFF_H_L = NewHigh-NewLow; > > Plot(NewHigh,"NewHigh",colorGreen,styleThick|styleHistogram); > Plot(NewLow*-1,"NewLow",colorRed,styleThick|styleHistogram); > Plot(0,"",1); > > > //===================Advance/Decline Issues > AddToComposite(C>Ref(C,-1),"~StocksAdv","X"); > AddToComposite(C<Ref(C,-1),"~StocksDec","X"); > AddToComposite(C==Ref(C,-1),"~StocksNC","X"); > > Adv = Foreign("~StocksAdv","X"); > Dec = Foreign("~StocksDec","X"); > NC =Foreign ("~StocksNC","X"); > DIFF_A_D = Adv-Dec; > ADRatio = IIf(Dec>Adv,(Dec*-1)/Adv,Adv/Dec); > Plot(Adv,"Adv",colorBlack,styleLine); > Plot(Dec,"Dec",colorBrown,styleLine); > //Plot( Adv-Dec, "Adv/Dec Histogram", IIf(Adv-Dec > > 0,colorBrightGreen,colorRed ), styleNoTitle | ParamStyle("Histogram style", > styleHistogram | styleNoLabel, maskHistogram )); > //Plot(Diff_A_D,"Diff_A_D",colorBlack,styleThick); > Plot(ADRatio,"AdvanceDeclineRatio",colorDarkBlue,styleHistogram); > Plot (Cum(Adv-Dec),"Diff_A_D",colorBlack,styleDots); > > GraphXSpace = 2; > Filter = C; > Buy = Sell = 0; > > Result = WriteIf(Buy,"Buy","Sell"); > //AddTextColumn( WriteIf(Buy, "Buy" , "Sell" ) , "TRADE" , 5 , > IIf(Buy,colorYellow, colorWhite), IIf(Buy, colorDarkGreen, colorDarkRed) ); > AddTextColumn(Result,"Trade", > formatChar,IIf(Buy,colorDarkGreen,colorLightYellow ), > IIf(Sell,colorLightYellow,colorLime)); > //AddTextColumn(Result,"Trade", formatChar,IIf(Buy,colorDarkGreen,colorRed ), > IIf(Sell,colorLightYellow,colorLime)); > AddTextColumn(FullName(),"Full name",77,colorPlum, IIf(Close > <1.00,colorYellow,colorDefault ) ); > AddTextColumn(IndustryID(1) ," Industry Sector ", 25.0, colorWhite, > colorBlue); > AddColumn( Close, "Close", 1.2, IIf( ROC(C, 1 ) >= 0, colorDarkGreen,colorRed > ),50 ); > AddColumn(NHi,"52 Wk High",1.2,colorBrown); > AddColumn(NLo,"52 Wk Low",1.2,colorDarkBlue); > //AddColumn ((NHi-NLo/NHi)*100,"% Dif Hi_Lo", 3.2, colorYellow,colorGreen); > AddColumn( ( (HHV(C,251))-LLV(C,251))/(HHV(C,251))*100,"% Dif Hi_Lo", 3.2, > colorYellow,colorGreen); > Buy = ExRem(Buy,Sell); > Sell = ExRem(Sell,Buy); > _SECTION_END(); > > The challenge is to develop formula that will pick the top 20 or 25 high > volume stocks each day from ones database and run the oomposite scan on it. > Correct me if I'm wrong. > > Dick H > > > > > --- In [email protected], "droskill" <droskill@> wrote: > > > > Thanks for the pointer - I tried coding up an Exploration as: > > > > upvol = Volume > Percentile( Volume, 1, 80 ) AND Close > Ref(Close,-1); > > downvol = Volume > Percentile( Volume, 1, 80 ) AND Close < Ref(Close,-1); > > MAAD = upvol - downvol; > > > > Buy = 0; > > AddToComposite(upvol,"~MAAD_UpVol20","X"); > > AddToComposite(downvol,"~MADD_DownVol20","X"); > > AddToComposite(MAAD,"~MADD_diff","X"); > > AddToComposite(1,"~MADD_count","X"); > > > > But then I realized that I wasn't comparing the volume of one stock to all > > other stocks - I was just comparing vs. historical volume of an individual > > stock. So what I really want to do (which would be incredibly slow): > > > > - Loop through the stocks in a watchlist (in this case, the NYSE) > > - Compare the volume of a stock to all others in the list. > > - If it is in the top, say, 20%, then add it to the composite (either up or > > down depending on whether it was up or down for the day) > > > > I'd be concerned that the code would be to slow to be a reasonable > > calculation for my home PC - thoughts appreciated. > > > > --- In [email protected], Thomas Ludwig <Thomas.Ludwig@> wrote: > > > > > > droskill, > > > > > > I haven't tried it yet - but I think you could use the percentile > > > function. > > > See the examples on http://www.amibroker.com/guide/afl/afl_view.php?id=251 > > > > > > Greetings, > > > > > > Thomas > > > > > > > > > On 19.06.2009, 00:55:12 droskill wrote: > > > > Hello all - > > > > > > > > In the recent issue of Futures, there was an article about MAAD - most > > > > active advance/decline line that I found interesting. What I can't > > > > figure > > > > out, however, is how to calculate it in AB. > > > > > > > > It is defined as such in the article: > > > > > > > > "Thankfully, there is a way to track the smart money in the equity > > > > markets. > > > > After each trading session and at the end of each week, financial print > > > > journals and a variety of online sources publish the results for the > > > > most > > > > active issues traded by volume on the New York Stock Exchange (NYSE), > > > > Nasdaq and American Stock Exchange (Amex). You just need to know what > > > > to do > > > > with that information." > > > > > > > > "On a given trading day, the 20 most actively traded issues on the NYSE > > > > can > > > > constitute 30% to 50% of composite exchange volume. It follows that we > > > > should follow the volume leaders when creating a gauge of the internal > > > > strength or weakness of the market." > > > > > > > > So I'm trying to figure out a way you could do this. The challenge is > > > > obviously that the most active changes on a daily or weekly basis - so > > > > how > > > > could one possibly use AddToComposite to do this. Any thoughts on this? > > > > > > > > Thanks! > > > > > > > > > > > > > > > > ------------------------------------ > > > > > > > > **** 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 > > > > > > > > > > > > > > > > > >
