TWAP#
A TWAP (time-weighted average price) order breaks a large trade into smaller chunks and executes them at regular intervals over a period you choose. The primary aim is to minimize the market impact of your order: your size gets done without moving the price significantly.
For example, a market order for 100 ETH would likely push the price up as it fills. A TWAP can instead execute the same 100 ETH as 10 ETH every 15 minutes, spreading out the buying pressure and minimizing the impact on the market price.
Effectiveness depends on order size, asset volatility, and market liquidity — in general, TWAP is most effective for large orders in illiquid markets. Typical timeframes range from hours to days; for longer horizons (weeks), VWAP is generally the better tool.
Anboto's TWAP algorithm targets an execution price close to the time-weighted average price observed in the market over your chosen window. It minimizes slippage against this benchmark by remaining passive (Maker), crossing the spread opportunistically in reaction to short-term market asymmetries (Hybrid), or trading more aggressively as a Taker — see Maker vs. Taker. The algorithm automatically calculates the child orders (micro-orders) for you; you can override the sizing under Advanced settings > Clip Size.
Because the algorithm favors passive placement over crossing the spread whenever that is feasible, much of the order is filled as a maker rather than a taker — earning the maker side of the fee schedule instead of paying the taker side, and avoiding the spread an aggressive order pays. How much that saves depends on your fee tier, the asset, and how hard you push the participation rate; measure it on your own flow in Post-Trade Analysis. Read more in Cost savings created by the Anboto TWAP algorithm.
Anboto also uses a randomized time-volume profile so the algorithm does not give away its trading signals to other traders or bots: by randomizing when child orders are placed, it becomes much harder to predict when the algorithm will be buying or selling.
When to use it#
- You want to trade evenly over a set period of time (10 minutes, 5 hours, 1 day, 1 week, etc.).
- You are executing a large order in an illiquid market and want to minimize market impact.
- You prefer a fixed, time-based schedule rather than one that follows market volume (use VWAP or POV for volume-following execution).
How to place a TWAP order#
Tip
The order form always trades the symbol selected in your workspace, so there is no symbol field in the form itself. Pick TWAP from the algo dropdown in the form's top row (Market | Limit | algo), then fill in:
| Parameter | Example | Required? |
|---|---|---|
| Side | BUY or SELL | Yes |
| Account | Main Account | Yes |
| Quantity | 10 ETH | Yes |
| Trading style | Aggressive / Hybrid / Passive | Yes |
| Duration | 1 hour | Yes |
| Reduce only | Off | No (perpetuals only) |
| Advanced Settings | Would Price, Trigger Price, etc. | No |
Advanced settings#
All advanced settings are optional. They open in the Advanced Settings modal, which shows one tab per setting; the behavior below is described for your TWAP order.
Unless you change them, orders run with sensible defaults: the trading style defaults to Hybrid, the duration can range from 60 seconds to 30 days, and extend duration is on by default — giving the algorithm a small grace window (about 10% of the duration, capped at 60 seconds) to finish the tail of the order.
The price at which you are willing to fill the entire remaining order. When enabled, the TWAP takes any available liquidity up to that price — a "get-it-done" price for the order should the market move favorably.
You control the percentage of the order to execute at this price, and the execution style used for it (Passive, Hybrid, or Aggressive).
Default: off. When you set a would price, you must also choose the would style.
The worst price you are willing to accept — a maximum for buys, a minimum for sells. When set, the TWAP only consumes liquidity at prices no worse than the limit.
Default: none — the order executes at market prices unless you set a limit.
Note
A limit price can prevent the order from reaching full completion if the market stays beyond it.
The TWAP only starts once the trigger price is reached. For example, with ETH trading at 2,000 and a sell order with a trigger at 2,500, execution begins only when ETH reaches 2,500.
The trigger condition can be Above or Below the specified price. See Trigger Orders for details.
Default: none. When you set a trigger price, the condition defaults to Above.
Controls where the passive side of your order rests in the book, and how far the market has to move before it is repriced. Two levels define it:
- the placement level — how deep in the bid or ask book the child order is posted (level 1 is the top of the book);
- the cancel level — the depth at which a resting child order is pulled and re-posted, once the book has moved away from it.
Default places at level 1 and cancels at level 4; Tight places at level 1 and cancels at level 2. With Custom, the placement level can be 1–10 and the cancel level 2–15, and the cancel level must be deeper than the placement level.
The size of the child orders. By default it is automatic: clip size is derived from recent trade sizes and order-book depth so child orders stay digestible for the market — targeting roughly 7.5% or less of per-second traded volume, with a minimum of about 10 slices per order.
You can instead set the clip size as a percentage of the parent order or as an absolute value — a 10% clip size produces 10 child orders. A ±20% randomization is applied to all child orders (automatically reduced when the clip size is close to the exchange minimum).








