Skip to content

Limit Chaser (Chase)

Chase is a third order type in the Trade Ticket, next to Market and Limit. Instead of resting at one fixed price, a Chase order posts at the best maker price and reprices itself as the book moves, so it keeps chasing a fill without ever crossing the spread.

Every order the Chaser places is post-only. It never takes liquidity, so you keep maker fees — the trade-off is that a fill is not guaranteed.

Chase runs in the Terminal (/main) only. It is not a webhook field — triggers cannot start a Chase. See Triggers for what webhooks support.

When Chase Appears

The Chase tab shows up in the Trade Ticket when both are true:

  • Your exchange supports it — Blofin, Bitunix, Bybit, Bitget, OKX, and Hyperliquid all do
  • Crodl's Chaser worker is online and has free capacity

If the worker is unavailable, the Chase tab disappears and Market/Limit keep working normally. Nothing you do is lost — Chase is an addition to the ticket, never a dependency of it.

Settings

FieldValuesDescription
Max duration30 seconds, 1 minute, 2 minutes, 5 minutesHow long the Chaser may keep working. Defaults to 1 minute
Max reprices1–300How many times it may move the order. Defaults to 30
Buy ceilingpriceNever buy above this price
Sell floorpriceNever sell below this price

Buy ceiling vs. sell floor

Only one of the two applies, decided by what the order actually does:

What you are doingDirectionField used
Open longBuysBuy ceiling
Close shortBuysBuy ceiling
Open shortSellsSell floor
Close longSellsSell floor

The relevant field is required — a Chase always runs with a price limit. This is the guarantee that a runaway market cannot drag your fill somewhere you never agreed to.

The ticket rejects a limit that cannot work before you submit:

  • It must use the exchange's price increment (tick size)
  • A buy ceiling below the current market is refused — there would be nothing to chase
  • A sell floor above the current market is refused, for the same reason

The price limit is a hard boundary, not a target. If the book moves past it, the Chaser stops and cancels rather than filling you at a worse price.

How It Works

  1. You pick Chase, set your size, duration, max reprices, and price limit, then submit
  2. Crodl places a post-only limit order at the best maker price on your side of the book
  3. As the book moves, the Chaser reprices the order to stay at the best maker price
  4. It stops on the first of: filled, max duration reached, max reprices used, price limit reached, or you cancel

While a session is running, the ticket shows a progress card with the live status, the resting price, filled-vs-requested quantity, the reprice count, and a Cancel Limit Chaser button.

Only one Chase session can be active per account at a time. Cancel or wait for the current one to finish before starting another.

Session Status

StatusMeaning
StartingSession accepted, first order not yet resting
RestingAn order is live on the book
Partially filledSome quantity filled; the remainder is still being chased
Cancel requestedYour cancel is in flight
FilledFully filled — done
CancelledStopped by you
Time limit reachedMax duration elapsed
Price protection reachedThe book moved past your ceiling or floor
Stopped: stale market dataCrodl stopped trusting the price feed and stood down
Stopped: connection lostThe exchange connection dropped
FailedThe session could not continue

Every non-filled ending also reports a stop reason in plain language — for example "Maximum reprice attempts reached", "The market moved through every safe post-only retry", or "The exchange could not keep the order post-only".

A Chaser can end partially filled. If it stops at 60% filled, you hold that 60% — the rest was never bought or sold. Check the progress card and your Positions panel before assuming a size.

Safety Behavior

Chase is deliberately conservative. It stops instead of guessing whenever it cannot prove what happened:

  • Stale book — if the price feed goes stale, the Chaser stops rather than repricing against numbers it does not trust
  • Unconfirmed reprice — if the exchange does not confirm a reprice, the resting order is cancelled safely instead of risking a duplicate
  • Post-only rejection — if the market moves through every safe post-only retry, the Chaser stops rather than crossing the spread and paying taker fees

Limits

Chase does not support allocation_id. Allocation buckets are fill-based and cannot track a resting order, so a Chase with an allocation ID is rejected with allocation_limit_chaser_not_supported. Use Market orders for allocation-tracked strategies.

Also note:

  • Chase is Terminal-only — no webhook or trigger equivalent
  • Hyperliquid requires an order value of at least $10
  • Bitget repricing needs UTA trade-write permission on the API key; without it the reprice is rejected and the resting order is cancelled safely

Chase vs. Market vs. Limit

MarketLimitChase
Fills immediatelyYesNoNo
Fee sideTakerMaker (if it rests)Maker (always post-only)
Follows the book—NoYes
Fill guaranteedYesNoNo
Worst price you can getWhatever the book givesYour limit priceYour ceiling / floor

Use Market when getting in matters more than the price. Use Limit when you want one specific price and are happy to wait. Use Chase when you want a maker fill near the current price and are willing to give it a bounded amount of time to get there.