We saw in topic 1D that in the stock market, Price = Value + Noise, or P = V+N. It’s an interesting idea. In fact, in conversation, it sounds very compelling. But we want more. We want to translate ideas to investable Portfolio123 strategies. So let’s do that.
NOTE: The goal of this topic is to demonstrate the process of developing an idea into an investable Portfolio123 strategy. The details of the model are not nearly as important for our purposes as the process. Starting in Topic 3, when we turn to Value, we’ll be focusing on the ideas and how they look when translated to Portfolio123 language.
This idea is quite involved. I’m using it for demo purposes to give you a sense of how far you can push the platform in the service of your imagination. I think this is important given that some in the forums have, at times, objected to theory-based strategy formation suggesting it’s too narrow. On the other side, I’ve seen it suggested that theory is too malleable to be useful.
The goal, here, is to demonstrate how, in fact, theory and imagination make for a powerful and potentially profitable combination.
First, let’s clearly state the idea
If a stock price includes little or no noise (or even negative noise), it stands to reason that this aberration should eventually correct as noise enters into the price and, hence, enhances performance.
Now, let’s come up with a plan
- We need to define noise and value.
- We need to identify a group of stocks for which noise is currently exerting a less-than-typical impact on the price; such issues have the potential for a positive correction.
- Given what Shiller said about the conditions that make it more likely that noise will be meaningful, I’m going to confine my search to this more-promising portion of the U.S. market. In other words, I’m going to stay with small caps.
So far, so good. But something is missing. Inappropriately low pricing can persist for a very long time. “How long can the market stay wrong? Longer than you can stay solvent.”
- We need to also look for a catalyst that leads us to expect a correction will come sooner rather than later.
Next, we need to figure out how our P123 model is going to be structured
We might be able to come up with a noise-value-catalyst ranking system of some sort. But does it make sense to try?
To use a ranking system as the primary engine of a strategy, we need good reason to assume the top ranked stock will be better than stock #2, that stock #2 will be better than stock #3, that stock # 3 will be better than stock # 4, etc.
Well, maybe that’s a bit harsh. Would it be the end of the world if Stock #1 and Stock #4 switched positions in terms of performance? Probably not, especially if both are vastly superior to stock # 60.
For an academic study, where I’m trying to demonstrate a fundamental truth, this may suffice. I’m fine if the deciles are more or less in order. Beyond that, I can live with stocks being out of order within each decile, and I’d also often be able to tolerate less-than-perfect sequence in the way the deciles line up. The key is that on balance, it’s pretty good (and the paper I’d write would explain my criteria for “pretty good.” ).
But this framework is not relevant to us. If we have a 10-20 stock portfolio, we’ll be living entirely within the top decile, and depending on the size of our universe, within only the topmost tiny (very tiny) piece of the top decile. We still don’t need each stock to line up perfectly, but the margin for error in selecting the top 10-20 stocks is far below what an academician, who works with an entire decile, enjoys.
So to make the ranking system the primary driver of a model, we really need to be make a good case for precision, that the sequence in which stocks line up should be, if not perfect, pretty darn good. Is a PE of 14.6 really better than a PE of 15.2? Statistically, yes. But remember why we’re looking at PE. It’s part of a very general strategy to push us closer to stocks that are favorably valued based on DDM. Consider how many approximations are involved in this process. In that light, are you really confident in buying into the 14.6 PE and bypassing the stock that trades at 15.2 times earnings? Or are they the same for all practical purposes meaning your choice should turn on other things?
Now think about the kinds of spit-and-chewing gum approximations we’re doing for this noise-value strategy (see Topic 1D). I don’t think this strategy lends itself to use of a ranking system as the primary driver.
In fact, as we go along, you’ll see that I’m rarely likely to want to place such high trust in any ranking system. Usually, the screen is the main driver of my strategies. My goal is to define a group of stocks consistent with a particular idea, the goal being that this whole group should deliver good performance.
The main use of ranking systems for me is three-fold (not all models need to involve all possible uses).
- I use them at times as part of the screen (Rank > X or Rating(“YYY”)>X) to benefit from the far greater flexibility they offer relative to individual factors or formulas.
- I use them to sort my screened result set in order to select the smaller number of stocks I’ll actually have in a portfolio. Often, the smaller portfolio outperforms the screen. It’s a lot easier for a ranking system to do its thing when applied to a small group carefully pre-qualified for adherence to a set of ideas I believe will be associated with good market performance than it is to apply it to a large universe that’s minimally screened for little more than liquidity. (This is analogous the benefit a sales person achieves by prospecting from a purchased list of pre-qualified prospects, as opposed to the white pages.) Frankly, though, considering the strategic thought that goes into creation of the screen, I’m satisfied even if the ranking system has no impact on performance and accomplishes nothing more than getting the number of stocks down to a level consistent with what I’m willing to hold in a portfolio without materially messing things up.)
- Finally, I sometimes use a ranking system to define one part of a strategy; not the dominant part but one part co-equal in importance with those elements defined in the screen.
In this noise-value, I’ll use a ranking system created specially for this screen to provide double duty, to fulfill roles 2 and 3 as defined above (as a final narrowing-down sort criteria, and as part of the strategy).
* * *
This is the first practical strategy design implication of the logical connection with DDM. We’re dealing with broad approximations. And broad approximations are incompatible with the hierarchical needs we impose on a ranking system when we ask it to pull just 10-20 stocks out of a 4,000-stock universe. And we need to honor these very approximate ideas since they are what provide the bridge between out backward-looking test conditions and the forward-looking real-money world. For this reason, my strategies are very much screen driven.
* * *
Now, let’s get our ideas ready for translation into P123 language; in other words, let’s state them more specifically.
- I want small-cap. I also want an easy (lazy?) path to liquid stocks, so I’ll define liquid small-cap as the Russell 2000 universe. Those willing to step down in size/liquidly can consider pairing a NOOTC universe with an AvgDailyTot liquidity rule.
- I’m going to define value very conservatively as NOPAT (net operating profit after tax) divided by cost of capital. This item, when later divided by market cap becomes PctV, the portion of market cap attributable to value. I know I’m going to need a monstrous helping of spit-and-chewing gum to handle cost of capital. If the strategy tests adequately, I’ll be able to assume it’s not sensitive to the details of cost-of-capital. If it is highly sensitive, the strategy may will have to be dismissed as one of those things that like DDM, is great in theory but impractical for real-world use. fail. But knowing how much approximation is inherent in everything we do as we implement our DDMN—based logical extension, I’m betting, for now, that the strategy will not be overly sensitive to the details of this soft brutally-difficult-if-not-impossible-to-estimate item.
- Supplemental Topics 1 through 4 discuss WACC in depth.
- Noise, PctN, is the leftover portion of market cap. It’s 100% – PctV.
- I need to define what it tales to classify a stock as low noise. With many stocks in the 50-50 N-V range, I’ll chop the usual N in half and say that I’m looking for stocks for which PctN <= 25
- I’ll sort based on a ranking system that will be created based on a collection of catalyst-related factors and choose, for the portfolio, the top 20 stocks. (This is a tentative decision – it will be reassessed later.)
- I’ll initially test with my preferred 4-week rebalancing period. (But I’ll also look at 1-week and 3-month periods later on.)
Dusting Off Our Portfolio123 Language Translator’s Handbook
This is not going to be a simple model. In fact it’s far more cumbersome than most of the other ones we’ll build as part of this course. But I think it will be useful to show it at this time. As noted at the outset, I want to drive home how creative you can be in translating interesting ideas into Portfolio123 language.
This is important. Perhaps the biggest danger we face is that of the crowded trade. If you discover a standard quant factor that “works,” it’s only a matter of time before many others using Portfolio123 or other platform discover it too (if they haven’t already gotten there ahead of you). The result: The edge you supposedly discovered gets arbitraged away in the market. The way to stay ahead of the rocket scientists and quant hedge funds is to go where they are least likely to follow; into the fundamental realm that not only underpins how stocks behave when live money is on the line but that also lies outside the confines of accepted statistical practice.
Pep talk over. Let’s get to work:
PctV is not going to be do-able through an easy off-the-shelf computation. Some may feel fine using and debugging big rules with lots of parenthetical expressions. Others may work with Custom Formulas. It’s a matter of taste.
Personally, I like using ShowVar. (Now you know why I went through the pep talk.) This makes it easy for me to break complex ideas into small easy-to-check-and-debug pieces and combine them later in a very simple master formula. Custom formulas, on the other hand, cannot be used as components within a bigger custom formula. In other words:
- $Item1 = $Item2 + $Item3 (custom formulas) cannot be used. Everything must fit into a formula for $Item1.
- On the other hand, @Item1 = @Item2 + @Item3 works fine.
So for those who are unfamiliar with ShowVar, here is a simple primer:
Strictly speaking, ShowVar is designed to enable you to show the value of a non prepackaged item in a report. Separately, however, it serves to enable logical programing in the Portfolio123 screener.
Imagine some simple logic:
Let X = 1
Let Y = 2
Let Z = X + Y
In this example, Z has a value of 3.
Now, let’s do it in the Portfolio123 screener:
ShowVar(@Z, @x + @Y)
- Saying ShowVaris equivalent to Let
- Use of the , is equivalent to the = sign
- All Variables created this way must have the @ prefix.
Type the three SnowVar expressions into a blank screen. Run using the “Screen Factors” report. You’ll see a row listing every stock in the universe, as well you should since none of these rules operate to exclude any. But notice the columns. Besides the standards (Ticker, Name, Last and MktCap), you’ll see three more: @X, @Y and @Z. For each row:
- @X will be 1.00 because that is the value we assigned to it.
- @Y will be 2.00 because that is the value we assigned to it.
- @Z will be 3.00 because that is the result of the formula we assigned to it.
You can’t do this via custom formula because you cannot use one custom formula inside another. In other words:
- $X = 1 is a legal custom formula
- $Y = 2 is a legal custom formula
- $Z = $X + $Y is not a legal custom formula
- $Z = 3 or $Z = 1 + 2 are both legal custom formulas. But if we go far beyond this simplistic example, we may run afoul of the custom-formula character limit and/or wind up with many parenthetical expressions that result in a debugging nightmare.
The disadvantage of ShowVar is that you have to articulate each rule over and over again for each screen. We can easily address that through establishment of template screens that are replicated via “Save as” and then customized. If you like the noise-value idea that will be demonstrated here, copy the core portion of it and save it as “Noise-Value Model Template” or something like that. Then, use it as a seeder for as many variations as you want to create and save.
Details of the model, which will be reflected in a Group-visibility screen and ranking system you can copy into your account will be described in Topic 2B, which is being posted simultaneously with this Topic.