1 Year in Quant Trading — 24 Lessons I’ve learned
I’m approaching one year since diving full time into quant trading. My business a year ago wasn’t performing too well, and I was hoping for more control over returns — especially for more predictable ROI. That’s how it all started.
I didn’t expect this journey to be as challenging as it’s been — looking back at all the learning, re-learning, programming, re-programming, testing, re-testing, and launching strategies at some point, only to see them fail. However, there are a few strategies that make it through all the processes and become profitable. These winning strategies have some common patterns, which I tried to compile into the following lessons that I have learned over the past year.
Some of the points may appear obvious to you, as a more experienced trader. For me, each individual one was an enormous insight, sometimes followed by a big shift in how I approach the markets. I wish I had known these points beforehand, which might have saved me countless hours. The following lessons are addressed to me and in no meaningful order.
Strategically pick your markets
Trading US stocks, forex, and bonds probably is a bad idea. It is not the wisest choice, due to too much competition with the biggest players. Find your liquidity sweet spot by taking a look at markets that would support your liquidity needs; however, they shouldn’t be magnitudes larger. Play and win in niche markets by learning their rules, rather than trading where big players trade and where the game is much harder. My point is this: a strategy on Philippines stocks likely will be more profitable than the same one on US stocks.
Learn the rules and accept them
I traded a few different markets (in hindsight, I should have stuck with one). Each has different rules and is rigged in its own way. Market makers (or the most dominant players in one market) do everything to win. Assume the markets are rigged, learn the rules, and play by them, but don’t deny them by thinking markets act naturally. Don’t try to “outsmart” the markets; this likely will backfire. Look for traces (behavioral, spoofing, placed orders, and liquidity hunts) that big players leave, and use them for your advantage.
Know your priorities
There’s so much to do in quant trading: strategy development, optimization, backtesting, execution, and risk management. Don’t focus on the wrong things in the beginning — like optimizing parameters. Rather, build very basic MVP versions of each part in the equation and optimize by iterating while in production. A perfectly optimized strategy won’t help if the execution part doesn’t work correctly.
Expect to lose in your first year
Don’t start scaling as soon as you see some initial success, as it may wipe out big parts (40% in my case) of your portfolio. It will take you much more effort to make it back; instead, it’s easier to adapt proper risk measures in the first place. By having an expectation to lose (the first year at least), you won’t be tempted to put more capital than necessary into testing and learning.
Don’t rush with capital, rush with execution
I was too quick in scaling up capital without thinking about risk. On the contrary, I often found myself in analysis paralysis, promising myself to launch a new strategy after “just one more optimization”. I was over-optimizing too much. I should have just launched multiple strategies to see what works first, then optimizing in an ongoing way. Building and optimizing strategies based on theory doesn’t help, if there’s no practical feedback.
Don’t use price stops
I found there are two ways price stops can be used: either not at all or to protect against black swan events (99.9th percentile of the volatility distribution). Instead of price stops, use time stops and proper position sizing. Price stops will, as research shows, destroy a good strategy, simply due to randomness in volatility. The time dimension is much more manageable and predictable than the price dimension of a hypothesis expressed by your trade (both in backtest and in live trading). By using time stops, you are setting a time constraint in terms of how long your hypothesis is valid, which almost always reduces variance (and increases Sharpe ratio).
Know entries and exits
For each trade, know where to enter and where to exit. For me, these are set based on two rules — one being a modified formula of Average True Range. It’s almost a requirement to have pre-defined rules for entries and exits, in order to properly backtest and to know what to expect in live trading.
Know your numbers
For each strategy, you must know the expected value, hit rate, expected drawdown, longest drawdown, expected volatility, variance, Sharpe ratio, standard deviation of returns, skewness of returns, and value at risk. Also, proper bet sizing, risk of ruin, Kelly fraction, and optimal F should be strategically chosen based on how the strategy performs during the backtest.
Make risk management a priority
Wiping out 40% of capital might happen in a day; however, making it back can take many months — if not years. Use proper risk management in the first place, and be aware of the potential risk of ruin due to black swan events. It’s always a good idea to expect the worst case. It shouldn’t be a challenge for your strategies to wake up one day to a -50% market.
Use fewer parameters but know what they do
My best-performing strategy uses only 3 parameters. These are easy to optimize and easy to test for robustness. Know exactly what your parameters do and why they are used. The worst mistake probably is letting an optimization script generate parameter combinations, e.g., slow/fast period for multiple moving average combinations. There surely will be something that looks good on paper/in the backtest, but it is doubtful the same strategy will work in live trading.
Create a good backtest and know the ins and outs
Don’t go with some existing solution (applies to optimization, as well, by the way) — at least not before you have built multiple backtests yourself. You must understand the effect of slippage, fees, sequence of execution events, and different order types. I wrote many backtest scripts, with the first few being very intricate. My most recent version runs on 12 lines of code (mostly parallel computations), which proves, once again, that simplicity wins.
Find a good evaluation metric
Testing how the strategy performs is not enough; you must know what to look for. Of course, I started looking for high annual return. Optimizing Sharpe was better, but also not what I needed (I still wonder to this day why Sharpe ratio is considered the industry standard, since there are much better metrics). Finding the right optimization and evaluation metric is key; otherwise, you’ll build something that completely misses the goal.
Know what to look for in a strategy
To find a good evaluation metric, you need to know what you actually are looking for in a strategy, and it’s based on many personal factors (portfolio size, accepted risk, etc.). Know the characteristics of your desired strategy, as this will define what evaluation metric to choose. I prefer consistent, negatively skewed strategies, and this is what I build for.
Focus on features, not on optimization
There’s a great range of tools for optimization, genetic optimizations, non-convex optimizations, principal component analysis, statistical/Bayesian optimization, and a thousand fancy libraries. From my point of view, optimization will help improve a strategy by 10–20%; however, it won’t lead to a profitable strategy in the first place. If a strategy is bad, no optimization will help. Focus on deductive analysis and feature engineering — in simple terms, making sense out of the inputs and data.
Deep learning is overrated
I don’t get the hype. Machine learning is great, and deep learning is great, too (aka neural networks). Optimizing 10,000 parameters likely will only lead to overfitting. If the strategy isn’t working without power libraries like Tensorflow, it probably will not work in production (even if the backtest is amazing). In short, the strategy should be profitable already with something simple like a linear regression.
Better data, better features
“Data is the oil of the digital world,” someone said. I heard some hedge funds are using satellite images of parking spaces to predict stock returns. Although such kinds of data probably contain limited information (I’d guess just as good as weather forecast data), it’s still usable data and not bad by any means. My point is: focus on getting better data to then produce better features. Combine multiple weak features and strategies together, and this likely will improve returns.
Academic papers are great, but…
Academic papers are great, but they usually fall short in terms of practicality. There’s simply a mismatch in incentives between academics and traders. Academics are not traders, and traders don’t publish working strategies. Look at academic research with a grain of salt; however, don’t neglect it completely. I can’t count how many times I found a little piece of information really valuable. One paper won’t result in a good strategy, but applying insights from 20 papers might.
Fast feedback is a must
Competing with big players, especially in the HFT realm, is probably a bad idea (like I explained above). Going the opposite — holding trades for days, months, and years — also is not ideal. For me, the sweet spot is a holding time of 5 to 60 minutes. If I can’t test a strategy in 2 weeks with statistical significance (meaning more than 100 trades), I’m not investing my time in it. To test a strategy with a multi-day (and longer) holding period, I’d need months to validate, and this is not what I’m interested in.
Don’t trade only on price and price indicators
Price is a reflection of what happened in the market. It has low information about actors and their intentions. Indicators also are not useful enough, as they are just a derivation from price, and most indicators lag behind. Markets are more choppy and automated nowadays, and lagging indicators aren’t as helpful as I’d assume they were in the past.
Derivations of derivations are useful
I found a way to make indicators useful: by building features off of them. I have found that strategies would perform a lot better if indicators — let’s say the moving average — are strategically refactored into something like a second derivation, e.g., splitting MA values into bins and counting the occurrences per bin over the last X hours.
Double your timeframe
Picking a higher timeframe almost always leads to better results. This can’t repeat indefinitely, as your research is done with one specific timeframe in mind. However, if your strategy is optimized for 15 minutes, increasing the holding period from to 30 minutes almost always yields better returns with lower risk.
More risky markets, smaller positions
Trade in markets that are more volatile, because volatility is good for opportunity. Just be aware of the risks and adjust position size accordingly. It can be much more profitable to trade markets that are 10x as volatile while having 1/10th of the position. The risk to reward curve is not as linear as I thought — looking at you Bitcoin!
Trading fees make a huge difference
By doubling the holding time as mentioned, the role of fees already is reduced. Optimizing strategies specifically to avoid large fees is even smarter. Depending on the strategy (especially for higher frequencies), fees make up more than 50 percent of returns. This means optimizing fees should be one of the highest priorities, whether that means using less market orders, using better brokers, or negotiating better deals with existing brokers.
Familiarize yourself with your trading environment
Mentioned above under becoming more familiar with one niche market, this applies even more so to brokers, exchanges, their APIs, downtimes, and latencies. You should know their APIs in and out, especially since many brokers have intricate and hidden functionalities that can really help one’s performance (conditional orders, better fill/status information on orders, bulk operations, etc.).
Afterthoughts
Thanks for reading. The amount of things I’m learning day by day is not slowing down, even though I’m approaching the 2000 hours mark for quant trading. I think this is one of the few industries where, with passing time, the learning curve gets steeper, which actually makes me excited about the coming months/years. Finally, in case I missed something — or if you want to get in touch — please reach out to me via email.