StockCharts Technical Rank (SCTR) Indicator Analysis

Overall the last few months, I’ve had several consulting client’s strategy use SCTR for either a ranking or a filter. I finally got curious about the predictive ability of SCTR. How good is? I could find no information on how each of the ranking buckets did X days later on StockCharts.com. Maybe these results are hidden behind the paywall which I do not have access to.

I developed PowerRatings for TradingMarkets.com and understand how hard it is to make a ranking indicator that works. Is SCTR an indicator I should be using for medium to longer term strategies? What will the numbers to us?

9/19/2018: Make sure and read my follow up post, StockCharts Technical Rank (SCTR) Rotation Strategy, where the results are very different.

StockCharts Technical Rank (SCTR) Calculation

The synopsis of SCTR is it uses the following;

Long-Term Indicators (60% weighting)

  • Percent above/below 200-day EMA (30%)
  • 125-Day Rate-of-Change (30%)

Medium-Term Indicators (30% weighting)

  • Percent above/below 50-day EMA (15%)
  • 20-day Rate-of-Change (15%)

Short-Term Indicators (10% weighting)

  • 3-day slope of PPO-Histogram (5%)
  • 14-day RSI (5%)

Each stock raw SCTR value is calculated and then sorted against all the others in the universe. Then divided by the number in the universe to give all stocks a value between 0 and 99.99 with approximately the same number of stocks in each decile. To get the full details on the calculation see StockCharts Technical Rank (SCTR).

Notice that the longer term indicator has 60% weighting vs 10% for the shorter term one. This leads me to believe that longer holds will do better.

StockCharts applies SCTR to these universes

  • Large-Cap – US stocks that are components of the S&P 500 Index (or were in the past).
  • Small-Cap – US stocks that are components of the Russell 2000 Index.
  • Mid-Cap – US stocks that have a significant market cap but do not fall into either the Large-Cap or Small-Cap universes.

Thank You to Art

Arthur Hill CMT, Senior Technical Analyst at StockCharts.com, provided AmiBroker code for the calculation of the raw score. This greatly helped in making sure I got that part right.

My Test

Test date range is from 1/1/2007 to 6/30/2017. The end date was chosen so we could still calculate a 252 day return.

Everyday I calculate the SCTR of a stock when it is in the index (S&P500, Russell 3000). Then I calculate the return (5,21,126,252) days later. This is approximately 1 week, 1 month, 6 months and 1 year later. From this I compare each decile return. In a perfect world, those with a rank 0-10 would have smaller return than 10-20. And those with rank of 20-30 would have a higher return than then the previous bucket. And on to the top bucket of 90-100 which should have the best return. This is the chart in the perfect world.

But a chart like the one below is also good. Where the ends are very different.

My test is not exactly the same universe as StockCharts but I would not expect there to be much difference. The tests results are based on entering and exiting at the close. If a stock stops trading before the end of the hold period, we simply use the last trade price. No volume or price filters were used because I could not find any mention of this.

Extraordinary Returns

An issue we run into when doing this type of analysis is what do with very large returns. In the S&P500 results there is a return of nearly 1000% in one year. In the Russell 3000 results, there are returns over 3000%. I find that these results skew the results and therefore cap them.

For the numbers I am presenting I am capping the returns. If a stock has a return over the cap value, then the return is set to the cap value. Here are the cap values

  • 5 day hold: 100%
  • 21 day hold: 200%
  • 126 day hold: 300%
  • 252 day hold: 500%

The spreadsheet will include the data for not using a cap.

S&P500

There are 1.3 million trades with about 130K trades per bucket.

S&P500 – 5 Day Return

Well for a short-term hold, SCTR seems to be a mean reversion indicator. The 0-10 rank has a return of .32 vs .16 for the 90-100 rank. This is surprising given that the short-term portion of SCTR only has 10% weight. But this difference is not very big or very different from the average.

The orange “Avg” line in the charts is the average of all the trades for the holding period.

 

S&P500 – 21 Day Return

