Forex price varies from server to server

TomHortons
12 min readJan 17, 2023

--

The Rate information that we normally use casually in our trading may change the results when we analyze or verify strategies. This difference is due to the fact that the forex price differs from one trade server to another.

You may think that when you trade on a daily basis, you do not care if there is a slight price difference. The idea is not wrong, and most prices are within a small margin of error, less than one pips, that does not affect the outcome of the trade. However, even for currency pair with high trading volumes, rates can be surprisingly volatile, and depending on timing, price movements can make a big difference in the outcome of a trade.

This article is a compilation of information pulled from “Errors in Exchange Rate Data” that I researched out of curiosity when I knew nothing about forex rates. Even though you knew there were errors, I thought it would be worthwhile to figure out exactly how much they differed, so I am writing this article. The contents include 1. a basic explanation of pricing information and 2. how price differences occur.
The list of conclusions presented in this article is as follows.

  • Low of forex price errors of up to 100 Pips or more between brokers before and after holidays and economic events
  • Low of forex price errors of up to nearly 10 pips were observed between different trade servers of the same broker before and after holidays and economic events.
  • Strategies that generate profits around economic indicator releases and holidays show significant differences in trade validation results.

1. Basic explanation of price information

Before comparing price information, I will briefly define Ticks and Rates in the first place.

While some people may mean Ticks when they talk about pricing information, this article is limited to Rates. Ticks is when a trade occurs for a contracted broker, and Rates is the aggregate result of trades that occurred during a specific period of time (TimeFrame). For example, if 100 trades occur in an hour, the Rate for H1 will be a candlestick consisting of 100Ticks, and no Rate information will be generated if none of the trades occur.

It should be noted that all of the information presented here is limited to forex, and the definitions are very different for markets other than forex.

1.1. Ticks are prices updated in units of transactions

In general, Ticks represent the smallest unit of price change. The size of Ticks varies from market to market. In a market with Ticks of $0.01, no price change smaller than $0.01 will occur. PIPs and Points are two words that are often compared, but they are completely different from Ticks. For example, a USDJPY price of 100.111 can be expressed as 10,011.1 Pips or 100,111 Points. On the other hand, if Ticks are fixed at 0.1, the price changes in units of 10 Pips or 100 Points.

On the other hand, it is easier to understand that the Ticks on a trading platform such as MT5 are the offer price updated in a single trade. The amount of change in the price of an offer updated in one Tick is random, and the number of Ticks per unit of time is also random.

Fig.1 Price Change per Ticks

Fig. 1 shows the results of the points calculation of the difference in the offer price from the previous Tick. The randomness is also not constant, and there are times when the change is clearly large and other times when it is not, depending on the time of day. Thus, the price change of Ticks is not constant in the exchange, but changes randomly depending on time and external factors.

Even though the amount of price change is not constant, the definition of the smallest unit of price change does not change. I have not tested this and do not know how to test it, but I believe that StopLoss and TakeProfit are determined by Ticks. For example, if USDJPY is currently Buy at 99.999 and TakeProfit is set to TakeProfit at 100.000, TakeProfit may be triggered at 100.001 or 100.015 depending on the price change in the next Ticks. In reality, the actual triggering may be further delayed, affected by communication speeds and delays in the queue and processing speed of the trade server.

1.2. Rates are time-delimited summary information of ticks

Fig.2 Ticks price changes and candlesticks

Rates is the information that aggregates Ticks information per unit of time as shown in Fig. 2. In the figure, OHLC (Open, High, Low, Close) are compressed into candlestick. In general, Rates is the elemental data used for analysis and automatic trade creation.

Fig. 3 Missing candlestick on 8/30/2022 (5m, USDMXN)

Of course, if Ticks is zero, Rate is missing. The key point is that an empty Rate is not generated at this time, but rather a missing Rate. The circled area in Fig. 3 shows two consecutive missing Rates with no Ticks, which looks like a series of candlesticks. This phenomenon occurs more frequently in currency pair with low transactions and Rates with small TimeFrame. There are cases where nothing seems to have occurred at first glance when looking back at historical data, but the data shows unexpected behavior. Thus, it is easy to miss missing information when looking at past charts visually.

