DCA bot
How spot and futures DCA bots buy in steps: base order and extra buys, volume and step scale, take profit, QFL starts, the stop loss and martingale risk.
On this page
A DCA bot (dollar-cost averaging) opens a deal with a base order. If the price moves against it, it adds extra buys (on a short they are extra sells; other platforms call them safety orders) at set distances, which lowers the average entry. When the price comes back to the take profit above the average, it closes the whole deal. Then it can start the next deal.
A DCA bot does well when dips bounce back. It does badly when the price keeps falling past the last extra buy.
Spot DCA or futures DCA
Pick Futures or Spot in the market picker of the builder's header, as on Trade.
| Spot DCA | Futures DCA | |
|---|---|---|
| Venue | Hyperliquid spot | Hyperliquid and Aster perps |
| Direction | Long | Long (default) or Short |
| Leverage | None | 1x default, up to 3x; 4x and 5x on the deepest markets only. Isolated margin |
| Default stop loss | Follows your extra buys: how far they reach + 3%, rounded up (18% with the defaults) | Same |
The settings
The panel asks for the Direction (futures: Long or Short, with a red risk line on Short: "Short DCA loses when the price keeps rising"), the Investment (25%, 50% or Max of the available balance), on futures the Leverage (1x by default, 1x to 3x; above 3x only on the deepest markets) and a Run length (see Run length). Until you change them, the base order and extra buy sizes follow your investment. Everything else is under Manual adjustment:
| Field | Default | What it does |
|---|---|---|
| Base order | The first order of each deal, Market or Limit. At least the venue's minimum order | |
| Extra buys | 5 | How many averaging orders, 0 to 25. 0 means no averaging |
| Extra buy size | Same as the base order | The size of the first extra buy |
| Price deviation | 2% | How far from the entry the first extra buy sits, 0.5% to 10% |
| Max active extra buys | 2 | How many rest on the venue at once. The next one is placed when one fills |
| Volume scale | 1.0 | Each extra buy is this many times the one before, 1.0 to 2.0 |
| Step scale | 1.2 | Each gap between extra buys is this many times the one before, 1.0 to 2.0 |
| Take profit | 1.5% | Where the deal closes, from the Average entry or from the Base order |
| Stop loss | 18% (follows the extra buys until you change it) | % from the average entry. Required. The stop moves with the average, so it must sit beyond the next extra buy at every step of the deal; the hint shows the smallest stop allowed |
Under Advanced, at the end of Manual adjustment:
| Field | Default | What it does |
|---|---|---|
| Trailing take profit | Off, 0.5% | When take profit is reached, the bot follows the price and closes when it falls back by this %. It must be smaller than the take profit |
| Trailing stop loss | Off, 2% | Once the deal is in profit, the stop follows the price at this distance |
| When the stop loss hits | Close deal & stop bot | Or Close & start next: close the deal and open a new one |
| Deal start condition | Immediately | Price: start when the price is ≤ or ≥ a level. QFL: see below. Manual: you start each deal with Start deal on the bot's page (shown while no deal is open) |
| Cooldown between deals | 0 minutes | A pause after a deal closes |
| Max loss | 30% of the investment, or more when the loss at your stop is bigger | The bot closes at market when its total PnL reaches this loss. Part of the limits you sign. With leverage the loss at the stop can pass 30%, so the default rises to cover it (plus 10%) and the stop stays the real exit. A max loss you enter below it gets a warning: the bot would close before the price reaches the stop |
| Repeat | On | Start a new deal after take profit. Off = one deal only |
| Multi-take profit | Off; 2 or 3 steps | Closes the deal in steps at 1×, 2× (and 3×) the take profit: 50% / 50%, or 50% / 30% / 20% of the position. If the price jumps past the last step, the whole deal closes at once as a take profit. Changing the take profit of a running bot moves every step with it. Without breakeven, extra buys keep working after the first step, so a later step can close a larger position than the first (the steps re-price off the new average). Multi-take profit is not part of the tested settings (run lengths and ready setups), so their figures don't cover it. A step that fills a little at a time keeps its order. Not with a trailing take profit |
| Breakeven after the first take profit | Off | With multi-take profit: once the first step has filled (all of it, or at least half before its order went) and the price is at least half the first step past the breakeven price, the stop moves to the average entry plus fees and the extra buys left are cancelled, so the rest can't turn into a loss (otherwise it waits for the next step). The first take profit must be at least twice the fees the breakeven stop covers (about 0.3–0.4%): closer, the stop would sit right under the price. A stop there doesn't stop the bot: the next deal starts as after a take profit. It shows as Breakeven stop under Trades, and its notification is not a stop-loss alert |
A bot runs one deal at a time on one market.
QFL starts
QFL opens each deal when the price cracks under its base: a recent low it already bounced from. The extra buys buy deeper, and the take profit sells the bounce. A market that only falls has no base, so it never opens deal after deal in a free fall.
| Field | Default | What it does |
|---|---|---|
| Crack under the base | 3% | How far under the base the price must go before the deal opens, 1% to 20% |
| Bounce that makes a base | 2% | How far the price must have bounced from a low for it to count as a base |
| Base candles | 1h | The price bars the base is read from: 15m, 1h or 4h |
| Candles looked back | 48 | How many bars back the bot looks for a base, 12 to 200 |
QFL is also its own entry in the Start a bot window: its pane shows where each coin on Hyperliquid stands against its 2-day base, and a coin opens a Long DCA bot with the QFL start already set.
The summary
- Max amount for bot usage: the base order plus every extra buy. On futures with leverage, the margin is shown too.
- Max price deviation covered: how far the last extra buy sits from the entry.
- Average entry if all fill, and on futures the Est. liquidation price with every extra buy filled.
- Extra buys preview: a table with each order's deviation, price, size, total size, average entry and take profit price.
An example
Spot DCA on a coin at 100 USDC. Base order 100 USDC, 5 extra buys of 100 USDC, deviation 2%, volume scale 1.0, step scale 1.2, take profit 1.5%, stop loss 16%.
| Order | Deviation | Price |
|---|---|---|
| Base | 0% | 100.00 |
| Extra buy 1 | −2.00% | 98.00 |
| Extra buy 2 | −4.40% | 95.60 |
| Extra buy 3 | −7.28% | 92.72 |
| Extra buy 4 | −10.74% | 89.26 |
| Extra buy 5 | −14.88% | 85.12 |
- If every order fills, the bot has used 600 USDC at an average of about 93.17. Take profit is then 1.5% above, at about 94.56, below the starting price.
- If the price falls on to the stop, 16% below the average at about 78.26, the deal closes about 96 USDC down.
The stop is placed from the average entry and moves with it. It must sit below the next extra buy at every step: before the last extra buy fills, the average is about 94.96 and the last order is at 85.12, 10.36% lower. So with these extra buys a stop of 10% is refused, 11% is allowed, and the default is 18% (the 14.88% they reach, plus 3%, rounded up).
Martingale: volume scale above 1
With a volume scale above 1, each extra buy is bigger than the last. At 1.5, the five extra buys above would be 100, 150, 225, 338 and 506 USDC: 1,419 USDC in all instead of 600. The average moves faster toward the price, so deals close sooner. When the price keeps falling, the loss grows just as fast.
Last updated