Again, we see the slope of the returns going the wrong way from my expectation. It is a good sign that there is a trend. The return goes from .97 to .78 compared to the average of .88. Not a lot of information one can use to trade. But it is the longer holds that I expect more from since they have a weighting of 60%

 

S&P500 – 126 Day Return

Unfortunately, nothing is here. Rank under 10 has a return of 5.50 and rank over 90 has a return of 4.66 compared to the average of 5.41. The last hope is the 252 day hold.

 

S&P500 – 252 Day Return

Same general results here too. Rank under 10 has a return of 11.20 and rank over 90 has a return of 9.69 compared to the average of 11.16. This is not good. There is not pratical difference in the buckets to trade.

 

A Mistake?

At this point I was wondering if I made a mistake. The most obvious thing being I sorted the raw score in the wrong order before ranking between 0 and 100. I double checked the code and hand did some rankings in Excel but I got the same SCTR score. I looked at charts and those with rank above 90 had nice looking uptrending charts and those with scores under 10 had downtrending charts. This is what I expected.

I hand checked my SQL code that I was using to summarize the data and still got the same results. I waited a day and checked again. Still everything checked out.

S&P500 – Above MA200

Since at all times stocks there has be equal number of stocks in each rank bucket even if all stocks are in downtrend, maybe we should only focus on stocks above their 200 day moving average. Let’s see if that helps or not. I will focus on the longer holds because the SCTR formula seems favor that. The spreadsheet will have the all the holds data.

S&P500 – 126 Day Return, Above MA200

Same general story. Rank under 10 has a return of 6.51 (5350 trades) and rank over 90 has a return of 4.65 (126311 trades) compared to the average of 5.28. There just is not enough pratical difference in the either the rank under 10 or rank over 90 compared to the average to trade.

 

S&P500 – 252 Day Return, Above MA200

The line does go in a trend but again not much pratical differnce from the average. Rank under 10 has a return of 13.57 (5350 trades) and rank over 90 (126311 trades) has a return of 9.37 compared to the average of 11.01

First Thoughts

I really did want this to work. But as a general ranking indicator, SCTR seems to point in the opposite direction. Which I would be fine with. Maybe the data on the Russell 3000 will yield different results?

Russell 3000

There are 7.6 million trades with about 760K trades per bucket.

Again, I will be capping the results. Unfortunately, the same pattern holds for the Russell 3000. I will not showing all the results but they will be in the spreadsheet. Here are some interesting ones I found.

 

R3000 – 5 Day Return, Above MA200

Here we can see rank under 10 has a return of -.28 (3954 trades). This points to avoiding these stocks. This is the first pratical differnce I have seen. I would want to look furhter into the data to make sure it is not a few trades causing this.

R3000 – 126 Day Return, Above MA200

Another potential. But then in this case the rank under 10 has a 13.25 (3954) return. Is this a quirk of a couple of really good trades? Don’t know without spending lots of time digging into the data.

 

R3000 – Below MA200

Finally, the above 90 rank bucket does well. For all hold periods the above 90 bucket substantially outperforms the average. A curious question. How much is this influenced by 2009 bounce? Or very low priced stocks that have huge moves? These results are good but given everything else I have seen, I would want to investigate more before trading off of them.

Spreadsheet

Fill in the form below to get the spreadsheet with lots data. This includes the non-capped results, all the stats for above and below the MA200 and standard deviations.

Final Thoughts

Summary: In general StockCharts Technical Rank (SCTR) does show an ability to rank the stocks. Two issues, though. One, it is the reverse as stated on the StockCharts website. Two, the differnce from average is too small to be pratical.

Will I be using SCTR in the future? No. Even though the rank under 10 often outperformed the average for most holds, it was not a big enough outperformance to be pratical.  The same is true for under 90 for most cases, that tehy underperform the aveage but not by a lot. The numbers just don’t seem to justify using SCTR in my trading. My goal was to see what the numbers would tell me.

From my results am I saying that SCTR does not work? Yes and no. It will not work for me because I am simple guy and like it when the data simply points to it working. Could SCTR work with some other indicators or with discretion? Yes.

I did not test exactly the same universe as described on StockCharts. Could this make a difference? Yes. But I really would hope it would not make that much of difference.

