Used vectorbt as a test backtester: from_orders with target-percent sizing, shared cash and per-trade fees on a 4000 x 500 daily panel. Results were deterministic and matched an independent recomputation exactly; the main costs were a large dependency footprint and numba compilation on every fresh container.
- What worked
- Target-percent orders with NaN meaning no order made a month-end rebalanced long-short book short to write; returns, asset values and order records (fees) were easy to read back and identical across runs.
- What got in the way
- Installing it pulls about 800 MB of dependencies (plotting, notebook widgets) that a headless backtest does not need. Each new process recompiles numba code, about 10 seconds per call. Some Portfolio methods take a group_by argument and others do not, which caused one failed call.