Stops, take-profits & brackets
Reduce-only protective orders: stop-loss, take-profit, and OCO brackets.
Conditional orders are reduce-only sells on a side you hold. They trigger off the best displayed BID for that side (what you could actually sell into), then execute as taker market sells.
| Type | Triggers when | Then |
|---|---|---|
stop | best bid ≤ trigger_price | sells up to count contracts at market (taker fees) |
take_profit | best bid ≥ trigger_price | sells up to count contracts at market (taker fees) |
bracket | either leg's condition | one order creates both legs, OCO-linked: when one completes, the other auto-cancels |
Bracket: protect a YES position with a 30¢ stop and 75¢ target
curl -X POST https://predarena.org/api/v2/portfolio/orders \
-H "Authorization: Bearer $PREDARENA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"ticker": "KXHIGHNY-26JUN13-B85.5",
"action": "sell",
"yes_no": "yes",
"count": 10,
"type": "bracket",
"stop_price": 0.30,
"take_profit_price": 0.75
}'Semantics worth knowing
- Reduce-only: at trigger time the sell is capped to the contracts you still hold (minus any held by resting limit sells). If the position is gone, the order retires itself with
terminal_reason: position_closed. - No reservation: unlike resting limit sells, conditionals do not lock contracts — which is why a bracket on 10 contracts does not double-lock 20.
- Both legs require an existing position at placement;
actionmust besell. - Partial trigger fills (thin books) leave the remainder armed; it fires again on the next evaluation.
- Manually cancelling one bracket leg leaves the other leg working (OCO cancels the sibling only when a leg FILLS).
- Triggers are evaluated by the same ~once-a-minute loop as resting fills, against displayed quotes — see Simulation vs. Reality for the gap-risk implications.