Mid Caps

Any thoughts on mid cap stocks compared to small and micro? Most of the models here focus on the small and micro space, but I have most of my focus on midcaps at this point. Large caps seem highly efficient, and small and micro seem too volatile and unpredictable.

Mid cap seems like the sweet spot, of having enough attention from institutions to not remain undervalued forever, being small enough for a retail investor to get in and out with out moving price, and stable enough from a size and resource perspective to be less risky than small and micro. Just curious if anyone else focuses in this space. Thanks.

You’re thinking straight by focusing on inefficiency. My twist on this theme is to look across of range of markers for inefficient pricing. Market cap is just the tip of the iceberg, IMHO. These factors are meaningless in isolation, but can unlock signals when seen under the right lens.

For your consideration, a way to ignore (or minimize) some of your concerns regarding market cap:

Before my use of P123 I also focused on Midcaps for the reasons mentioned and more. P123 modeling for me shows a positive result bias with smaller market caps even though my models are not geared for any specific market cap range (no smaller is better assumptions). So to limit my sims and ports to those where I can reasonably expect to get in without moving the price much, but allow for actively traded smaller cap stocks, I ignore market cap and use a liquidity test that will automatically adjust as a port’s value changes over time. Here is an example of a 30 stock port liquidity test to limit stocks considered to those where my purchase will not exceed one percent of the minimum daily turnover for the past three weeks:

LoopMin(“Vol(CTR) * Close(CTR)”, 15) > TotMktVal/30.0*100.0 // Liquidity check

Using LoopMin instead of LoopAvg provides some protection from stocks with extreme turnover days. Perhaps PosCnt could be used in place of 30.0 in the rule to generalize it; I haven’t tried that. We can’t use this approach in screens (no port value available in the rules) so for them I use either a minimum market cap adjusted over time with the CPI or a daily dollar volume test, or both, and adjust the rule so that it comes close to reflecting what I might expect in a port. Problem: As a screen’s total value changes over time, the results might not reflect extra slippage due to the changing investment value per position.

What I like about this approach is that it allows for small investments (small dollar investment in small or micro market caps) as well as large investments, and automatically adjusts up or down as the port value changes. And I don’t have to assume that market cap is always in line with daily turnover. The downside is a small dose of (probable) reality when a model does not show fantastic results for decades as it eventually attempts to buy 50% of average daily turnover without affecting price.

One percent of expected daily dollar volume is probably way too conservative for some here, but …! This approach does not guarantee a similarly small price impact when selling the position.

This is very cool approach. Thank you for sharing.

This is a nice idea indeed. Just a small correction: you need to put (30.0*100.0) in parentheses, or else you’ll get 10000% instead of 1%.

I was speaking more to the overall theory of Midcaps being a “sweet spot” for retail investors, as opposed to how to screen for liquidity constraints. An adaptive liquidity method like this is fin in real time trading, but for backtesting, results will be largely dependent on starting and overall portfolio $ size.

To my thinking, Midcaps represent a universe where institutions have a large presence so they will drive price, but retail can be much more nimble here. Largecaps are too efficient small caps have less institutional backing and are more prone to huge swings, manipulation, and long periods of undervaluation due to less institutional following.

Just my observations.

Also TotMktVal is an invalid command…

TotMktVal/30.0*100.0 gets parsed as

(TotMktVal/30.0)*100.0 and that is correct, me thinks.

[quote]
Yuval: Just a small correction: you need to put (30.0*100.0) in parentheses, or else you’ll get 10000% instead of 1%.
[/quote] Parentheses are always a good idea, but not required here. I am comparing the minimum 15 bar turnover of a candidate stock to 100 times the average holding. If I wanted to set the limit to 2% of turnover, I could use 50 instead of 100. Serial use of division and multiplication without the parentheses should be okay here. Make sense?

[quote]
nisser: Also TotMktVal is an invalid command…
[/quote] It is valid for ports but not for screens. I haven’t tried it with an ETF port.

[quote]
charles123: I was speaking more to the overall theory of Midcaps being a “sweet spot” for retail investors, as opposed to how to screen for liquidity constraints.
[/quote] My intention was not to sidetrack the discussion but to show a way to reduce concerns about market cap as a decision tool. There may still be validity to certain general reasons to favor midcaps, but I personally no longer have any.