This is a Guest Post by David Bergstrom, he is on twitter @dburgh he is the guy behind the Build Alpha software. He has spent many years researching, building, testing, and implementing market making and trading strategies for a high frequency trading firm, a handful of CTAs, individual clients, registered money managers, and even aspiring retail traders. His website is BuildAlpha.com.
- Define how to pass the backtest prior to doing any backtesting. For example, if all of your testing requires some visual interpretation then it may be very easy to determine which test is better between a blatantly obvious loser and a profitable backtest. However, determining which strategy deserves your money by looking at two similar equity curves makes the decision much harder. If you set clear objectives on how a strategy can pass the backtest then you can create clear objectives to allow strategies to move from backtesting to robustness testing to live trading. For example, you can set minimum thresholds ahead of doing the backtest. For example, I will only continue pursuing this strategy if it has at least a profit factor greater than 2.0 and net profit to drawdown ratio greater than 5.0. Similarly, you can create clear cut, objective measures on how to pass robustness testing as well. For example, I want all of the possible Monte Carlo simulations or paths to be profitable after 50 trades. So I can easily look at a Monte Carlo simulator and see if one possibility is below $0 at the 50 trade mark then this strategy does not pass.
- Find a strategy that suits your personality. Some crave active strategies that are constantly trading for small gains and part of a portfolio that has constant action. Other’s actually prefer to be patient and wait for the big trend to come. The important point is that if your strategy conflicts with your personality it is increasingly difficult to trust and stick with your strategy through good times and more importantly through bad times.
- Do NOT cherry pick trades and try to outsmart your system. It is very important to let the long run expectancy play out and you should believe in your research. The simplest analogy is to consider a coin flipping game that pays $10 when it lands on heads and costs you $1 when it lands on tails. If our research states it only lands on heads one out of ten times this is still a profitable game to play and the long run expectancy is $0.10 = ($10 * .1) – ($1 * .9). However, if you decide to play this game and experience 6 losses in a row and then have a “feeling” the seventh flip will also result in a loss you will try to outsmart the long run expectancy and skip the seventh flip. Now if the seventh flip is the winner, and you guessed wrong and missed it, you have now dramatically changed the long run expectancy by simply skipping one flip (or trade in our case). You have now taken a positive expectancy system and “cherry picked” it to a negative one with a huge negative expectancy (compared to our original +$0.10). ($10 * 0) – ($1 * 1) = -$10. This is an extreme example, but altering a trading system’s expectancy is almost a surefire way to guarantee account failure; trust your research!
- Be properly capitalized and have realistic expectations. In my opinion, the single greatest plague facing traders is trading a system or even a hand-trading methodology without enough capital. Many traders will look at the largest historical loss of a trading system or a backtest’s drawdown to size their position, but in reality these are far too simple and often an oversimplification of the actual risks the trader is assuming. Moving forward, the trader will experience completely expected trading results but they will wipe the trader’s account out because they were unaware or undercapitalized for these expected outcomes. It is very important to consider the possibility of taking multiple losses in a row or using a simulator like Monte Carlo to create better expectations of what type of risk is possible with a trading system or method. This will allow you to properly size your strategy and survive the natural ebbs and flows of the strategy.
- Understand the execution risks involved in algorithmic trading. For example, thoroughly tests the execution code of strategy on a simulated account before risking real money and often times I know traders who will initially allow an automated trading system to trade live with reduced size for the first 10-20 trades just to make sure it is executing on the live account properly. Another thing to mention, we do not want to miss trades (unintentional cherry picking) due to bad internet connection or power outage. Many traders avoid these issues by putting their strategies on a Virtual Private Server that “guarantees” 99.99% up-time. This is certainly a low budget solution. Some system traders I know have two internet connections and multiple power sources and host their strategies on their own servers. The choice is yours, but surely needs considered.
- Have clear rules when to turn the strategy off. These rules need to be determined ahead of time and should have some logical reason for existing. Too often traders allow emotions to creep into their automated trading and start altering systems, turning some systems off, etc. It is important to have clear cut rules for when a strategy should be taken off line and this will help keep emotions out of our system trading. Some examples include: strategy experiences a drawdown worse than worst drawdown from Monte Carlo simulation, strategy trades outside of confidence bands, strategy becomes too highly correlated with another strategy you are trading, or realized results are not matching test results (live average trade +$350 and backtest average trade +$750). All of these reasons allow for objective, clear cut rules to be placed ahead of taking the first trade. This is important because when a trader gets uncomfortable or in a drawdown he/she can check the list and ask have one of these things happened yet? No, ok no reason to panic. Yes, time to take this strategy offline and reevaluate.