About | Technologies | Requirements | Starting | License | Author
This script will download tick data for some FX pairs from FXCM into a SQLlite database.
Tick data can be used to backtest trading strategies.
FXCM offer market data from a public repository at https://github.com/fxcm/MarketData.
Tick data is available for free for some pairs. Other paid data is also available.
The following tools were used in this project:
Before starting 🏁, you need to have Git and Python3 installed.
# Clone this project
$ git clone https://github.com/javiergarciad/fx-data-downloader
# Access
$ cd fx-data-downloader
# Create a virtual environment using your preferred tool (e.g., venv, conda, etc.). For example, using venv:
$ python -m venv .venv
# Activate the virtual environment:
# On windows:
$ .\env\Scripts\activate
# On Linux
$ source env/bin/activate
# Installl the required dependencies from the requirements.txt file
$ pip install -r requirements.txt
Execute the script with the desired options. The available options are as follows:
- -d or --db: Run a new database, delete the old one if exist. This option is a boolean flag and defaults to False.
- -m or --mp: Enable the multiprocessing option. This option is a boolean flag and defaults to False.
- -t or --tk: Provide a list of tickets. This option accepts multiple values separated by spaces. If not provided, all tickets in the database will be updated.
- -s or --start-date: The date to start getting the data. Default to 2019-01-01 as this is the date FXCM is providing data from. Use format YYYY-MM-DD.
- -e or --end-date: The date to end the update. Default to the last day of last month. Use format YYYY-MM-DD.
Example usage:
python run.py -d -m -t EURUSD GBPUSD
This command will run the script with the database and multiprocessing options enabled, and the tickets set to "EURUSD" and "GBPUSD".
- If you don't provide the -t option, the script will default to updating all tickets available in the database.
- If you don-t provide a start date it will default to 2019-01-01.
- If you don't provide a end date it will default to the last day of last month from today.
This project is under license from MIT. For more details, see the LICENSE file.
Made with ❤️ by Javier Garcia