Skip to content

DCA and execution

DCA bot price gaps: crossed levels are not confirmed fills

A hypothetical drop from 100 to 86 produces three different inventories after a rebound. Trace when orders existed and what actually filled.

A lime arc spans descending ivory steps with open rings and two solid spheres against a black background.
Illustration for dca and execution; examples in this article are educational.

DCA bot price gaps can cross several safety-order levels without proving that any order filled. Separate the observed price, the bot's authorization to submit orders, exchange acceptance and confirmed executions. Orders already resting at the exchange and orders sent after a new observation have different timing and price constraints, so update quantity and average entry from actual fills.

A jump between two bot observations may reflect missing observations during a continuous market, a fast move through thin liquidity or an interruption. It does not establish that no trades occurred between the prices. This article uses an invented spot-market worksheet to examine that uncertainty, rather than treating a candle low as a completed buying ladder.

First locate the instruction

Before interpreting a crossed level, establish where the corresponding instruction lived before the move.

A preplaced safety order has already been accepted at the exchange. An ordinary resting buy limit constrains its execution price to the limit or better; it still needs matching liquidity. OKX's own Spot DCA example explicitly describes placing several limit buy safety orders in advance. That is evidence about that product's documented example, not a universal DCA-bot design. OKX Spot DCA order-placement example.

A reactive safety instruction remains a rule until the application observes its conditions and submits an order. A threshold of 92 does not lock in a purchase at 92. If the submitted order is a market buy, it uses available offers at submission. If it is a buy limit at 92, it cannot buy above 92 and may remain unfilled after a rebound. Coinbase's explanation of crypto market and limit orders describes those price constraints and matching requirements.

There can also be a mixed ladder: one accepted order with later levels waiting locally. The active count matters because each level can have a different state. The safety-order spacing guide covers how to calculate the levels; this article asks what evidence turns those levels into inventory.

One skipped observation, three different inventories

Assume a fictional ABC/USDT spot market. A base purchase has filled for one ABC at 100 USDT. The planned additions are one ABC each at 96, 92 and 88. These are fixed quantities, not fixed quote-currency amounts. The nominal ladder costs 100 + 96 + 92 + 88 = 376 USDT if every order fills at its stated price.

The bot's last observation is 100. Its next usable observation is 86, crossing all three thresholds. Later, when a reactive submission reaches the exchange, available offers have rebounded to 94. For this constructed comparison, assume adequate liquidity for the stated fills, no fees or rounding, an authorized ceiling of 400 USDT, and no other activity. Each row is an alternative implementation, not simultaneous trading or a KLINEO execution claim.

Execution designConfirmed additions in this scenarioTotal ABC nowTotal spent, USDTAverage entry, USDT/ABCRemaining instruction
Three limits accepted before the moveOne at 96, one at 92, one at 88, confirmed by fill records437694.00None
Reactive catch-up sends three market buys after the reboundThree at 94438295.50None
Reactive catch-up submits limits at the original levelsOne fills at 94 against the 96 limit219497.00One at 92 and one at 88 remain open

For the first row, the fills are stipulated evidence. They are not inferred from the observation of 86. An account investigation must establish the actual outcome of each accepted order, including possible fills before the application received the price update.

For the second row, the arithmetic is 100 + 3 × 94 = 382; dividing by four ABC gives 95.50. The execution spends six USDT more than the nominal ladder, despite the observed drop to 86. A lower observed price is not necessarily the price available when a later market order arrives.

For the third row, a 96 buy limit is marketable against the assumed 94 offers, while 92 and 88 are below them. Cost is 100 + 94 = 194 for two ABC. The remaining orders can still buy two more ABC for up to 180 USDT before fees. Their possible future purchases are not current inventory.

A budget check must therefore distinguish spent funds from still-authorized purchases. The numbers would differ for fixed quote amounts, partial fills, different liquidity or fees paid in the acquired asset. The market-versus-limit order comparison develops those execution tradeoffs.

Define what crossing several levels authorizes

A catch-up policy is a trading decision. It should be specified before the gap, rather than improvised from a reassuring chart.

An application might submit every newly eligible level, submit only the next level and wait for confirmation, or require a fresh observation before each addition. None of these policies follows automatically from the label “safety order.” A rebound can also mean that conditions recorded at 86 are no longer true when an order is ready to submit.

Write down the price reference, observation age limit, maximum additions per evaluation, order type, total spending ceiling and whether the rule is reevaluated after each fill. If a limit becomes immediately marketable, decide whether ordinary taker execution is allowed. A post-only instruction has different acceptance behavior and cannot be assumed to follow the worksheet's third row.

For a mixed ladder, catch-up must also exclude levels already represented by accepted orders. Otherwise the bot can send a new purchase for a level whose original order is still live or has already filled. An interrupted response makes that particularly dangerous: follow the order-timeout reconciliation procedure before retrying an uncertain submission.

Reconcile fills before rebuilding the exit

A useful gap worksheet records, for every level:

  • The threshold and the timestamp of the observation that crossed it.
  • Whether an order already existed, with its account, instrument and order identity.
  • Requested quantity, confirmed cumulative filled quantity, quote spent and fees.
  • The remaining order state, including unresolved or rejected requests.
  • Whether another addition remains authorized after current evidence and budget checks.

These are different facts. Binance Spot's execution report includes order status, last executed quantity, cumulative filled quantity, commission fields and cumulative quote quantity. It documents gross average execution price as cumulative quote quantity divided by cumulative filled quantity. Use those exchange records within their Spot scope; a zero filled quantity has no average fill price. Binance's official execution-report specification.

Repeated cumulative updates are not separate purchases. Deduplicate executions and reconcile them against the order totals. The partial-fill guide covers the ledger mechanics; the open-deal inventory report carries confirmed cost and quantity into an account review.

Only then recalculate any exit that depends on quantity or average entry. In the last worksheet row, an exit based on four ABC would exceed the two ABC currently acquired. An exit fixed to the earlier quantity can become stale if the remaining buys subsequently fill. Neither a lower average entry nor a completed addition guarantees that an exit will execute.

Rehearse a rebound and an interrupted connection

A useful simulation contains more than a straight decline. Include a price observation that skips multiple levels, a rebound before submission, a partial fill, and a missing acknowledgement. State when each order becomes executable; do not award all additions at their threshold prices merely because one candle's low crosses them.

Then test recovery with some orders already accepted and others still local. The expected result should identify known inventory, live remainder, unresolved instructions and permitted next action. If the available history cannot resolve that state, preserve the uncertainty and block duplicate additions until reconciliation supplies enough evidence.

This worksheet uses unleveraged spot inventory. Leveraged contracts add margin and liquidation obligations that the same ladder cannot explain; the DCA spot-versus-futures comparison covers that boundary. Product-specific implementation details should come from current configuration and order evidence, not from another provider's DCA documentation.

Editorial method: This AI-assisted article combines official exchange documentation with an original hypothetical execution worksheet. Prices, fills and policies are invented for teaching; no live test, customer outcome or return forecast is presented.

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.