Skip to main content
No. of Recommendations: 2
This screen was described in this article: https://seekingalpha.com/article/4420200-momentum-profit-how...

Basically:
* Top 125 (25%) stocks of the S&P 500 by 52 week trailing return.
* Of those 125 stocks, rank them by Standard Deviation of analysts earnings estimates for next quarter.
* Buy the 25 with the lowest Standard Deviation of the estimates.

The problem I have is finding the individual estimates. All the sites I have looked at only show the high, low, and average estimates. Anybody know where you could find the actual estimates?

For example, CSCO

No. of Analysts 22
Avg. Estimate 0.82
Low Estimate 0.80
High Estimate 0.84
Print the post Back To Top
No. of Recommendations: 5
All the sites I have looked at only show the high, low, and average estimates.

With a bit of fancy yet bad math you could come up with a bad estimate the standard deviation from just those three figures.
Big gap means bigger SD, and if either high or low is unusually far from the average you could impute that it's an outlier, even giving an omen of skew.

Given that this approach is likely to be relatively weak statistically (just a hunch), simple [(high-low)/midpoint] might be a proxy that does almost as well.

One nuisance of this problem is that the meaning of "next quarter" changes as time flows, as do the estimates.
On what date would you look at the ever-changing and make your investment?

Some firms are certainly hard to forecast.
At the start of April it's natural to have serious doubts about what Q2 will bring, but a wide range of guesses about what Q1 managed, despite being over, would be a sign of true uncertainty about the business.
And that's still several weeks before the actual Q1 results are reported.

Jim
Print the post Back To Top
No. of Recommendations: 8
Just look at the field definitions for Stock Investor Pro;
EPS Est Q1-Std. dev.
Data Table Name: EPSSD_EQ1
Data Category: Earnings Estimates
Field Type: Dollars per share
Percent Rank: No
Industry/Sector Median: No
The statistical measure of the dispersion in earnings estimates for the upcoming fiscal quarter. The higher the standard deviation, the more the values are dispersed away from the mean.

If this attempt for a GTR1 screen is correct it doesn’t appear to work:
step0: [S&P 500 Member; lag=1 days] == 1
step1: [Total Return Multiplier over 252 days; lag=1 days] Top 125
step2: [SI EPS Est Q1-Std. Dev.; lag=1 days] Bottom 25; Cash When Fewer
Holding period = 20 mkt days
Frictional loss of 0.33% applied to all sales (closing long/opening short)
Equally weight new positions, fully rebalancing all liquid positions to equal weight every 1 holding periods
All trades at market close.
http://gtr1.net/2013/?f0.330000::sp500.a:et1:tr%281,252%29tn...

from 20000403 to 20210422 CAGR 5.2

RAMc
Print the post Back To Top
No. of Recommendations: 2
Anybody know where you could find the actual estimates?

If no one comes through with a source for actual data, a crude guesstimate of standard deviation often used by statisticians in the absence of complete data is the high-low range divided by 6.

Fidelity shows the next quarter high-low range, but scraping for them manually stock-by-stock would be pain.

BLancaster
Print the post Back To Top
No. of Recommendations: 0
Given that this approach is likely to be relatively weak statistically (just a hunch), simple [(high-low)/midpoint] might be a proxy that does almost as well.

Makes sense. I was able to scrape enough web pages to run this screen, using today's data. Alas, the list I get is quite a bit different that the list in the article.
Print the post Back To Top
No. of Recommendations: 2
If no one comes through with a source for actual data, a crude guesstimate of standard deviation often used by statisticians in the absence of complete data is the high-low range divided by 6.

Thanks.
Since we only care about ranking, "high-low" is adequate.

Fidelity shows the next quarter high-low range, but scraping for them manually stock-by-stock would be pain.

Lots of sites have that data--without having to log in to your account.

I was able to write a Linux bash script. Once I had a list of the symbols, 3 lines to dowload the 12 month price data, 6 lines to compute the 12-month returns (could have been 4 with awk), 1 line to get the top 125, 4 lines to compute the figure of merit "(hi-low)/whatever", then 1 line to sort and print the top 25.

