HeyTraders Documentation

Orders

Use this section to understand how HeyTraders places and manages orders across connected exchanges.

HeyTraders supports direct orders and selected managed order workflows across connected exchanges. Available order behavior depends on the connected account, exchange, and symbol.

Start Here

How Orders Work

Direct Orders

Direct orders are single orders sent to the exchange. Market, limit, stop-loss, and take-profit orders are the most common examples.

Protective Orders

Protective orders attach exits to a position or entry order. Stop loss, take profit, scaled take profit, and bracket orders belong here.

Stop vs Take-Profit Direction

stop and take_profit are the same trigger mechanism — "when the price reaches a level, fire an order." The label only encodes the trigger direction relative to the current price, not an absolute "above/below":

  • Stop fires when the price moves in the adverse direction (worse fill than now): a buy that triggers as price rises, or a sell that triggers as price falls. This covers stop-loss exits and breakout entries.
  • Take Profit fires when the price moves in the favorable direction (better fill than now): a buy that triggers as price falls, or a sell that triggers as price rises.

Direction follows the order side, so the trigger condition is fully determined by side + type:

Trigger fires when price is…BUY orderSELL order
above the current pricestop (breakout / short stop-loss)take_profit (long take-profit)
below the current pricetake_profit (short take-profit)stop (long stop-loss)

The intuition "take-profit is up, stop-loss is down" only holds for a long position (you close by selling). For a short (you close by buying) it inverts: take-profit is down, stop-loss is up. The invariant is take-profit = profit direction, stop = loss direction for the position being closed.

For a HeyTraders-managed trigger, a trigger price already satisfied by the current price when placed (for example, a buy take_profit at 0.15 while the price is 0.13) can fire immediately. To express a raw "fire when price crosses X" without position/side inference, use a plain price condition (>= / <=) instead of stop/take_profit.

market vs limit is independent of this direction: it only decides what order is sent once the trigger fires. A market order seeks immediate execution but does not guarantee a fill or price. A limit order cannot execute worse than its limit, but may remain unfilled. stop_market, stop_limit, take_profit_market, and take_profit_limit combine the direction (stop/tp) with the post-trigger order type (market/limit).

Managed Orders

OCO, bracket, and trailing-stop workflows coordinate multiple conditions or order legs. Their availability and the available settings depend on the connected account, exchange, and symbol.

Native vs Managed Capability

Before enabling an order type, query GET /v1/order-capabilities with account_id, exchange, and symbol. The endpoint requires the read scope and access to that account. It reports availability, routing, allowed time-in-force values, precision, and whether live-order replacement or amendment is available. Treat it as the current availability authority, not as a request-payload schema.

For account-specific leverage, margin, amount limits, and reduce_only, query GET /v1/accounts/{account_id}/symbol-capabilities with symbol and, when needed, exchange.

Exchange Differences

Not every exchange supports every order feature in the same way. Check the exchange-specific notes under /v1/docs/supported-exchanges before using advanced order behavior in live trading.

Before Live Trading

Before placing live orders:

  • confirm the connected exchange account
  • confirm symbol, side, size, and leverage
  • confirm the capabilities returned for the connected account and symbol
  • rehearse the workflow in paper mode when applicable
  • use the smallest practical size for the first live order
  • monitor the first live execution