Currently comparing historical price data of several FX instruments between two of my regular brokers, FXCM and TradeStation. The price data is the basis for the code written for generating trade signals and managing trades. Hence the accuracy of the data is very important.
DISCLAIMER: This work is not intended to be viewed as conclusive work on whether the price data of one broker is better than that of another. The work completed here only comprises a small sample of available data and the accuracy of my work has not been verified by any third party.
FXCM is used for executing trades and I use their MT4 charting package for manually analysing charts. TradeStation (‘TS’ for short) I use for running the trade-signal-generating code that I have compiled over recent months. Each broker has their own price feed.
Note: TS no longer offers trading in spot FX instruments. However, they are continuing to provide a real-time price feed as well as historical prices for the instruments, which can be used for back-testing purposes.
The approach I used was as follows: I downloaded historical price data in the form of 1-hour bars for both brokers into Excel. I opted for the 12-month period to end of June 2018 – producing approx 6,000 1-hour time bars. For each bar, I calculated the range by subtracting the bar’s low price from the bar’s high price. I then compared the range for each 1-hour bar between the two brokers.
Why am I doing this comparison?
The high and low data points of each 1-hour bar impact on the calculation of several indicators that I use in the code I compiled for identifying setups, targets and stops – namely Stochastics, Average True Range and some custom indicators created by yours truly. Inaccurate price information can lead to the strategy code producing inaccurate trading decisions. Secondly, in back-testing exercises, inaccurate prices may inadvertently close trades at non-existing price levels, when in live trading this would not have occurred.
With that in mind, over the past two months, I came across several instances where the TradeStation 1H bars showed price spikes that didn’t show on the FXCM charts. In these situations, I assumed that FXCM had the correct price information. Not sure whether that assumption is valid. I tweeted one of these examples, which illustrates the situation rather well.
Issues I found in attempting the comparison but was able to overcome with various Excel tricks and techniques (just to provide some practical examples):
- FXCM records the opening time of the 1H bars whereas TS records the closing time of the 1H bars.
- Date formatting issues when exporting data from TS.
- US Daylight saving time shifts in March and November. These impacted on the formula functionalities.
- Differences of the week’s first and last 1H bars for each broker.
- Missing bars for either broker other than in (4.) above.
- FXCM offers both ‘bid’ and ‘ask’ price information. TS offers only price – is it the bid, ask or traded data?
The plots below show the 1H-range differences for three different spot FX instruments for all bars in the 12 months to June, shown in chronological order. The y-axis shows the size of the difference between the two brokers, measured in pips. A reading above 0 indicates that FXCM’s 1-hour range was greater, a reading below 0 indicates that TS’ 1-hour range was greater.
Thoughts springing from the work to date:
- In cases where the range-difference is more than several pips, it is generally the TS 1H-bars that are more spiky.
- What does the open, high, low, close data for TS represent? Is it the ‘bid’ prices, the ‘ask’ prices or ‘actually traded’ prices that were actually traded?
- When a significant difference occurs, then it tends to occur across correlated pairs – e.g. EURUSD, GBPUSD and AUDUSD sometimes all showed a significant difference on the same 1H bar.
- The frequency of significant discrepancies has been higher than usual in recent weeks. Why is that?
- Thus far, I only analysed spot FX instruments. Will the comparison yield different insights for stockmarket indices and commodity markets?
- The threshhold for an ‘acceptable’ level of difference cannot be measured in pips – it depends on the instrument’s volatility and absolute price level.
- In the long run, will these price anamolies make a significant difference on trading results?
How are these findings going to influence my live trading and back-testing tasks?
- As the TS price data is sometimes inaccurate, it provides an argument against blindly accepting back-tests run over the TS data.
- With automated trading strategies (whether fully or partially automated), the quality of the data is of pivotal importance. Hence, should I move to securing a more reliable data source, one that is free of apparent anomalies?
Work on this will continue. However, in the meantime, thanks to a few hours spent on research, I have been able to get a clearer picture of the what I am dealing with as far as price data quality is concerned, and to take this account both for live trading and for back-testing purposes.