Passive, structure-based liquidity strategy.
grid_step_pct is a fallback rather than the final live step.grid_step_min_pct and capped by grid_step_max_pct.recenter_pct, ATR, and the recenter clamps.report() and render() expose the live base step plus the effective buy/sell split and current rebalance bias.grid_levels: Number of order levels per side.grid_step_pct: Base spacing when ATR is unavailable or zero. If ATR exists, this is only the fallback seed.volatility_timeframe: ATR source timeframe used for live spacing and recenter calculations.volatility_multiplier: Multiplier applied to ATR to produce the live step when ATR is available.grid_step_min_pct: Minimum allowed live step. This floor also applies after inventory skew, so it can erase the visible skew if set too high.grid_step_max_pct: Maximum allowed live step.inventory_rebalance_step_factor: Maximum fractional reduction applied to the favored side. The actual reduction is factor * imbalance.order_notional_quote: Target quote notional per order.max_order_notional_quote: Optional hard cap on quote notional per order.recenter_pct: Fallback recenter threshold when ATR is unavailable.recenter_atr_multiplier: Multiplier applied to ATR to derive the live recenter threshold.recenter_min_pct: Minimum recenter threshold floor.recenter_max_pct: Maximum recenter threshold ceiling.trade_sides: Intended side selection. both is the normal mode; other values are not a separate one-sided grid design and may be constrained by rebuild logic.dust_collect: Allows the shared sizing helper to use leftover size more aggressively when a venue minimum would otherwise strand a small remainder.order_call_delay_ms: Delay between sequential order placements during seeding or top-up.debug_orders: Enables order-placement debug logging.risk_posture adjusts grid spacing, levels, recentering, and cadence when policy is applied.priority can override the risk posture to make the strategy more cautious or more aggressive.apply_policy() rewrites grid_step_pct, recenter_pct, grid_levels, and order_call_delay_ms from policy.report().supervision is descriptive, not imperative.side_capacity and inventory_pressure describe the grid's current shape.inventory_rebalance_step_factor is a cap, not a fixed override: small imbalances apply a small reduction and extreme imbalances apply up to the configured maximum reduction on the favored side only.{
"grid_levels": 6,
"grid_step_pct": 0.009,
"volatility_timeframe": "15m",
"volatility_multiplier": 1.5,
"grid_step_min_pct": 0.001,
"grid_step_max_pct": 0.03,
"inventory_rebalance_step_factor": 0.4,
"order_notional_quote": 25,
"max_order_notional_quote": 50,
"recenter_pct": 0.03,
"recenter_atr_multiplier": 0.35,
"recenter_min_pct": 0.002,
"recenter_max_pct": 0.03,
"trade_sides": "both",
"dust_collect": true,
"order_call_delay_ms": 150,
"debug_orders": false
}
This is a practical low-to-moderate volatility setup. It keeps the minimum step low enough that inventory skew can still show up, while still letting ATR drive the live spacing when the market gets more active.