BLOG: Custom Lists - More Than Meets The Eye (Chapter 7)

EXCERPT

Use of custom lists is a technique that may not get nearly as much respect or attention as it deserves. By now, we’re familiar with basic screening, narrowing a full equity database down to a smaller number of choices based on selection criteria that appeal to you. Custom lists allow us to change our starting point by screening against a smaller subset drawn from the database as a whole. The good part lies in the potentially interesting ways we can identify such subsets. This chapter will show you how to create custom lists do that, demonstrate why this can be a surprisingly good thing to do, and suggest implementation approaches. FULL ARTICLE.

BY: Marc Gerstein

CATEGORY: P123 Step-By-Step

Excellent, but limited to static lists, ie lists that don’t change over the life of the Sim or Screen. I’m sure that many people have noticed that many of the top ranking Ports are Bob Haskell’s, which employ lists that change each week. Unfortunately, there’s no way to backtest such strategies.

Wouldn’t it be great if we could use dynamic lists (IBD100, Barchart100, WER, etc)? Because it would take a lot of effort to create them, they should be made public. I’d be willing to help if P123 would provide the capability. .

Jerrod:

I too have noticed the success Bob Haskell has apparently enjoyed with in lists. Perhaps someone has captured some historical data and would be willing to share the data.

I subscribed to IBD to get the current lists and have kept track of the lists over the last month. I think I can get historical copies with my subscription and plan to create a 1 to 2 year set of lists for backtesting. I will share the lists. I expect that you would need to run separate sims for each time period with a specific list. Somewhat cumbersome but doable, I think.

Glenn Fagerlin

Oh yes, I know the pain of manually updating static lists. Back when I was with Reuters.com and was doing two premium newsletters, I wanted to monitor the competition, so I was constantly updating static lists based on model portfolios. Sometimes, the updates were once per month. But one of the services I monitored was Jim Cramer’s Action Alerts, and that one had t be updated every . . . ah, I still get the shakes just thinking about it. :angry:

But aside from technical issues, I suspect widespread implementations in the context of the portfolio123 app would raise legal/commercial issues that would need to be addressed.

But the lists need not be confined to those imported from external sources that can give rise to legal and privacy issues. Very interesting scenarios open up if one can specify InPortfolio(“port name”) or InSim() etc. P123 will then be expected to retrieve the list of stocks that would have been in the ‘other’ portfolio or sim on the date of run of the ‘this’ portfolio or sim.

Marc:

Thanks for another interesting article.

I realize the purpose of the article is to illustrate the flexibility of P123’s list feature. It was not, I am sure, intended as a primer on back testing.

However, P123 users new to testing should be cautioned that using a list of today’s “good” stocks in a back test creates the possibility, even the probability, of a “look ahead” bias. Rigorous back testing would require that a Jan 1, 2005 list be used for a back test of 2005, etc.

I am sure you know all this and plan point it out when your article series gets to focusing on back testing. I just want to put out a preliminary caution so P123 users will not waste time doing back tests that are biased by a look ahead feature.

Regards,
Brian

A “simple” feature for dynamic lists:

Start with a user named MacroList, such as IBD100.
Then, be able to attached user created MicroLists, such as IBD100_DateFrom_DateTo with the related stock symbols.
Run the port with the MacroList, with uses the MicroLists for the life of their valid from/to.

I say simple, but I cannot say it in simple “code”

All,

Attached is a quote from a previous Post url=http://www.portfolio123.com/mvnforum/viewthread?thread=2178#8915[/url] about a method I use for back testing an InList. The approach was developed in the summer of 2006.

“The approach that I have taken to assess the use of a changing InList is the following. This approach will work with any source of “best stocks” if you can get access to the historic lists.

Download the back history of the list that you are interested in. I have used BarCharts Signals Top 100 and BarCharts Sectors Top 100 lists. BarCharts supplies 1 year of their past lists in their archives. I downloaded the BarCharts list for every Friday for 1 year from July1st 2005 through July 31st 2006.

I then created 52 InLists for each week of the year, and ran 1 month Sims on each of the 52 InLists. I then repeated the 52 Sims using 20 different Ranking Systems. The Sims that I used had a AvgDailyTot(20) > 300000 Buy Rule so they were not buying the smallest of the Micro caps.

I downloaded the results of each Sim into Excel, and added the % gain (or Loss) for the first week of each Sim in successive order.

