rustrade-execution 0.4.0

Stream private account data from financial venues, and execute (live or mock) orders.
Documentation

rustrade-execution

Execution client library for streaming private account data and executing orders (live or mock).

Supported Exchanges

Exchange Constructor InstrumentKinds Features
Binance BinanceClient::connect() Spot Orders, Balances, Positions
BinanceMargin BinanceMargin::new(config) Spot (cross/isolated margin) Orders, Balances, Positions
Alpaca AlpacaClient::connect() Spot (Equities, Crypto), Option Orders, Balances, Positions, BracketOrders
Hyperliquid HyperliquidClient::connect() Perpetual Orders, Balances, Positions
HyperliquidSpot HyperliquidSpotClient::connect() Spot Orders, Balances, Positions
IBKR IbkrClient::connect() Spot, Future, Option Orders, Balances, Positions, BracketOrders

Order Types

All connectors support Limit orders. Market orders are supported everywhere except Hyperliquid (use a Limit order with ImmediateOrCancel time-in-force instead). Additional order types:

Order Type IBKR Alpaca Binance Hyperliquid
Stop
StopLimit
TakeProfit
TakeProfitLimit
TrailingStop ⚠️
TrailingStopLimit

⚠️ Binance TrailingStop supports BasisPoints and Percentage offsets only; Absolute offsets are rejected as unsupported. Hyperliquid trigger orders (Stop, StopLimit, TakeProfit, TakeProfitLimit) require a UUID-format client order ID (ClientOrderId::uuid()). BinanceMargin matches Binance spot except that both TrailingStop and TrailingStopLimit are rejected as unsupported (the SDK margin binding omits trailingDelta).

See the workspace README for documentation, examples, and contributing guidelines.