Triggers are instructions that wait for a condition or manage execution over time. A trigger has its own state before it creates or manages an executable child order.
Triggers do not have their own widget. You find them on tabs inside Open Orders and Order History, both on the Trading Screen and on the Orders page.
The Stop Loss Market, Stop Loss Limit, Take Profit Market, Take Profit Limit, Trailing Stop, TWAP, and Ladder guides explain how each instruction works.
What the tabs show
| Tab | What it lists |
|---|---|
| TP/SL | Take-profit and stop-loss instructions tied to a price |
| TWAP | Staged instructions divided across a schedule |
| Trailing Stop | Instructions that follow the price at a trailing distance |
| Ladder | Staged instructions distributed across price levels |
Open Orders lists triggers that are still live. Order History lists triggers that completed, were canceled, or failed. Filter either table by Pair, side, and status.
The table can also show trigger type, amount, condition, progress, parent order, and type-specific details.
Polyester stores triggers and evaluates them on its servers, so they keep running after you close the browser. Check the record when you return, because a stored trigger does not guarantee that a later child will pass admission or fill.
| Trigger family | When balance is reserved |
|---|---|
| Standalone stop, take-profit, trailing | At trigger creation |
| Standalone TWAP | When each slice is admitted |
| Standalone Ladder | Each immediately admitted child reserves independently |
| Attached legs that sell (Buy parent) | As each parent fill settles; the legs arm as the parent fills |
| Attached legs that buy back (Sell parent) | At order creation, for the part of the buy-back's cost at the legs' highest maximum price that the sale may not return |
Trigger, child order, and fill records
| Record | What it tracks |
|---|---|
| Trigger | Condition, configuration, progress, and parent status |
| Child order | Market or limit instruction created or managed by the trigger |
| Fill | Completed match produced by an executable child order |
An active trigger may have no row on the Limit tab of Open Orders because it has not created a working child order yet. Follow its condition and parent status on its tab.
Canceling a trigger and canceling a child order are different actions. Use only the action available for the record and state you intend to stop. Cancel All on a trigger tab cancels the triggers listed on that tab.
For a standalone trigger, a child rejection is a terminal trigger failure, not a pause-until-balance-recovers state. The trigger releases its eligible hold and does not rearm automatically. The exception is a child refused for a rate limit or while the account is under an automatic repair: the stop-loss, take-profit, trailing stop, or TWAP slice stays live and fires again shortly.
Polyester checks a stop-loss, take-profit, trailing stop, or TWAP against the Pair's minimum quantity, step size, and minimum notional when you create it. If its order could never pass those minimums when it fires, the whole trigger is rejected at creation and nothing is reserved. Editing a trigger follows the same rule: an edit that would leave its order below those minimums, such as moving a stop's trigger price so far that the order is worth less than the minimum notional, is refused, and the trigger keeps its previous settings.
An attached take-profit, stop-loss, or trailing stop leg behaves differently. When its exit is rejected because of the market's state, such as a halted, disabled, post-only, or auction market, or a temporary system condition, the leg rearms and exits at the next price that meets its condition once the state clears. When the exit is rejected because the remaining position is below the Pair's minimum quantity, minimum notional, or step size, the leg waits until that position changes or you edit the leg. Once the parent order has ended, a remainder below those minimums is too small to exit: if a leg's exit already sold what it set out to sell, that leg shows as completed and the other leg as canceled (OCO); if no exit ever ran, a leg whose order would miss those minimums fails with the minimum quantity or minimum notional reason. Any other rejection, such as one caused by the position or the account itself, fails that leg, and the parent's other legs keep protecting the position.
A refused attempt that leaves the trigger live is recorded in the trigger's history with its reason, and the trigger keeps its status. A rejection that ends the trigger is recorded as a failure instead.
When an attached leg fires while its parent order is still open with an unfilled remainder, Polyester first cancels that remainder, then places the exit, so the exit never trades with its own parent. Fills the parent already made stand, and the parent shows as canceled because its attached exit fired. If self-trade prevention (Expire Taker or Expire Both) cancels a leg's exit because it would trade with another of your own open orders, the leg is not canceled: it stays armed, and its history shows the refused attempt once with a self-trade prevention reason. The leg does not fire again while your blocking order is still first at the best price, however the price moves. Once that order is filled, canceled, or no longer first at the best price, the leg fires if its trigger price is still met, or otherwise waits for the next price that meets it. If Polyester cancels a leg's working exit while it recovers your account, that is not your cancel: the leg stays active and protects the position again.
Attached legs protect every fill of their parent order, including fills that settle after one of the legs fired. A leg's quantity follows the order's whole filled position, less what its exit orders already sold. When a take-profit's exit order ends, a later fill is sold by a new exit order while the last trade still meets the trigger price; otherwise the leg waits for the next trade through it. The stop-loss keeps protecting what the take-profit's exit has not sold. A Market Buy whose amount is entered in the quote Asset, such as USDT, can carry a take-profit and stop-loss too; its legs protect the quantity the amount actually buys.
When Polyester halts a market to protect its integrity, it cancels every open trigger of that market, attached legs included, and releases their reserved balance. A trigger created after the halt fails instead of resting.
If delivery was uncertain rather than explicitly rejected, Polyester can retry the same child order instead of creating a duplicate.
| Trigger family | Modification while eligible and waiting |
|---|---|
| Stop-loss or take-profit | Trigger price, and maximum slippage for a market child |
| Trailing stop | Distance, activation price, and maximum slippage |
| TWAP or Ladder | Not modifiable; cancel and recreate |
Quantity, side, trigger type, and child order type cannot be changed. A limit child's price cannot be changed either.
Which price a trigger watches
A stop-loss, take-profit, or trailing stop watches the Pair's last traded price unless you choose otherwise. Under Advanced in the Order Form, set Price Source to Last or Index. Index watches the market's index price, aggregated from external exchanges.
While the index price is stale or unavailable, the trigger stays armed and waits. It never fires on an outdated value. On a market with no index price, a standalone trigger that uses Index fails, and an order with an attached leg that uses it is rejected before any fill.
Limits per Pair
Each account can hold a limited number of triggers on each Pair at once. The Main Account and each Subaccount have their own limits, and reaching a limit on one Pair does not affect other Pairs.
| Triggers | Most at once, per account and Pair |
|---|---|
| All triggers, including attached take-profit, stop-loss, and trailing stop legs | 100 |
| TWAP | 20 |
| Ladder | 5 |
TWAPs and Ladders also count toward the 100-trigger limit. A trigger stops counting once it ends. A new trigger that would pass a limit is rejected and nothing is created. An order whose attached legs would pass the limit is rejected together with its legs. Cancel a trigger you no longer need, or wait for one to end, then try again.