You may think that missing information rarely occurs in well-known currency pairs with some large TimeFrame, but surprisingly, it occurs even in major H1 timeframe.

Fig.4 Rate deficiency by symbol

Fig. 4 compares the number of Rates data from the 2015–2020 Rates with respect to the top two currency ratios in foreign exchange reserves, EURUSD, with one missing H1-USDCHF and over 30 missing H1-USDZAR over the five-year evaluation. The H4-USDCHF has no missing data, but the H4-USDZAR, which has a lower volume of transactions, has four missing data. Not all of these deficiencies were due to no transactions occurring, but rather to a variety of reasons, including holidays and trading time issues.

Thus, although we are rarely aware of it when we trade casually, we find that Rate is surprisingly unstable information.

1.3. Points of misunderstanding in updating Rates

Fig.5 Rate Breaking out SMA at 12:00 on 9/1

One important but sometimes misunderstood point is when the Rate information is confirmed. As a concrete example, let us look at the candlesticks where H1-USDJPY makes a big breakout of the SMA at 12:00 in Fig. 5.

For example, if the current time is 12:01 and a 1-tick trade always occurs every second, the latest H1-Rate is the Rate at 12:00 and OHLC is the same price. The Rate at 12:00 will then change by 12:02, and the HLC will change except for the Open. The latest Rate that has already been finalized is 11:00, and this Rate is finalized with the Tick at 11:59:59 as Close.

In other words, when we look back at a past chart like Fig.5 and focus on the 12:00 Rate for the purpose of verification, breaking out of the SMA is the information that can be obtained after 13:00. If you are someone who does not check your trading strategy for yourself, you may mistakenly think that 12:00 Rate is available at 12:00.

1.4. TickVolume is the volume of exchange

Unlike stock trading, where all trades are centrally managed on a specific trade server, currency exchange is decentralized and managed on different trade servers. As a result, there is no indicator called volume, which indicates the number of trades that have occurred in a given period of time, in currency exchange. Instead, the number of ticks that occur within a specific broker’s TimeFrame is expressed as TickVolume, which is analogous to the volume of stock trading. It is natural that different brokers have different trading volumes, but let’s see exactly how different they are.

Fig.6 Tick volume across different brokers

Fig. 6 shows the results of comparing the difference in TickVolume by obtaining Rates from two brokers, depicting 5 days in October 2019, a panel with TickVolume information, and a line graph showing the TickVolume error with another broker at the same time. It is clear that the results always show an error of 1 ~ 5, and the error is especially high on Friday at 23:00 (red circle). Thus, there is no guarantee that the TickVolumes of different brokers will match even at exactly the same time.

If you’re saying that currency exchange has to be analyzed at a disadvantage compared to stock trading where you can see the volume, it seems that’s a mistake. You can easily find older papers and articles on TickVolume. A quick read through seems to show that it represents the vast majority of trading volume with sufficient accuracy, and claims that the TickVolume of the exchange is data well worth analyzing. (Unconfirmed, as I cannot verify this myself)

2. How price differences occur using actual data

Unlike stock trading, which is a centralized system, currency trading consists of a decentralized system. You may think that there is no significant impact on the trader’s side because it does not bother them at all for their daily trading, but in fact, the price information that can be obtained contains errors. However, there are only a few cases a year in which a visibly large amount of difference occurs, and in normal market conditions, there is almost no error.

However, this price difference becomes an important issue only when conducting simulations and analysis. For example, even if an EA (automated trading system) is verified under exactly the same conditions, such as currency pair and dates, if the trade server from which the data is obtained differs depending on who is verifying the data, the StopLoss and TakeProfit will be affected and the results will change.

I was curious about the extent to which this “difference in simulation environment” occurs, so here I will compare between brokers and check the price difference between accounts and the situations where the influence is likely to occur.

2.1. Conditions for large price differences

Fig. 7 Price differences between brokers

Fig. 7 shows the price difference between the two different brokers in Pips. The errors are absolute values, and the currency pair is EURUSD, the time period is 5 years, the TimeFrame is H1, and candlesticks that exist only for one broker are excluded. The vertical axis is the number of times the error occurred, and the horizontal axis is the price difference in pips at the same time.