I then created Ports on September 3rd 2006 from the 10 Ranking Systems that had the highest return.

Every week since I started the Ports I downloaded the new lists from BarCharts and updated the Port’s InList before I rebalanced over the weekend.”

For that year (July1st 2005 through July 31st 2006) the Excel “Sims” of those 10 best Ranking Systems out performed all of my other Sims using different investment approaches that also used an AvgDailyTot(20) > 300000 filter. So I was convinced that the basic approach of using InLists was sound. Since I started the 10 Ports I have deleted all but the 4 best performing ones. Downloading the data and updating the InList only takes me about 5 minutes every weekend.

Denny :sunglasses:

I should have remembered that Denny had shared his experience with this laborious process. I wonder how difficult it would be for P123 to combine the Exposure List and InList arrays into one. I envision something like this:

StartDate EndDate Inlist
StartDate EndDate Inlist
StartDate EndDate Inlist

StartDate EndDate2 Inlist

If the sim or screen date is between StartDate and EndDate, then the corresponding Inlist is used. If that Inlist is empty, the dates correspond to the current ExposureList feature.

Wildcards, Universes/Sectors/Industries and perhaps even more complex filters could be (easily?) incorporated as additional features to limit or expand the candidates in each row. Examples:

StartDate EndDate xxx xxx xxx xxx …List of candidate tickers
StartDate EndDate [Universe(SP500)] … For this time period, only SP500
StartDate EndDate [(Asterisk)] … For this time period, anything goes
StartDate EndDate [!*.PK] … For this time period, no pinksheets
StartDate EndDate [SMA(50)>SMA(200)] etc

OK, OK. That’s a lot of capability and nobody knows how to use it, but wouldn’t it be great to find out?

Clearly, I don’t know P123’s architecture, but it seems doable, and the inputs could easily be generated offline in Excel. I think it would have enormous potential.

Anybody?

PS - I couldn’t put the asterisk symbol in the brackets, because the forum software translates that as a List commend.

Just out of interest, what do people make of the Barchart lists?

I have never looked into it myself, mainly because I don’t understand how they work, and I am not a fan of black box systems, however, I have noticed some people having success in implementing them.

The issue is that if these lists are generated using a computer program, should the logic not be programmable into the p123 interface?

As I understand it, Barchart has three sets of indicators: Short Term, Medium Term , and Long Term, each set comprising multiple TA factors. To make it on the BC100 list, a stock must be 100% bullish in all three categories.

I haven’t used the BC100 list per se, preferring to use the three sets independently. I create a metric based on the weighted sum. In the following, (S/M/L) denotes the weighted sum of BC scores in each time period.

Example 1: Emphasis on the medium term:
Inlist if (1/2/1)>90% * (1+2+1).

Example 2 (Pullback system)
Inlist if (-1,3,1) > 95% * (1+3+1). Lousy short term, great medium term, good long term.

The term in parens at the end is the normalizing factor such that the max score is 100%. THe BC100 list is:
Inlist if (1/1/1)>100%*(1+1+1)

Clearly, there are a lot of possibilities. I’ve used these ideas in conjunction with P123 ranking systems that are heavily weighted to Value, so as not to be double-counting momentum factors. Had great success, but (as usual for me) wandered off into Neverland.

Are the barchart.com historical stock lists still available? I can’t seem to find them.

What other historical stock lists are available out there? There are plenty of current lists but we need lists from the past too to test over.

Yes, the look-ahead bias issue is present here and would be if a dynamic list is used and historic versions of the list are unavailable.

For situations where historic info is unavailable, this almost seems like a case for the classic O’Shaughnessy approach; trying to identify characteristics of a list such that it could be approximated by a screen (that would be used in the backtest). It wouldn’t be precise, but it might give enough of a flavor of how the list might have evolved to justify using it for a backtest.

Hyper,

Barchart keeps archived only 1 year of it’s weekly Top 100 Signals and Top 100 Sectors lists. However, you have to be a member ($20 / Month) in order to view and/or download them.

Marc,

That is exactly what I tried to do after following my Barchart’s InList Ports for about a year. I set up a pre-screen filter to, as best as I could, filter the universe of stocks to get the list of stocks that I was downloading from Barcharts. However, that hasn’t worked very well. My original InList Ports have significantly out performed my pre-screen Ports since I started them last summer. It is quite hard to create an equivalent pre-screen when the author (Barcharts) only gives vague info about their proprietary system.

