As promised in the previous Dax MiddayTrend Algo monthly reports, I have spent a lot of time to analyze the algorithm weaknesses to look for some improvements. And I’m happy to release a version 2 that includes some major improvements.
All improvements have been backtested individually on 8 years data to ensure that they are really improving the results, and all the changes are global to ensure there is no overoptimization on a given period only.
1. Better entry signals
The entry signals have been improved. For Long position (buys):
- We now have another trend filter for a better trades selection. This removed some risky trades.
- We now have an ADR filter to open a long position if the market is moving enough only. We don’t want to be blocked in a ranging market with a small average daily range.
- The algo now checks if there is not a big drop/rejection before opening a buy position to remove a risk.
For short position (sells):
- The algo now checks if there is not a big move up/rejection before opening a sell position to remove a risk.
2. Exit trades earlier on fridays
The algo will now close all friday’s trades at 7PM Paris time (1PM New york) instead of 10:30 Paris time. This is improving the overall performance because the market could easily go crazy at the end of friday’s session.
3. Smaller stop losses
But that’s not all… The results have been so much improved by the previous changes that I could reduce the stop losses set by the algo. This is really game changing for those using the algo with a % risk defined at every position because the risk is calculated using the stop loss.
- For BUY positions: the initial stop loss is now at 80 points instead of 150 points. Yes, you read it correctly!
- For SELL positions: the initial stop loss is now ranging between 110 and 150 points depending on the position and the current ADR, instead of a fixed 150 points previsouly. Below is the short position’s stop loss level over the 8 years time:
4. Backtests spread improvement
Thanks to some of you that warned me about the higher IG spread at the end of day, when the algorithm closes most of its position, I’m now using a bigger spread for the backtests to get more realistic results.
Instead of using a 1.3 spread, I am now testing with a 2.5 spread that comes from my calculation. Most of the time, the Dax spread on IG is 1.2 during the day but it is 4.0 at the end of day (at 10:30 pm when 75% of the positions are closed). Prorealtime does not allow to set a dynamic spread in the backtest, that’s why I had to calculate an average using the spread at the position opening and the one at the position closing : (4.0 * 75% + 1.2) / 2 = 2.1.
The ideal spread should be 2.1 but I let some room with a 2.5 spread, it’s better to be pessimistic with backtests and get a good surprise with real trades.
The backtest results before (v1) vs after (v2)
You have the v1 results on the left and the v2 results on the right, over the same 8 year of data period, and using the same 2.5 spread:
This is a nice global improvement because:
- the profit over the period is bigger at 12350 euros (vs 10441 euros previously)
- the profit factor is now 1.6 (vs 1.44 previously)
- the maximum drawdown is now 542.20 (vs 635.90 previously)
- and we are doing this with less trades, 973 over the period (vs 1068 previously), and less time in the market (= less risk).
The update is in live test since a few days, I will release it and send it to the existing customers next week.
We will take this opportunity to celebrate it with a special offer for the annual subscription!