[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [amibroker] Quotes Plus - Sectors



PureBytes Links

Trading Reference Links

Ara,

 

I’d be happy to collaborate on trading issues.  

 

Below are some utility functions that I’ve added to my “Include” file.   I use functions and procedures in the Include file extensively.   This makes my code simpler and much more consistent.

 

Attached are two charts.  MarketSectorIndustryOverlay.gif shows a candle chart of MIDD with a Market, Sector and Industry overlay.  The Market it represented by “VTI” and is plotted in yellow.  I could have chosen to display several other total market indicators include QQQQs and my own composite indices.  Sometimes I like to choose a standard market indicator for reference.  The orange dotted line is the Small Cap Household Appliance Industry ATC index (MIDD’s industry).  The Aqua dotted line is the Consumer Cyclical Sector ATC index (MIDD’s Sector).

 

The top pane of RelativeStrength.gif shows an ROC chart comparing MIDD, VTI, and MIDD’s Industry and Sector ATC.   As you can see, MIDD has been going sideways for the last month, while its industry has been improving and MIDD has been outperforming the market and it’s sector.  

 

The middle pane shows the RANK of MIDD’s Sector and Industry.  Rank is defined by the RSI(9) of its Industry and Sector.

 

At the bottom is the RSI(9) chart of MIDD, it’s Sector and It’s Industry.

 

FYI…  I ALWAYS show the market overlays in yellow, Sectors in aqua and Industry in orange.  After experimenting with this, I found it massively confusing to have multiple colors in different charts. I strongly recommend using standard colors for this.

 

Best regards,

 

Dan.

 

 

 

function MarketCapGet()

       {

       CurDatabase = GetDatabaseName();

      

       if(CurDatabase == "QuotesPlus_Stocks")

              {

              MarketCap = round(Close[BarCount -1] * GetExtraData("shares")/1000);

              }

       else

              {

              MarketCap =   666;   //indicating N/A

              }

       return MarketCap ;

       }

 

function MarketCapCategoryGet(MarketCap)

       {

       CurDatabase = GetDatabaseName();

      

       if(CurDatabase == "QuotesPlus_Stocks")

              {

              if (MarketCap < 1000)

                     MarketCapCategory= "Small";

              else

                     {

                     if (MarketCap >= 1000 AND MarketCap < 5000)

                           MarketCapCategory= "Mid";

                     else

                           MarketCapCategory= "Large";

                     }

              }

       else

              {

              MarketCapCategory=   "N/A"; //indicating N/A

              }

       return MarketCapCategory;

       }

 

function MarketCapCodeGet(MarketCapCategory)

       {

       CurDatabase = GetDatabaseName();

      

       if(CurDatabase == "QuotesPlus_Stocks")

              {

              if (MarketCapCategory      == "Small")

                     MarketCapCode = "SC";

              else

                     {

                     if (MarketCapCategory      == "Mid")

                     MarketCapCode = "MC";

                     else

                     MarketCapCode = "LC";

                     }

              }

       else

              {

              MarketCapCode = "N/A";      //indicating N/A

              }

       return MarketCapCode;

       }

 


From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of Ara Kaloustian
Sent: Sunday, November 06, 2005 12:02 PM
To: amibroker@xxxxxxxxxxxxxxx
Subject: Re: [amibroker] Quotes Plus - Sectors

 

Thanks Dan,

 

You gave me a lot to think about.  I'll need a little time to absorb all you have said.

 

Yes, I would appreciate snapshots of charts. That's always helpful to visualize.

 

It would be useful if we were to use same structures so we could also collaborate on trading issues.

 

Ara

----- Original Message -----

From: Dan Clark

Sent: Sunday, November 06, 2005 10:56 AM

Subject: RE: [amibroker] Quotes Plus - Sectors

 

Ara,

 

I do this now.    Relative Strength and Relative Performance of Sectors and Industries to Markets, and Stocks to Sectors, Industries and Markets are key to my trading strategy.

 

I’ve spent a lot of effort working on this in the last six months.  Two issues are critical (IMO):

 

·     Algorithms to use – Indicators, calculations, etc.

·     Symbols to compare – Supplied Indexes (!SPX, !NYA), ETFs (QQQQ, IYF, BBH, VTI), Composite indexes and Indicators.

 

Regarding the algorithms, I’ve tried several ways of defining relative strength and performance.  You can:

 

1.   Compare several tickers using the “Relative Performance” chart (Charts à Basic Charts à Relative Performance) which measures rate of change from a particular point.   Or,

2.   Use “price relative” which is nothing more than dividing a symbols price by another symbols price (e.g., IYF/!NYA).   Or,

3.   Use the “strength” of one ticker versus another.  This could be as simple as RSI a complex algorithm where “strength” is computed base on RSI + ROC over a number of periods + number of days over/under key moving averages.   (This is Jason Hart’s work.  Look for his posts on AB forum dated 7/1, 7/9 7/13 and 7/18 of 2005.)   Or,

4.   Use the “strength” in item 3 as a means of computing the “rank” and compare the ranks.  For example, rank of a sector when compared to other sectors.

 

While the algorithms are important, more important is choosing the correct symbols to compare

 

It turns out that a stock’s Sector and Industry categorization is one of the worst “rat holes” that I’ve found in analyzing the markets.  There is no standard categorization that I can find.   GICS is one “standard”.   TC2000 has their categorization.  Quotes Plus has their categorization.     And there is not standard for ETFs.   This is important to understand when choosing an “index” for comparison.  

 

Another issue is weighting of the “index”.   It turns out that there is no weighting standard.    What’s not well known (at least to me, as of three months ago) is that most indexes and ETFs are weighted:

 

·     Most of the standard indexes (!SPX, !NYA, etc.) are Cap-Weighted.  The percent of the index is based on the market cap of the symbol.  

·     Some are using other weighting systems (I believe the Dow is equal weighted)

·     Some are weighted using an unknown algorithm.   ETFs appear to use this method.  For example, 60% of the BBH is composed of two stocks Amgen and Genentech.  I can’t find anything on why they use this weighting.

 

What is critical about weighting is that it affects how the index chosen reacts.  For example, if you use BBH as an “index”, you can see wild swings based almost completely on the movements of Amgen and Genentech.   As another example, market cap-weighted indexes movements are driven heavily by the movements of the biggest companies.   This does NOT necessarily indicate where the entire market is going and where money is flowing.

 

Here’s a link to the S&P site on indexes:

http://www2.standardandpoors.com/servlet/Satellite?pagename=sp/Page/IndicesBrowseMethodologyPg&r=1&l=EN&b=4&s=6&ig=51&i=128&si=&d=&xcd=500EW&f=3

 

Click on “Index Methodology”.  The “Mathematics of Index Calculation” is actually the best and covers the three type of indexes and how to calculate them.   (This is critical to understand when creating your own indexes.)

 

Given the confusion surrounding this whole issue, I chose to:

 

·     Use Quotes Plus Industry and Sector categorization

·     Create my own Industry and sector indexes and indicators based on ATC composite symbols.

·     Create simple summation indexes.  (Sum each stocks price and volume irrespective of market cap.)

·     Categorize indexes at the Country, then market, then sector, then industry, then Market Cap (Small, Med, Large) level.

 

Below is the key scan function that I use to load a composite symbol, reset the “Full Name”, and add it to a target watch list.  Note that it is critical to use short symbol names and put the descriptive name in the FullName. 

 

Also critical is to define a naming structure that makes sense to you.  This becomes especially important when branching out from Indexes into other, more complex indicators (money flow, A/D, new hi/low, etc.).   My naming is:

 

 “~” + IndicatorType + CountryCode + LevelType + MarketCapType + NativeSymbol

 

For example, for an index of US Small Cap Energy Sector it would be:

 

“~” + “Index” + “_” + “US” + “Sec” +  “SC” + “_” + “5”  = “~Index_USSecSC_5”

 

The symbol full name would be:  “~Index_USSecSC_Energy”

 

Finally, attached is a snapshot of a relative performance (ROC) chart of my Sector composite symbols and the QP3 S&P market symbol (!SPX) for the last 21 trading days.

 

I hope this helps.  Let me know if you’d like snapshots of other charts.

 

Regards,

 

Dan.

 

 

Retrieving the Sector and Industry names:

SectorSymbol  = NumToStr(SectorID(0), 1.0); 

SectorName    = SectorID(1);  

IndustrySymbol       = NumToStr(IndustryID(0), 1.0);  

IndustryName = IndustryID(1);  

MarketName    = MarketID(1);

 

Calling the CompositeLoad procedure:

CompositeLoad("~Index_USMkt", "~Index_USMkt" , WeightedClose, WeightedOpen, WeightedHigh, WeightedLow, V/1000, iCount, atcCurrentFlags, WLKeyIndexes, WLAllIndexes);

 

CompositeLoad("~Index_USSec_" + SectorSymbol,"~Index_USSec_" + SectorName, WeightedClose, WeightedOpen, WeightedHigh, WeightedLow, V/1000, iCount, atcCurrentFlags, WLUSSectorIndex, WLAllIndexes);

 

CompositeLoad("~Index_USInd_" + IndustrySymbol , "~Index_USInd_" + IndustryName, WeightedClose, WeightedOpen, WeightedHigh, WeightedLow, V/1000, iCount, atcCurrentFlags, WLUSIndustryIndex, WLAllIndexes);

 

Load Procedure:

procedure CompositeLoad(Sym, SymName, CloseVal, OpenVal, HighVal, LowVal, VolVal, OpenIntVal, ATCFlags, TargetWLNbr, AllIndexWLNbr)

       {

       //Add To Composite

       AddToComposite(CloseVal,   Sym,   "C", ATCFlags);

       AddToComposite(OpenVal,           Sym,   "O", ATCFlags);

       AddToComposite(HighVal,           Sym,   "H", ATCFlags);

       AddToComposite(LowVal,            Sym,   "L", ATCFlags);

       AddToComposite(VolVal,            Sym,   "V", ATCFlags);

       AddToComposite(OpenIntVal, Sym,   "I", ATCFlags);

  

   //Modify Names

       cs                   = AB.Stocks(Sym)     ;                                         

       cs.FullName = SymName                    ;                                  

 

       // Add to Watchlists

       if (TargetWLNbr == 0)

              CategoryAddSymbol(Sym, categoryWatchlist, TargetWLNbr);

 

       if(StrLeft(Sym, 6) == "~Index")

              CategoryAddSymbol(Sym, categoryWatchlist, AllIndexWLNbr);  

 

       // Add to Market and Sector INdexes

 

       if (   StrLeft(Sym, 15) == "~Index_ADR_Sec_"

              OR StrLeft(Sym, 13) == "~Index_ADRMkt"

              OR StrLeft(Sym, 16) == "~Index_NasdaqMkt"

              OR StrLeft(Sym, 14) == "~Index_NYSEMkt"

              OR StrLeft(Sym, 12) == "~Index_USMkt"

              OR StrLeft(Sym, 12) == "~Index_USSec"

              )

              CategoryAddSymbol(Sym, categoryWatchlist, WLMktAndSectorIndexes);  

       }

 


From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On Behalf Of Ara Kaloustian
Sent: Sunday, November 06, 2005 9:15 AM
To: amibroker@xxxxxxxxxxxxxxx
Subject: Re: [amibroker] Quotes Plus - Sectors

 

Thanks Duke,

 

Yes I am looking at something very similar to what you are doing ... guess I'll create the sectors using ATCs.  Not the most efficient, but I expect to run this weekly, so no big deal.

 

Ara

 

 

----- Original Message -----

Sent: Sunday, November 06, 2005 7:32 AM

Subject: Re: [amibroker] Quotes Plus - Sectors

 

Ara,

I might be misinterpreting your question so my apologies if this is not what your asking for....You could use the S&P Select Spyders (XLE - Energy etc.) as your sectors and compare against each stock marked within AB (using Symbol/Categories with XLE as the RS symbol)  or if you have QP data you can build your own sectors and industry group composites and compare against them. I use QP's industry classification but create my own sector hierarchy as in the attached picture which is showing the Banking-Midwest industry group with an RS line measuring against the sector as well as the market. To make all of the indicators easily I use simple symbols like BANK1 (1 always the sector) and BANK2 etc. so that I could "find & replace" in word to make the process easier as I have 25 Sectors and over 200 industry groups.  I then created layouts for each Sector including their corresponding industry groups. I also created a watch list of the industry groups so I can easily run scans on RS rankings Alpha etc.

I am sure there is a better/faster way but this worked for me. Again, not sure this is what your asking but hopefully this may be of some help.

Relative strength of Midwest Banks to Banking Sector 

Duke Jones, CMT

Ara Kaloustian wrote:

How would one compute Industry Relative Strength relative to Sectors ... since there is sector data in QP... just sector groupings.

 

Compare the Industry values to the Standard and Poors sector values? 

 

Anyone done this ?

 

Thanks

 

Ara

 


Attachment: MarketSectorIndustryOverlay.gif
Description: GIF image

Attachment: RelativeStrngth.gif
Description: GIF image