Skip to content

v8.7.1

Choose a tag to compare

@MDUYN MDUYN released this 05 May 20:30
· 62 commits to main since this release

Bug fixes

Memory usage in recalculate_backtests and migrate_backtests

Both helpers could blow up RAM (multiple GB) when run with multiple workers on large batches. Workers were returning entire Backtest objects (full snapshots, trades, timeseries) through the multiprocessing result queue, and tasks were submitted up-front so the executor feeder buffered every backtest at once.

  • recalculate_backtests: workers now return only the freshly computed per-run metrics and summary; the parent merges them back into the existing Backtest objects. In-flight tasks are bounded to workers, so peak memory scales with workers, not len(backtests).
  • migrate_backtests: index.parquet is now built from small row dicts returned by the workers, so the parent no longer re-loads every freshly written bundle into memory after migration. ex.map was replaced with a bounded submit + wait(FIRST_COMPLETED) loop.

migrate_backtests not exported from the package root

migrate_backtests is now exported from investing_algorithm_framework:

from investing_algorithm_framework import migrate_backtests

Previously it was only reachable via investing_algorithm_framework.domain.