Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.rivermarkets.com/llms.txt

Use this file to discover all available pages before exploring further.

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 100100 @ 0.650.65 → 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.
  • 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.
Triggers when market trades at or through your stop price, then executes as a market order (immediate fill at best available price).
The market is currently trading at $0.70. You want to enter a short position
if the market trades below or at $0.60.
→ Stop Market SELL @ $0.60
→ Triggers when price ≤ $0.60
→ Sends market sell order → fills immediately
Directional logic:
  • 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.
Triggers when market trades at or through your target price (opposite direction from normal stop), then executes as a market order.
You're LONG at $0.60, want to take profit if price rises to $0.80
→ TP Market (Reverse Stop Market) SELL @ $0.80
→ Normal stop would trigger BELOW, but reverse stop triggers ABOVE
→ Triggers when price ≥ $0.80
→ Sends market sell order → fills immediately
Directional logic (reversed from normal stop):
  • 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)
Why “reverse”?
  • Normal SELL stop @ 0.60triggerswhenprice0.60 triggers when price ≤ 0.60 (price falling)
  • SELL reverse stop @ 0.80triggerswhenprice0.80 triggers when price ≥ 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.
Triggers when parent order is fully filled, then activates a reverse stop market order.
Place limit buy 100 @ $0.60 WITH TP Market @ $0.80
→ When buy fills → immediately activates reverse STOP Market SELL @ $0.80
→ That reverse stop triggers when price ≥ $0.80, and send a sell market order

Stop Loss Orders (SL)

Parent-child orders: Automatically triggers a child order when a parent order fills.
Triggers when parent order is fully filled, then activates a stop market order.
Place limit buy 100 @ $0.60 WITH SL Market @ $0.55
→ When buy fills → immediately activates SL Market SELL @ $0.55
→ That SL Market is a stop order that triggers when price ≤ $0.55
→ That stop triggers when price ≤ $0.55, and send a sell 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. Only displayed_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:
FieldDescription
total_qtyTotal quantity across all tranches
displayed_qtyTranche size — quantity shown to the market at a time
limit_priceStatic price used for every tranche (between 0 and 1)
post_onlyIf true, every tranche is posted maker-only
reload_delay_sOptional seconds to wait between tranches (0 = immediate)
expiry_ts_utcOptional GTD expiry for every tranche; venue expiry cancels the iceberg
You want to buy 1,000 contracts but don't want to telegraph the size.
→ Iceberg BUY total_qty=1000, displayed_qty=50, limit_price=0.45
→ Tranche 1: post 50 @ $0.45. When filled →
→ Tranche 2: post 50 @ $0.45. When filled → … 20 tranches total.
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 limit_price.
  • Sell peg: rests at the current best ask, repegs down as asks fall, never sells below limit_price.
Parameters:
FieldDescription
total_qtyTotal quantity for the peg
limit_priceWorst price the peg will accept (max for buy, min for sell)
post_onlyIf true, a repeg that would cross the book cancels the peg instead of taking
peg_min_stay_time_sOptional minimum seconds the child must rest before a price-driven repeg fires
expiry_ts_utcOptional GTD expiry for the resting child
The best bid is $0.48, best ask is $0.50, you want to buy up to $0.49.
→ Peg BUY total_qty=200, limit_price=0.49
→ Post 200 @ $0.48 (top of book)
→ Best bid moves to $0.485 → repeg to $0.485
→ Best bid moves to $0.495 → would exceed limit_price → child stays at $0.49
→ Best bid moves to $0.51 → exceeds limit, peg cancels (or stays at $0.49 until cancel/expiry)
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.

Comparison

TypeTriggerExecutionPrimary Use
MarketImmediateBest priceNeed immediate fill
LimitRests on bookAt limit or betterPrice control
Stop MarketPrice moves againstMarket orderStop loss, breakout
Stop LimitPrice moves againstLimit orderStop loss with price protection
TP MarketParent fills + price moves forMarket via reverse stopTake profit
TP LimitParent fills + price moves forLimit via reverse stopTake profit with control
SL MarketParent fills + price moves againstMarket via stopStop loss from entry
SL LimitParent fills + price moves againstLimit via stopStop loss with price floor
IcebergImmediate (per tranche)Sequential limit tranchesHide size on a large order
PegTracks top of bookResting limit, auto-repeggedCapture the spread up to a limit

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

Trigger Direction Summary

SideStop (Loss/Breakout)Reverse Stop (Profit)
BUYTriggers ≥ stop priceTriggers ≤ target price
SELLTriggers ≤ stop priceTriggers ≥ target price