What do you think about this model? Is This Small Cap Strategy Good Enough to Deploy?

Hi everyone,

I’m relatively new to strategy building and have spent a lot of time and effort putting together this model using Portfolio123. I relied on an existing ranking system from the platform (“Core Combination”) and only made changes to the factor weights.

  1. Would you consider this good enough to start using with real capital? (Target: 10k–20k USD)
  2. Where can I improve the structure? Especially regarding risk or robustness.
  3. Are there any good learning resources you’d recommend?I’m looking for:
  • Youtube channels (quant investing / P123-related)
  • Blogs or newsletters from experienced system developers
  • Realistic case studies or strategy reviews

I’d really appreciate feedback from anyone more experienced. This took me a while to build, and I want to keep improving without starting from scratch again :sweat_smile:

Thanks in advance! :pray:

Hi @phiahecht. Welcome to the community, and kudos for posting your model for feedback! :tada:


:one: Is the model “good enough” to run with $10-20 k?

  • Robustness before returns. The headline stats look promising, but robustness matters more than any single back-test.
    • Shift the start date. Re-run the sim with several entry points (e.g. 2 Feb 2015, 3 Mar 2015, 1 Apr 2015). A sturdy model shouldn’t hinge on one lucky launch day.
    • Position count. Fifteen names is the minimum I’m comfortable with in a concentrated small-cap portfolio; ten leaves you exposed to single-stock blow-ups. Try 15–20 and see how the Sharpe / drawdown profile changes.
    • Trading frictions. Commissions and the bid-ask spread can eat a surprising chunk of edge on $10-20 k.
      • My own settings: Commission 0.006 USD per share, Slippage 1 % of trade value (fixed), and “Average of Next High, Low, and 2 × Close” as the execution price.
    • Turnover. Your ≈ 50 % annual turnover is excellent for a factor model, it keeps frictions low while still letting the portfolio refresh.
    • Share more detail. A screenshot of Statistics → Performance would help everyone get a fuller picture of how the model behaves.

:two: Where can the structure improve?

Metric Current “Sleep-at-night” guide
Max drawdown -37 % Be ready for -55 % (2008-style shock)
Exposure per name 10 % (10 stocks) Aim for ≤ 5 % if you can
Rebalance frequency Every 4 weeks Test weekly or bi-weekly; this could improve risk-adjusted returns
  • Drawdown tolerance. If a potential -55 % trough will keep you up at night, consider smaller position sizes, a cash buffer, and/or more names.
  • Walk-forward testing. Split the data into an in-sample build phase (e.g. 01 Jan 2015 → 01 Jan 2020) and an out-of-sample validation phase (01 Jan 2020 → today). Consistency across both windows is a strong green light.

:three: Learning resources

  • This forum: lots of gems to find
  • Portfolio123 Blog: https://blog.portfolio123.com/
  • Books / blogs:
    • Quantitative Momentum and Quantitative Value — Gray & Vogel
    • Alpha Architect blog
    • AQR’s Cliff’s Perspectives
    • ...

Bottom line

Your strategy looks close to deployable, but I’d want to see:

  1. Consistency across multiple start dates and periods.
  2. That you are 100% comfortable with a deeper drawdown scenario.
  3. Slightly broader diversification (≥ 15 stocks).

If those boxes are ticked and you’ve modelled realistic trading costs, deploying with $10-20 k (money you won’t need for at least 10 years!) is a solid next step. Treat the first 6 months as tuition, not a make-or-break moment.

Good luck, and let us know how the model evolves!
(Looking forward to the additional insights other veterans will share here as well.)

3 Likes

Usually, models are overfitted to all available data, leaving nothing truly out-of-sample to test—so it’s hard to know for sure if a model will hold up. However, your remarkably low turnover—just 48%—actually gives you a unique opportunity to address this question.

