Skip to content

Passivbot v7.5.0 (TWEL Enforcer)

Choose a tag to compare

@enarjord enarjord released this 23 Nov 15:12
· 1033 commits to master since this release
a4a5054

Passivbot v7.5.0 (TWEL Enforcer)

Highlights

  • Risk controls & TWEL enforcer

    • Added risk_we_excess_allowance_pct, risk_wel_enforcer_threshold, and companion Rust helpers that auto-reduce positions when wallet exposure drifts beyond the buffer.
    • Implemented TWEL (Total Wallet Exposure Limit) gating in Rust with Python wiring, per-position prioritisation, and optimizer bounds/CLI flags.
    • Refined unstuck logic so both live bot and backtester use the same Rust helpers; unstuck can now be disabled by setting a negative threshold.
  • Optimizer overhaul

    • Shared-memory HLCV bundles and per-scenario slicing remove per-worker copies, cutting RAM growth as CPU count increases.
    • Streaming evaluator outputs: each candidate logs Pareto updates immediately, duplicate detection got stricter, and starting-config logging/immediate termination handling improved.
    • Suite support landed: optimisations can now evaluate multiple scenarios per candidate (with config cleaners, override helpers, and scenario metrics aggregation).
    • Added Pareto dashboard (WIP) and metrics-only mode; template configs updated with new suites and defaults.
  • Logging & monitoring

    • Order-plan logging is now quiet when unchanged, but includes delta/context details when cancels/creates actually happen; tolerance gating prevents churn.
    • Candlestick manager detects sparse exchange feeds once per (exchange,symbol,tf) and still standardises gaps with synthetic zero-candles.
    • Balance snapshot/logging knobs moved to config.logging; log-once helper ensures repeated warnings appear only once per symbol.
  • Config & CLI improvements

    • Template config refreshed with new risk knobs, trailing weights, and optimizer bounds; config_utils tracks transforms and exposes _raw data.
    • CLI overrides for optimise bounds now only freeze the key you actually pass (e.g. -lnp 4 pins long positions to 4, leaving other bounds untouched).
    • Added knobs such as recv_window_ms, balance_sample_divider, logging.volume_refresh_info_threshold_seconds, and updated docs.
  • Backtest & analysis

    • Introduced HlcvsBundle and payload subset helpers; backtest payloads now carry coin metadata in Rust and Python tests cover slicing/validation.
    • New scoring metrics (entry_initial_balance_pct_long, drawdown limits, volatility-weighted trailing entries) and renamed config fields to match.
    • Added scripts/tools (shared_arrays.py, JSON streamliner, new Pareto utilities) plus doc updates (passivbot_agent_principles.yaml, CONTRIBUTING).
  • Fill events manager (WIP)

    • New src/fill_events_manager.py adds modular fetchers (Bitget, Bybit, Binance) with caching and enrichment plus a CLI runner and tests. Live bot still uses legacy fetch_pnls; the manager will coexist while it matures.

Thanks to everyone who tested TWEL enforcer, optimiser RAM fixes, and the expanding docs/tooling ecosystem.

What's Changed

Full Changelog: v7.4.4...v7.5.0