First Time Investing with a Strategy – Looking for Advice!

Hello everyone,

I took advantage of the trial period to create and optimize a simple strategy that seems to perform quite well so far.

This is my first time investing in this way, so I’d like to avoid beginner mistakes as much as possible.

That’s why I’d really appreciate hearing the opinions of the more experienced members here :slightly_smiling_face:

I have €60,000 to invest in a tax-advantaged account (I’m from France).

My plan is to invest €40,000 as soon as possible, then €20,000 in a year, to reduce the risk of investing at a market peak. Given the strong growth in recent years, I’m afraid it might not last forever—but I also don’t want to wait indefinitely before getting started.

I’ve adjusted the strategy parameters several times to optimize the CAGR (in particular : Ideal Number of Positions, Rebalance Frequency, my single Sell Rule, and the Universe Rules), and I’m wondering if I might have over-optimized the strategy to the point where it’s now unrealistic.

Is the rolling test sufficient to confirm the credibility of a strategy?

The strategy mainly invests in small caps and micro caps, since that’s what has shown the best returns in my tests.

Also, I used the “Core Combination – Europe Version” Ranking System without modifying it, as I don’t feel skilled enough to build a better one. What do you think about that choice?

Finally, I realize it’s a bit bold to invest in a portfolio of only 12 positions, but that’s what seems to deliver the highest CAGR, and I feel fairly comfortable with that level of concentration.

Please don’t hesitate to share doubts, critiques, or suggestions—that’s exactly why I’m posting this.

Thank you for the value you all bring here, especially the P123 team, and in particular Yuval, whose writings I’ve enjoyed reading.
Congratulations on creating such a powerful tool—P123 is exactly what I was looking for to put my ideas into action effectively.

1 Like

Pretty solid results…just 12 stocks it’s below my threshold. You should think about invest in USA and Cad to diversify

Regarding sim use price for transaction Average of Next High, low…as far as I know is more conservative

Take a look if your broker allows you to invest in Romania for example or Turkey, HRV……it s not easy. If not, avoid them and simulate again

If I were you I would expand the timeframe for simulations to 2005 (worst drawdown in Europe is in 2009 and is massive) and execute rolling time teast every week one year period and three year period …to avoid lucky winners or losers. Anyway try to find if there is/are a massive winner that is helping you in your sims

Check if you can invest with success in a market cap lower than 300M…select 30/50 random stocks and see the real liquidity in your broker

And check subuniverses

1 Like

My 2 cents:

I don’t see any obvious red flags.

Wide rank tolerance, cap curve looks nice, variable slippage, standard ranking system, > 10 positions, moderate turnover, no exotic Buy/Sell or Universe rules, you even excluded problematic exotic coutnroes like Turkey or Russia (maybe also exclude the smaller east europe ones except HUN and POL, EST –> check screens and see if the tickers are tradeable)

For further robustness checks, you could do the following:

  • Check 4weekly or 13weekly rebal
  • Check Buy Rules like RankPos>5, EvenID = 1 or EvenID = 0 (These skip subsets of high ranked stocks in the backtest)

These tests should impair returns but not fully collapse them. If these rules result in CAGR < 20%, the strategy imo is a bit unstable. In that case, it could be that the strategy is too reliant on a few outliers or the universe is too restrictive or similar.

PS: Also check out the Transactions → Realized → Aggregate tab in the simulation to see if returns are concentrated in certain sectors or tickers

3 Likes

Might be worth checking out similar threads in the forum, like this one

Not optimizing the ranking system and sticking to very simple buy/sell-rules bodes well for your returns!

You’re going to have to live with extremely high volatility with only 12 stocks, I’d increase to 15 or preferably 20. I’d also add a buy-rule like subseccount<some-limit to reduce the risk of overinvestment into a single sector.

Like I commented in the thread references above, the low turnover could be an issue, during testing it could be a good idea to force the model to have higher turnover, using nobars>200 as a sell rule for example. I also recommend to test the model using mod(stockid) (details in the thread referenced).

2 Likes

This looks very solid to me too, except for the price for transactions: don't use next open. Also you have a very narrow liquidity/size window: I would experiment with going down to 50,000 for your MedianDailyTot and going up to 500 or 1000 for MktCap. I'm not sure about this, but I think that in Europe the difference between performance of microcaps and small caps is not nearly as great as it is in the US.

Regarding the Core Combination ranking system, the Core: Momentum should really be revised. Change all the instances of close(0)/ to close(21)/ and change the offset of the UpDownRatio factors from 0 to 21. This allows you to take advantage of momentary price dips and short-term mean reversion. In terms of percentages, you might want to try changing the overall weights from 10/10/10/30/20/20 to 20/10/10/20/20/20; and you might want to try changing the weights in Core: Growth: Sales to 25/75 and the weights in Core: Growth:Sales:Acceleration to 75/25 (I find that Sales Acceleration - recent is the most effective measure of anything in the sales growth category). Feel free to reject or ignore these suggestions, particularly if they don't work well for you.

4 Likes

