Files
manifoldbt/benchmarks/vs_vectorbt/requirements-lock.txt
T
Exocet92andGitHub 52cbe1ba54 bench: add raptorbt as a third engine, and a 10M-bar point (#6)
The harness compared two engines everywhere; it now compares N against a
reference. manifoldbt is the reference: every parity check and every ratio is
a challenger against it, never two challengers against each other.

raptorbt 0.9.0 joins on three of the four workloads. Its sma_cross comes back
bit-identical to the reference's final equity, and its rsi matches to the last
bit; its ema seeds on a different warmup and it has no fixed-quantity sizing,
so the fee workload records it as unsupported with the reason rather than
leaving a blank cell. On the bracket it diverges in its own documented way: it
never re-arms while the entry level holds, so it books exactly the reference's
round-trips minus the ones that re-enter on the exit bar.

Python moves to 3.12, which raptorbt pins rather than we do: it is built
against pyo3 0.20.3, whose maximum supported CPython is 3.12. Timings from runs
before this change are therefore not directly comparable.

The bar matrix gains 10M and the repetition default drops from 7 to 2. Measured,
those two almost cancel: the job stays around 16 minutes. macOS keeps its old
ceiling, since 10M bars adds 1.55 GB on vectorbt's side alone and that runner
has 7 GB.
2026-08-20 16:16:33 +02:00

23 lines
1.1 KiB
Plaintext

# Pinned on purpose: a benchmark whose dependency set moves under it is not a
# benchmark. These are the exact versions the harness was validated against, and
# they are recorded again inside every results JSON so a reader can tell whether
# two runs are comparable.
#
# manifoldbt itself is NOT pinned here: the workflow installs the version under
# test (`pip install manifoldbt==X`), so the same lock file serves every release.
#
# raptorbt has no dependency of its own, so pinning it moves nothing else in the
# set. It does pin the *interpreter*, though: it is built against pyo3 0.20.3,
# whose maximum supported CPython is 3.12, so there is no cp313 wheel in any
# release up to 0.9.0 and a source build refuses outright ("the configured
# Python interpreter version (3.13) is newer than PyO3's maximum supported
# version (3.12)"). That is why the workflow runs 3.12: comparing engines means
# running them in one environment, and the environment has to be one they all
# support.
vectorbt==0.28.4
raptorbt==0.9.0
numpy==2.4.3
numba==0.64.0
pandas==2.3.3
psutil==7.2.2