Denny :sunglasses:

I’m not familiar with Barchart; creating a replicating (or approximating) screen would work only if you have a reasonable amount of information on how the list is created.

An interesting question is where we might draw the line between replication and approximation. Some degree of approximation ought to work. After all, everything we do involves use of the past to help us generate reasonable assumptions about the future. since the past and future aren’t identical approximation is all we can ever do. The question is whether our efforts are reasonable.

Let’s consider a ranking system like Morningstar. They disclose quite a bit but it’s still unlikely we could ever precisely replicate it since analyst judgment is part of it. But if one were to look at what they say they aim for, and do some data mining on stocks that make the list, supplemented by our own judgment re: what sort of rules would produce stcks like those, I wonder if a Morningstar-five-star screen could be created whose performance would be broadly in linbe with the real thing. I suppose this is what an outfilt like AAII does when they try to create their guru screens.

It might make for an interesting rainy-day experiment.

The attached spreadsheet shows the Friday Barchart100 lists for the past year.
I was surprised to see that turnover ran from 60-93%, averaging 78%.
This suggests that the BC100 may not be so hot for holding periods greater than a week.

The BC100 is updated each day. It appears from very limited data that daily turnover is on the order of 40%. Very volatile!

This sheet is extracted from a workbook with VBA code that does the following:

  • Fetches the current Barchart100 website page
  • Archives the list and displays turnover
  • Fetches MarketCap and $Volume from Yahoo
  • Permits simple, yet powerful filtering.
  • Puts the currently displayed (filtered) list to the clipboard for pasting into P123 as an InList, or to Yahoo etc for more info.

FWIW, here’s the current list, showing only the stocks with Friday volume > $10MM:
NUVA,VITL,VAR,QCOM,CNMD,TYL,PNSN,BBH,MYGN,CSGS,
NIHD,BEC,ILMN,PHLY,TDY,OLN,VISN,ESI,DNA,ALXN,ABI,
CLHB,CPWR,WU,COCO,STEI,PLXS,IVC,NSC,QLGC,ISYS,
ALKS,SIVB,OSIP,MTD

Contact me if you’d like a copy.

J

PS - My earlier post about the BC100 was incorrect. There are lots of entries with less than 100% Opinion scores, and the list order does not follow the Opinion scores. A mystery indeed.


BC100 Historical Data.xls (97 KB)

Jerrod, thanks for sharing your macro.

“I was surprised to see that turnover ran from 60-93%, averaging 78%.”

I have been looking at some similar ratings screens at TDameritrade (S&P STARS, TheStreet.com, First Call Consensus, Jaywalk Consensus, Market Edge, Ford) and I note that they all seem to turnover much more than one might have guessed.

At RickG’s suggestion I redid the sheet using the Barchart Top Alpha listings instead of the BC100. Historical data attached. This time the average turnover is only 18%, with a max of 28%. I will probably look at the IBD100 and/or the MSN 10-rated next.

Contact me if you’d like a copy of the new spreadsheet. Current listing, filtered to show only tickers with >$10MM volume and Relative Strength > 60%:

[font=courier new]Ticker Last Change $VolMM
GHM 101.97 13% 28
AXYS 71.81 -2% 14
SQNM 21.38 0% 41
IPHS 37.43 22% 19
VISN 22.38 -12% 20
CYBX 27.29 -1% 14
ISYS 47.37 1% 13
TRA 53.91 -0% 260
FINL 10.88 0% 18
ARBA 17.35 5% 33
GTLS 52.50 -1% 24
CALM 38.98 3% 48
ILMN 92.74 -1% 113
NUVA 55.23 -2% 48
ISIS 17.46 2% 22
AUXL 37.75 2% 30
MYGN 66.20 -0% 124[/font]

Dear All,

In this post mentioned lists (IBD100, Barchart100, WER, etc), what is website name of WER list ?

In addition, in P123 we can get the best stock picks especially with Buy Rank>99.5, my question as a confirmation to P123 Buy/Sell Recommenadtion and based on the real trading experince which of the following is considered the best supporting signal:

Zacks, Market Edge, VectorVest, WER, BarChat Top100, BarChart Opinion,…etc ?

regards,

essam