Opinion on strategy

Hello,

I thoroughly enjoy Portfolio123 and its community and wanted to get your opinions on a strategy for the USA, and if I missed something. I am puzzled with the following strategy which is kinda disappointing for the last 1-2 years.

No buy rule, two sell rules: 1) in case of corporate action and 2) rankpos sell rule + minimum holding for tax reasons (I can remove such tax rule and get similar results) + limit of weight for one stock (which I can also remove and get similar results).

This is built on a 800+ stocks universe, microcaps with minimum and maximum liquidity and excluding usual suspects such as chinese stocks, MLPs, REITs or financials.
Classic ranking. Ranking has equal weighted categories, with components within each node equal weighted. I removed each of the node categories (sentiment, value, quality, technical, size, etc.) and I still get strong results. Factors are known. I selected what seemed to make sense and originally tested on last 10 years prior to simulating on last 25 years. I also tested the ranking system on Canada universe which seems good (without liquidity filter).

This is a 50 stocks strategy. 50 stocks in order to increase my chances of capturing outliers in live trading (indeed, last few years one stock represented a massive amount of the gains).

Even if already using 50 stocks, I used evenid to split in 2 universes and there is still outperforming on last 10 years or last 5 years (less so than if using full universe). Testing on last 3 years, EvenID=0 is giving me great results and evenId=1 market results.

Is it just bad timing or am I missing something here, as results since 01/01/2025 seem not exciting (also illustrated by rolling test)? ML causing it? Overfit?

Sim results, for last 6 months

Sim results, since 01/01/2025

Sim results, for last 2 years

Sim results, for last 5 years

Sim results, since 1999

Trading since 1999

Risk measurements

6 month holding, every month, rolling back test

(never was as bad as since 2025)

Two things to suggest.

  1. Look at how your ranking system performed (in deciles) during 1/2025 to now. When you run a Rank Performance test, you can download the week-by-week or month-by-month results. Do you find periods in which the performance is reversed, i.e. when the lowest bucket does better than the highest bucket? I call these "Red Bull markets"; others call it factor inversion. This is when the market really goes against all the principles we've learned about. I wrote about it back in 2021 here: Red Bull Investing: Why The Riskiest Stocks Have Been Vastly Outperforming Safe Ones - Portfolio123 Blog. I've seen a lot of this kind of thing in the past six years. It started right after COVID and has had many similar periods ever since. In these kinds of markets, using ranking systems to choose stocks is useless. Fortunately, though, this is a US-only phenomenon, as far as I can tell.

  2. Always look at the log-scaled charts, not the ones on the summary page, but the ones in the "charts" tab. Compare the slope of your strategy to the slope of the benchmark. That way you can quickly spot the periods in which your strategy is underperforming. Is it really only in 2025-2026? Or were there other periods? You might find that your strategy outperforms only half the time, even though it has an annualized return of 36.52%. The "since 1999" results need to be scrutinized closely, and log charts are a great way to do so. If your strategy outperforms only half the time, you have some more work to do.

2 Likes

Thank you for the answer Yuval.

Below is for my ranking deciles as well as the log charts for different periods. To me it looks like there is indeed some inversion and while there is excess decay vs pre-2009, I feel that there is regular outperformance. Or am I missing something?

Would you then recommend going to Europe? I have been reluctant to that as I am already heavily exposed to it through SICAVs, and as I feared about liquidity issues/difficulty to trade.

Ranking deciles (on my universe) - 10 years - 4 weeks rebalancing

(max return at 9999%)

Ranking deciles (on my universe) - 10 years - 6 months rebalancing (more like in line with my turnover)

(max return at 9999%)

Ranking deciles (on my universe) - 5 years - 4 weeks rebalancing

(max return at 9999%)

Ranking deciles (on my universe) - 5 years - 6 months rebalancing

(max return at 9999%)

Ranking deciles (on my universe) - since 01/01/2025 - 4 weeks rebalancing

(max return at 9999%)

Ranking deciles (on my universe) - since 01/01/2025 - 6 months rebalancing

(max return at 9999%)

Performance chart since 1999 (start in 1999)

Log scale since 1999 (start in 1999)

Log scale for last 10 years (start in 1999)

