> For the complete documentation index, see [llms.txt](https://docs.surgecardano.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.surgecardano.com/strategies/dca.md).

# DCA

A DCA (dollar-cost-averaging) strategy buys — or sells — a fixed ADA value of a token at a fixed interval until a total budget is used up. It removes timing from the decision: your average price becomes the average over the period rather than the price on one day.

Unlike the other strategies, **the DCA timer runs inside your browser tab**, not on Surge's servers. Close the tab and nothing happens until you reopen it.

### What it is and when to use it

Use DCA to accumulate a token you want to hold, or to exit a position gradually, without watching the chart. It does not protect you from a token falling; it only averages your entry into whatever the market does.

Because every order pays roughly 2–3 ADA of flat fees regardless of size, DCA works best with orders of at least a few hundred ADA. A 20 ADA order pays over 10% in fees.

### How it works

1. You set a **trade size**, a **total volume**, an **interval** and a **direction**.
2. Surge computes the number of orders as total volume ÷ trade size (rounded down) and schedules them at your interval, in your browser.
3. The first order fires at least **60 seconds** after you start the strategy; subsequent orders fire at the interval you chose, and never closer than **90 seconds** apart.
4. At each tick your browser asks Surge to build the swap, runs the transaction guard, asks for your approval if you have turned Automate signing off, signs with the strategy wallet, and submits.
5. A failed build (for example insufficient funds) is retried with growing delays, up to **15 attempts** (the delay is capped at 30 minutes), after which the order is skipped. If the DEX reports that a daily limit was reached, the strategy waits until the next UTC midnight. You can also **retry** or **skip** an individual order, or choose which order to start from.
6. The strategy is complete when every scheduled order has been submitted or skipped. `[VERIFY: completion is tracked in the browser; the server does not mark a DCA strategy complete on its own.]`

**Sells are sized in ADA too.** A sell order sells enough tokens to be worth the trade size in ADA at the current price.

### Set up DCA

| Field            | What it means                                      | Default | Limits and guidance                                                                                                                        |
| ---------------- | -------------------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| Name             | Label                                              | —       | 2–255 characters                                                                                                                           |
| DEX              | The one DEX every order uses                       | —       | Minswap, SundaeSwap, WingRiders or Splash                                                                                                  |
| Asset            | The token, against ADA                             | —       |                                                                                                                                            |
| Direction        | Buy (ADA → token) or Sell (token → ADA)            | Buy     | Fixed for the whole strategy                                                                                                               |
| Trade size (₳)   | ADA value of each order                            | —       | Keep it large enough that \~2–3 ADA of fixed fees is a small share. The builder's fee hint warns when the Surge minimum fee would dominate |
| Total volume (₳) | The budget across all orders; sets the order count | —       | Order count = total ÷ size, rounded down                                                                                                   |
| Interval         | Time between orders                                | —       | 1m, 5m, 15m, 30m, 1h, 4h, 12h, 1d. Orders are never closer than 90 seconds, so 1m actually runs every 90 seconds                           |
| Wallet           | The strategy wallet that funds and signs           | —       | For a sell strategy it must hold the tokens                                                                                                |

**Backtest.** The builder can replay the plan against the last 90 days of pool history (up to 500 simulated orders) and shows tokens acquired and a fee-inclusive average entry price. For a sell plan the same view shows tokens sold and ADA received.

**Required balance.** Total volume (for buys) plus, per order, the batcher fee, network fee and Surge fee, plus one order deposit (only one order is ever open at a time, and the deposit comes back) and the pool fee on the total. For sells it shows the token quantity to hold instead of the volume.

`[VERIFY: a minimum/maximum price guard exists in the backend but is not saved from the builder; the create form may or may not show it. If shown, it is not enforced.]`

### While it runs

* The detail page shows the next order countdown, orders done, tokens acquired (an estimate from the price at submission), and the trade log.
* **Pause / Resume** act on the timer in your browser; a pause set here is not visible from another browser. **Stop** is also saved on the server.
* Closing the tab stops the timer; reopening it resumes from the next due order. Missed intervals are not caught up.
* Each order goes through the normal [trade lifecycle](/core-concepts/trade-lifecycle-and-statuses.md). On a non-refunding DEX an order that cannot fill parks; use **Cancel & reclaim** on the trade log row.

### Fees example

A 2,000 ADA buy plan in 20 orders of 100 ADA on Minswap. Per order:

|                                  | On-chain cost                  | Shown in previews and history                            |
| -------------------------------- | ------------------------------ | -------------------------------------------------------- |
| Surge fee 0.2% × 100 ADA         | 0.20 ADA                       | 0.978 ADA (the recorded minimum applies below \~489 ADA) |
| Batcher fee                      | 2.00 ADA                       | 2.00 ADA                                                 |
| Network fee                      | \~0.20 ADA                     | 0.20 ADA                                                 |
| Pool fee 0.3% (inside the price) | \~0.30 ADA                     | —                                                        |
| Order deposit                    | 2 ADA locked, returned on fill | —                                                        |
| **Total per order**              | **≈ 2.7 ADA (2.7%)**           | **≈ 3.2 ADA**                                            |

Over 20 orders that is about 54 ADA of real fees on 2,000 ADA (including pool fees). The same 2,000 ADA in four 500 ADA orders costs about 19 ADA (4 × (1.0 Surge + 2.0 batcher + 0.2 network + 1.5 pool)). The flat fees, not the Surge percentage, are the lever. See [Fee breakdown](/fees-tiers-and-staking/fee-breakdown.md) and [The Surge fee and its minimum](/fees-tiers-and-staking/surge-fee-and-minimum.md).

### Wallet interaction

One strategy wallet holds the ADA (for buys) or tokens (for sells), signs each order, and receives each fill. Your browser wallet only funds it.

### Edge cases and failure modes

* **Not enough funds.** The order fails to build; Surge retries with backoff up to 15 times, then skips it. Fund the wallet and click Retry on the order.
* **Order doesn't fill.** Minswap refunds it; the strategy does not re-place it — the interval simply moves on. On other DEXes the order parks; cancel it from the trade log.
* **Tab closed.** Nothing runs. No orders are queued up for later.
* **Wrong interval keyed.** The interval is free text on the server side; the builder only offers the listed values. Use those.
* **Total volume not exactly divisible.** The remainder is not traded.
* **Archiving.** Stop first; then archive or delete. Funds stay in the wallet.

### FAQ

**Why didn't my DCA buy overnight?** The timer runs in the tab. Leave the tab open with Keep screen awake on, or accept that orders only fire while you are there.

**Can I change the trade size mid-way?** Edit the strategy from the Configuration tab; the new size applies to remaining orders. `[VERIFY: which fields the Configuration tab lets you edit.]`

**Does DCA show profit?** No. It shows volume, fees and estimated tokens acquired. Realized P\&L is only computed for grid, arbitrage and rule-based. See [Profit and loss](/orders-and-transactions/pnl.md).

**Why is "tokens acquired" different from my wallet?** It is estimated from the pool price when the order was submitted, before slippage and fees. Your wallet balance is the truth.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.surgecardano.com/strategies/dca.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
