Basic Order Types
Market Order
Executes immediately at the best available price.- Use case: When you need immediate execution and price is less important
- Example: Market buy 100 contracts → fills at current best ask price
Limit Order
Rests on the order book at a specified price.- Use case: When you want price control and can wait for execution
- Example: Limit buy @ → only fills at $0.65 or better
Time in Force
- IOC : Immediate or Cancel - executes immediately for any available quantity, and cancels any unfilled remainder.
- Example: IOC buy 10 contracts; if only 6 are available now, 6 fill and 4 are canceled.
- FOK : Fill-Or-Kill - must be filled completely and immediately, or the entire order is canceled.
- Example: FOK buy 10 contracts; if all 10 cannot fill right now, nothing is executed.
- GTD : Good-Till-Date - stays active until a specific date/time, unless filled or canceled earlier.
- Example: GTD limit buy valid until
2026-02-20 15:00 UTC.
- Example: GTD limit buy valid until
- GTC : Good-Till-Cancelled - stays active until fully filled or manually canceled (subject to platform-level max lifetime limits).
- Example: Rest a GTC limit order on the book until market reaches your price.
Conditional Order Types
Conditional orders are not placed immediately. They activate (“trigger”) when specific conditions are met.Stop Orders
Stop orders trigger when price moves to a predefined stop price, using the traded price. On a buy stop order, the order is triggered if someone trades at or above the stop price. On a sell stop order, the order is triggered if someone trades at or below the stop price.- Stop Market
- Stop Limit
Triggers when market trades at or through your stop price, then executes as a market order (immediate fill at best available price).
- BUY stop: Triggers at or above stop price (breakout entry or short exit)
- SELL stop: Triggers at or below stop price (stop loss or long exit)
Reverse Stop Orders
Reverse stop orders trigger when price moves in your desired direction. Used exclusively for take profit scenarios. A “reverse stop” is called “reverse” because it triggers in the opposite direction of a normal stop order.- Reverse Stop Market (TP Market)
- Reverse Stop Limit (TP Limit)
Triggers when market trades at or through your target price (opposite direction from normal stop), then executes as a market order.
- BUY reverse stop: Triggers at or below target (opposite of normal buy stop)
- SELL reverse stop: Triggers at or above target (opposite of normal sell stop)
- Normal SELL stop @ 0.60 (price falling)
- SELL reverse stop @ 0.80 (price rising)
- The trigger direction is reversed!
Take Profit Orders (TP)
Parent-child orders: Automatically triggers a child order when a parent order fills.- TP Market
- TP Limit
Triggers when parent order is fully filled, then activates a reverse stop market order.
Stop Loss Orders (SL)
Parent-child orders: Automatically triggers a child order when a parent order fills.- SL Market
- SL Limit
Triggers when parent order is fully filled, then activates a stop market order.
Algorithmic Order Types
Algorithmic orders execute over time as a sequence of automatically-managed child orders. They live on River’s side, not the exchange’s — a background worker manages the lifecycle and you cancel the parent to cancel everything. Placed via the Complex Orders API.Iceberg
Splits a large order into smaller tranches so the full size is never visible on the book. Onlydisplayed_qty is posted at any moment; when a
tranche fully fills, the next is placed at the same limit_price until
total_qty is exhausted.
Parameters:
Child tranches arrive on the orders WebSocket
as ordinary
order frames — clients can group them by parent_iceberg_order_id
if needed.Peg
Rests a single child order at the top of book and automatically repegs it as the book moves, capped by a worst-price limit. Useful for capturing the spread without manually chasing the market.- Buy peg: rests at the current best bid, repegs up as bids rise, never
pays more than
max_price(the ceiling). - Sell peg: rests at the current best ask, repegs down as asks fall, never
sells below
min_price(the floor).
post_only=true is recommended for makers — without it, a fast-moving book
could cause a repeg to cross and consume liquidity at your limit price.Smart Taker
Rests nothing on the book. Instead it watches the opposite side and fires an IOC clip the moment at leastmin_qty of acceptable liquidity (priced within
limit_price) appears, repeating until total_qty is filled. Use it to take
size opportunistically — without showing your intent or chasing the market — and
only when the fill is worth the taker fee and spread.
- Buy smart taker: waits for asks at or below
limit_price, then takes up to the available size in a single IOC clip. - Sell smart taker: waits for bids at or above
limit_price, then takes.
A smart taker places no order until acceptable liquidity appears — an active
smart taker with no fills yet is simply waiting, not stuck. Child IOC clips
arrive on the orders WebSocket as ordinary
order
frames — clients can group them by parent_smart_taker_order_id.Comparison
Key Concepts
Stop vs Reverse Stop
- Stop: Triggers when price moves AGAINST you (exit losses, enter breakouts)
- Reverse Stop: Triggers when price moves FOR you (take profits)
Parent-Child Orders
- TP/SL orders are “meta-orders” that activate child orders when a parent fills
- The child order itself is usually a stop or reverse stop order
- This creates a two-step process: Parent fill → Child activation → Price trigger → Execution

