Passivbot v7.5.0 (TWEL Enforcer)
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.
- Added
-
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_utilstracks transforms and exposes_rawdata. - CLI overrides for optimise bounds now only freeze the key you actually pass (e.g.
-lnp 4pins 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.
- Template config refreshed with new risk knobs, trailing weights, and optimizer bounds;
-
Backtest & analysis
- Introduced
HlcvsBundleand 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).
- Introduced
-
Fill events manager (WIP)
- New
src/fill_events_manager.pyadds modular fetchers (Bitget, Bybit, Binance) with caching and enrichment plus a CLI runner and tests. Live bot still uses legacyfetch_pnls; the manager will coexist while it matures.
- New
Thanks to everyone who tested TWEL enforcer, optimiser RAM fixes, and the expanding docs/tooling ecosystem.
What's Changed
- Fix res.get() trying to expanding the objectives in case of seen hash by @TayyabTalha in #526
- V7.5.0 twel enforcer by @TayyabTalha in #527
- V7.5.0 twel enforcer by @enarjord in #531
Full Changelog: v7.4.4...v7.5.0