All a simple bash script, using curl, sed, awk, and html2text. Only took me part of the afternoon, most time spent figuring out which data to scrape.

I shudder to think of trying to do this by hand.
Print the post Back To Top
No. of Recommendations: 1
If this attempt for a GTR1 screen is correct it doesn’t appear to work:
step0: [S&P 500 Member; lag=1 days] == 1
step1: [Total Return Multiplier over 252 days; lag=1 days] Top 125
step2: [SI EPS Est Q1-Std. Dev.; lag=1 days] Bottom 25; Cash When Fewer
Holding period = 20 mkt days
Frictional loss of 0.33% applied to all sales (closing long/opening short)
Equally weight new positions, fully rebalancing all liquid positions to equal weight every 1 holding periods
All trades at market close.

Going back to the article - there's a hold-to-drop component of that screen that Rayvt didn't appear to pass on. A very quick check of just extending the hold period out to 252 days shows a little better performance, so that element may be critical (a flexible and longer hold period). From Seeking Alpha ...

High Momentum/High Predictability Portfolio

This highly predictable momentum portfolio uses the following criteria:

1. Stock must be in the upper 25% of momentum ranking to be considered.
2. Of the 125 potential momentum stocks, the 25 stocks with the lowest % Standard Deviation of earnings estimates will be purchased.
3. Stocks will only be sold if the momentum falls into the bottom half of the index.

I don't have the time right now, but a little later I might have a look at trying to add step 3 to the good start by RAMcn. I haven't used the hold-to-drop facility in GTR1 very much so it may take some time & some debugging.
Print the post Back To Top
No. of Recommendations: 1
Going back to the article - there's a hold-to-drop component of that screen that Rayvt didn't appear to pass on.

1. I used EPS Est Q1-Std. dev. which is in dollars. This would penalize high price stocks, I should have used
ratio(epssdeq1.s,aprc). This improves CAGR to 6.25.

2. rrs is almost always a better measure of momentum. Replacing tr with rrs helps.
Replace tr(1,252) with rrs(1,252) and holding period to 3 mo. improves the CAGR to 8.69
http://gtr1.net/2013/?h63f0.330000::sp500.a:et1:rrs%281,252%...

3. If this is based changes in earnings estimates and not actual announcements wouldn’t making a buy decision a few weeks before the announcements help? I started to make a pass at this but don’t have time now.

I’m still not convinced this is a viable approach for a screen.
Print the post Back To Top
No. of Recommendations: 3
I’m still not convinced this is a viable approach for a screen.

Nor am I.

The SA author just said that he posted the wrong current picks in his article. He previously said that he posted the wrong graph. Who is to say that he didn't make any other mistakes.

In practice it's a useless screen if you cannot get the data you need. Which is the individual analysts earning estimates, so you can compute the standard deviation.

The theory is interesting, but you need to be able to verify the claims, and to actually be able to implement it.
Print the post Back To Top
No. of Recommendations: 1
If this is based changes in earnings estimates and not actual announcements wouldn’t making a buy decision a few weeks before the announcements help?

Sometime in the early 70's I read that a good strategy was to buy a stock when Value Line increased their earnings estimate for it. This was long before good availability of data like we have now. Also long before we had any money to invest.
Print the post Back To Top
No. of Recommendations: 4
{Up5X3} is having a good year so far. Total 3-month return 23% (US market 8%).

http://gtr1.net/2013/?~Up5X3:h21f0.4::styp.a:ne14!15!16!17!4...

step8: [SI EPS Est Q1] > 1.05*[SI EPS Est Q1-Last Month]
step10: [SI EPS Est Q0-Revisions Up] > 0
step12: [SI EPS Est Q0-Revisions Down] == 0
Print the post Back To Top
No. of Recommendations: 7
So after an attempt to add the hold-till-drop component, the screen appears to work a little better.
http://gtr1.net/2013/?h21f0.330000::sp500.a:et1:tr%281,252%2...

