I am a big fan of Oanda as a broker. They are regulated in the US, Europe and Australia, they have very limited slippage and have amazing and unique qualities such as having a Java and REST API for direct access to their trading facilities plus an incredible fractional lot sizing trading system that allows you to trade Forex down to 1 USD units 0.
However I have recently found out that Oanda has some important problems when it comes down to the high resolution historical data that you can obtain from their servers. After wanting to use this data for data-mining — with the hope to have a portion of the data match the broker we use for live trading — I found out that the data has a much worse quality than you would expect from a broker like Oanda.
The reason why we wanted to use data straight from Oanda for simulations is related to the fact that some systems have a significant dependency related to the feed they are simulated on.
This means that you can get a different result if you use data from broker A vs data from broker B, reason why you would want to use data from your own broker in order to come up with the best possible simulation scenario. Since Oanda has direct access API facilities that allow you to ask for historical data across any desired time interval I decided to try using data from our regular high-quality one minute OHLC historical data set from to and then use data obtained from the Oanda servers to get the reminder portion of the data The hope with this would be that the data would contain 10 years of the same broker we use for live trading and therefore would be a better proxy for live trading for our machine learning and price action based systems at Asirikuy.
After I got the 1M data I then proceeded to form the 1H data candles used most commonly for our system simulations and I saw no significant problems with the data. A few hours were missing on the 1H feed but it is nothing uncommon since brokers often face maintenance tasks or similar issues that often cause a few 1H holes in the data. Through a ten year period missing 2 or 3 hours is not something that should cause significant problems within the feed.
However this initial analysis would prove to be very optimistic as I looked at the detail of the 1M data thanks to the initial observations made by new Asirikuy member GeekTrader. When GeekTrader looked at the 1M data from Oanda he noticed there were tons of holes in the period, most of them spanning around 0. Since I had access to live recorded 1M data and some historical tick data from Oanda for I was able to look at these holes and see whether they were actually present on the live feed.
To my surprise the live feed did not show these holes, meaning that the Oanda servers somehow failed to properly record the 1M data from their live tick feed. Since Oanda — sadly — no longer offers their historical tick data for downloads I could not confirm this for earlier years but it was certainly true for the data. I also confirmed these holes were present on both the demo and live servers and also confirmed that the holes did not happen due to my scripts by manually downloading the data across these problematic time periods.
Analyzing the data feed in more detail revealed a similar distribution of missing bars for most symbols, in line with the images showed above a representative example for the GBPUSD is shown. Also despite the fact that missing minutes are least common in the European session there are still hundreds of minutes missing at these times, something that should definitely not happen at hours that have such an important level of liquidity.
In contrast you can compare this data with our high-quality data feed aggregated by a prime liquidity provider where the the total number of bars missing is less than 0. What is surprising from the above for me is the fact that this 1M data does not reflect what really happened at Oanda. At times where I have tick and regular data available the holes do not seem to appear, revealing that the problem seems to be related somehow to how Oanda has recorded their high resolution historical data.
They definitely do not seem to give priority to the accuracy of their recording. I have now contacted Oanda and hope to get an answer from them regarding this very poor data quality obtained from their servers. In the meantime it might be fair to say that dependency in system simulations using Oanda historical data stems from the fact that this data is simply of a much lower quality than our high quality data set.
We would need to have a set with decent quality in order to perform any meaningful measurement of broker dependency. Mail will not be published required. Mechanical Forex Trading in the FX market using mechanical trading strategies. December 28th, No Comments.
This function requires the rfc and requests libraries. FromTimestamp candle [ 'time' ]. Posted in Articles Tags: Properly comparing statistics using python. Leave a Reply Click here to cancel reply.More...