Here’s what I’d suggest:

  • Re-run your model with a start date of 6/1/2015. If the results don’t hold up, don’t make excuses—treat that as valuable information and start again.
  • For a (somewhat) better point-estimate, try multiple different start dates: 2/1/15, 3/1/15, …, 12/1/15 (but not 1/1/15, since your model was trained through that date). Averaging the results across these runs helps smooth out luck and gives you a rougher sense of overall performance. That said, this approach is still limited—averaging can give a false sense of certainty if luck or market regimes play a large role, so it’s best thought of as just one piece of evidence.
  • Take it a step further: Looking at the distribution of results from all 11 models (starting Feb–Dec 2015) will show you how much luck or timing matters—not just the average outcome.
  • Position sizing: If you’re running a 10-stock portfolio, you can effectively create 120 stock “slots” by running 12 portfolios, each starting in a different month. If you decide to fund this strategy, you could allocate 1/12 of your intended capital each month (July 1, Aug 1, etc.) to spread out timing and individual stock risk.
  • Don’t stress about rebalance frequency if you opt for the 120-stock approach. With your low turnover, each portfolio will likely have somewhat different holdings—unless your factors are extremely stable (e.g., market cap).
    • If 120 stocks are too many to manage, you could rebalance quarterly and run, say, 40-stock portfolios.
    • You can also stagger the rebalance dates so you’re only rebalancing one portfolio at a time, reducing workload.

Bottom line:

Your low turnover is a huge advantage for testing your model out-of-sample and for reducing single-stock risk as much as practical. There’s always some look-ahead bias—since you’re using features that have already worked in the past and you’re still testing over the same market regimes—but looking at all 11 months should still give you a pretty good idea of robustness. If the results are positive, and you diversify across 120 (or 40 being more manageable) stocks (and with other models or ETFs), you can be reasonably confident in proceeding.

1 Like

Hi Phiahecht -

Here's my first thoughts looking at your model:

  • You could expand your universe from just small caps to a broader universe, but adding a size factor to your system. That way, instead of 'throwing away' all the big companies, you simply prefer the smaller ones. Increasing your investment universe is a great way of potentially getting higher returns: your ranking systems might find some great companies within those that right now you choose to screen out

  • Add more factors to the default ranking systems. Factor design is truly the magic of a ranking system. The core system is great for inspiration, but it can be greatly improved upon. Look for articles online to come up with new ideas and see if you can enjoy that process. Have to say I'm quite biased here: I love doing that myself.

  • Try out some dynamic weighting formulas if you have access to that. Giving higher weight to stocks with certain characteristics can be a huge boost to your performance.

Hope you get to enjoy the start of your Portfolio123 journey. It is an amazing ride!

Best,

Victor

3 Likes
  1. The universe should include not only small-cap stocks, but also microcap stocks.

2, Liquidity screening and price screening to reduce transaction costs.

  1. It may be possible to remove some of the “weird” stocks, such as tax-unfavourable and underperforming “LP” stocks, OTC stocks, Chinese stocks, non-US stocks, REITs, private credit, financials, infrastructure, and any category you like. Although my rule is to exclude this step unless possible for tax reasons.

4, Core Combination is a very good starting point. But changes should mainly start with the addition or subtraction of nodes, not weights.

5, There needs to be an awareness of what might actually happen before actual deployment. For example, take a look at the many strategies that underperformed between 2018-2020 and ask yourself, if the same thing happens again, can you stick with it? It's not because these strategies are bad, in fact, good strategies can't definitively avoid the emergence of the underperforming scenarios at the time, although you can avoid them in backtesting.

2 Likes

With a 4 week rebalance the proposed monthly start comes close to what is being presented with only a 2 or 3 day offset (but February). Consider doing a 1 week offset to give 4 starting dates. My rule-of-thumb is a high/low ratio no higher than 3.00 for return stability. I have seen ratios over 10.

Cheers,
Rich

1 Like

@Hedgehog @Jrinne @Victor1991 @ZGWZ thank you so much for the incredibly thoughtful and detailed feedback, I really appreciate you taking the time!

I’ve now worked through your suggestions and made several adjustments to the simulation.

  • Shift the start date. Re-run the sim with several entry points (e.g. 2 Feb 2015, 3 Mar 2015, 1 Apr 2015). A sturdy model shouldn’t hinge on one lucky launch day.

Here some Screenshots with different time periods.




  • Trading frictions. Commissions and the bid-ask spread can eat a surprising chunk of edge on $10-20 k.
    • My own settings: Commission 0.006 USD per share, Slippage 1 % of trade value (fixed), and “Average of Next High, Low, and 2 × Close” as the execution price.

I worked that in to my sim

  • Walk-forward testing. Split the data into an in-sample build phase (e.g. 01 Jan 2015 → 01 Jan 2020) and an out-of-sample validation phase (01 Jan 2020 → today). Consistency across both windows is a strong green light.

Here are some screenshots


  • Share more detail. A screenshot of Statistics → Performance would help everyone get a fuller picture of how the model behaves.

The results look not too bad I think, but I don't know for sure.

Thanks for the resources, I will definitely make use of them!