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 baseline | Where the stop sits | What happens on averaging buys |
|---|---|---|
| From first entry | First entry price minus SL % (for Long) | Does not move: a fixed level for the whole cycle |
| From average price | Average 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
Enter the Stop Loss % — from 0.0 to 50.0, a fraction with a dot:
7.5. The bot answers “✅ Saved: 7.5%”.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”.
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).
| Baseline | Stop price | Loss when it fires |
|---|---|---|
| From first entry | 100.00 × 0.93 = 93.00 | (98.73 − 93.00) × 4.8111 ≈ 27.6 USDT (≈ 5.8 % of 475) |
| From average price | 98.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
| Parameter | Range | Note |
|---|---|---|
| Stop Loss % | 0.0-50.0 | 0 = no stop |
| SL baseline | From first entry / From average price | Can only be set at creation |
| Trigger type | Mark / Last / Index | Futures only; spot is always Last Price |
| Stop volume | The whole cycle position | Updated 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.
