Skip to main content

Trading

Submit, cancel, and manage trade orders.

Submit Order

response = trade_order_api.submit_trade_order(
cadenza_client.SubmitTradeOrderRequest(
trading_account_id=trading_account_id,
instrument_id="BINANCE:BTC/USDT",
order_side=cadenza_client.OrderSide.BUY,
order_type=cadenza_client.OrderType.LIMIT,
quantity="0.001",
limit_price="50000.00"
)
)
order = response.data
print(f"Order submitted: {order.trade_order_id}")

Market Order

Submit a market order for immediate execution:

response = trade_order_api.submit_trade_order(
cadenza_client.SubmitTradeOrderRequest(
trading_account_id=trading_account_id,
instrument_id="BINANCE:BTC/USDT",
order_side=cadenza_client.OrderSide.BUY,
order_type=cadenza_client.OrderType.MARKET,
quantity="0.001",
await_closed=True # Wait for order to fill
)
)
order = response.data
print(f"Order filled at: {order.executed_price}")

Cancel Order

response = trade_order_api.cancel_trade_order(
cadenza_client.CancelTradeOrderRequest(
trade_order_id=order.trade_order_id
)
)
print(f"Order cancelled: {response.data.status}")

List Orders

response = trade_order_api.list_trade_orders(
trading_account_id=trading_account_id
)
orders = response.data

for order in orders:
print(f"{order.trade_order_id}: {order.status}")

Order Types

TypeDescription
LIMITExecute at specified price or better
MARKETExecute immediately at best available price
STOP_LIMITLimit order triggered when stop price is reached
STOP_MARKETMarket order triggered when stop price is reached

Order Sides

SideDescription
BUYBuy the base asset
SELLSell the base asset

Time in Force

ValueDescription
GTCGood Till Cancelled (default)
IOCImmediate Or Cancel
FOKFill Or Kill

Order Status

StatusDescription
PENDINGOrder submitted, awaiting exchange confirmation
OPENOrder active on exchange
PARTIALLY_FILLEDOrder partially executed
FILLEDOrder fully executed
CANCELLEDOrder cancelled
REJECTEDOrder rejected by exchange
EXPIREDOrder expired

Real-time Order Updates

For real-time order status updates, subscribe to the tradingAccount:{id} channel. See the Quick Start for WebSocket setup.