Russell Recoup
While the “Magnificent Seven” might get all the press, this week’s action in the Russell 2000 has been more interesting to me. Tuesday’s 4% decline, the largest in 416 trading days, was recouped and then some over the past two days. While rare, this pattern is not unprecedented. Since 1979, the largest decline in at least 126 trading days (~ 6 months) that was fully recouped within two days has occurred seven times prior to today. While it may be exciting, unfortunately it isn’t particularly encouraging for forward returns.


The largest company in the Russell 2000 is now Super Micro Computer (SMCI), and super doesn’t even begin to describe it. With a 1.62% weight in the index, it is now almost 4.5 times bigger than the next biggest component, Microstrategy (MSTR), who’s main claim to fame is its massive position in Bitcoin. Bitcoin is up approximately 22% this month alone. SMCI on the other hand, is up an astonishing 89% this month and 253% year to date. Brokerage analysts can’t up their price targets fast enough. If SMCI were added to the S&P 500, it would come in at number 163, just ahead of Autodesk.

But it’s not just cap weighting that’s the problem. The Value Line Geometric Index weights each company equally, has history all the way back to 1961, and is displaying the same pattern. After this pattern has been observed in the Value Line, returns have also been skewed to the downside.

Interestingly this setup coincides with what has historically been a period of seasonal weakness over the next month or so in both the Russell and Value Line. The chart below shows the Russell 2000 seasonal index calculated using daily history since 1979.

As I write this, Supermicro is up another 3% post market. I have no idea where it will stop but I do have a pretty good idea how it will stop. (See One For the Record Books for examples from the dotcom bubble.) Keep an eye on SMCI for its outsized influence on the Russell as well as a general gauge of speculative sentiment. If it starts to show weakness, this pattern suggests you may not want to be first in line to buy the dip.
Code
class RutRecoup : Strategy{ public static void Run() { var server = new AsciiBarServer(@"c:\data\orchestrator", AsciiBarServer.DOHLC); var data = server.LoadSymbol("RTY Index");
var strat = new RutRecoup(); strat.PrimarySeries = data; strat.RunSimulation(); strat.EventStudyReport(); strat.Chart(); }
public static void Seasonal() { var server = new AsciiBarServer(@"c:\data\orchestrator", AsciiBarServer.DOHLC); var data = server.LoadSymbol("RTY Index");
var seasonal = Indicators.SeasonalIndex2(data); seasonal = seasonal.Subset(new DateTime(2023, 12, 31), new DateTime(2024, 12, 31)); seasonal.Name = "Russell 2000 seasonal index";
var cht = new Chart(); cht.Plot(new PlotInstruction { Series = seasonal }, new PlotInstruction { XValue = DateTime.Today, Color = Color.Blue, LineStyle = "Dot", Text = DateTime.Today.ToShortDateString(), TextAlignment = "Center" }); new ChartForm(cht).ShowDialog(); }
protected override void OnStrategyStart() { base.OnStrategyStart();
Col1 = PercentChange(); Col2 = Indicators.BarsSinceLow(Col1);
Plot(Col1, 1, Color.Red, "Column"); }
protected override void OnBarClose() { base.OnBarClose();
if (Col2[2] >= 126 && Close.Last > Close[3]) { SnapEvent(Col1[2]); } }}