I also thought this looked promising, but I would have stress-tested it more just to see how it affects the results:

  • Test with at least 3 times more stocks in the simulation than you will be trading in reality.
  • See how the strategies perform against other strategies.
  • I think it is rarely desirable to have a turnover over 400%, but it is important that the turnover is not too low because you do not get enough test situations in your simulation.
  • Try removing the biggest winners in your strategy to see the results.
  • A test on 12 stocks is extremely vulnerable to small adjustments, so test on a slightly larger number when you optimize.

Otherwise, I have included some tips that have come from others over the years. This is based on the agent inn Perplexity Comet's: .

General Setup & Philosophy

  1. Explore the Portfolio123 Community for shared user lessons and mistakes: Forum thread: Lessons for new users
  2. Use public "designer models" as working templates: Designer Models overview
  3. Begin with pre-built "Live Portfolios": Live Portfolio strategies tips
  4. Study the Help Center articles for each topic: Help Center
  5. Participate regularly in forum discussions: Forum Categories
  6. Familiarize with core concepts by reading "Core Combination" explorations: Forum thread: Core Combination Ranking

Ranking System Optimization

  1. Use at least 30–50 factor nodes, testing broad coverage: Core Combination factors
  2. Diversify factor groups (growth, value, etc.): Ranking system design
  3. Focus on "point-in-time" universe data for honest backtests: Point-in-time advice
  4. Create a custom universe with liquid stocks: Universe setup discussion
  5. Always check the weight distribution between factors: Ranking optimization thread
  6. Try “zeroing out” nodes to see impact: Practical node testing
  7. Compare system performance across multiple universes: Performance in different universes
  8. Visualize ranking outputs with quantiles: Quantile analysis
  9. Avoid factors with unreliable/hard-to-interpret jumps: Quality of ranking nodes

Buy & Sell Rules

  1. Keep buy/sell logic simple (Rank threshold): Simple rule example
  2. Place as much logic as possible in the ranking system: Ranking system focus
  3. Experiment with varying buy/sell threshold sensitivity: Rule tuning
  4. Test holding periods beyond pure rank trigger: Holding period effects
  5. Adjust “rebalancing window” for volatility: Rebalancing window tips
  6. Add real-world costs/slippage when simulating: Slippage advice
  7. Ban penny/illiquid stocks via minimum price/volume rules: Liquidity rules
  8. Backtest with and without slippage to compare effects: Forum thread: Lessons for new users

Simulation Settings

  1. Employ out-of-sample testing rigorously: OOS testing best practices
  2. Use rolling windows in your backtests: Rolling window example
  3. Always check max drawdown figures: Drawdown study
  4. Keep annual turnover below 350% for practical use: Turnover management
  5. Stress test different portfolio sizes (5, 10, 25, 50 stocks): Portfolio size stress-testing
  6. Use custom universes to test niche or thematic ideas: Universe setup discussion
  7. Benchmark performance versus broad indices: Benchmarking advice

Strategy Search & Stress Testing

  1. Don’t chase “perfect” results; stress test for robustness: Optimization mindset
  2. Split your universe by sector, cap-size, or geography and compare: Universe breakout testing
  3. Run market-neutral simulations to isolate alpha: Market-neutral testing
  4. Combine (“book”) several strategies for smoother returns: Portfolio books
  5. Repeat backtesting with slightly randomized buy/sell dates (“staggered start”): Staggered rebalancing
  6. Test every rule with both small and large universes: Universal rule testing
  7. Always check the worst 12-month span within your simulation: Drawdown analysis

Advanced Practical Tips

  1. Review the investment commentary on major market drawdowns: Historical crisis analysis
  2. Factor in real-world tax impacts if relevant: Tax tips discussion
  3. Try ranking and simulation within sector universes (Tech, Energy, etc.): Sector strategies forum
  4. Adjust universe screening as indexes change over time: Index screening advice
  5. Use combination of sector risk ban and factor-based ranking: Risk management post
  6. Study “factor decay” and manage derived risk accordingly: Factor decay forum
  7. Double check survivorship bias for all simulated runs: Survivorship bias advice
  8. Join topical discussions on optimal factor combinations: Optimal combo thread

Mindset and Community

  1. Ask “what’s missing?” – regularly review forum threads for gaps in your own setups: Community advice
  2. Post your ranking system in forums for feedback: Feedback request
  3. Accept volatility, understand drawdowns, and plan accordingly: Volatility management
  4. Keep a digital log of each strategy version and backtest result: Backtest record keeping
  5. Contribute your own experience as you learn – that’s how the Portfolio123 ecosystem evolves: Forum contribution
3 Likes

I'm sorry, but I have to say that this is really overkill. Nobody is going to go through all fifty of these before deploying a system.

A few years ago I wrote a blog post about strategy testing that might be useful, but it is VERY clear that you are not overoptimizing your strategy. You're hardly doing anything that raises red flags. Break Your Strategy: How to Stress Test Your Quantitative Models - Portfolio123 Blog

5 Likes

Dito. At some point, you have to stop paper-stresstesting and trade live, at least with part of the capital. Many issues and questions first arise during actual training. Can’t fully avoid it, so delaying live trading experience by endless strees-tests beyond a healthy minimum won’t do any good.

