In this post, I will cover why manual is better when it comes to backtesting my trading ideas in Excel. I know for some of you, this is a deal-breaker but hear me out before you judge so quickly.
What Does it Mean to Backtest a Trading Strategy?
If you are new to trading, backtesting trading strategies can sound pretty intimidating. First, you may not have even landed on a strategy, so figuring out what to backtest can feel like a daunting task.
Essentially, backtesting trading strategies involve inputting a number of parameters for trade entry, profits, indicators, and stops and then testing this over a set period of time.
This will then produce trade results which provide you insights as to whether the strategy is profitable.
Once you run the simulation, depending on the service you are using, you will see a report like the image below from Amibroker.
You can then further dissect your results to see if there are particular trading strategies or times of day where you are more profitable.
Automated Versus Manual Backtesting
Next, we need to dive into the question of the day of which is better – automated or manual backtesting?
This is a common debate amongst traders and again for me, manual is the clear winner. I will now make my case as to why I have come to this conclusion.
Automated Trading
The automated backtesting approach is definitely the most popular of the two strategies.
It is popular for a number of reasons.
It’s Automatic
The first reason and likely the most obvious is the testing is automated. You pick your strategy, select a duration and wait to see what the report tells you.
Also, there is a bit of glamorization around coding and using data to produce your results. This has many traders feeling they can code their way to profits.
You Get Your Numbers Fast
The other point is you get numbers and you get them fast. You can type in a few parameters, hit start and you see how you would have performed.
This allows you to quickly cycle through a number of trade ideas in a matter of hours versus days.
Manual Backtesting
This is my preferred approach and let me tell you why.
You Execute the Trades Not the Program
I went through the painful process of creating a trading program to use with Apple. I went back a number of years on a 5-minute chart and developed a system using moving averages.
My account value looked something like the image below if I would have only used the system.
The real kicker is the chart somewhat looked realistic. What I mean by this is that the account value wasn’t straight up with no pullbacks.
The chart was up and to the right, but the chart had some bumps in the road.
This made me feel like I wasn’t retrofitting the system to market environments, but rather the strategy just held up under various market conditions.
Execution of the Strategy
For some reason, after I started placing actual trades under real market conditions, the performance graph looked nothing like the simulated one.
So, this led me to refine my strategy which would always result in another beautiful uptrend line but it would quickly fall apart once I placed real trades.
You may be asking yourself, what were the drivers that prevented me from mimicking these results?
#1 Me
The first obvious reason was me. I would find emotions getting in the way or I would hesitate on pulling the trigger because I had been burned so many times before.
The psychological aspects of trading are vast and go beyond the scope of this article, but to put it plainly, I was my own worst enemy at times.
Now you are probably thinking, well just let the program execute the trades. The problem with this approach is the market was changing so fast, the performance of my automated system would drop off the further I went forward in time.
#2 Ability to Fill My Orders
In most simulation tools, you get whatever fill you desire. Even if it’s just one tick at 50 shares, in your system it will show you entering and exiting at your desired price.
In reality, these orders do not always fill and you simply don’t get the trades.
These two things alone do not sound like much, but they are enough to throw off your results.
How To Backtest Trading Strategies Manually
Instead of trying to write some algorithm to automate all of your trading results, just start collecting your actual trade history.
What stock did you trade, where did you enter the position, where did you exit the position. Start to aggregate this data and then perform deep analysis in Excel.
Now this means you learn by doing and not by simulating trades based on a system. Think about it, I could give you the keys to a wildly successful trading system, but if it does not fit your makeup, you will not be able to successfully trade the program.
This is a snapshot of just a few of my trades for two of my strategies: pull back and breakout.
These are the types of spreadsheets you need to start collecting and you need far more data than the few columns in the above snapshot.
Some of these columns should include data specific to your trading style or things that you find important.
More Data Doesn’t Mean Better Results
Your initial reaction to this approach will vary, but you are likely thinking things like, “I won’t have enough data”. You may think, well this is going to take too long for me to draw any meaningful conclusions.
Well, you are right in some regards, but what’s the point of collecting all this data? Is it just to produce a winning portfolio graph which gives you confidence in your trading system?
Is it for you to have something compelling to talk with friends over dinner?
At the end of the day, no matter how sound your system, will you lose faith after getting slapped in the face by the market on a bad trade?
Trading is work. Not in the normal sense in that you are sitting there for 12 hours looking at monitors. But more about the time you put into mastering your trading system offline and then applying those principles as best as humanly possible during the trading day.
AI Will Outperform Your Models
Not to further depress you, but creating a great system that looks back at old data is essentially dead the minute you start using it. That’s because you are basing your trade decisions on previous market activity.
Well, I’m assuming everyone reading this article is well aware of how artificial intelligence (AI) will play a part in the trading world over the next decade.
All of the big firms have started hiring really smart quants and engineers to help build the traders of the future. Bridgewater Associates went as far as to hire the lead developer for Watson to build their own in-house money management machine.
A Newsweek article on AI went as far as to say the AI will not only be able to ingest stock data but also tweets, blog posts, books, news articles, and international monetary policy to make trade decisions.
I’m not one to say humans can’t make a living trading, but if you are going to get in the coding/algorithmic trading world, you need to know what you are up against.
Past Results Disclaimer
One last reason I will give you to not get overly caught up in historical data is the disclaimer we all have read at some point in our lives. This disclaimer is on any pamphlet or television ad we see from trading services.
The language will read something like this, “Past trading performance is no indicator for future trading results”. There is nothing like a nice cold glass of water being thrown in your face right after you have just been sold on some grand idea of how to make money.
This same logic of being weary can and should be used when discussing backtesting trading strategies. Check out this awesome blog post from Medium where Joshua Kennon goes into great detail about why you have to protect yourself against possible losses.
How Can TradingSim Help?
Tradingsim can help you by giving you a platform where you can test and collect data based on your trading results.
Since you mentioned that most simulators fail to properly simulate real order fills, I was wondering how well TradingSim works in this aspect?
Raymond, we try to be pessimistic in filling orders. However, we are working on an algorithm to more accurately fill trades inside the Tradingsim market replay.