Performance ticks up 1.6-1.7 CAGR percentage points (pp) and annual turnover drops by a factor of around 4x (i.e. the screen transacts a 1/4 as often). Sharpe (for example) improves from 0.36 to 0.45. So better but not especially compelling (assuming I've coded the hold-to-drop properly).

Key changes to RAMcN's original screen:

1) I added RAMcN's 'ratio(epssdeq1.s,aprc)' fix for the earnings standard deviation, which as noted earlier in the thread improves things a little.

2) Moved the hold period to 21 days for monthly (vs. 4 weekly). Doesn't make a lot of difference in practice. This was mainly done for easier comparison to 2,3 or 6 month and annual holds.

3) Added the hold-to-drop condition of 'Hold if still passing buy/open conditions through Step 0 and satisfying tr(1,252) top 250 on trading date'. That appears to work as intended.
Print the post Back To Top
No. of Recommendations: 4
I tried some iterations on this screen, but couldn't get anything close to the 17 CAGR in the OP article. The OP article shows a chart that zooms from 0 to 3400. Then in the comments a corrected chart that goes from 100 to 350. The y axis is not labeled in either chart.

The first chart is from 1/2/1999 to 4/19/2021. Portfolio value starts at 100 and was 300 in December 2007, then goes to 3500 now. CAGR since Dec 2007 of 20%.

Modified chart posted in comments goes from 250 in December 2007 to 350 now. CAGR since Dec 2007 of 3%. Not close to the original chart.

I get a 12 CAGR. Not much different than the market 11 CAGR. Difficult to tell what the original chart was based on. Maybe some custom timing method that was data mined to look good.

screen CAGR
MomentumPredictable 12
MomentumPredictable2 13
SP500MktCapWeight 11
SP500EqualWeight 11
SP1500EqualWeight 12

http://gtr1.net/2013/?~MomentumPredictable:h5::sp500.a:et1:d...
http://gtr1.net/2013/?~MomentumPredictable2:h5::sp500.a:et1:...
Print the post Back To Top
No. of Recommendations: 5
There was some new information in the OP article comments that I thought I would post here to close the loop. The screen still looks unpromising.

The OP article posted some numbers in the comments:
"I get SD of 2.92% for KSU and 2.42% for DRI. I have 27 analysts listed as covering DRI's quarter. $0.0405 SD on $1.67 mean estimate. KSU has $0.0644 SD on $2.20 with 17 analysts."

SIP has similar numbers except for one: the standard deviation for DRI. SIP has 0.0940. Article has 0.0405.

            sd        mean       number
Ticker epssdeq0.s epseq0.s epsneq0.s articleSD articleMean articleN
KSU 0.068 2.201 17 0.0644 2.2000 17
DRI 0.094 1.686 27 0.0405 1.6700 27


low est. high est. mean
Ticker epsleq0.s epsheq0.s epseq0.s pctRange
KSU 2.070 2.320 2.201 11.36%
DRI 1.600 2.110 1.686 30.25%



The final chart in the OP article is a long-short portfolio equity curve that goes from 100 to 300 in 22 years, for a CAGR of 5.1%. The modified chart posted in the comments goes from 250 in December 2007 to 350 now. CAGR since Dec 2007 of 2.6%. This is for a long-short portfolio, and so anything above zero beats the market.

A blend of {MomentumPredictable} long and {SP500MktCapWeight} short has a CAGR of only 0.5% since Dec 2007.
http://gtr1.net/2013/blend.cgi?~blend_MomentumPredictable::%...
Print the post Back To Top
No. of Recommendations: 4
Sadly, there are plenty of -- oh, shall I say questionable -- writers on seekingalpha. Posting the wrong charts and wrong picks, not only once but twice, is a clue. Backtesting is hard. Backtesting is easy to do wrong.

A few, very few, good ones, though. You just need to separate the wheat from the chaff.
Print the post Back To Top