Log scale for last 5 years (start in 1999)

Log scale since 01/01/2025 (start in 1999)

(still ok as it holds positions previously selected)

Log scale since 01/01/2025 (start on 01/01/2025)

(was not able to select winners)


40% annualized is disappointing? Congrats!

Yeah, it looks good on sims. Anything before looks great, I agree. And for 2025, 2026 if started before still looks good. However if the model was started as from 2025, the performance is in line or below benchmark. Which means that as from 2025, it has not been able to select the good stocks.

1 Like

A practical and often underutilized way to evaluate performance over time is to use the Rolling Test and inspect alpha:

  1. Select your strategy.
  2. Open the gear (settings) menu and choose Run Rolling Test.
  3. Use a 3-year test window with a 3-month rolling offset.
  4. Set the start date (e.g., 2000) and run the test.
  5. Once the test completes, go to the left-side Settings panel and select Alpha from the dropdown.

This approach gives a clear view of when your strategy’s alpha is “in season” versus when it’s weakening.

2 Likes

In the log-scale Chart tabs of the sim, you can also set for example recent 3 year window and use the arrow navigations buttons appearing next to the dates on the upper right to shift the 3-year window chart 1 or 3 month back in time per click. Use this to find periods of similar behavior. You can also rerun a copy just on the recent “bad” period and look into Transactions –> Realized Aggregate by Sector to see if a certain sector is causing this and if this sector just had a painful macro environment recently which wasn't “predictable”.

There will always periods of underperfance. Most factor strategies sucked 2016-2018. My US strategy also sucked in 2025 but works great this year. Last year my ExUS strategy doubled but YTD it is lagging.

Not every period of underperformance means failure. Most of the time it's just unfavorable macro. There are ways to deal with macro regime shifts, but I prefer to build a strategy which does ok on average and sit it out.

1 Like

This is the idea of the last graph of my first post, albeit with 6 months and 1 months, and outperformance rather than alpha. Where we see that anything started post 2025 has never been as bad.

Based on your suggested parameters, this is as below (for outperformance, beta remaining at c.0.8 all around):

Very useful.

In your opinion, did I miss anything, overfit, etc.? Or is it just bad luck due to investing during factor inversion period? Or is ML destroying it (which is someting I am wondering)?

I use a very similar universe + rule setup, so I am biased (imo the way we do it the BEST way to do it :smile: )

A Microcap-restrictive universe + classic ranking systems or ML trained on long term with classic factor bias (value, momentum, quality etc.) will by nature run into periods of narrow market leadership outside that realm where the restrictive universe backfires. 2025 was a exUS year. Also many industries are just not that present in microcaps (e.g. currently Semiconductors), so sector bias becomes a thing. I found that broader universes + ML can smoothen the ride but restrictive microcap universe strategies are unbeatable on 5-year rolling return basis…

I go even a step further and introduce further bias to classic Value-monentum into my ML by pairing with classic ranking composites in the final ranking system. That introduces even more short-term pain periods but improves imo long-term return through more violent factor rallies in-between (at least in backtests). Pair that with uncorrelated regional (exUS) strategies and you have an explosive mix. (Also pain here mostly means sideways + market up = FOMO, not actual “losses”)

It's trade-offs all the way down. No free lunches.

PS: in my personal opinion, buy/sell rules are most prone to overfitting risk. A disciplined composite ranking + ML training workflow is somewhat self-regulating imo. Of course custom universe rules also bear risk if you go crazy on them.

1 Like

From what you've shown here it's a creditable strategy that is likely to outperform in the future and has been through a rough spot or two in the recent past.

Do a rank performance test with 10 buckets and 4-week rebalancing over the entire period and then hit "Download." You'll get an enormous Excel file. In column BM, put =BF2-D2. That will show you how the top bucket fared against the bottom bucket. Copy that down the entire column, select it, and type in Alt+H+L+S, then choose your color scheme. You'll be able to quickly see the periods of strong underperformance. If they're scattered throughout the time line, you're doing great. If they're truly concentrated solely in recent periods, you might want to test over those periods alone and see if you can make some improvements, and if so, whether they will improve the overall performance or not.

2 Likes