Strategy Tester Report Statistics with MQL5 Code
Info
The Strategy Tester Report Statistics with MQL5 Code is a Script for MetaTrader 5 that testerstats. mqh calculates strategy tester report statistics from deal history, providing additional metrics not returned by TesterStatistics().
Usage
This tool is typically used for enhancing chart analysis and decision making.
Platform
This Script works exclusively on MetaTrader 5 (both build 600+ and newer versions).
Setup
Place the downloaded file in MQL5/Scripts folder via File ? Open Data Folder in MetaTrader 5.
How to Install and Use Strategy Tester Report Statistics with MQL5 Code
1. Installation: Move your script file into the MQL/Scripts directory and restart the platform.
2. Execution: Drag the script onto a chart; it will perform a one-time action, such as closing all open orders or clearing chart objects.
3. Editing: Use MetaEditor (F4) to modify code, click "Compile," and verify no errors appear in the terminal before running.
4. Removing: Scripts stop automatically, but you can remove them manually by right-clicking the chart and choosing "Remove Script."
Frequently Asked Questions
Q: How are scripts different from EAs? A: Scripts execute a single action and then stop; EAs monitor the market and trade continuously.
Q: Can I assign a hotkey to a script? A: Yes, right-click the script in the Navigator, select "Set Hotkey," and define your preferred keyboard shortcut.
Q: Why did my script stop? A: Scripts are designed to stop immediately after finishing their programmed command; this is normal behavior.
What this tool does
TesterStats.
Typical Use Case
This Script excels in automated trading and technical analysis on MetaTrader 5.
Compatible Platform & Setup
This Script works on MetaTrader 5. Place the file in the MQL5/Scripts folder and restart the terminal.
Description & Settings
Related: Edge Drift Detector: Identify and Quantify Strategy Performance Degradation - another powerful script for MetaTrader 5 traders.
TesterStats.mqh calculates strategy tester report statistics from deal history, providing additional metrics not returned by TesterStatistics(). These include Z-Score, AHPR, GHPR, LR Correlation, and LR Standard Error. These values can be utilized in custom optimization criteria or on live accounts to replicate backtest report numbers.Also recommended: price action dynamic exit strategy - profit shield pro - similar script with strong performance on MetaTrader 5.
Example Usage:
#include <TesterStats.mqh>
CTesterStats stats;
void OnTick()
{
stats.TrackEquity(); // Required for equity drawdown and recovery factor calculations
...
}
double OnTester()
{
stats.Calculate(); // Optionally specify magic number and symbol: stats.Calculate(magic, symbol)
Print(stats.Text());
return(stats.ghpr);
}
Verification and Methodology:
The library was validated across five tests (EURUSD, USDJPY, XAUUSD, using fixed lots and percentage risk, with and without TesterWithdrawal). Forty-four values were compared against TesterStatistics() and the HTML report. When using '1 minute OHLC' and 'Every tick' modeling, all 44 values matched. With 'Every tick based on real ticks', minor differences in equity drawdown (0.05% to 0.26% deeper) were observed due to less frequent equity checks by the tester; other values remained consistent.
Report Calculation Rules:
- Trades with a 0.00 result are counted as profitable.
- Deposits and withdrawals occurring after the start are excluded from balance drawdown calculations.
- For equity drawdown, a withdrawal initiates a new peak calculation.
- AHPR and GHPR treat withdrawals as losses.
- Z-Score probability is derived from the rounded Z value (2 decimal places).
- Sharpe Ratio is not included.
- Calculations are based on accounts without commission.
Included Example:
TesterStatsExample.mq5 demonstrates a moving average crossover strategy where the optimization criterion is GHPR, weighted by LR Correlation.
This tool is suitable for use in MetaTrader 5 and was last updated in 2026.
You may also like: Visual Analysis Tool for Strategy Tester Results - excellent alternative for script users on MetaTrader 5.
Source Code
#property copyright "RobotFX"
#property version "1.00"
#include <TesterStats.mqh>
#include <Trade/Trade.mqh>
input int InpFast = 10;
input int InpSlow = 30;
input double InpLots = 0.1;
input double InpSL = 1.5;
input double InpTP = 3.0;
CTesterStats stats;
.......
⚠ Limitations & Risk Warning
- This tool is provided for educational and testing purposes only.
- Past performance does not guarantee future results.
- Trading involves substantial risk of loss. Use on a demo account first.
- Results may vary depending on market conditions, broker, and settings.
- We recommend thorough backtesting and forward testing before using with real funds.