Professional Documents
Culture Documents
What is Z-score?
A Z-score (or standard score) measures the distance between the mean of some set
of the statistical results and the given observation.
In Forex systems, traders are interested in Z-score not of a trade's return (profit/loss
size) but rather in a Z-score of the outcome — was it a profitable one or a losing one?
A Z-score, calculated using winning and losing streaks, measures the dependence
between the outcome of the previous position and the outcome of the next position.
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 Z-score for a given trading
strategy or expert advisor.
Usually, a Z-score fluctuates between -3 to +3, but sometimes, can go above and below
these "limits". A Z-score value of 0 means that we are dealing with completely random
results.
where:
You can see your Z-score by loading your MT4 or MT5 trading report into our Forex
report analyzer.
Example of Z-score calculation
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:
N = 100;
R = 40;
P = 2 × 50 × 50 = 5000.
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).
Z-score probability
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.
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.
Z-score optimization
For example, you backtested your expert advisor and found out that after more than a
hundred trades, the resulting Z-score is +3.02, which means that profitable and losing
positions are likely to appear in an alternating order (long streaks of losses or wins are
not probable). The probability for Z-score value of +3.02 is greater than 99.73%.
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 Z-scores.
Of course, it can be easily modified to work with negative Z-score.
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.