Prefetch
CLI-скрипт для загрузки тиков Dukascopy и конвертации в M1 Parquet.
Идемпотентность
Скрипт определяет какие торговые часы уже есть в Parquet и скачивает только недостающие. Raw .bi5 файлы кэшируются локально — сетевой запрос к Dukascopy делается только один раз на каждый час.
При мерже с существующим Parquet дубликаты удаляются, приоритет у новых данных (keep="last").
После запуска
Изменился mtime Parquet-файла → следующий запрос к API автоматически перечитает кэш в памяти.
Торговые часы
Рынок закрыт: суббота, воскресенье до 21:00 UTC, пятница с 21:00 UTC. Эти часы пропускаются без попыток скачать.
Параллельность
Загрузка идёт в ThreadPoolExecutor с --workers потоками (по умолчанию 6). При сетевой ошибке — 3 попытки с паузой 1.5с.