In the world of algorithmic and retail forex trading, quality historical data is the foundation of reliable backtesting. Among the most respected sources is Dukascopy, a Swiss online bank and forex broker known for its deep liquidity pool and comprehensive tick-by-tick data.
Because the official GUI is slow for massive downloads, the open-source community has built robust Python scrapers. The most famous is the dukascopy library (e.g., dukascopy-tick-downloader by n1try).
# Example using the unofficial library from dukascopy import Dukascopy
client = Dukascopy() tick_data = client.get_tick_data('EUR/USD', '2010-01-01', '2010-12-31')
Caution: These tools rely on Dukascopy’s public API. Use responsibly to avoid IP bans.
The standout feature of Dukascopy’s historical data is the granularity. Unlike many brokers who only offer 1-hour or 1-minute candles (OHLC), Dukascopy offers actual tick data.
For backtesting, this is critical. Most strategies look great on 1-minute data but fall apart in real life because of spread widening during news events or low liquidity. Because Dukascopy provides tick data, you can see the exact spread at every second of the day. This allows for "Tick Data Suite" level backtesting without having to pay thousands of dollars for premium data feeds from vendors like Tick Data Suite or dukascopy.