YOU WILL have some bad trades / losses due to stuff you didn’t consider before. Part of the game. Simulate → Stresstest → Go live → Evaluate (Trades feasible? Tickers tradable? Slippage assumptions realistic? NA handling, universe rules, etc. causing noise? Volatility mentally enduarable) → repeat

3 Likes

Thank you all very much for your replies :grinning_face:

I tried these changes but they give me a slightly worse CAGR (around 2% lower), so for now I’m going to stick with the original ranking system.

I tested both suggestions but each time it significantly reduced the CAGR.

Except with a 30-stock portfolio — in that case I can raise the maximum market cap to €1 billion without impacting the CAGR too much.

With 30 positions I get a CAGR of 33% (vs. 47% with 12 positions).

Is an investable universe of around 400 stocks really too small?

I have access to a tax-advantaged account as long as I invest in European stocks. In my opinion that advantage is too big to give up, especially considering the tax rates where I live (France).

Okay, this barely changes the strategy’s performance at all.

These different tests still give pretty solid results — CAGR goes from 47% down to around 25–30%.

If I remove the top 5 stocks over the last 10 years, I lose about 10% CAGR.

That still seems good to me, especially since I expect the strategy to capture the best-performing stocks anyway. What do you think?

And yes, this strategy with 12 positions massively outperforms in a few sectors (probably thanks to a handful of winners), whereas the 30-position version has far less sector dispersion.

But is that really a problem? Personally, I just conclude that diversification (with 30 positions) dilutes the excess return from the best performers — am I wrong?

I completely agree — this has also become my philosophy, after being too much of a perfectionist far too many times in my life.

I think that if you put all this together you're optimizing too much in your liquidity/size filters. If you change your minimum MDT from 70,000 to 50,000, it really shouldn't affect returns much at all. Try changing it to 30,000 and to 90,000. If all of three of those perform significantly worse than 70,000, then you've overoptimized your lower MDT limit.

2 Likes

Sounds all good imo. The skipping tests show me that the ordering in the top ranks seems rather robust. Of course, if you skip best stocks or random stocks or add positions, CAGR should shrink in a defined but uncritical range. In live trading, you will inevitably have to skip some tickers due to issues with liquidity, accessibility or whatnot. But from what you describe this looks okay for your system.

Regarding liquidity filters and concentration: If you ask 10 different people on here, you will likely get 10 different answers.

My personal opinion (and what I apply in live trading):

  • If you are a small retail investor, buy as low size+liquidity as possible and as high size+liquidity as necessary (spreads, market impact and other slippage questions). In my experience, a well-rounded multi-factor ranking system for stocks say >10k liquidity follows the simple rule that 1/(Size+Liquidity) acts as multiplier to sort return slope (meaning the smaller the stocks, the higher the top-decile return and the lower the bottom decile return.). Yuval and Co. might disagree. Of course this is no nobrainer and no free lunch. A broader universe will add robustness and “smoothness”. But low liquidity is the main leverage/edge a reatil investor can tap and I personally try to maximize this as long as I can. Not many good studies here because most of them actively EXCLUDE microcaps because of the institutional audience: https://alphaarchitect.com/attention-value-investors-size-doesnt-matter/
  • Regarding concentration, it’s also a double-edged sword. The better way to think about it is not number of positions but %weight exposure. 30 positions = 3.33%, 20 = 5%, 10 = 10%, 5 = 20%. So the question becomes, how much % of capital are you willing to risk per trade assuming that there can (and will) be a catastrophic unpredictable idiosyncratic event (surprise regulation, fraud, CEO dies, fire in the main plant, etc.). I personally would never go above 10% weight. Imo 15-30 positions are a sweetspot (compromise between diversification and limited dilution) and the underlying 6.67% to 3.33% weights are a reasonably narrow range to choose from. I personally run 3 separate 10-stock systems which can have an overlap (resulting in double-weighting of a ticker), so I am practically in this range. Here some reading: https://alphaarchitect.com/how-portfolio-construction-impacts-the-reliability-of-outcomes/
  • Sector concentration: I personally do not fear sector concentration. Imo it’s more feature than bug because to a large part factor investing also lives from industry rotation. But you have to decide. Rationally and academically, I just can show you this:
    https://alphaarchitect.com/is-sector-neutrality-in-factor-investing-a-mistake/
  • Is a 400 stock universe too small? For ML/AIFactor, imo yes. For a linear multifactor ranking system? No (if you manage turnover properly over your sell rules). A sorting of a balanced linear multifactor system that was not overfit to your universe should work both if you filter before ranking (universe) or after ranking (buy rules). It only changes the technical implications (optimal rank tolerance to adjust turnover etc.), strategic possibilites if wanted (e.g. a complex buy rule filter will not find stocks in certain market regimes and stay in cash, which you can use as hedging mechanism). It will have effects on the relative ranks, so one of the two approaches will backtest “better” but both approaches should work (if not, imo that’s another red flag)
3 Likes

Where they put the cutoff between small and large? I think that they :scissors: is too large