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.