Troubleshooting

Common issues
Solutions for the most frequent problems: orders not placing, exposure limits, indicators not triggering, PnD cooldown, and rebalancer behavior.

Orders Not Filling

Problem: The bot placed orders but they're not getting filled.
Possible causes:
  1. Price moved away: Grid orders are limit orders. If price moved significantly, orders may be too far from current price.
  2. Insufficient margin: Check your available margin in Bybit.
  3. Order size too small: Bybit has minimum order sizes. Check the pair's minimum in Bybit's instrument info, or verify the effective order size shown in your GridBT dashboard after the bot starts.
Solution: Check the Dashboard for order status. If the grid is stale, the bot will automatically extend or reconstruct when needed.

Exposure Limit Reached

Problem: The bot stopped opening new positions on one or both sides.
Cause: Your net exposure or gross position reached the configured limit. This is the exposure guard working as intended.
What happens:
  • Net exposure exceeded: The larger side is blocked for OPEN orders. If the breach happens while the bot is running, the larger side may enter Exposure Freeze and place only safe reduce-only CLOSE orders from the frozen trigger price. The smaller side continues because it can reduce net exposure.
  • Gross position exceeded: Both sides are blocked.
  • CLOSE orders continue on blocked sides (Position Balancer may amplify them)
  • Once exposure drops below the limit, orders resume
If the pair table shows the exposure warning triangle on the breached side, open it to inspect or edit the frozen trigger price. If cleanup cannot be confirmed, the bot fails closed and places no new close-only orders until startup or reconstruction can confirm exchange state.
Solution: If you want to accumulate more:
  1. Increase maxNetExposureUsd or maxGrossPositionUsd in config
  2. Or wait for price to reverse and positions to naturally decrease
  3. Or grow the opposite position to reduce net exposure

Hedge Guard Not Activating

Problem: Long and short positions are imbalanced but Hedge Guard (the GridBT feature) isn't working.
Different issue? If Bybit itself is not in Hedge Mode (account setting), see API Keys - prerequisites for how to enable it.
Check these:
  1. Is hedge.enabled: true?
  2. Is the imbalance past entryThresholdPct? Default is 0.667 (short must be 50%+ larger than long)
  3. Are you in long mode? Hedge Guard only applies to long mode.
  4. Is cooldown active? Check if bot just started or just deactivated Hedge Guard.
Example: entryThresholdPct: 0.667 — Hedge Guard activates when longUsd / shortUsd falls below the threshold.
Your longYour shortLong/Short ratioHedge Guard
$500$6000.83 (above threshold)Not activated
$400$7000.57 (below threshold)Activated

Exo Indicator Not Triggering

Problem: Market seems oversold/overbought but accumulation isn't active.
Check these:
  1. All four conditions must pass simultaneously: RSI oversold, WaveTrend level, WaveTrend momentum direction (wt1 > wt2), and Bollinger Band. See Exo Indicator for the full breakdown.
  2. Check current indicator values in logs
  3. Is forceActive: false? (If true, it would always be on)
Common reasons:
  • RSI is oversold but WaveTrend momentum is wrong direction
  • Price is oversold but not below Bollinger Band
  • Values are close to thresholds but not past them

PnD Protection Triggered Unexpectedly

Problem: The bot entered cooldown during normal trading.
Cause: 8+ close fills occurred within 60 seconds, which matched the PnD detection criteria.
This can happen during:
  • Legitimate high volatility
  • News events
  • Flash crashes/spikes
Solution: This is protective behavior. Wait for cooldown to expire. If you see this frequently during normal conditions, you can:
  • Increase closeFillsThreshold (require more fills)
  • Decrease withinSeconds (tighter time window)
  • Disable with pndProtection.enabled: false (not recommended)

API Key Issues

Problem: Bot can't connect to Bybit.
Check these:
  1. API key has correct permissions (Trade, Read)
  2. IP whitelist includes your server IP (or is empty for any IP)
  3. Key is for correct account type (mainnet vs testnet)
  4. Key hasn't expired or been revoked
See also: API Keys for setup instructions.

Wrong Position Side

Problem: Bot is opening positions on the wrong side.
Check:
  1. Is Hedge Mode enabled in Bybit account settings? (Required)
  2. Are both long and short entries enabled for the pair in config?
  3. Check modes section for mode-specific overrides
Remember: In Bybit Hedge Mode, long and short are completely independent. A "long" position cannot become "short" - they coexist as separate entries.

Bot Isn't Placing Any Orders

Problem: The bot started but no orders appear on Bybit.
Check these:
  1. No seeded positions: The bot requires existing long and short positions to operate. If a side has zero position, it skips that side entirely. Seed your positions before starting.
  2. Wrong API permissions: Verify your key has Unified Trading > Contract > Orders and Positions enabled. See API Keys.
  3. Bot not started: Confirm the bot status is Running in /dashboard/control.
  4. Pair not enabled: Check that enabled: true is set for the correct symbol and mode in your config.
  5. Insufficient margin: The bot cannot place orders if your available margin is too low. Check Bybit's available margin.

Rebalancer Stuck / Not Closing Excess

Problem: The bot shows excess inventory but rebalancing isn't reducing the position.
Cause: Price gating. When your current price is between the average excess entry price and priceGatingBufferPct below it, the bot pauses rebalancing and waits for a more favorable price.
Example: Excess built at an average entry of $2,000 · priceGatingBufferPct: 10 (10% buffer)
Current priceZoneRebalancing
Above $2,000Above average entryRuns normally
$1,800 to $2,000Buffer hold zonePaused
Below $1,800Below bufferRuns normally
Solutions:
  • Wait: if you believe price will recover above the average entry, the bot will rebalance when price rises above the average.
  • Lower priceGatingBufferPct: reduces the hold zone, so the bot resumes at a less favorable price.
  • Disable price gating temporarily: set priceGating: false to force rebalancing regardless of price.