You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
What's New
Features
Volatility-adjusted MAX_POSITION_AGE (#124) — New --dynamic-age flag adjusts position holding time based on per-coin realized volatility. High-volatility coins get shorter holding times (reducing adverse selection); low-volatility coins get longer times (improving maker fill probability). Configurable via --dynamic-age-baseline-vol, --dynamic-age-min, --dynamic-age-max.
Per-coin order size overrides (#123) — New --coin-size-overrides flag (e.g. \"TSLA:150,NVDA:150\") allows setting different order sizes per coin. Setting a coin to `0` skips orders for that coin. Follows the same lookup pattern as existing --coin-offset-overrides and --coin-spread-overrides.
Unrealized loss based early taker close (#122) — New --unrealized-loss-close-bps flag triggers immediate taker close when a position's unrealized loss exceeds the configured bps threshold, regardless of position age. Targets large-loss trades that accumulate while waiting for maker close.
Upgrade Notes
All changes are backward compatible — defaults preserve existing behavior:
--dynamic-age is off by default (boolean flag)
--coin-size-overrides defaults to empty string (all coins use global `--order-size-usd`)
--unrealized-loss-close-bps defaults to 0 (disabled)
The dynamic age feature reuses the same _recent_mids price history as --vol-adjust, so no extra data collection overhead when both are enabled.