Skip to content

Execution

Crypto open-order limits: reserve shared capacity

Two plans each fit the last available slots. Together they breach two limits. A reservation ledger makes the competing commitments visible.

Ivory tabs fill a black slotted tray while three loose tabs approach lime-outlined empty slots beside a smaller tray.
Illustration for execution; examples in this article are educational.

Crypto open-order count limits restrict how many orders can remain active within a venue-defined scope, often with separate limits for conditional or algo orders. Count confirmed orders and unresolved submissions across every consumer sharing that scope before reserving capacity for another plan. A free API request allowance or sufficient balance does not establish that an order slot is available.

A ladder can fit its cash budget and still fail halfway through placement. The scarce resource may be order capacity: one shared symbol limit, another conditional-order limit and an account-wide ceiling. The useful question is how many additional orders the whole account can support at the same time.

Identify which counter rejected the order

Three constraints can sound alike while measuring different things:

ConstraintWhat it measuresWhat a passing check leaves unresolved
Open-order filterOrders currently open within its defined scopeOther symbol, account or special-order filters
Interval-based order counterVenue-defined order activity within a time windowWhether current open-order capacity exists
Request-rate allowanceTraffic or weighted requests within a windowWhether an otherwise permitted request can create an order

Binance Spot's MAX_NUM_ORDERS includes normal and algo orders on a symbol; MAX_NUM_ALGO_ORDERS separately constrains designated stop-loss and take-profit order types. Its exchange-wide filters add account-level checks where applicable. Order-list limits are another dimension: a list count does not substitute for an individual-order count. Read Binance Spot's order-count filters, then obtain applicable current rules rather than treating documentation examples as live limits.

Binance's interval-based ORDERS counter has different lifecycle rules. Its FAQ says a first partial or full fill reduces that counter, potentially by more than one in specified cases, while cancellation or expiry does not. Updates can lag. It is tracked by account or subaccount and shared across API keys, IP addresses and APIs. See Binance's unfilled-order count rules. Therefore, canceling a working order can free a current-open slot without restoring the interval allowance.

The API rate-limit budget covers traffic and recovery bursts. The order-minimums worksheet covers size and value validity. Neither replaces the capacity check here.

Scope the inventory before counting it

Write the venue, environment, account, product, symbol and counted order class beside each limit. A total from one symbol cannot establish spare account-wide capacity. A new API key should not be assumed to create a new allowance.

Bybit illustrates the product distinction: its V5 placement documentation lists separate per-symbol active and conditional limits for perpetuals and futures, while describing Spot and Options limits differently. It also documents splitting an oversized reduce-only request into multiple orders. A single submitted instruction therefore need not always mean one resulting order. See Bybit's product-specific open-order limits.

Use authenticated order evidence with complete query coverage. Bybit's order-query endpoint provides order-class filters and cursor pagination; one response page is not automatically the complete inventory. See Bybit's open-order query parameters. Include manual trading and other software sharing the same account, not only orders created by the process doing the check.

A public order-book snapshot cannot reveal your untriggered conditional orders or establish your private quota. The order-book checksum guide addresses market-data integrity; account capacity needs its own evidence.

Two plans compete for the same last slots

The following invented account has three simultaneous constraints. These values are teaching inputs, not Binance or Bybit limits. Assume each proposed order consumes one total slot, and every proposed algo order also consumes one algo slot. No order lists, order splitting, fills, cancellations or external submissions occur during this example.

Capacity dimensionHypothetical ceilingConfirmed openUnresolved earlier submissionAvailable before new reservations
Symbol total12912
Symbol algo subset4301
Account total252212

The earlier submission is one ordinary order on this symbol whose response was lost. It is not included in the confirmed-open column. Until its outcome is resolved, the planner assumes it could occupy one symbol slot and one account slot.

Plan A proposes an ordinary entry and an algo exit: two total slots and one algo slot. Plan B proposes one ordinary entry: one total slot and no algo slot.

Each plan fits when it independently reads the initial table. Together they do not. If the unresolved order exists and all three new orders are accepted, symbol usage would be 9 + 1 + 2 + 1 = 13 against 12. Account usage would be 22 + 1 + 2 + 1 = 26 against 25. The algo dimension reaches 4 and passes, which cannot rescue the failed total dimensions.

A shared reservation changes the decision:

DecisionNew reservation: symbol / algo / accountRemaining capacity: symbol / algo / account
Initial reconciled inventory0 / 0 / 02 / 1 / 2
Reserve Plan A as one local decision2 / 1 / 20 / 0 / 0
Evaluate Plan B against updated reservationsNo reservation; defer0 / 0 / 0

This reserves capacity in the planner. It does not make the entry and exit an atomic exchange transaction or guarantee either will be accepted. Other rules, account changes and service failures still apply. If the plan depends on protection being present, separately define what happens when only part of it is accepted.

Keep one ledger entry as an order changes state

For each current-open capacity dimension, a conservative planning worksheet is:

available = ceiling − confirmed open − unresolved possible orders − other local reservations − policy buffer

Compare the proposed plan's full count vector against every applicable dimension. This is an operating model, not an exchange API formula, and it does not calculate interval-based counters. A negative result means the current ledger already exceeds its planning budget. Do not clamp it to zero and hide the discrepancy.

Avoid double counting the same request. Before submission it belongs to a local reservation. After confirmed acceptance it moves to confirmed open. After an ambiguous response it moves to unresolved capacity. It should not occupy all three buckets. A confirmed rejection releases the unused reservation; a terminal order releases its current-open capacity after reconciliation.

Do not reclaim a reservation merely because a local timer expired. The exchange may have accepted the request. If retries created several unresolved identities, one reserved slot no longer bounds the uncertainty. Follow the order-timeout reconciliation process before expanding commitments.

All cooperating consumers need to reserve against the same scope in one coordinated decision. A local ledger cannot control an independent manual trader or another uncoordinated application. Leave an explicit buffer where appropriate and treat exchange rejection as authoritative, even when local arithmetic passes.

Cancellation and expiry need evidence

A cancellation in flight remains a commitment in this model until its outcome is known. Similarly, a planned expiry time is not enough to infer the provider has removed the order. The good-till-date order guide examines timestamp granularity and execution around expiry.

Do not remove protective orders just to make room for optional entries. Identify each order's purpose and actual exposure before changing the inventory. A canceled entry can have earlier fills, and a replacement may introduce a second commitment; the cancel-replace race worksheet covers that reconciliation.

When reporting a capacity rejection, preserve the redacted provider code, applicable rule, inventory timestamp, unresolved identities and planned count vector. Record whether the request was explicitly rejected or still has an unknown outcome. Increasing retry speed cannot create capacity and can consume a separate request allowance.

The practical deliverable is a small ledger with ownership: which orders occupy each scope, which submissions remain unresolved, which future work already holds a reservation and who may release it. This article's worksheet is an original educational planning model prepared with AI assistance from official documentation reviewed on 23 October 2026. It does not represent a live account test or a claim about KLINEO's internal reservation implementation.

Keep the context with the example.

Each worked example is illustrative, with its sources and assumptions in the article. Read our editorial standards for authorship, verification and corrections.