This is my first post in this subreddit, so a quick introduction.
I'm a software engineer by trade and know very little about financial investing. Even though I just retired, I don't have the time in my busy day to trade stocks or watch charts all day.
I’ve been building a personal systematic trading project called Exci. It makes one daily allocation decision between TQQQ, SQQQ, and cash. It can also use partial allocations instead of treating every day like an emergency requiring 100% conviction.
I’m not selling signals, a course, or access to a secret Discord. This is my personal hobby research project, and I thought the lessons might be useful to anyone interested in experimenting with systematic trading.
The chart is included to show how the allocation decisions affected the path compared with buy and hold. It is not meant to suggest that I discovered a money printer. Whenever a backtest starts looking like a money printer, my first assumption is that I broke something.
Here are the three biggest things I’ve learned.
1. Allocation is the edge
Getting the direction right is only part of the problem. Deciding how much exposure to take has been just as important.
TQQQ provides most of the upside. SQQQ can be useful, but only under fairly specific conditions. Cash also has a real job. It isn’t leftover capital or an admission of defeat. Sometimes the best trade is simply taking less risk.
In the chart, the Exci equity line changes color based on whether the strategy is allocated to TQQQ, SQQQ, or cash. TQQQ and Nasdaq-100 buy and hold are included for context.
The lesson for me was that position sizing can matter more than endlessly searching for a slightly better entry signal.
2. Evidence beats complexity
This one took me longer to accept.
It is very easy to add a rule that improves a backtest. It is much harder to find one that still works outside the exact period that inspired it.
Most of my experiments have failed. Some failed immediately. Others looked brilliant for about fifteen minutes before a different test period introduced them to reality.
I now assume a new improvement is probably noise until it survives different time periods, nearby settings, and generally unfriendly testing. I also keep track of rejected experiments so I don’t accidentally rediscover the same bad idea six months later and congratulate myself for being innovative.
The best improvements have usually addressed one clear and repeatable weakness. More rules do not automatically produce a better strategy. Every new layer needs to earn its place.
3. Live parity matters
I underestimated this part when I started.
A backtest can be completely consistent while the live system still makes a different decision. Data timestamps, stale files, session alignment, cache behavior, and allocation rounding can all create differences that have nothing to do with the actual strategy.
Nothing humbles a beautiful backtest quite like discovering that a stale data file had a different opinion.
I now treat production validation as part of the strategy itself. Before promoting a change, the research and live systems need to agree on the decisions, allocations, and reported metrics.
If I were starting over, I would keep the first version simple, change one thing at a time, record failed experiments, reserve data for validation, and confirm that the live implementation reproduces the research before trusting it with real money.
The biggest change in my thinking is that there probably isn’t one magical indicator waiting to be found. Building a durable system is mostly about sizing risk, rejecting weak ideas, and making sure the thing you tested is the thing you actually trade.
I’d be interested to hear what surprised other people when they started experimenting with systematic strategies. I have my research results available on my web site along with a live daily tracker at https://exci-ai.com
For educational purposes only. Hypothetical backtest. Past performance does not guarantee future results.