Hello,
I'm not sure about this EA being overfit or not. How do you go about evaluating overfitting? Are there any books, articles?
Backtest settings (50ms is my actual delay on my pc)
2021-01-01 -> 2022-01-01
2022-01-01 -> 2023-01-01
2023-01-01 -> 2024-01-01
2024-01-01 -> 2025-01-06
2021-01-01 -> 2025-01-06
I test my EA's with a minimum of 10 years of historic data. Having said that, you can't print historic data that you don't have out of thin air, so 4 years is the best you can do if you don't have it.
I would however, run it on your broker-dealer's live data with "Every tick based on real ticks" to confirm what you've found with simulated ticks.
All in all, you've likely created a conservative strategy that's profitable (assuming that you didn't overly optimize every year).
(I also can't see what you punched in for spread and slippage. You have a 7.42 EUR positive difference between your average win and average loss, with about 45% wins versus about 55% losses. Real ticks, spread, and slippage could eat into that).
I test my EA's with a minimum of 10 years of historic data. Having said that, you can't print historic data that you don't have out of thin air, so 4 years is the best you can do if you don't have it.
I would however, run it on your broker-dealer's live data with "Every tick based on real ticks" to confirm what you've found with simulated ticks.
All in all, you've likely created a conservative strategy that's profitable (assuming that you didn't overly optimize every year).
(I also can't see what you punched in for spread and slippage. You have a 7.42 EUR positive difference between your average win and average loss, with about 45% wins versus about 55% losses. Real ticks, spread, and slippage could eat into that).
Yeah it's ETHUSD and before 2021 spread is so large it doesn't even open a single position. Anyways, is the Recovery exaggerated due to fixed small lot size? Can you confirm that? Thanks for your input.
Yeah it's ETHUSD and before 2021 spread is so large it doesn't even open a single position.
Knowing this, it's all the more important to do your best to calculate an average spread within the limit of your max spread filter. Then input that into the Tester. In your case of trading ETHUSD, you really need to use accurate spec's on real ticks from your broker-dealer. I'm feeling much less warm and fuzzy about a simulated tick ETHUSD backtest.
Anyways, is the Recovery exaggerated due to fixed small lot size?
Recovery factor is simply the ratio of net profit to maximal drawdown for the duration of the backtest. Assuming that all else such as trade execution remains equal (I don't know your broker-dealer's execution priority, etc.), the ratio should remain constant when lot size is increased. A larger lot size means larger profit values, larger loss values, larger spread values, and larger swap values. It's all proportional, so the short answer is... No.
I also recommend adding metrics like Sharpe and Sortino ratios, and testing the EA on a different broker or with randomized slippage to better simulate real trading conditions.
Do you include spread, commissions, and slippage in each period? That would help a lot in assessing whether the recovery factor is reliable.
As a complement, you could implement walk-forward analysis or Monte Carlo simulation to validate the EA's stability out-of-sample.
I also recommend adding metrics like Sharpe and Sortino ratios, and testing the EA on a different broker or with randomized slippage to better simulate real trading conditions.
Do you include spread, commissions, and slippage in each period? That would help a lot in assessing whether the recovery factor is reliable.
Yes, spread, commissions, slippage included. Also the Every tick based on real tick gave pretty much the same results.
I'd love to do a Monte Carlo but there isn't a specific tool for that in MT5. Are there any other possibilities?
Thanks
Knowing this, it's all the more important to do your best to calculate an average spread within the limit of your max spread filter. Then input that into the Tester. In your case of trading ETHUSD, you really need to use accurate spec's on real ticks from your broker-dealer. I'm feeling much less warm and fuzzy about a simulated tick ETHUSD backtest.
Recovery factor is simply the ratio of net profit to maximal drawdown for the duration of the backtest. Assuming that all else such as trade execution remains equal (I don't know your broker-dealer's execution priority, etc.), the ratio should remain constant when lot size is increased. A larger lot size means larger profit values, larger loss values, larger spread values, and larger swap values. It's all proportional, so the short answer is... No.
I got 1.54 PF on Every tick based on real ticks, instead of 1.56. The rest is identical.
Yes, spread, commissions, slippage included. Also the Every tick based on real tick gave pretty much the same results.
I'd love to do a Monte Carlo but there isn't a specific tool for that in MT5. Are there any other possibilities?
Thanks
Well done.👍
I got 1.54 PF on Every tick based on real ticks, instead of 1.56. The rest is identical.
As you're using a small lot size, I would go ahead and run it live. Just keep an eye out for any anomalies.
Yes, spread, commissions, slippage included. Also the Every tick based on real tick gave pretty much the same results.
I'd love to do a Monte Carlo but there isn't a specific tool for that in MT5. Are there any other possibilities?
Thanks
MT5 doesn’t have a built-in Monte Carlo tool, but it’s possible to simulate it manually. One method is bootstrapping: shuffle trade results and run multiple tests to evaluate strategy robustness.
Another option is to permute tick data, create custom symbols, and backtest over slightly altered price series. Both approaches require some scripting, but they’re fully feasible in MT5.
Applying the Monte Carlo method for optimizing trading strategies
Aleksey Nikolayev, 2018.08.07 16:34
Before launching a robot on a trading account, we usually test and optimize it on quotes history. However, a reasonable question arises: how can past results help us in the future? The article describes applying the Monte Carlo method to construct custom criteria for trading strategy optimization. In addition, the EA stability criteria are considered.Monte Carlo Permutation Tests in MetaTrader 5
Francis Dube, 2023.08.25 09:35
In this article we take a look at how we can conduct permutation tests based on shuffled tick data on any expert advisor using only Metatrader 5.- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Hello,
I'm not sure about this EA being overfit or not. How do you go about evaluating overfitting? Are there any books, articles?
Backtest settings (50ms is my actual delay on my pc)
2021-01-01 -> 2022-01-01
2022-01-01 -> 2023-01-01
2023-01-01 -> 2024-01-01
2024-01-01 -> 2025-01-06
2021-01-01 -> 2025-01-06