TWAP splits one target quantity into child orders released on a schedule.
What it does
A time-weighted average price strategy divides a target quantity into child orders released across a configured period.
TWAP reduces dependence on one moment of liquidity. It does not guarantee the market's TWAP benchmark, a better price, or a complete fill.
How it works
| Setting | What it controls |
|---|---|
| Amount | The complete quantity the strategy attempts to trade |
| Running Time | How long the schedule runs, from 5 minutes to 7 days |
| Slices | Under Advanced, how many child orders it releases: at least 2, and at most one per second |
| Execution Price | Market or Limit child orders; a limit price sets the boundary |
| Max Slippage | For Market slices, how far each slice can move from the reference price |
Polyester works out the slice interval for you: the running time divided by the number of slices. The count must divide the running time evenly, so 10 slices over 10 minutes means one slice each minute. The Order Form suggests a count, shows the size and interval per slice, and corrects a count that would not fit the running time or the Pair's order limits.
Each child must independently satisfy current Pair metadata, including quantity, price, and minimum-order rules. Polyester checks the first and smallest slice when you create the TWAP: if it would be below the Pair's minimum quantity, step size, or minimum notional, the TWAP is rejected and nothing is reserved.
TWAP creates no upfront trigger-level reservation. Each slice requests and holds the balance it needs when that child is admitted. A later slice can therefore fail even when the parent strategy was accepted.
Polyester stores the strategy and runs it on its servers. Closing the browser does not stop its schedule, so return to the TWAP trigger tab and the child-order views to check progress.
The first explicit child rejection fails the parent and stops future slices. A slice refused for a rate limit or while the account is under an automatic repair is the exception: the TWAP keeps running and places the slice again shortly. Children admitted before that failure remain real orders: their completed fills stay final, and any still-working child must be monitored or canceled under its own lifecycle.
If delivery of a slice was uncertain, Polyester can retry that same slice without creating a duplicate. That is different from skipping or retrying a child that was explicitly rejected.
Each account can have up to 20 TWAPs on a Pair at once, and they also count toward its 100-trigger limit on that Pair. A TWAP that would pass either limit is rejected and nothing is created. See Limits per Pair.
When to use it
- Use it when execution should be spread through time. TWAP fits a target quantity that should be divided into scheduled attempts instead of entering the market all at once.
- Avoid it when immediate completion or one price matters. Choose another order when the entire quantity should execute now or when every fill must respect one fixed limit.
Monitor the parent for schedule progress and the child orders for actual fills, rejections, and remaining exposure.
Example
Let's say Bitcoin is currently trading at 100,000 USDT. You want to buy 0.01 BTC, worth about 1,000 USDT, without submitting the entire order at once. You choose TWAP to spread the order across 10 minutes.
- TWAP divides the order into ten 0.001 BTC child orders.
- Polyester attempts one child order each minute.
- Each child passes admission and reserves balance when its turn arrives.
- If the sixth child is rejected, the remaining scheduled children stop. The first five children and any completed fills remain valid.
Result: If all ten child orders complete, you trade 0.01 BTC over the 10-minute schedule. Your average price depends on the price of each fill.
This is an example schedule. TWAP does not guarantee a benchmark price, a complete fill, or lower fees.
What to watch
- Market conditions can change between slices.
- A child can partially fill, receive no fill, or fail admission.
- A valid parent does not make every child valid.
- Canceling the parent can race with a child already being released.
- Fees apply to completed child fills, not the planned schedule.