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.

TypeTriggers whenThen
stopbest bid ≤ trigger_pricesells up to count contracts at market (taker fees)
take_profitbest bid ≥ trigger_pricesells up to count contracts at market (taker fees)
bracketeither leg's conditionone 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; action must be sell.
  • 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.