This guide sheds light on a very important but often overlooked concept in EA optimization —
In Forex systems, traders are interested in Z-score not of a trade's return (profit/loss size) but rather in a
If we consider profitable positions as positive results and losing positions as negative statistical results, counting the total number of all wins, losses, overall trades, as well as the number of win and loss streaks, we can calculate a
The concept of Z-score is illustrated in this image of two samples. The first sample is taken from a completely random trading system (50% chance of winning and 50% chance of losing), and the second sample is taken from a trading system with significant edge and dependence on previous trades:
As you can see, their Z-scores are totally different, with a large positive Z-score of the second system signaling high likelihood of switching between profitable and losing trades.
To calculate a Z-score of your system, you need a rather large sample of trade outcomes recorded in chronological order. Using these outcomes, you can calculate Z-score with this formula:
You can see your
Let's look at the following example calculation process of a system's Z-score.
Let's assume a sample of 100 trading outcomes with 40 streaks (winning and losing), 50 winning trades, and 50 losing trades; then:
The negative Z-score value of -2.11 means that the system's trading outcomes are likely non-random and that losing positions will likely be followed by more losing positions while profitable trades will likely be followed by more profitable trades (trades are likely to come in streaks).
Each Z-score value has a certain probability associated with it. This probability tells us how likely is it that the system that we analyze produces outcomes that are dependent on the previous outcome.
You can look at this table to quickly find the probability of such a connection between your trading results if you already know your Z-score:
If we consider the Z-score value of -2.11 from the example above, we can see that the probability of positive dependence between the system's outcomes is between 95.45% and 97.22%, which is quite significant.
If you know the
It should also be noted that Z-score calculation makes sense only for sufficiently large samples. Math literature suggests a sample size of no less than 51 to get a reliable Z-score value.
For example, you backtested your expert advisor and found out that after more than a hundred trades, the resulting
It would make sense to modify the code of such an expert advisor to stop sending live orders when a profitable position is closed (the next one is very likely to be a loss). The EA would then enter a sort of a virtual trading mode, where position is opened and tracked only virtually (using MQL4 variables). When such position is closed (virtually of course), its profit/loss is considered — if it is a loss, live trading becomes enabled once again; if it is a win, operation in virtual mode should be continued. This is how it should be done for positive
Of course, it can be easily modified to work with negative
You can download an example MT5 EA with positive Z-score optimization implemented:
This scheme of
When the shares of the winning and losing positions are very unequal,
One notable case where Z-score optimization would be very inefficient and even ruinous is when your expert advisor opens more than one trade at once and these trades have nearly identical chance of ending up in loss or in profit. If your EA trades like that, you need to count such a group of nearly simultaneous trades as one outcome when computing a Z-score.
If you have any questions regarding the use of a
If you want to get news of the most recent updates to our guides or anything else related to Forex trading, you can subscribe to our monthly newsletter.