Skip to content

Partial fills and remainders

A trade is rarely filled in one move. The entries are triggered one by one, the targets close the position in parts, and sometimes the position is reduced by the exchange or by you. The bot watches the actual volume on the exchange and after each such event recalculates the take-profits and the stop for the remainder.

Where it is in the bot

Main menu → 💼 Trades → the trade. In the card:

  • Entry points — the filled levels are marked “exec.”;
  • Status — “Position building, some entries already filled” while not all the entries are in;
  • Partial closes — what has already been closed in parts;
  • 💹 PnL now — calculated on the actual volume of the position.

The events arrive as separate messages in the notification bot.

How it works

Part of the entries is filled

Every entry is a separate order. As soon as the first one is filled, the bot places the take-profits and the stop for the volume acquired and sends “✅ Entry order 100 filled” (the number after the word “order” is the price of the filled level). When the next entry is filled, the protection is rebuilt for the new volume: “Reason: position increased, SL recalculated for new volume.” The entries that were not filled keep waiting for their price.

While placing the entries the bot shows “ENTRY placement status:” — “✅ success”, “❌ error” or “⚠️ partial” if the exchange accepted only some of the entry orders.

Part of the targets is hit

Every target closes its own share of the position. After a target is hit, the stop is automatically reduced to the remainder: “✅ Stop Loss updated after TP #1”, “Reason: position decreased, SL recalculated for remaining volume.” The trade stays open until the last target or the stop.

The position got smaller without the bot

EventWhat the bot sends
You sold part of the position on the exchange“✂️ Detected a manual position reduction on the exchange: 1.0 → 0.6 BTC. The bot is recalculating protection for the actual remaining position.”
The exchange force-closed part of the position“💥 The exchange forcibly closed PART of the position (partial liquidation or ADL auto-deleveraging): 1.0 → 0.6 BTC. The trade continues on the remainder, the bot is recalculating protection for it. ⚠️ Check your free margin…”
A target was hit while the connection was down“✅ Take-Profit filled on the exchange during the disconnection. Position reduced to 0.5. The trade has been reconciled with the exchange.”
Part of the position was closed outside the bot“🧾 The close of 0.4 BTC at ~61000 (manually on the exchange) has been accounted in the trade PnL.”

The leftover “tail”

If after the partial closes the remainder of the position is below the minimum order of the exchange, it cannot be sold separately: “⚠️ BTC/USDT: position remainder 0.0004 is below the exchange minimum order size. This dust cannot be closed with a separate order — it will remain until the trade fully closes. No action needed.” Such a remainder is closed together with the whole position. If it is left after a trade is closed on spot, it is “dust”, see Dust on spot.

Example with a calculation

A LONG of 1,000 USDT without leverage, the entries 1) 100 - 50% and 2) 95 - 50%, the targets 1) 110 - 50% and 2) 120 - 50%, the stop 1) 90 - 100%.

  1. The first entry is filled: 500 USDT / 100 = 5 coins bought. The bot places the targets on 2.5 and 2.5 coins and the stop on 5 coins. The status is “Position building, some entries already filled”.
  2. The first target is hit: 2.5 coins sold at 110, 2.5 × (110 − 100) = +25 USDT locked in. The stop is reduced to 2.5 coins.
  3. The price went down and the second entry was filled: another 500 / 95 ≈ 5.26 coins bought. The position is 7.76 coins, the stop is recalculated “for new volume”, and the second target covers the whole remainder.

Limits and allowed values

ParameterValue
The minimum order of the exchange≈5 USDT; a smaller remainder is not closed separately
A manual partial closeOnly with an open position; the remainder is not below the minimum order
Changing a filled orderNot possible — “Order already filled.”

Common errors and what the bot says

  • “⚠️ Failed to update Stop Loss after partial TP. Please check protective orders manually.” — the target was hit but the stop was not moved to the remainder; check the stop in the exchange app or move it through Edit trade.
  • “⚠️ Failed to rebuild Take Profit after additional entry. Please check TP orders manually.” — the entry was filled but the targets were not updated for the new volume.
  • “⚠️ The position on the exchange got smaller, but the Stop-Loss could not be updated to the new size automatically. Please check your protective orders on the exchange!” — the protection may not cover the remainder.
  • “⚠️ The exchange rejected re-placement of a partially-filled order. Please check manually.” — the bot was moving a partially filled order and the exchange refused; reconcile the orders on the exchange.
  • “Remaining position is too small” — with Close partially the remainder would be below the minimum order; close the trade in full.