Passivbot v8 is a major, breaking release. It replaces the v7 strategy and
configuration contract, moves substantially more trading and risk behavior
into the shared Rust runtime, and makes the long-developed v8 branch the
mainline release.
- Use Python 3.12 or 3.14 and a current stable Rust toolchain.
- Back up the config you currently run and keep the exact v7 revision needed to reproduce its behavior.
- Do not point v8 at an unreviewed v7 config. Normal v8 loading does not silently convert removed v7 strategy fields.
- Treat migration as a new deployment: inspect the normalized config, run backtests, and review live-mode, risk, approved-coin, and exchange settings before starting a bot.
The canonical v8 strategy is trailing_martingale. Its threshold,
retracement, quantity, and close-recursion parameters are not aliases for the
old v7 trailing-grid fields.
For users who want to preserve v7 trailing-grid semantics during the upgrade,
v8 includes the deprecated compatibility strategy trailing_grid_v7 and an
explicit migration tool:
passivbot tool migrate-config-v7 \
path/to/config_v7.json \
path/to/config_v8_trailing_grid_v7.json \
--report path/to/v7_migration_report.jsonA clean migration writes canonical config_version: "v8.0.0" shape with
live.strategy_kind = "trailing_grid_v7". The tool does not reinterpret the
config as trailing_martingale.
If the report contains dropped, unsupported, or manual-review fields, the
command returns nonzero and does not write the output by default. The
--allow-manual-review-output option writes a best-effort artifact for manual
work; it is not an assertion that the result is ready for live trading.
Migration preserves v7 strategy semantics, not complete v7 runtime identity. Risk, forager, unstuck, HSL, execution, and backtest-runtime changes may produce different fills and performance. Follow Migrating v7 trailing-grid configs to v8 to preserve a v7 benchmark, interpret the report, and compare completed v7 and v8 backtest artifacts.
For new configs, copy:
cp configs/examples/default_trailing_martingale_long.json my_v8_config.jsonSee Config Workflow and Configuration Reference for the canonical v8 shape.
- Live trading, backtesting, and optimization use the Rust orchestrator for strategy planning and order intent.
- Strategy, order, risk, unstuck, HSL transition, and backtest behavior have stronger shared ownership and parity coverage.
- Required trading inputs fail closed or become explicitly unavailable rather than being replaced with fabricated neutral defaults.
trailing_martingaleis the canonical recursive entry and close strategy.ema_anchoris available as an additional canonical strategy.- Forager selection, wallet-exposure controls, total-wallet-exposure controls, unstucking, and realized-loss gates have been consolidated and hardened.
- EMA spans remain floating-point values throughout config derivation and runtime preparation.
- HSL supports unified, position-side, and per-coin signal scopes with explicit RED episode, cooldown, restart, and no-restart policies.
- Coin-mode startup reconstructs exchange-derived history, prioritizes held positions for protective readiness, and may continue non-blocking replay work in the background.
- Panic-close and protective management paths use dedicated readiness boundaries; incomplete required history remains visible and fail-closed.
Review Equity Hard Stop Loss and its risk warnings before enabling or changing HSL settings.
- Account and market inputs are tracked through staged freshness and planning snapshots before normal order planning and execution.
- Ambiguous exchange writes require authoritative confirmation before unsafe retries.
- Exchange adapters and fill/PnL normalization have expanded coverage, including Bitget UTA behavior and Hyperliquid HIP-3 stock perpetuals.
- V8 introduces a structured live-event pipeline with bounded console, text, monitor, and structured-data projections.
- Events carry stable types, reason codes, correlation identifiers, redaction, and sink-isolation behavior for operational queries and incident analysis.
- The event architecture is part of v8. Console ownership and performance refinements may continue after v8.0.0 without making observability a trading control plane.
- Backtesting and optimization use the shared Rust behavior contract and the current nested v8 config schema.
- OHLCV preparation, coverage validation, cache integrity, suite execution, optimizer checkpointing, deterministic seeds, stepped bounds, and Pareto result handling have been expanded and hardened.
- The unified
passivbotCLI is the preferred entry point for live, backtest, optimize, download, and tool commands.
- Install v8 in a Python 3.12 or 3.14 virtual environment and rebuild the Rust extension.
- Migrate the v7 config or start from the canonical v8 example.
- Resolve every migration report item; do not rely on best-effort output as a live-readiness signal.
- Re-check API account selection, exchange mode, leverage, approved and ignored coins, exposure limits, HSL, unstuck, and logging settings.
- Run a bounded backtest and inspect its fills and analysis artifacts.
- Start live trading only through the normal operational process, with logs and monitor output observed closely during the first cycles.
The complete detailed change ledger is in CHANGELOG.md.