Could I have made an error? Of course. That is true for all my posts. As always, I double check my numbers and try to put out correct results. But this type of testing is more complicated and easier to make mistakes in. I will admit to higher chance of a mistake being made, but I have checked enough to feel comfortable posting the results. If I do find a mistake or one is pointed out to me, I will make sure to post a correction.

Could looking at the data differently yield different results? Yes. Maybe focusing on % correct. Or adding a better trend filter? Or testing SCTR as a ranking filter in a strategy compared to other ranking filters. Something I would add is a price and volume filter. Maybe using the raw SCTR value is better? If I get enough emails or comments, I can always do another post on SCTR.

9/19/2018: Make sure and read my follow up post, StockCharts Technical Rank (SCTR) Rotation Strategy, where the results are very different.

Backtesting platform used: AmiBroker. Data provider: Norgate Data (referral link)

Good quant trading,

Fill in for free spreadsheet:

spreadsheeticon

 

Click Here to Leave a Comment Below

Ryan - September 12, 2018 Reply

Interesting work. My immediate thinking is that this indicator has not passed the initial sniff test. I would probably shelve it and move on to something else but if you do find anything else worth commenting, a follow up post would be great (easy for me to say as you’re the one doing the heavy lifting!).
I don’t like the fact that it’s not consistent across the indices that you tested. Perhaps an additional test would be trying the indicator on DOW, NASDAQ or DAX stocks?
Cheers,
Ryan

    Cesar Alvarez - September 12, 2018 Reply

    Something I tried to make clear is that maybe analyzing the data in a different way would give different results. Because of emails, I am working on a new post for next week that looks at creating a rotation strategy based on SCTR. We will how the results differ between the low and high SCTR values

Thomas Musselman - September 12, 2018 Reply

//www.philosophicaleconomics.com/2016/01/gtt/
“When we take the different securities and build a combined index out of them, the volatility unique to each individual security drop outs, but the cyclicality that the securities have in common–their tendency to rise and fall…”

http://www.philosophicaleconomics.com/2016/01/movingaverage/MA

I think he demonstrates that price>ma200 is not a good criteria for stock picking within the S&P500 universe even if it is good for timing the overall market by requiring the S&P itself to be.

Alan - September 12, 2018 Reply

Great post Cesar. Your results are certainly in line with my own previous research into using SCTR as a momentum indicator in a rotational strategy, ie not that great. It seems to be one of those things that is very alluring when you see a snapshot of stocks ranked by it, but when put through it’s paces as a trading tool it doesn’t really live up to the promise.

    Cesar Alvarez - September 12, 2018 Reply

    I am testing right now using SCTR in a rotation strategy. I hope to have a new post on the results next week. Maybe that will produce good results. I really do want it to work.

Sowmi Krishnamurthy - September 13, 2018 Reply

Like your quant approach and analysis. Keep it coming. The fact that this method does not perform as well as the simple 50/200 day mav crossover (based on earlier work done by Art and yourself) seems to imply that this formula may need revisiting, assuming that your analysis and assumptions are fine. tried using it and results at best mixed.

    Cesar Alvarez - September 13, 2018 Reply

    Understand I was doing one type of analysis on the formula. I did mention in the article that it may work as a filter or ranking method in a portfolio.

Ben - September 13, 2018 Reply

This was really interesting and valuable work. Thanks for posting it.

    Cesar Alvarez - September 13, 2018 Reply

    Glad you liked it. I got a follow up post coming soon.

Arthur Hill - September 13, 2018 Reply

Hi Cesar. Thanks for the interesting analysis. Am I correct to assume that you did not use a market regime filter and that this test bought stocks throughout the 2008-2009 bear market? It would be interesting to see year-by-year performance metrics. A simple market timing filter, such as the 50/200 day cross for the S&P 500, could make a difference. Sit out during bear markets and buy relative strength during bull markets. Cheers, Art

    Cesar Alvarez - September 13, 2018 Reply

    You are correct that this bought during the bear market. I agree a year by year analysis would be interesting along with your market timing idea. There are so many extra ways to test this.

Leave a Reply: