This is a follow-up from this thread (https://www.portfolio123.com/mvnforum/viewthread_thread,12149_lastpage,yes#lastpost) but sufficiently different to deserve its own
NB: Thank you Jim for your support.
Let me share a bit more on my “business case” and see if the workaround I can think of is right. Another way to ask the question is: how is the Marc Chaikin Power Gauge computed on P123?
Specifically how are the bottom xx% stocks selected while avoiding NAs and without using a bunch of screens but using custom series? (see below for more details)
Yuval and other advanced users → thoughts welcomed.
In this post, assume that I am keen to see how the top 20% stocks of the Russell3000 as per the P123 Core value ranking are fairing vs the bottom 20%.
From other work I did, I expect to see that if this P123 value ranking is working well now (top - bottom > 0) it is likely to continue for some months or years and should therefore be used. One can use any ranking i.e. Greenblatt etc
In other words I am trying to do something similar to the Power Gauge and what Marc has done here → https://actiquant.com/2019/01/08/value-investing-always-works-even-when-the-value-factor-falters/
But I want to automate it using custom series and not a bunch of manual screens. It is possible using similar sort of steps to what I have shown in prior posts e.g. here → https://www.portfolio123.com/mvnforum/viewthread_thread,11468#70637
To achieve this, I need to replicate the P123 core value ranking system in a custom universe to pick the top and bottom 20% stocks in the Russell 3000.
Now, look carefully above the table in Marc’s post → it states “NA neutral”. Indeed, one needs to put them in the middle otherwise when using Frank the “bottom 20% stocks” will actually be a micmac of NA stocks and low value stocks.
Here is the actual custom universe finding the top 20% of the Russell 3000 per P123 Core ranking system → https://www.portfolio123.com/app/universe/summary/244410?st=0&mt=7
How do I find the bottom 20% and avoid the NAs when doing so?
Am I right in thinking I just invert the order of the ranking constituents but not the ordering of the sub-nodes nor the one of the main node?
E.g. to get the least “value stocks” in terms of earnings:
// Earnings
setvar(@Rk1,frank(“PEExclXorTTM”, #industry,#desc))
setvar(@Rk2, frank(“CurFYEPSMean / Price”, #all,#asc)) // Forward Earnings Yield
setvar(@Rk3, frank(“OpIncBDeprTTM / EV”, #all,#asc)) // EBITDA / EV
setvar(@Earnings,frank(“avg(0.25*@rk1, 0.35*@rk2, 0.40*@rk3)”,#all,#desc))
//
Note that the frank in @Earnings stays the same as when looking for the top value stocks (#desc) but all others are switched #desc <-> #asc
Thank you,
Jerome