Don't be fooled by spread in MT4 strategy tester

If you are setting the spread to 2 for EURUSD in MT4 strategy tester and thinking 2 pips is large enough for Euro, you might be very wrong and you should read this blog carefully.

The spread in MT4 strategy tester is in points, not pips

Don't be confused, the spread in MT4 strategy tester is in points, not pips. MetaTrader 4 extensively uses the term point and seems it never uses the term pip. In my opinion, point is one of the most silly and confusing concept in MT4.

What's the value of one point? Silly enough, you will get different point value on different brokers. If your broker uses 4 digits quote, one point equals to 0.0001 for EURUSD. But if your broker uses 5 digits quote, one point equals to 0.00001 for EURUSD.

Then how about the value of one pip? No matter your broker is 4 or 5 digits, one pip is always 0.0001 for EURUSD.

The problem in MT4 strategy tester

Nowadays 5 digits brokers are very popular, so most likely your broker is 5 digit, same as my broker Oanda. With 5 digits broker, setting the spread to 2 in strategy tester causes the real spread is only 0.2 pips, which is far from the reality. The correct setting should be 20.

What's the difference between 0.2 and 2 pips

If you are scalper or day trader, the difference between 0.2 and 2 pips can be same as the difference between heaven and hell.

With a spread of only 0.2 pips, a very basic RSI over bough/sold strategy could give an equity curve like this

Indeed I've ever tested a simple RSI strategy using my ftap system, which had a bug that spread was not used (thus the spread is 0). The strategy grew the initial deposit 100 times in 5 years!

After I fixed the bug and used correct spread in back testing, the equity curve looks like this, which is quite realistic. (note both images are not the result of the testing, I got the images from my another blog)

Final words

If you are doing back testing, keep in mind, the spread is NOT in pips.

If you are buying EAs on MetaTrader market, and if you see the seller sets the spread to 2, it's safe to consider it as scam and keep away from that seller.

Learn more about pips

Discussion

Jon, 2017/11/13 09:30

And USD/JPY is 3 DIGITS on 0.3 pips spread.

So should I set on strategy tester spread - 3 or 30 pips?

Wang Qi, 2017/12/14 19:07
If the digits of my broker in EUR / USD are 5 digits, and spread is 0.1.

Set it to 0.1 * 10 = 1 point

And USD/JPY is 3 DIGITS on 0.3 pips spread.
So should I set on strategy tester spread - 3 or 30 pips?

Again, 0.3 * 10 = 3 points

Jon, 2017/11/13 09:25

A very impressive and enriching article.

Let me ask you a question -

If the digits of my broker in EUR / USD are 5 digits, and spread is 0.1.

So should I set on strategy tester spread - 1 or 10 pips?

Art Moore, 2017/03/07 21:33

I have been searching for two weeks for this information. THANKS you must have been reading my mind. Have severa EA's that worked on tester with Spread at 2 but not work on Demo account. I now understand why. So I tested one with spread of 20 and it reacted just as it performed on the Demo account. It all in the math, if you understand it. Thank you.

Vince, 2017/02/12 23:26

The MT5 build 1525 that I am using has the option to select “Current” in the Spread drop down list, in Strategy Tester. What does “Current” mean? Does it mean the historically-accurate spread at the time of the order or does it mean the spread value now, i.e., at the time of executing the test? I would guess that it is the former, but just checking.

Qi, 2017/02/13 03:50

It's the spread value NOW, not any historical spread. If you use “Current” during the week end, you usually will get very large spread because the spread at the end of weekly session from most brokers will be large due to less volatility. So, don't use “Current” at all.

What I usually do is, no matter in MT4 or my own back testing system, I use a spread which is a little larger than the “usual” largest spread for that broker. For example, the spread of EURUSD from Oanda is usually between 1.0~1.2 pips, then I will use 1.5 or even 2.0 pips as the spread.

fabse, 2016/10/08 16:14

If am trading Oanda the USDJPY for a 2 pips would I also need to set it to 20?

Qi, 2016/10/08 19:44

I think so. You can also write a very simple MT4 script to print out the Point and check it.

MittieTvj098, 2016/05/17 14:20

It's really a great and useful piece of information. I am satisfied that you just shared this useful info with us. Please keep us up to date like this. Thank you for sharing.

Enter your comment. Wiki syntax is allowed:
DEWZZ