Skip to content

v0.21.0

Choose a tag to compare

@keitaj keitaj released this 21 Apr 22:13
· 56 commits to main since this release
488124a

What's New

Features

  • Micro-price asymmetric offset (#109) — Adjusts buy/sell offsets based on top-of-book size imbalance to reduce adverse selection on the riskier side
  • BBO velocity guard (#109) — Cancels orders when BBO moves consistently in one direction (3+ consecutive ticks), preventing fills during fast moves
  • Close order optimization (#112) — Progressive close pricing with spread tiers, BBO tracking via CloseRefreshGuard for improved maker close rates
  • Hourly spread schedule (#113) — Per-hour spread multiplier (--spread-schedule "14:1.5,20:1.5") to widen spreads during high adverse-selection time windows
  • Dynamic offset auto-adjustment (#114) — Auto-adjusts per-coin BBO offset based on adverse selection severity from the tracker; widens for high-AS coins, tightens for favorable ones

Bug Fixes

  • CloseRefreshGuard activation fix (#110) — Fixed rate limiting and WS reconnect issues that prevented close order refresh from working
  • Reduce-only rejection fix (#111) — 3-layer defense with fresh position verification in force-close path (11 errors/session → 2)
  • WS reconnect guard re-registration (#115) — Fixed AdverseSelectionTracker, VelocityGuard, and PositionCloser being silently lost on WebSocket reconnection (~3h intervals)
  • Final reduce-only guard (#116) — Check _open_positions (updated instantly by FillFeed) right before all reduce_only orders, eliminating the 2-second cache race condition

Docs

  • Updated README with all new parameters and AI YAML reference

Upgrade Notes

  • All new features are disabled by default (backward compatible)
  • Enable with: --microprice-skew, --velocity-guard, --dynamic-offset, --spread-schedule "..."
  • Requires --enable-ws for micro-price, velocity guard, and dynamic offset
  • Requires --enable-adverse-selection-log for dynamic offset