Orders
Provides a full range of standard order types, as well as more advanced types and order lists.
class LimitIfTouchedOrder
Bases: Order
LimitIfTouchedOrder(TraderId trader_id, StrategyId strategy_id, InstrumentId instrument_id, ClientOrderId client_order_id, OrderSide order_side, Quantity quantity, Price price, Price trigger_price, TriggerType trigger_type, UUID4 init_id, uint64_t ts_init, TimeInForce time_in_force=TimeInForce.GTC, uint64_t expire_time_ns=0, bool post_only=False, bool reduce_only=False, bool quote_quantity=False, Quantity display_qty=None, TriggerType emulation_trigger=TriggerType.NO_TRIGGER, InstrumentId trigger_instrument_id=None, ContingencyType contingency_type=ContingencyType.NO_CONTINGENCY, OrderListId order_list_id=None, list linked_order_ids=None, ClientOrderId parent_order_id=None, ExecAlgorithmId exec_algorithm_id=None, dict exec_algorithm_params=None, ClientOrderId exec_spawn_id=None, list tags=None) Represents a Limit-If-Touched (LIT) conditional order.
A Limit-If-Touched (LIT) is an order to BUY (or SELL) an instrument at a specified price or better, below (or above) the market. This order is held in the system until the trigger price is touched. A LIT order is similar to a Stop-Limit order, except that a LIT SELL order is placed above the current market price, and a Stop-Limit SELL order is placed below.
Using a LIT order helps to ensure that, if the order does execute, the order will not execute at a price less favorable than the limit price.
- Parameters:
- trader_id (TraderId) – The trader ID associated with the order.
- strategy_id (StrategyId) – The strategy ID associated with the order.
- instrument_id (InstrumentId) – The order instrument ID.
- client_order_id (ClientOrderId) – The client order ID.
- order_side (OrderSide {
BUY
,SELL
}) – The order side. - quantity (Quantity) – The order quantity (> 0).
- price (Price) – The order price (LIMIT).
- trigger_price (Price) – The order trigger price (STOP).
- trigger_type (TriggerType) – The order trigger type.
- init_id (UUID4) – The order initialization event ID.
- ts_init (uint64_t) – UNIX timestamp (nanoseconds) when the object was initialized.
- time_in_force (TimeInForce {
GTC
,IOC
,FOK
,GTD
,DAY
}, defaultGTC
) – The order time in force. - expire_time_ns (uint64_t , default 0 *(*no expiry )) – UNIX timestamp (nanoseconds) when the order will expire.
- post_only (bool , default False) – If the
LIMIT
order will only provide liquidity (once triggered). - reduce_only (bool , default False) – If the
LIMIT
order carries the ‘reduce-only’ execution instruction. - quote_quantity (bool , default False) – If the order quantity is denominated in the quote currency.
- display_qty (Quantity , optional) – The quantity of the
LIMIT
order to display on the public book (iceberg). - emulation_trigger (EmulationTrigger, default
NO_TRIGGER
) – The emulation trigger for the order. - trigger_instrument_id (InstrumentId , optional) – The emulation trigger instrument ID for the order (if
None
then will be the instrument_id). - contingency_type (ContingencyType, default
NO_CONTINGENCY
) – The order contingency type. - order_list_id (OrderListId , optional) – The order list ID associated with the order.
- linked_order_ids (list [ClientOrderId ] , optional) – The order linked client order ID(s).
- parent_order_id (ClientOrderId , optional) – The order parent client order ID.
- exec_algorithm_id (ExecAlgorithmId , optional) – The execution algorithm ID for the order.
- exec_algorithm_params (dict *[*str , Any ] , optional) – The execution algorithm parameters for the order.
- exec_spawn_id (ClientOrderId , optional) – The execution algorithm spawning primary client order ID.
- tags (list *[*str ] , optional) – The custom user tags for the order.
- Raises:
- ValueError – If order_side is
NO_ORDER_SIDE
. - ValueError – If quantity is not positive (> 0).
- ValueError – If trigger_type is
NO_TRIGGER
. - ValueError – If time_in_force is
AT_THE_OPEN
orAT_THE_CLOSE
. - ValueError – If time_in_force is
GTD
and expire_time_ns <= UNIX epoch. - ValueError – If display_qty is negative (< 0) or greater than quantity.
- ValueError – If order_side is
static create(init)
display_qty
The quantity of the LIMIT
order to display on the public book (iceberg).
- Returns:
Quantity or
None
expire_time
Return the expire time for the order (UTC).
- Return type:
datetime or
None
expire_time_ns
The order expiration (UNIX epoch nanoseconds), zero for no expiration.
- Returns: uint64_t
info(self) → str
Return a summary description of the order.
- Return type: str
is_triggered
If the order has been triggered.
- Returns: bool
price
The order price (LIMIT).
- Returns: Price
to_dict(self) → dict
Return a dictionary representation of this object.
- Return type: dict[str, object]
trigger_price
The order trigger price (STOP).
- Returns: Price
trigger_type
The trigger type for the order.
- Returns: TriggerType
ts_triggered
UNIX timestamp (nanoseconds) when the order was triggered (0 if not triggered).
- Returns: uint64_t
class LimitOrder
Bases: Order
LimitOrder(TraderId trader_id, StrategyId strategy_id, InstrumentId instrument_id, ClientOrderId client_order_id, OrderSide order_side, Quantity quantity, Price price, UUID4 init_id, uint64_t ts_init, TimeInForce time_in_force=TimeInForce.GTC, uint64_t expire_time_ns=0, bool post_only=False, bool reduce_only=False, bool quote_quantity=False, Quantity display_qty=None, TriggerType emulation_trigger=TriggerType.NO_TRIGGER, InstrumentId trigger_instrument_id=None, ContingencyType contingency_type=ContingencyType.NO_CONTINGENCY, OrderListId order_list_id=None, list linked_order_ids=None, ClientOrderId parent_order_id=None, ExecAlgorithmId exec_algorithm_id=None, dict exec_algorithm_params=None, ClientOrderId exec_spawn_id=None, list tags=None) Represents a Limit order.
A Limit order is an order to BUY (or SELL) at a specified price or better. The Limit order ensures that if the order fills, it will not fill at a price less favorable than your limit price, but it does not guarantee a fill.
- A Limit-On-Open (LOO) order can be represented using a time in force of
AT_THE_OPEN
. - A Limit-On-Close (LOC) order can be represented using a time in force of
AT_THE_CLOSE
.
- Parameters:
- trader_id (TraderId) – The trader ID associated with the order.
- strategy_id (StrategyId) – The strategy ID associated with the order.
- instrument_id (InstrumentId) – The order instrument ID.
- client_order_id (ClientOrderId) – The client order ID.
- order_side (OrderSide {
BUY
,SELL
}) – The order side. - quantity (Quantity) – The order quantity (> 0).
- price (Price) – The order limit price.
- init_id (UUID4) – The order initialization event ID.
- ts_init (uint64_t) – UNIX timestamp (nanoseconds) when the object was initialized.
- time_in_force (TimeInForce {
GTC
,IOC
,FOK
,GTD
,DAY
,AT_THE_OPEN
,AT_THE_CLOSE
}, defaultGTC
) – The order time in force. - expire_time_ns (uint64_t , default 0 *(*no expiry )) – UNIX timestamp (nanoseconds) when the order will expire.
- post_only (bool , default False) – If the order will only provide liquidity (make a market).
- reduce_only (bool , default False) – If the order carries the ‘reduce-only’ execution instruction.
- quote_quantity (bool , default False) – If the order quantity is denominated in the quote currency.
- display_qty (Quantity , optional) – The quantity of the order to display on the public book (iceberg).
- emulation_trigger (EmulationTrigger, default
NO_TRIGGER
) – The emulation trigger for the order. - trigger_instrument_id (InstrumentId , optional) – The emulation trigger instrument ID for the order (if
None
then will be the instrument_id). - contingency_type (ContingencyType, default
NO_CONTINGENCY
) – The order contingency type. - order_list_id (OrderListId , optional) – The order list ID associated with the order.
- linked_order_ids (list [ClientOrderId ] , optional) – The order linked client order ID(s).
- parent_order_id (ClientOrderId , optional) – The order parent client order ID.
- exec_algorithm_id (ExecAlgorithmId , optional) – The execution algorithm ID for the order.
- exec_algorithm_params (dict *[*str , Any ] , optional) – The execution algorithm parameters for the order.
- exec_spawn_id (ClientOrderId , optional) – The execution algorithm spawning primary client order ID.
- tags (list *[*str ] , optional) – The custom user tags for the order.
- Raises:
- ValueError – If order_side is
NO_ORDER_SIDE
. - ValueError – If quantity is not positive (> 0).
- ValueError – If time_in_force is
GTD
and expire_time_ns <= UNIX epoch. - ValueError – If display_qty is negative (< 0) or greater than quantity.
- ValueError – If order_side is