"""Fetch EUR/USD M1 bars from histdata.com (free, research use). Polite: one request per year, spaced; past years query month=None. Uses the maintained `histdata` package which handles histdata's anti-hotlink tk token. Output: data/raw/DAT_ASCII_EURUSD_M1_.zip YEARS=2019,2020,2021 python scripts/fetch_data.py """ import os import time from histdata import download_hist_data from histdata.api import Platform as P, TimeFrame as T YEARS = [y.strip() for y in os.environ.get("YEARS", "2019,2020,2021").split(",")] def main(): os.makedirs("data/raw", exist_ok=True) for yr in YEARS: f = download_hist_data( year=yr, month=None, pair="eurusd", platform=P.GENERIC_ASCII, time_frame=T.ONE_MINUTE, output_directory="data/raw", ) print("fetched", yr, "->", f) time.sleep(2) # be a good citizen if __name__ == "__main__": main()