The results show that 97.68% of all price differences were 1 Pips or less, 56.59% were 0.5 Pips or less, the average Rate error was 0.57 Pips for Open, 0.53 Pips for High, 0.54 Pips for Low, 0.55 Pips for Close, and the maximum error was 44.00 Pips for Open, 41.90 Pips for High, 116.60 Pips for Low, and 32.90 Pips for Close.

The difference in price was almost negligible during normal trading conditions, but extremely large price differences occurred at specific times. Next, to see the time when the Low was at its maximum, I checked the candlesticks and the results are shown in Fig. 8 and Fig. 9.

Fig.8 Broker A Price
Fig.9 Broker B Price

The long lower beard in Fig. 8 is not present in Fig. 9. As can be seen from the periods depicted, the errors between brokers increase at times of increased volatility, such as Christmas, New Year’s, and major economic events. Furthermore, not only does the simple price difference increase, but the number of candles is 101 in Fig. 8 and 98 in Fig. 9, which is three hours off the closing time of trading in the first place.

Thus, the difference in trading hours also causes unpredictable price differences. From the above, we can see that the highs and lows change significantly before and after holidays and economic events when trading hours differ, so when evaluating a strategy that emphasizes HL, the difference between brokers can result in an error of more than 100 pips.

2.2. Price difference when brokers are the same

So is the price reproducible if you analyze with the exact same broker? When you sign a contract with a broker, you are assigned a trade server that is accessible from the trading platform, and if the numbering of this server differs, price differences will occur. Fig.10 shows actual data obtained from different trade servers at the same broker.

Fig.10 Price difference between trade servers

The average error for Rate was almost zero, 0.00 Pips for all OHLCs, but the maximum error was 6.30 Pips for Open, 1.80 Pips for High, 9.90 Pips for Low, and 3.70 Pips for Close. Pips, and 3.70 Pips for Close.

Unlike the broker-to-broker comparison, the price differences are relatively small, perhaps because the trading hours are perfectly matched. However, there is still an instantaneous price difference of nearly 10 pips.

Fig.11 Section with the largest price difference for Low

Fig. 11 shows the results of a comparison of the interval of maximum error over a 5-year period for two different trade servers of the same broker. The blue star in the graph indicates the price with the largest error in the Low for comparison.

The Low indicated by the candlestick in Fig. 11 has fallen to the same price as the lowest recent price, so if StopLoss is placed in the vicinity, it will be hunted. On the other hand, the Low on the trade server, indicated by the red line graph, rose to a price higher than the lowest recent price, so it was not hunted. Therefore, it is possible to have different trade results between the demo account and the production account.

Fig.12 Section with the largest Close price difference

Fig. 12 shows the interval with the largest price difference for Close. The blue star indicates the comparative Close, with a price difference of 3.7 Pips. Since this occurs during an uptrend, it appears unlikely to have a direct impact on StopLoss or TakeProfit. However, Close immediately after a breakout of the range and those who focus on indicators that refer to Close will be affected somewhat.

Based on the above results, when looking at the validation results of strategies that use different price data from different brokers, it is a good idea to check if they deal in any way with days of increased volatility, such as economic events or holidays. Strategies that do not specifically address events and use High or Low and place StopLoss with a small number of trades may well have significantly worse trade results when verifying the same interval in a different environment.

Conclusion

  • Low of forex price errors of up to 100 Pips or more between brokers before and after holidays and economic events
  • Low of forex price errors of up to nearly 10 pips were observed between different trade servers of the same broker before and after holidays and economic events.
  • Strategies that generate profits around economic indicator releases and holidays show significant differences in trade validation results.

This article compared price differences caused by trade servers that retrieve price information. In addition to the situations described here, there are likely to be many other factors that can cause simulation results to vary, even though they should result in the same outcome. For example, a strategy that combines the exact same logic will have slightly different results depending on how the program is written and the decisions made, unless the system is very simple.

The following information was compiled in the earliest days of my exposure to currency data. Programs written by others, indicators promoted by famous ex-hedge fund traders, and the “This is the best method!” that is often found on the Internet. This was the content that led me to decide to focus on the experience of verifying the information with my own hands in a muddled way, instead of relying on the information like “This is the best method!

--

--