The difference between backtest performance and real performance on a real account is a major automatic trading problem.
All automated trading systems are concerned without exception.
Performance differences root causes
There are three main causes that could explain why the result of a backtest is always different than the real trading results. These causes are spread, tick by tick mode, and slippage.
1. The spread
Before you launch a backtest from the Probacktest interface, you are able to choose the spread that will be applied to each trade realized by your automated trading system. This spread will be flat during your backtest whereas spread is varying on the real market.
For example, on the DAX the spread had a value of 2 points from 08h00 to 09h00, 1 point from 09h00 to 17h30, 2 points until 22h00, and 5 points all night.
Spread variation by hour
|Indices||Valeur d’un contrat par point|
Standard / Mini
|Horaires de négociation||Spread de négociation|
|10£ / 2£||02.00-08.00|
|10$ / 2$||9.00-15.30|
Reste du temps
|250$ / 50$ /1€||15.30-22.00|
Reste du temps
|25€ / 5€||01.15-08.00|
|10€ / 1€||01.15-08.00|
|Hong Kong HS50|
|50HKD / 10HKD||02.15-05.00|
Reste du temps
|5$ / 1$||23.00-00.30|
Reste du temps (CET)
Events causing increasing spread
You need to know that the spread could significantly increase in case an unexpected event did happen. Consequences are the performance of your automatized trading system could suffer a negative impact.
2. The tick by tick mode
Before launching a backtest, you are able to activate the tick by tick mode. This option allows your backtest to integrate each ticker inside each candle. When the tick by tick mode is active, the result of your backtest will reflect a better reality.
The problem with tick by tick mode is that is not possible to get more than 1 million ticks in the historic of Prorealtime. Cause available space and computing time constraints.
Consequently, if you wish to run a backtest on several trimesters or several years, you will have to inactive tick by tick mode. In this case, there is a risk to obtain a backtest result wish would be significantly different than reality result.
In practical terms, if the tick by tick mode is inactivated, the automated trading system that you test will see only the fours follow data describing a candle, which means the opening price, the closing price, the highest price and the lowest price.
The problem is the following : if inside a candle the STOP or the TARGET could have been touched, it’s impossible to know if the TARGET would have been touched before the STOP or the reverse. In this case, Probacktest will arbitrarily choose to execute the TARGET.
You should keep in mind that this problem exists for all technical indicators like RSI and others.
3. The slippage
Slippage is a deviation between the order price and execution price of this order.
There are several reasons which explain why slippage occurs :
- Slippage may originate from a too long time of execution. That provokes a price gap because markets are every-time changing.
- Slippage could be also a lack of liquidity consequence at a given moment.
Let us the following example :
- DAX index actual price is 11705.5 points
- There are two contracts at 11705.5 and one contract at 11705.6
If a trader buys three contracts at the market then DAX is at 11705.5, he will obtain two contracts at 11705.5 and one at 11705.6. Thus it will be a 0.1 point slippage on one contract.
There are often many slippages when markets are very volatile when unexpected news happens. But sometimes markets can have an episode of volatility caused only by technicals reasons.
Can slippage occur with a LIMIT order ?
Yes, slippage can occur with a LIMIT order because when the market touches the price LIMIT, this order transformed into MARKER order just before execution.
Others cause explaining differences of performances
There are some other causes which explain differences of performances between Probacktest and real trading :
Overnight taxes and fees
If you keep your opening positions at night, you absolutely must integrate overnight fees in your backtest result.
Latency time of your algorithm
If your algorithm is too complex, you take the risk to increase the time of execution of your automates trading system. I often noticed that the latency of strategy was between 1 and 4 seconds.
It is maybe possible that latency explained by the technical problems as an overloaded network. However, technical incidents are infrequent on the Prorealtime platform.
If you want to learn more about automatic trading, please click here.
If you are any questions, please ask me in a comment and if this article pleased you I would be grateful to see you share it.
Subscribe to our newsletter!