Skip to content

Stop-Loss: from the first entry and from the average

The Stop-Loss (SL) of a DCA bot closes the whole cycle position if price moves against it by a set percentage. The percentage can be measured from the price of the first entry or from the average price — that is the "SL baseline".

What it is

Right after the first entry the bot places a conditional stop for the whole position on the exchange. After every averaging buy the stop volume is adjusted to the new position; the stop price depends on the baseline:

SL baselineWhere the stop sitsWhat happens on averaging buys
From first entryFirst entry price minus SL % (for Long)Does not move: a fixed level for the whole cycle
From average priceAverage entry price minus SL %Moved after every averaging buy to the new average — it slides down together with it

When the stop fires, the cycle ends: unfilled averaging orders are cancelled, the TP is removed, and you get “🔴 Stop-Loss hit. PnL: −33.25 USDT”. The card shows “⚠️ Consecutive SL: 1 / 4”, the status becomes “Cooldown”, and after the cooldown a new cycle starts. Several consecutive stops will stop the bot for good (see Protections); liquidation counts as a stop.

SL = 0 means "no stop": the card will show “🛑 SL: not set”, and with CROSS margin the summary warns: “⚠️ Warning: Cross margin without Stop-Loss.”

Where it is in the bot

The confirmation screen during creation:

  • 🛡️ Stop Loss % — a button with the current percentage.
  • 🎯 SL baseline: preset (after choosing — the value) — the screen “🎯 Stop-Loss baseline”: From first entry / From average price.
  • ⚙️ SL trigger: Mark — futures only, the screen “⚙️ Stop-Loss trigger price type”.
  • ⏱️ SL Timeout — futures only, see SL Timeout.

On a running bot the SL % and the baseline cannot be changed — only a new bot can. In the card the stop is shown as the line “🛑 SL: 7% from …”.

How to set it up

  1. Enter the Stop Loss % — from 0.0 to 50.0, a fraction with a dot: 7.5. The bot answers “✅ Saved: 7.5%”.

  2. Choose the baseline. The bot's hint: “From first entry — fixed SL. From average — SL moves on averaging.” The answer: “✅ SL baseline: From average price”.

  3. On futures choose the price type that triggers the stop:

    • Mark Price (recommended) — protection from false triggers on wicks;
    • Last Price — fires instantly, but false triggers are possible on sharp moves;
    • Index Price — the spot price index from exchanges, the most stable, but it may differ from the exchange's own price.

    On spot the stop always follows Last Price.

The presets set: 🛡️ Conservative — 5 % from the first entry, ⚖️ Standard — 7 % from the average, 🚀 Aggressive — 10 % from the average; the trigger type in all three is Mark Price.

Example with numbers

Long, preset ⚖️ Standard, SL 7 %. The first entry at 100.00, after two averaging buys the average is 98.73, the position holds 4.8111 coins for 475 USDT (the calculation is in How averaging works).

BaselineStop priceLoss when it fires
From first entry100.00 × 0.93 = 93.00(98.73 − 93.00) × 4.8111 ≈ 27.6 USDT (≈ 5.8 % of 475)
From average price98.73 × 0.93 = 91.82(98.73 − 91.82) × 4.8111 ≈ 33.2 USDT (≈ 7 % of 475)

The difference in behaviour: "from first entry" keeps the stop where it was at the start of the cycle, and the more averaging buys there are, the closer it is to the average; "from average" keeps the loss at about SL % of the invested amount, but the stop slides down with every averaging buy, so the fall to reach it can be deeper.

Limits and allowed values

ParameterRangeNote
Stop Loss %0.0-50.00 = no stop
SL baselineFrom first entry / From average priceCan only be set at creation
Trigger typeMark / Last / IndexFutures only; spot is always Last Price
Stop volumeThe whole cycle positionUpdated after every averaging buy

Common errors and what the bot says

  • “Invalid value. Enter a number from 0.0 to 50.0 (with a dot).” — the percentage is out of range or written with a comma.
  • “⚠️ DCA: failed to place Stop Loss after ENTRY fill. Reason: … What to do: check position on the exchange and cancel the trade manually if needed. SL will be re-attempted on the next ENTRY fill.” — the stop was not placed, for example because price is already beyond it; the position is not closed and the bot retries after the next fill. Check the position on the exchange.
  • “⚠️ Warning: Cross margin without Stop-Loss.” — SL = 0 with CROSS: liquidation will affect the whole account. Set a stop or choose ISOLATED.