Earnings estimates systems

I build some new earnings estimates systems and I would like to know if I did a mistake on the system design because the backtesting results seem a bit to positive.

I am sure there are no problem with the ranking system (in use for years and profitable), it does not use any stuff on earnings estimates, I put that into the buying filter.

Know the buy rule I need to get some feedback on:

FRank(“(CurQEPSMean-CurQEPS4WkAgo) / CurQEPS4WkAgo”,#all,#DESC, #ExclNA) > 90

  1. Question: is the buy rule o.k. in terms of that it picks the stocks with the best eps revision within
    the last 4 weeks?

  2. Is there still a difference between simulations and live strategies on how they capture the eps data especially when I am using the daily rebalance on the simulation.

  3. Where could be pitfalls in terms of that I do simulate something that might not work realtime.

Thank you!!!

Best Regards


Andreas, I use a similar formula as a factor in some of my systems, but I would recommend using the absolute value in the denominator:

(CurQEPSMean - CurQEPS4WkAgo) / Abs(CurQEPS4WkAgo)

As is, your formulation would flip upwards/downwards revisions when the EPS estimate from 4 weeks ago was negative.

I’d have to defer to on the live/sim questions to the p123 team.

Short version

%(CurQEPSMean , CurQEPS4WkAgo)

Thank you all!!!

1 Like

Everyone’s comments are correct on this topic, I believe. I use this formula-as it is written–without modification.

@Marco: Thanks for the tip on another way to code this.

But briefly (just to expand the topic a little), strange things start happening when Abs(CurQEPS4WkAgo is a small number.

Interesting things happen because this number can be zero can’t it? Or close to hero.

Taken to the extreme if Abs(CurQEPS4WkAgo) is zero, then a one cent change in the earrings estimates represents an infinite PERCENTAGE increase in the earnings estimate, does it not? Or a one cent change in the earnings estimates can rocket a company to the top in a ranking system that weighs earnings estimates heavily.

If I remember correctly (which I don’t always) Yuval is aware of this and has had some ideas on how to deal with this. I have looked at his ideas and tried them as well as some of my own. It has been a while.

Interestingly, I think the formula does well without midification even when the denominator is small (again agreement with Marco on this).

I am hazy on the details but without going back I think I made $250,000 in one day on Turtle Beach where a very small change in the earnings estimate (magnified by a small denominator) put it at the top of my ranking system (and it beat the earnings estimates when they were announced). The limited amount of backtesting I have done has not encouraged me to make a change in the formula. This formula (without modification) is used in Zacks screener. So it is an established formula that is used outside of P123.

So I am not recommending any modification nor would I suggest looking an any particular direction if you want to explore modifications.

FWIW. Just an observation without a recommendation at this point.


1 Like

(CurQEPSMean - CurQEPS4WkAgo) / Max(0.05,Abs(CurQEPS4WkAgo))

This is not at all precise, but it lessens the impact of close-to-zero past estimates on a ranking system. I generally only use this kind of workaround when the weight of the factor is pretty high.

How is CurQEPSMean calculated?


It’s simply the average of all analyst estimates for the current quarter’s EPS. There’s more flexibility if you use the ConsEst function.