u/Clicketrie

I compared XGBoost, LightGBM, CatBoost, random forest, LASSO, and a small neural network in a momentum stock trading strategy

I compared XGBoost, LightGBM, CatBoost, random forest, LASSO, and a small neural network in a momentum stock trading strategy

Last week I posted about an XGBoost based momentum stock trading strategy, and I got two separate comments:

“Why not LightGBM?”
“Why not CatBoost?”

So I did a controlled swap of 6 models inside my existing momentum pipeline and reran the same backtest with:

  • XGBoost
  • LightGBM
  • CatBoost
  • Random Forest
  • LASSO
  • A simple 2‑layer neural net (sklearn’s MLPRegressor)

Setup / constraints

  • Same universe, features, filters, and portfolio construction
  • Only the model changes; all other code is identical
  • Default hyperparameters for each model (on purpose) to see how they behave “out of the box”
  • Logged everything to MLflow so I could compare runs, metrics, and charts cleanly

I’m not claiming this is a definitive “which model is best” answer, just one controlled experiment on one dataset/strategy. But a few patterns showed up that I thought were interesting.

High‑level takeaways:

  • XGBoost and LightGBM were basically neck‑and‑neck on headline returns, but XGBoost had a better risk profile. CatBoost underperformed in a way that I wasn’t expecting.
  • The NN had the highest CAGR, Sortino, and total return. This was another surprise to me. But XGBoost and LightGBM had better drawdowns.
  • LASSO and random forest did not beat the S&P in the cumulative returns over the time period, all the other algos beat the S&P.

The goal here was to largely show that it's easy to switch out algorithms and how different algorithm families perform. Disclaimer: the full article does contain links, but this was truly an analysis that took a long time that I wanted to share with the community. Full article with more results: https://www.datamovesme.com/blog/what-happens-when-you-swap-out-xgboost-a-6model-momentum-showdown

u/Clicketrie — 1 day ago

I survived my first real drawdown — 29% during the Iran conflict — and I wanted to share what going live actually feels like.

I've been running an XGBoost-based momentum strategy since October, starting with $850 and scaling slowly to $5,000. I'm not here to flex returns. The 75% YTD screenshot in the article was taken on an outlier day driven by LITE, RKLB, and MU, and I say that explicitly. It doesn't look like that most of the time.

Full transparency upfront: the article contains an affiliate link to the Quant Science program I used to build this. I'm disclosing that here because I'd rather you know going in than feel misled after reading.

What the article is actually about:

— What the Iran war drawdown felt like in real time on a systematic strategy (spoiler: terrible, but I didn't intervene)

— The gap between how clean backtesting feels and how messy live trading actually is

— The embarrassing stuff I'm still doing manually that I shouldn't be

— What I've learned about discretionary vs. systematic decision-making after watching myself want to override the model during a 29% drop

I'm about a year into this (8th month live) and finally feel like I'm actually living the system. I'd love to hear from others who are running live strategies, specifically, whether you've fully automated execution or are still doing it manually like me.

https://www.datamovesme.com/blog/my-systematic-trading-update-the-good-the-honest-and-75-ytd

u/Clicketrie — 7 days ago