Orders ¶
Provides a full range of standard order types, as well as more advanced types and order lists.
- class MarketOrder ( TraderId trader_id , StrategyId strategy_id , InstrumentId instrument_id , ClientOrderId client_order_id , OrderSide order_side , Quantity quantity , UUID4 init_id , uint64_t ts_init , TimeInForce time_in_force=TimeInForce.GTC , bool reduce_only=False , 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 , unicode tags=None ) ¶
-
Bases:
Order
Represents a Market order.
A Market order is an order to BUY (or SELL) at the market bid or offer price. A market order may increase the likelihood of a fill and the speed of execution, but unlike the Limit order - a Market order provides no price protection and may fill at a price far lower/higher than the top of book bid/ask.
-
A Market-On-Open (MOO) order can be represented using a time in force of
AT_THE_OPEN
. -
A Market-On-Close (MOC) 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).
-
init_id ( UUID4 ) – The order initialization event ID.
-
ts_init ( uint64_t ) – The UNIX timestamp (nanoseconds) when the object was initialized.
-
time_in_force (TimeInForce {
GTC
,IOC
,FOK
,DAY
,AT_THE_OPEN
,AT_THE_CLOSE
}, defaultGTC
) – The order time in force. -
reduce_only ( bool , default False ) – If the order carries the ‘reduce-only’ execution instruction.
-
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 ( str , optional ) – The custom user tags for the order. These are optional and can contain any arbitrary delimiter if required.
-
- Raises :
-
-
ValueError – If order_side is
NO_ORDER_SIDE
. -
ValueError – If quantity is not positive (> 0).
-
ValueError – If time_in_force is
GTD
.
-
References
https://www.interactivebrokers.com/en/trading/orders/market.php
- account_id ¶
-
The account ID associated with the order.
- Returns :
-
AccountId or
None
- apply ( self , OrderEvent event ) void ¶
-
Apply the given order event to the order.
- Parameters :
-
event ( OrderEvent ) – The order event to apply.
- Raises :
-
-
ValueError – If self.client_order_id is not equal to event.client_order_id .
-
ValueError – If self.venue_order_id and event.venue_order_id are both not
None
, and are not equal. -
InvalidStateTrigger – If event is not a valid trigger from the current order.status .
-
KeyError – If event is OrderFilled and event.trade_id already applied to the order.
-
- avg_px ¶
-
The order average fill price.
- Returns :
-
double
- client_order_id ¶
-
The client order ID.
- Returns :
-
ClientOrderId
- static closing_side ( PositionSide position_side ) OrderSide ¶
-
Return the order side needed to close a position with the given side.
- Parameters :
-
position_side (PositionSide {
LONG
,SHORT
}) – The side of the position to close. - Returns :
-
OrderSide
- Raises :
-
ValueError – If position_side is
FLAT
or invalid.
- contingency_type ¶
-
The orders contingency type.
- Returns :
-
ContingencyType
- emulation_trigger ¶
-
The order emulation trigger type.
- Returns :
-
TriggerType
- event_count ¶
-
Return the count of events applied to the order.
- Returns :
-
int
- events ¶
-
Return the order events.
- Returns :
-
list[OrderEvent]
- exec_algorithm_id ¶
-
The execution algorithm ID for the order.
- Returns :
-
ExecAlgorithmId or
None
- exec_algorithm_params ¶
-
The execution algorithm parameters for the order.
- Returns :
-
dict[str, Any] or
None
- exec_spawn_id ¶
-
The execution algorithm spawning client order ID.
- Returns :
-
ClientOrderId or
None
- filled_qty ¶
-
The order total filled quantity.
- Returns :
-
Quantity
- has_price ¶
-
Return whether the order has a price property.
- Returns :
-
bool
- has_trigger_price ¶
-
Return whether the order has a trigger_price property.
- Returns :
-
bool
- info ( self ) unicode ¶
-
Return a summary description of the order.
- Returns :
-
str
- init_event ¶
-
Return the initialization event for the order.
- Returns :
-
OrderInitialized
- init_id ¶
-
The event ID of the OrderInitialized event.
- Returns :
-
UUID4
- instrument_id ¶
-
The order instrument ID.
- Returns :
-
InstrumentId
- is_aggressive ¶
-
Return whether the order is aggressive ( order_type is
MARKET
).- Returns :
-
bool
- is_buy ¶
-
Return whether the order side is
BUY
.- Returns :
-
bool
- is_canceled ¶
-
Return whether current status is
CANCELED
.- Returns :
-
bool
- is_child_order ¶
-
Return whether the order has a parent order.
- Returns :
-
bool
- is_closed ¶
-
Return whether the order is closed.
An order is considered closed when its status can no longer change. The possible statuses of closed orders include;
-
DENIED
-
REJECTED
-
CANCELED
-
EXPIRED
-
FILLED
- Returns :
-
bool
-
- is_contingency ¶
-
Return whether the order has a contingency ( contingency_type is not
NO_CONTINGENCY
).- Returns :
-
bool
- is_emulated ¶
-
Return whether the order is emulated and held in the local system.
- Returns :
-
bool
- is_inflight ¶
-
Return whether the order is in-flight (order request sent to the trading venue).
An order is considered in-flight when its status is any of;
-
SUBMITTED
-
PENDING_CANCEL
-
PENDING_UPDATE
- Returns :
-
bool
Warning
An emulated order is never considered in-flight.
-
- is_open ¶
-
Return whether the order is open at the trading venue.
An order is considered open when its status is any of;
-
ACCEPTED
-
TRIGGERED
-
PENDING_CANCEL
-
PENDING_UPDATE
-
PARTIALLY_FILLED
- Returns :
-
bool
Warning
An emulated order is never considered open.
-
- is_parent_order ¶
-
Return whether the order has at least one child order.
- Returns :
-
bool
- is_passive ¶
-
Return whether the order is passive ( order_type not
MARKET
).- Returns :
-
bool
- is_pending_cancel ¶
-
Return whether the current status is
PENDING_CANCEL
.- Returns :
-
bool
- is_pending_update ¶
-
Return whether the current status is
PENDING_UPDATE
.- Returns :
-
bool
- is_post_only ¶
-
If the order will only provide liquidity (make a market).
- Returns :
-
bool
- is_reduce_only ¶
-
If the order carries the ‘reduce-only’ execution instruction.
- Returns :
-
bool
- is_sell ¶
-
Return whether the order side is
SELL
.- Returns :
-
bool
- last_event ¶
-
Return the last event applied to the order.
- Returns :
-
OrderEvent
- last_trade_id ¶
-
The orders last trade match ID.
- Returns :
-
TradeId or
None
- leaves_qty ¶
-
The order total leaves quantity.
- Returns :
-
Quantity
- linked_order_ids ¶
-
The orders linked client order ID(s).
- Returns :
-
list[ClientOrderId] or
None
- liquidity_side ¶
-
The order liquidity side.
- Returns :
-
LiquiditySide
- static opposite_side ( OrderSide side ) OrderSide ¶
-
Return the opposite order side from the given side.
- Parameters :
-
side (OrderSide {
BUY
,SELL
}) – The original order side. - Returns :
-
OrderSide
- Raises :
-
ValueError – If side is invalid.
- order_list_id ¶
-
The order list ID associated with the order.
- Returns :
-
OrderListId or
None
- order_type ¶
-
The order type.
- Returns :
-
OrderType
- parent_order_id ¶
-
The parent client order ID.
- Returns :
-
ClientOrderId or
None
- position_id ¶
-
The position ID associated with the order.
- Returns :
-
PositionId or
None
- quantity ¶
-
The order quantity.
- Returns :
-
Quantity
- side ¶
-
The order side.
- Returns :
-
OrderSide
- side_string ¶
-
Return the orders side as a string.
- Returns :
-
str
- signed_decimal_qty ( self ) ¶
-
Return a signed decimal representation of the remaining quantity.
-
If the order is a BUY, the value is positive (e.g. Decimal(‘10.25’))
-
If the order is a SELL, the value is negative (e.g. Decimal(‘-10.25’))
- Returns :
-
Decimal
-
- slippage ¶
-
The order total price slippage.
- Returns :
-
double
- status ¶
-
Return the orders current status.
- Returns :
-
OrderStatus
- strategy_id ¶
-
The strategy ID associated with the order.
- Returns :
-
StrategyId
- symbol ¶
-
Return the orders ticker symbol.
- Returns :
-
Symbol
- tags ¶
-
The order custom user tags.
- Returns :
-
str or
None
- time_in_force ¶
-
The order time in force.
- Returns :
-
TimeInForce
- to_dict ( self ) dict ¶
-
Return a dictionary representation of this object.
- Returns :
-
dict[str, object]
- trade_ids ¶
-
Return the trade match IDs.
- Returns :
-
list[TradeId]
- trader_id ¶
-
The trader ID associated with the position.
- Returns :
-
TraderId
- static transform_py ( Order order , uint64_t ts_init ) MarketOrder ¶
- ts_init ¶
-
The UNIX timestamp (nanoseconds) when the object was initialized.
- Returns :
-
uint64_t
- ts_last ¶
-
The UNIX timestamp (nanoseconds) when the last fill occurred (0 for no fill).
- Returns :
-
uint64_t
- venue ¶
-
Return the orders trading venue.
- Returns :
-
Venue
- venue_order_id ¶
-
The venue assigned order ID.
- Returns :
-
VenueOrderId or
None
- venue_order_ids ¶
-
Return the venue order IDs.
- Returns :
-
list[VenueOrderId]
- would_reduce_only ( self , PositionSide position_side , Quantity position_qty ) bool ¶
-
Whether the current order would only reduce the given position if applied in full.
- Parameters :
-
-
position_side (PositionSide {
FLAT
,LONG
,SHORT
}) – The side of the position to check against. -
position_qty ( Quantity ) – The quantity of the position to check against.
-
- Returns :
-
bool
-
- class 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 , Quantity display_qty=None , TriggerType emulation_trigger=TriggerType.NO_TRIGGER , 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 , unicode tags=None ) ¶
-
Bases:
Order
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 ) – The 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 ) ) – The 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.
-
display_qty ( Quantity , optional ) – The quantity of the order to display on the public book (iceberg).
-
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 ( str , optional ) – The custom user tags for the order. These are optional and can contain any arbitrary delimiter if required.
-
- 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 .
-
References
https://www.interactivebrokers.com/en/trading/orders/limit.php
- account_id ¶
-
The account ID associated with the order.
- Returns :
-
AccountId or
None
- apply ( self , OrderEvent event ) void ¶
-
Apply the given order event to the order.
- Parameters :
-
event ( OrderEvent ) – The order event to apply.
- Raises :
-
-
ValueError – If self.client_order_id is not equal to event.client_order_id .
-
ValueError – If self.venue_order_id and event.venue_order_id are both not
None
, and are not equal. -
InvalidStateTrigger – If event is not a valid trigger from the current order.status .
-
KeyError – If event is OrderFilled and event.trade_id already applied to the order.
-
- avg_px ¶
-
The order average fill price.
- Returns :
-
double
- client_order_id ¶
-
The client order ID.
- Returns :
-
ClientOrderId
- static closing_side ( PositionSide position_side ) OrderSide ¶
-
Return the order side needed to close a position with the given side.
- Parameters :
-
position_side (PositionSide {
LONG
,SHORT
}) – The side of the position to close. - Returns :
-
OrderSide
- Raises :
-
ValueError – If position_side is
FLAT
or invalid.
- contingency_type ¶
-
The orders contingency type.
- Returns :
-
ContingencyType
- display_qty ¶
-
The quantity of the order to display on the public book (iceberg).
- Returns :
-
Quantity or
None
- emulation_trigger ¶
-
The order emulation trigger type.
- Returns :
-
TriggerType
- event_count ¶
-
Return the count of events applied to the order.
- Returns :
-
int
- events ¶
-
Return the order events.
- Returns :
-
list[OrderEvent]
- exec_algorithm_id ¶
-
The execution algorithm ID for the order.
- Returns :
-
ExecAlgorithmId or
None
- exec_algorithm_params ¶
-
The execution algorithm parameters for the order.
- Returns :
-
dict[str, Any] or
None
- exec_spawn_id ¶
-
The execution algorithm spawning client order ID.
- Returns :
-
ClientOrderId or
None
- expire_time ¶
-
Return the expire time for the order (UTC).
- Returns :
-
datetime or
None
- expire_time_ns ¶
-
The order expiration (UNIX epoch nanoseconds), zero for no expiration.
- Returns :
-
uint64_t
- filled_qty ¶
-
The order total filled quantity.
- Returns :
-
Quantity
- has_price ¶
-
Return whether the order has a price property.
- Returns :
-
bool
- has_trigger_price ¶
-
Return whether the order has a trigger_price property.
- Returns :
-
bool
- info ( self ) unicode ¶
-
Return a summary description of the order.
- Returns :
-
str
- init_event ¶
-
Return the initialization event for the order.
- Returns :
-
OrderInitialized
- init_id ¶
-
The event ID of the OrderInitialized event.
- Returns :
-
UUID4
- instrument_id ¶
-
The order instrument ID.
- Returns :
-
InstrumentId
- is_aggressive ¶
-
Return whether the order is aggressive ( order_type is
MARKET
).- Returns :
-
bool
- is_buy ¶
-
Return whether the order side is
BUY
.- Returns :
-
bool
- is_canceled ¶
-
Return whether current status is
CANCELED
.- Returns :
-
bool
- is_child_order ¶
-
Return whether the order has a parent order.
- Returns :
-
bool
- is_closed ¶
-
Return whether the order is closed.
An order is considered closed when its status can no longer change. The possible statuses of closed orders include;
-
DENIED
-
REJECTED
-
CANCELED
-
EXPIRED
-
FILLED
- Returns :
-
bool
-
- is_contingency ¶
-
Return whether the order has a contingency ( contingency_type is not
NO_CONTINGENCY
).- Returns :
-
bool
- is_emulated ¶
-
Return whether the order is emulated and held in the local system.
- Returns :
-
bool
- is_inflight ¶
-
Return whether the order is in-flight (order request sent to the trading venue).
An order is considered in-flight when its status is any of;
-
SUBMITTED
-
PENDING_CANCEL
-
PENDING_UPDATE
- Returns :
-
bool
Warning
An emulated order is never considered in-flight.
-
- is_open ¶
-
Return whether the order is open at the trading venue.
An order is considered open when its status is any of;
-
ACCEPTED
-
TRIGGERED
-
PENDING_CANCEL
-
PENDING_UPDATE
-
PARTIALLY_FILLED
- Returns :
-
bool
Warning
An emulated order is never considered open.
-
- is_parent_order ¶
-
Return whether the order has at least one child order.
- Returns :
-
bool
- is_passive ¶
-
Return whether the order is passive ( order_type not
MARKET
).- Returns :
-
bool
- is_pending_cancel ¶
-
Return whether the current status is
PENDING_CANCEL
.- Returns :
-
bool
- is_pending_update ¶
-
Return whether the current status is
PENDING_UPDATE
.- Returns :
-
bool
- is_post_only ¶
-
If the order will only provide liquidity (make a market).
- Returns :
-
bool
- is_reduce_only ¶
-
If the order carries the ‘reduce-only’ execution instruction.
- Returns :
-
bool
- is_sell ¶
-
Return whether the order side is
SELL
.- Returns :
-
bool
- last_event ¶
-
Return the last event applied to the order.
- Returns :
-
OrderEvent
- last_trade_id ¶
-
The orders last trade match ID.
- Returns :
-
TradeId or
None
- leaves_qty ¶
-
The order total leaves quantity.
- Returns :
-
Quantity
- linked_order_ids ¶
-
The orders linked client order ID(s).
- Returns :
-
list[ClientOrderId] or
None
- liquidity_side ¶
-
The order liquidity side.
- Returns :
-
LiquiditySide
- static opposite_side ( OrderSide side ) OrderSide ¶
-
Return the opposite order side from the given side.
- Parameters :
-
side (OrderSide {
BUY
,SELL
}) – The original order side. - Returns :
-
OrderSide
- Raises :
-
ValueError – If side is invalid.
- order_list_id ¶
-
The order list ID associated with the order.
- Returns :
-
OrderListId or
None
- order_type ¶
-
The order type.
- Returns :
-
OrderType
- parent_order_id ¶
-
The parent client order ID.
- Returns :
-
ClientOrderId or
None
- position_id ¶
-
The position ID associated with the order.
- Returns :
-
PositionId or
None
- price ¶
-
The order price (LIMIT).
- Returns :
-
Price
- quantity ¶
-
The order quantity.
- Returns :
-
Quantity
- side ¶
-
The order side.
- Returns :
-
OrderSide
- side_string ¶
-
Return the orders side as a string.
- Returns :
-
str
- signed_decimal_qty ( self ) ¶
-
Return a signed decimal representation of the remaining quantity.
-
If the order is a BUY, the value is positive (e.g. Decimal(‘10.25’))
-
If the order is a SELL, the value is negative (e.g. Decimal(‘-10.25’))
- Returns :
-
Decimal
-
- slippage ¶
-
The order total price slippage.
- Returns :
-
double
- status ¶
-
Return the orders current status.
- Returns :
-
OrderStatus
- strategy_id ¶
-
The strategy ID associated with the order.
- Returns :
-
StrategyId
- symbol ¶
-
Return the orders ticker symbol.
- Returns :
-
Symbol
- tags ¶
-
The order custom user tags.
- Returns :
-
str or
None
- time_in_force ¶
-
The order time in force.
- Returns :
-
TimeInForce
- to_dict ( self ) dict ¶
-
Return a dictionary representation of this object.
- Returns :
-
dict[str, object]
- trade_ids ¶
-
Return the trade match IDs.
- Returns :
-
list[TradeId]
- trader_id ¶
-
The trader ID associated with the position.
- Returns :
-
TraderId
- static transform_py ( Order order , uint64_t ts_init , Price price=None ) LimitOrder ¶
- ts_init ¶
-
The UNIX timestamp (nanoseconds) when the object was initialized.
- Returns :
-
uint64_t
- ts_last ¶
-
The UNIX timestamp (nanoseconds) when the last fill occurred (0 for no fill).
- Returns :
-
uint64_t
- venue ¶
-
Return the orders trading venue.
- Returns :
-
Venue
- venue_order_id ¶
-
The venue assigned order ID.
- Returns :
-
VenueOrderId or
None
- venue_order_ids ¶
-
Return the venue order IDs.
- Returns :
-
list[VenueOrderId]
- would_reduce_only ( self , PositionSide position_side , Quantity position_qty ) bool ¶
-
Whether the current order would only reduce the given position if applied in full.
- Parameters :
-
-
position_side (PositionSide {
FLAT
,LONG
,SHORT
}) – The side of the position to check against. -
position_qty ( Quantity ) – The quantity of the position to check against.
-
- Returns :
-
bool
-
- class StopMarketOrder ( TraderId trader_id , StrategyId strategy_id , InstrumentId instrument_id , ClientOrderId client_order_id , OrderSide order_side , Quantity quantity , 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 reduce_only=False , TriggerType emulation_trigger=TriggerType.NO_TRIGGER , 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 , unicode tags=None ) ¶
-
Bases:
Order
Represents a Stop-Market conditional order.
A Stop-Market order is an instruction to submit a BUY (or SELL) market order if and when the specified stop trigger price is attained or penetrated. A Stop-Market order is not guaranteed a specific execution price and may execute significantly away from its stop price.
A SELL Stop-Market order is always placed below the current market price, and is typically used to limit a loss or protect a profit on a long position.
A BUY Stop-Market order is always placed above the current market price, and is typically used to limit a loss or protect a profit on a short position.
- 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).
-
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 ) – The 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 ) ) – The UNIX timestamp (nanoseconds) when the order will expire.
-
reduce_only ( bool , default False ) – If the order carries the ‘reduce-only’ execution instruction.
-
emulation_trigger (TriggerType, default
NO_TRIGGER
) – The order emulation trigger. -
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 ( str , optional ) – The custom user tags for the order. These are optional and can contain any arbitrary delimiter if required.
-
- 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.
-
References
https://www.interactivebrokers.com/en/trading/orders/stop.php
- account_id ¶
-
The account ID associated with the order.
- Returns :
-
AccountId or
None
- apply ( self , OrderEvent event ) void ¶
-
Apply the given order event to the order.
- Parameters :
-
event ( OrderEvent ) – The order event to apply.
- Raises :
-
-
ValueError – If self.client_order_id is not equal to event.client_order_id .
-
ValueError – If self.venue_order_id and event.venue_order_id are both not
None
, and are not equal. -
InvalidStateTrigger – If event is not a valid trigger from the current order.status .
-
KeyError – If event is OrderFilled and event.trade_id already applied to the order.
-
- avg_px ¶
-
The order average fill price.
- Returns :
-
double
- client_order_id ¶
-
The client order ID.
- Returns :
-
ClientOrderId
- static closing_side ( PositionSide position_side ) OrderSide ¶
-
Return the order side needed to close a position with the given side.
- Parameters :
-
position_side (PositionSide {
LONG
,SHORT
}) – The side of the position to close. - Returns :
-
OrderSide
- Raises :
-
ValueError – If position_side is
FLAT
or invalid.
- contingency_type ¶
-
The orders contingency type.
- Returns :
-
ContingencyType
- emulation_trigger ¶
-
The order emulation trigger type.
- Returns :
-
TriggerType
- event_count ¶
-
Return the count of events applied to the order.
- Returns :
-
int
- events ¶
-
Return the order events.
- Returns :
-
list[OrderEvent]
- exec_algorithm_id ¶
-
The execution algorithm ID for the order.
- Returns :
-
ExecAlgorithmId or
None
- exec_algorithm_params ¶
-
The execution algorithm parameters for the order.
- Returns :
-
dict[str, Any] or
None
- exec_spawn_id ¶
-
The execution algorithm spawning client order ID.
- Returns :
-
ClientOrderId or
None
- expire_time ¶
-
Return the expire time for the order (UTC).
- Returns :
-
datetime or
None
- expire_time_ns ¶
-
The order expiration (UNIX epoch nanoseconds), zero for no expiration.
- Returns :
-
uint64_t
- filled_qty ¶
-
The order total filled quantity.
- Returns :
-
Quantity
- has_price ¶
-
Return whether the order has a price property.
- Returns :
-
bool
- has_trigger_price ¶
-
Return whether the order has a trigger_price property.
- Returns :
-
bool
- info ( self ) unicode ¶
-
Return a summary description of the order.
- Returns :
-
str
- init_event ¶
-
Return the initialization event for the order.
- Returns :
-
OrderInitialized
- init_id ¶
-
The event ID of the OrderInitialized event.
- Returns :
-
UUID4
- instrument_id ¶
-
The order instrument ID.
- Returns :
-
InstrumentId
- is_aggressive ¶
-
Return whether the order is aggressive ( order_type is
MARKET
).- Returns :
-
bool
- is_buy ¶
-
Return whether the order side is
BUY
.- Returns :
-
bool
- is_canceled ¶
-
Return whether current status is
CANCELED
.- Returns :
-
bool
- is_child_order ¶
-
Return whether the order has a parent order.
- Returns :
-
bool
- is_closed ¶
-
Return whether the order is closed.
An order is considered closed when its status can no longer change. The possible statuses of closed orders include;
-
DENIED
-
REJECTED
-
CANCELED
-
EXPIRED
-
FILLED
- Returns :
-
bool
-
- is_contingency ¶
-
Return whether the order has a contingency ( contingency_type is not
NO_CONTINGENCY
).- Returns :
-
bool
- is_emulated ¶
-
Return whether the order is emulated and held in the local system.
- Returns :
-
bool
- is_inflight ¶
-
Return whether the order is in-flight (order request sent to the trading venue).
An order is considered in-flight when its status is any of;
-
SUBMITTED
-
PENDING_CANCEL
-
PENDING_UPDATE
- Returns :
-
bool
Warning
An emulated order is never considered in-flight.
-
- is_open ¶
-
Return whether the order is open at the trading venue.
An order is considered open when its status is any of;
-
ACCEPTED
-
TRIGGERED
-
PENDING_CANCEL
-
PENDING_UPDATE
-
PARTIALLY_FILLED
- Returns :
-
bool
Warning
An emulated order is never considered open.
-
- is_parent_order ¶
-
Return whether the order has at least one child order.
- Returns :
-
bool
- is_passive ¶
-
Return whether the order is passive ( order_type not
MARKET
).- Returns :
-
bool
- is_pending_cancel ¶
-
Return whether the current status is
PENDING_CANCEL
.- Returns :
-
bool
- is_pending_update ¶
-
Return whether the current status is
PENDING_UPDATE
.- Returns :
-
bool
- is_post_only ¶
-
If the order will only provide liquidity (make a market).
- Returns :
-
bool
- is_reduce_only ¶
-
If the order carries the ‘reduce-only’ execution instruction.
- Returns :
-
bool
- is_sell ¶
-
Return whether the order side is
SELL
.- Returns :
-
bool
- last_event ¶
-
Return the last event applied to the order.
- Returns :
-
OrderEvent
- last_trade_id ¶
-
The orders last trade match ID.
- Returns :
-
TradeId or
None
- leaves_qty ¶
-
The order total leaves quantity.
- Returns :
-
Quantity
- linked_order_ids ¶
-
The orders linked client order ID(s).
- Returns :
-
list[ClientOrderId] or
None
- liquidity_side ¶
-
The order liquidity side.
- Returns :
-
LiquiditySide
- static opposite_side ( OrderSide side ) OrderSide ¶
-
Return the opposite order side from the given side.
- Parameters :
-
side (OrderSide {
BUY
,SELL
}) – The original order side. - Returns :
-
OrderSide
- Raises :
-
ValueError – If side is invalid.
- order_list_id ¶
-
The order list ID associated with the order.
- Returns :
-
OrderListId or
None
- order_type ¶
-
The order type.
- Returns :
-
OrderType
- parent_order_id ¶
-
The parent client order ID.
- Returns :
-
ClientOrderId or
None
- position_id ¶
-
The position ID associated with the order.
- Returns :
-
PositionId or
None
- quantity ¶
-
The order quantity.
- Returns :
-
Quantity
- side ¶
-
The order side.
- Returns :
-
OrderSide
- side_string ¶
-
Return the orders side as a string.
- Returns :
-
str
- signed_decimal_qty ( self ) ¶
-
Return a signed decimal representation of the remaining quantity.
-
If the order is a BUY, the value is positive (e.g. Decimal(‘10.25’))
-
If the order is a SELL, the value is negative (e.g. Decimal(‘-10.25’))
- Returns :
-
Decimal
-
- slippage ¶
-
The order total price slippage.
- Returns :
-
double
- status ¶
-
Return the orders current status.
- Returns :
-
OrderStatus
- strategy_id ¶
-
The strategy ID associated with the order.
- Returns :
-
StrategyId
- symbol ¶
-
Return the orders ticker symbol.
- Returns :
-
Symbol
- tags ¶
-
The order custom user tags.
- Returns :
-
str or
None
- time_in_force ¶
-
The order time in force.
- Returns :
-
TimeInForce
- to_dict ( self ) dict ¶
-
Return a dictionary representation of this object.
- Returns :
-
dict[str, object]
- trade_ids ¶
-
Return the trade match IDs.
- Returns :
-
list[TradeId]
- trader_id ¶
-
The trader ID associated with the position.
- Returns :
-
TraderId
- trigger_price ¶
-
The order trigger price (STOP).
- Returns :
-
Price
- trigger_type ¶
-
The trigger type for the order.
- Returns :
-
TriggerType
- ts_init ¶
-
The UNIX timestamp (nanoseconds) when the object was initialized.
- Returns :
-
uint64_t
- ts_last ¶
-
The UNIX timestamp (nanoseconds) when the last fill occurred (0 for no fill).
- Returns :
-
uint64_t
- venue ¶
-
Return the orders trading venue.
- Returns :
-
Venue
- venue_order_id ¶
-
The venue assigned order ID.
- Returns :
-
VenueOrderId or
None
- venue_order_ids ¶
-
Return the venue order IDs.
- Returns :
-
list[VenueOrderId]
- would_reduce_only ( self , PositionSide position_side , Quantity position_qty ) bool ¶
-
Whether the current order would only reduce the given position if applied in full.
- Parameters :
-
-
position_side (PositionSide {
FLAT
,LONG
,SHORT
}) – The side of the position to check against. -
position_qty ( Quantity ) – The quantity of the position to check against.
-
- Returns :
-
bool
- class StopLimitOrder ( 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 , Quantity display_qty=None , TriggerType emulation_trigger=TriggerType.NO_TRIGGER , 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 , unicode tags=None ) ¶
-
Bases:
Order
Represents a Stop-Limit conditional order.
A Stop-Limit order is an instruction to submit a BUY (or SELL) limit order when the specified stop trigger price is attained or penetrated. The order has two basic components: the stop price and the limit price. When a trade has occurred at or through the stop price, the order becomes executable and enters the market as a limit order, which is an order to BUY (or SELL) at a specified price or better.
A Stop-Limit eliminates the price risk associated with a stop order where the execution price cannot be guaranteed, but exposes the trader to the risk that the order may never fill, even if the stop price is reached.
- 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 ) – The 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 ) ) – The 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. -
display_qty ( Quantity , optional ) – The quantity of the
LIMIT
order to display on the public book (iceberg). -
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 ( str , optional ) – The custom user tags for the order. These are optional and can contain any arbitrary delimiter if required.
-
- 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 .
-
References
https://www.interactivebrokers.com/en/trading/orders/stop-limit.php
- account_id ¶
-
The account ID associated with the order.
- Returns :
-
AccountId or
None
- apply ( self , OrderEvent event ) void ¶
-
Apply the given order event to the order.
- Parameters :
-
event ( OrderEvent ) – The order event to apply.
- Raises :
-
-
ValueError – If self.client_order_id is not equal to event.client_order_id .
-
ValueError – If self.venue_order_id and event.venue_order_id are both not
None
, and are not equal. -
InvalidStateTrigger – If event is not a valid trigger from the current order.status .
-
KeyError – If event is OrderFilled and event.trade_id already applied to the order.
-
- avg_px ¶
-
The order average fill price.
- Returns :
-
double
- client_order_id ¶
-
The client order ID.
- Returns :
-
ClientOrderId
- static closing_side ( PositionSide position_side ) OrderSide ¶
-
Return the order side needed to close a position with the given side.
- Parameters :
-
position_side (PositionSide {
LONG
,SHORT
}) – The side of the position to close. - Returns :
-
OrderSide
- Raises :
-
ValueError – If position_side is
FLAT
or invalid.
- contingency_type ¶
-
The orders contingency type.
- Returns :
-
ContingencyType
- display_qty ¶
-
The quantity of the
LIMIT
order to display on the public book (iceberg).- Returns :
-
Quantity or
None
- emulation_trigger ¶
-
The order emulation trigger type.
- Returns :
-
TriggerType
- event_count ¶
-
Return the count of events applied to the order.
- Returns :
-
int
- events ¶
-
Return the order events.
- Returns :
-
list[OrderEvent]
- exec_algorithm_id ¶
-
The execution algorithm ID for the order.
- Returns :
-
ExecAlgorithmId or
None
- exec_algorithm_params ¶
-
The execution algorithm parameters for the order.
- Returns :
-
dict[str, Any] or
None
- exec_spawn_id ¶
-
The execution algorithm spawning client order ID.
- Returns :
-
ClientOrderId or
None
- expire_time ¶
-
Return the expire time for the order (UTC).
- Returns :
-
datetime or
None
- expire_time_ns ¶
-
The order expiration (UNIX epoch nanoseconds), zero for no expiration.
- Returns :
-
uint64_t
- filled_qty ¶
-
The order total filled quantity.
- Returns :
-
Quantity
- has_price ¶
-
Return whether the order has a price property.
- Returns :
-
bool
- has_trigger_price ¶
-
Return whether the order has a trigger_price property.
- Returns :
-
bool
- info ( self ) unicode ¶
-
Return a summary description of the order.
- Returns :
-
str
- init_event ¶
-
Return the initialization event for the order.
- Returns :
-
OrderInitialized
- init_id ¶
-
The event ID of the OrderInitialized event.
- Returns :
-
UUID4
- instrument_id ¶
-
The order instrument ID.
- Returns :
-
InstrumentId
- is_aggressive ¶
-
Return whether the order is aggressive ( order_type is
MARKET
).- Returns :
-
bool
- is_buy ¶
-
Return whether the order side is
BUY
.- Returns :
-
bool
- is_canceled ¶
-
Return whether current status is
CANCELED
.- Returns :
-
bool
- is_child_order ¶
-
Return whether the order has a parent order.
- Returns :
-
bool
- is_closed ¶
-
Return whether the order is closed.
An order is considered closed when its status can no longer change. The possible statuses of closed orders include;
-
DENIED
-
REJECTED
-
CANCELED
-
EXPIRED
-
FILLED
- Returns :
-
bool
-
- is_contingency ¶
-
Return whether the order has a contingency ( contingency_type is not
NO_CONTINGENCY
).- Returns :
-
bool
- is_emulated ¶
-
Return whether the order is emulated and held in the local system.
- Returns :
-
bool
- is_inflight ¶
-
Return whether the order is in-flight (order request sent to the trading venue).
An order is considered in-flight when its status is any of;
-
SUBMITTED
-
PENDING_CANCEL
-
PENDING_UPDATE
- Returns :
-
bool
Warning
An emulated order is never considered in-flight.
-
- is_open ¶
-
Return whether the order is open at the trading venue.
An order is considered open when its status is any of;
-
ACCEPTED
-
TRIGGERED
-
PENDING_CANCEL
-
PENDING_UPDATE
-
PARTIALLY_FILLED
- Returns :
-
bool
Warning
An emulated order is never considered open.
-
- is_parent_order ¶
-
Return whether the order has at least one child order.
- Returns :
-
bool
- is_passive ¶
-
Return whether the order is passive ( order_type not
MARKET
).- Returns :
-
bool
- is_pending_cancel ¶
-
Return whether the current status is
PENDING_CANCEL
.- Returns :
-
bool
- is_pending_update ¶
-
Return whether the current status is
PENDING_UPDATE
.- Returns :
-
bool
- is_post_only ¶
-
If the order will only provide liquidity (make a market).
- Returns :
-
bool
- is_reduce_only ¶
-
If the order carries the ‘reduce-only’ execution instruction.
- Returns :
-
bool
- is_sell ¶
-
Return whether the order side is
SELL
.- Returns :
-
bool
- is_triggered ¶
-
If the order has been triggered.
- Returns :
-
bool
- last_event ¶
-
Return the last event applied to the order.
- Returns :
-
OrderEvent
- last_trade_id ¶
-
The orders last trade match ID.
- Returns :
-
TradeId or
None
- leaves_qty ¶
-
The order total leaves quantity.
- Returns :
-
Quantity
- linked_order_ids ¶
-
The orders linked client order ID(s).
- Returns :
-
list[ClientOrderId] or
None
- liquidity_side ¶
-
The order liquidity side.
- Returns :
-
LiquiditySide
- static opposite_side ( OrderSide side ) OrderSide ¶
-
Return the opposite order side from the given side.
- Parameters :
-
side (OrderSide {
BUY
,SELL
}) – The original order side. - Returns :
-
OrderSide
- Raises :
-
ValueError – If side is invalid.
- order_list_id ¶
-
The order list ID associated with the order.
- Returns :
-
OrderListId or
None
- order_type ¶
-
The order type.
- Returns :
-
OrderType
- parent_order_id ¶
-
The parent client order ID.
- Returns :
-
ClientOrderId or
None
- position_id ¶
-
The position ID associated with the order.
- Returns :
-
PositionId or
None
- price ¶
-
The order price (LIMIT).
- Returns :
-
Price
- quantity ¶
-
The order quantity.
- Returns :
-
Quantity
- side ¶
-
The order side.
- Returns :
-
OrderSide
- side_string ¶
-
Return the orders side as a string.
- Returns :
-
str
- signed_decimal_qty ( self ) ¶
-
Return a signed decimal representation of the remaining quantity.
-
If the order is a BUY, the value is positive (e.g. Decimal(‘10.25’))
-
If the order is a SELL, the value is negative (e.g. Decimal(‘-10.25’))
- Returns :
-
Decimal
-
- slippage ¶
-
The order total price slippage.
- Returns :
-
double
- status ¶
-
Return the orders current status.
- Returns :
-
OrderStatus
- strategy_id ¶
-
The strategy ID associated with the order.
- Returns :
-
StrategyId
- symbol ¶
-
Return the orders ticker symbol.
- Returns :
-
Symbol
- tags ¶
-
The order custom user tags.
- Returns :
-
str or
None
- time_in_force ¶
-
The order time in force.
- Returns :
-
TimeInForce
- to_dict ( self ) dict ¶
-
Return a dictionary representation of this object.
- Returns :
-
dict[str, object]
- trade_ids ¶
-
Return the trade match IDs.
- Returns :
-
list[TradeId]
- trader_id ¶
-
The trader ID associated with the position.
- Returns :
-
TraderId
- trigger_price ¶
-
The order trigger price (STOP).
- Returns :
-
Price
- trigger_type ¶
-
The trigger type for the order.
- Returns :
-
TriggerType
- ts_init ¶
-
The UNIX timestamp (nanoseconds) when the object was initialized.
- Returns :
-
uint64_t
- ts_last ¶
-
The UNIX timestamp (nanoseconds) when the last fill occurred (0 for no fill).
- Returns :
-
uint64_t
- ts_triggered ¶
-
The UNIX timestamp (nanoseconds) when the order was triggered (0 if not triggered).
- Returns :
-
uint64_t
- venue ¶
-
Return the orders trading venue.
- Returns :
-
Venue
- venue_order_id ¶
-
The venue assigned order ID.
- Returns :
-
VenueOrderId or
None
- venue_order_ids ¶
-
Return the venue order IDs.
- Returns :
-
list[VenueOrderId]
- would_reduce_only ( self , PositionSide position_side , Quantity position_qty ) bool ¶
-
Whether the current order would only reduce the given position if applied in full.
- Parameters :
-
-
position_side (PositionSide {
FLAT
,LONG
,SHORT
}) – The side of the position to check against. -
position_qty ( Quantity ) – The quantity of the position to check against.
-
- Returns :
-
bool
- class MarketToLimitOrder ( TraderId trader_id , StrategyId strategy_id , InstrumentId instrument_id , ClientOrderId client_order_id , OrderSide order_side , Quantity quantity , UUID4 init_id , uint64_t ts_init , TimeInForce time_in_force=TimeInForce.GTC , uint64_t expire_time_ns=0 , bool reduce_only=False , Quantity display_qty=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 , unicode tags=None ) ¶
-
Bases:
Order
Represents a Market-To-Limit (MTL) order.
A Market-to-Limit (MTL) order is submitted as a market order to execute at the current best market price. If the order is only partially filled, the remainder of the order is canceled and re-submitted as a Limit order with the limit price equal to the price at which the filled portion of the order executed.
- 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).
-
init_id ( UUID4 ) – The order initialization event ID.
-
ts_init ( uint64_t ) – The 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 ) ) – The UNIX timestamp (nanoseconds) when the order will expire.
-
reduce_only ( bool , default False ) – If the order carries the ‘reduce-only’ execution instruction.
-
display_qty ( Quantity , optional ) – The quantity of the limit order to display on the public book (iceberg).
-
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 ( str , optional ) – The custom user tags for the order. These are optional and can contain any arbitrary delimiter if required.
-
- Raises :
-
-
ValueError – If order_side is
NO_ORDER_SIDE
. -
ValueError – If quantity is not positive (> 0).
-
ValueError – If time_in_force is
AT_THE_OPEN
orAT_THE_CLOSE
.
-
References
https://www.interactivebrokers.com/en/trading/orders/mtl.php
- account_id ¶
-
The account ID associated with the order.
- Returns :
-
AccountId or
None
- apply ( self , OrderEvent event ) void ¶
-
Apply the given order event to the order.
- Parameters :
-
event ( OrderEvent ) – The order event to apply.
- Raises :
-
-
ValueError – If self.client_order_id is not equal to event.client_order_id .
-
ValueError – If self.venue_order_id and event.venue_order_id are both not
None
, and are not equal. -
InvalidStateTrigger – If event is not a valid trigger from the current order.status .
-
KeyError – If event is OrderFilled and event.trade_id already applied to the order.
-
- avg_px ¶
-
The order average fill price.
- Returns :
-
double
- client_order_id ¶
-
The client order ID.
- Returns :
-
ClientOrderId
- static closing_side ( PositionSide position_side ) OrderSide ¶
-
Return the order side needed to close a position with the given side.
- Parameters :
-
position_side (PositionSide {
LONG
,SHORT
}) – The side of the position to close. - Returns :
-
OrderSide
- Raises :
-
ValueError – If position_side is
FLAT
or invalid.
- contingency_type ¶
-
The orders contingency type.
- Returns :
-
ContingencyType
- display_qty ¶
-
The quantity of the limit order to display on the public book (iceberg).
- Returns :
-
Quantity or
None
- emulation_trigger ¶
-
The order emulation trigger type.
- Returns :
-
TriggerType
- event_count ¶
-
Return the count of events applied to the order.
- Returns :
-
int
- events ¶
-
Return the order events.
- Returns :
-
list[OrderEvent]
- exec_algorithm_id ¶
-
The execution algorithm ID for the order.
- Returns :
-
ExecAlgorithmId or
None
- exec_algorithm_params ¶
-
The execution algorithm parameters for the order.
- Returns :
-
dict[str, Any] or
None
- exec_spawn_id ¶
-
The execution algorithm spawning client order ID.
- Returns :
-
ClientOrderId or
None
- expire_time ¶
-
Return the expire time for the order (UTC).
- Returns :
-
datetime or
None
- expire_time_ns ¶
-
The order expiration (UNIX epoch nanoseconds), zero for no expiration.
- Returns :
-
uint64_t
- filled_qty ¶
-
The order total filled quantity.
- Returns :
-
Quantity
- has_price ¶
-
Return whether the order has a price property.
- Returns :
-
bool
- has_trigger_price ¶
-
Return whether the order has a trigger_price property.
- Returns :
-
bool
- info ( self ) unicode ¶
-
Return a summary description of the order.
- Returns :
-
str
- init_event ¶
-
Return the initialization event for the order.
- Returns :
-
OrderInitialized
- init_id ¶
-
The event ID of the OrderInitialized event.
- Returns :
-
UUID4
- instrument_id ¶
-
The order instrument ID.
- Returns :
-
InstrumentId
- is_aggressive ¶
-
Return whether the order is aggressive ( order_type is
MARKET
).- Returns :
-
bool
- is_buy ¶
-
Return whether the order side is
BUY
.- Returns :
-
bool
- is_canceled ¶
-
Return whether current status is
CANCELED
.- Returns :
-
bool
- is_child_order ¶
-
Return whether the order has a parent order.
- Returns :
-
bool
- is_closed ¶
-
Return whether the order is closed.
An order is considered closed when its status can no longer change. The possible statuses of closed orders include;
-
DENIED
-
REJECTED
-
CANCELED
-
EXPIRED
-
FILLED
- Returns :
-
bool
-
- is_contingency ¶
-
Return whether the order has a contingency ( contingency_type is not
NO_CONTINGENCY
).- Returns :
-
bool
- is_emulated ¶
-
Return whether the order is emulated and held in the local system.
- Returns :
-
bool
- is_inflight ¶
-
Return whether the order is in-flight (order request sent to the trading venue).
An order is considered in-flight when its status is any of;
-
SUBMITTED
-
PENDING_CANCEL
-
PENDING_UPDATE
- Returns :
-
bool
Warning
An emulated order is never considered in-flight.
-
- is_open ¶
-
Return whether the order is open at the trading venue.
An order is considered open when its status is any of;
-
ACCEPTED
-
TRIGGERED
-
PENDING_CANCEL
-
PENDING_UPDATE
-
PARTIALLY_FILLED
- Returns :
-
bool
Warning
An emulated order is never considered open.
-
- is_parent_order ¶
-
Return whether the order has at least one child order.
- Returns :
-
bool
- is_passive ¶
-
Return whether the order is passive ( order_type not
MARKET
).- Returns :
-
bool
- is_pending_cancel ¶
-
Return whether the current status is
PENDING_CANCEL
.- Returns :
-
bool
- is_pending_update ¶
-
Return whether the current status is
PENDING_UPDATE
.- Returns :
-
bool
- is_post_only ¶
-
If the order will only provide liquidity (make a market).
- Returns :
-
bool
- is_reduce_only ¶
-
If the order carries the ‘reduce-only’ execution instruction.
- Returns :
-
bool
- is_sell ¶
-
Return whether the order side is
SELL
.- Returns :
-
bool
- last_event ¶
-
Return the last event applied to the order.
- Returns :
-
OrderEvent
- last_trade_id ¶
-
The orders last trade match ID.
- Returns :
-
TradeId or
None
- leaves_qty ¶
-
The order total leaves quantity.
- Returns :
-
Quantity
- linked_order_ids ¶
-
The orders linked client order ID(s).
- Returns :
-
list[ClientOrderId] or
None
- liquidity_side ¶
-
The order liquidity side.
- Returns :
-
LiquiditySide
- static opposite_side ( OrderSide side ) OrderSide ¶
-
Return the opposite order side from the given side.
- Parameters :
-
side (OrderSide {
BUY
,SELL
}) – The original order side. - Returns :
-
OrderSide
- Raises :
-
ValueError – If side is invalid.
- order_list_id ¶
-
The order list ID associated with the order.
- Returns :
-
OrderListId or
None
- order_type ¶
-
The order type.
- Returns :
-
OrderType
- parent_order_id ¶
-
The parent client order ID.
- Returns :
-
ClientOrderId or
None
- position_id ¶
-
The position ID associated with the order.
- Returns :
-
PositionId or
None
- price ¶
-
The order price (LIMIT).
- Returns :
-
Price or
None
- quantity ¶
-
The order quantity.
- Returns :
-
Quantity
- side ¶
-
The order side.
- Returns :
-
OrderSide
- side_string ¶
-
Return the orders side as a string.
- Returns :
-
str
- signed_decimal_qty ( self ) ¶
-
Return a signed decimal representation of the remaining quantity.
-
If the order is a BUY, the value is positive (e.g. Decimal(‘10.25’))
-
If the order is a SELL, the value is negative (e.g. Decimal(‘-10.25’))
- Returns :
-
Decimal
-
- slippage ¶
-
The order total price slippage.
- Returns :
-
double
- status ¶
-
Return the orders current status.
- Returns :
-
OrderStatus
- strategy_id ¶
-
The strategy ID associated with the order.
- Returns :
-
StrategyId
- symbol ¶
-
Return the orders ticker symbol.
- Returns :
-
Symbol
- tags ¶
-
The order custom user tags.
- Returns :
-
str or
None
- time_in_force ¶
-
The order time in force.
- Returns :
-
TimeInForce
- to_dict ( self ) dict ¶
-
Return a dictionary representation of this object.
- Returns :
-
dict[str, object]
- trade_ids ¶
-
Return the trade match IDs.
- Returns :
-
list[TradeId]
- trader_id ¶
-
The trader ID associated with the position.
- Returns :
-
TraderId
- ts_init ¶
-
The UNIX timestamp (nanoseconds) when the object was initialized.
- Returns :
-
uint64_t
- ts_last ¶
-
The UNIX timestamp (nanoseconds) when the last fill occurred (0 for no fill).
- Returns :
-
uint64_t
- venue ¶
-
Return the orders trading venue.
- Returns :
-
Venue
- venue_order_id ¶
-
The venue assigned order ID.
- Returns :
-
VenueOrderId or
None
- venue_order_ids ¶
-
Return the venue order IDs.
- Returns :
-
list[VenueOrderId]
- would_reduce_only ( self , PositionSide position_side , Quantity position_qty ) bool ¶
-
Whether the current order would only reduce the given position if applied in full.
- Parameters :
-
-
position_side (PositionSide {
FLAT
,LONG
,SHORT
}) – The side of the position to check against. -
position_qty ( Quantity ) – The quantity of the position to check against.
-
- Returns :
-
bool
- class MarketIfTouchedOrder ( TraderId trader_id , StrategyId strategy_id , InstrumentId instrument_id , ClientOrderId client_order_id , OrderSide order_side , Quantity quantity , 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 reduce_only=False , TriggerType emulation_trigger=TriggerType.NO_TRIGGER , 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 , unicode tags=None ) ¶
-
Bases:
Order
Represents a Market-If-Touched (MIT) conditional order.
A Market-If-Touched (MIT) is an order to BUY (or SELL) an instrument below (or above) the market. This order is held in the system until the trigger price is touched, and is then submitted as a market order. An MIT order is similar to a Stop-Order, except that an MIT SELL order is placed above the current market price, and a stop SELL order is placed below.
- 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).
-
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 ) – The 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 ) ) – The UNIX timestamp (nanoseconds) when the order will expire.
-
reduce_only ( bool , default False ) – If the order carries the ‘reduce-only’ execution instruction.
-
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 ( str , optional ) – The custom user tags for the order. These are optional and can contain any arbitrary delimiter if required.
-
- 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.
-
References
https://www.interactivebrokers.com/en/trading/orders/mit.php
- account_id ¶
-
The account ID associated with the order.
- Returns :
-
AccountId or
None
- apply ( self , OrderEvent event ) void ¶
-
Apply the given order event to the order.
- Parameters :
-
event ( OrderEvent ) – The order event to apply.
- Raises :
-
-
ValueError – If self.client_order_id is not equal to event.client_order_id .
-
ValueError – If self.venue_order_id and event.venue_order_id are both not
None
, and are not equal. -
InvalidStateTrigger – If event is not a valid trigger from the current order.status .
-
KeyError – If event is OrderFilled and event.trade_id already applied to the order.
-
- avg_px ¶
-
The order average fill price.
- Returns :
-
double
- client_order_id ¶
-
The client order ID.
- Returns :
-
ClientOrderId
- static closing_side ( PositionSide position_side ) OrderSide ¶
-
Return the order side needed to close a position with the given side.
- Parameters :
-
position_side (PositionSide {
LONG
,SHORT
}) – The side of the position to close. - Returns :
-
OrderSide
- Raises :
-
ValueError – If position_side is
FLAT
or invalid.
- contingency_type ¶
-
The orders contingency type.
- Returns :
-
ContingencyType
- emulation_trigger ¶
-
The order emulation trigger type.
- Returns :
-
TriggerType
- event_count ¶
-
Return the count of events applied to the order.
- Returns :
-
int
- events ¶
-
Return the order events.
- Returns :
-
list[OrderEvent]
- exec_algorithm_id ¶
-
The execution algorithm ID for the order.
- Returns :
-
ExecAlgorithmId or
None
- exec_algorithm_params ¶
-
The execution algorithm parameters for the order.
- Returns :
-
dict[str, Any] or
None
- exec_spawn_id ¶
-
The execution algorithm spawning client order ID.
- Returns :
-
ClientOrderId or
None
- expire_time ¶
-
Return the expire time for the order (UTC).
- Returns :
-
datetime or
None
- expire_time_ns ¶
-
The order expiration (UNIX epoch nanoseconds), zero for no expiration.
- Returns :
-
uint64_t
- filled_qty ¶
-
The order total filled quantity.
- Returns :
-
Quantity
- has_price ¶
-
Return whether the order has a price property.
- Returns :
-
bool
- has_trigger_price ¶
-
Return whether the order has a trigger_price property.
- Returns :
-
bool
- info ( self ) unicode ¶
-
Return a summary description of the order.
- Returns :
-
str
- init_event ¶
-
Return the initialization event for the order.
- Returns :
-
OrderInitialized
- init_id ¶
-
The event ID of the OrderInitialized event.
- Returns :
-
UUID4
- instrument_id ¶
-
The order instrument ID.
- Returns :
-
InstrumentId
- is_aggressive ¶
-
Return whether the order is aggressive ( order_type is
MARKET
).- Returns :
-
bool
- is_buy ¶
-
Return whether the order side is
BUY
.- Returns :
-
bool
- is_canceled ¶
-
Return whether current status is
CANCELED
.- Returns :
-
bool
- is_child_order ¶
-
Return whether the order has a parent order.
- Returns :
-
bool
- is_closed ¶
-
Return whether the order is closed.
An order is considered closed when its status can no longer change. The possible statuses of closed orders include;
-
DENIED
-
REJECTED
-
CANCELED
-
EXPIRED
-
FILLED
- Returns :
-
bool
-
- is_contingency ¶
-
Return whether the order has a contingency ( contingency_type is not
NO_CONTINGENCY
).- Returns :
-
bool
- is_emulated ¶
-
Return whether the order is emulated and held in the local system.
- Returns :
-
bool
- is_inflight ¶
-
Return whether the order is in-flight (order request sent to the trading venue).
An order is considered in-flight when its status is any of;
-
SUBMITTED
-
PENDING_CANCEL
-
PENDING_UPDATE
- Returns :
-
bool
Warning
An emulated order is never considered in-flight.
-
- is_open ¶
-
Return whether the order is open at the trading venue.
An order is considered open when its status is any of;
-
ACCEPTED
-
TRIGGERED
-
PENDING_CANCEL
-
PENDING_UPDATE
-
PARTIALLY_FILLED
- Returns :
-
bool
Warning
An emulated order is never considered open.
-
- is_parent_order ¶
-
Return whether the order has at least one child order.
- Returns :
-
bool
- is_passive ¶
-
Return whether the order is passive ( order_type not
MARKET
).- Returns :
-
bool
- is_pending_cancel ¶
-
Return whether the current status is
PENDING_CANCEL
.- Returns :
-
bool
- is_pending_update ¶
-
Return whether the current status is
PENDING_UPDATE
.- Returns :
-
bool
- is_post_only ¶
-
If the order will only provide liquidity (make a market).
- Returns :
-
bool
- is_reduce_only ¶
-
If the order carries the ‘reduce-only’ execution instruction.
- Returns :
-
bool
- is_sell ¶
-
Return whether the order side is
SELL
.- Returns :
-
bool
- last_event ¶
-
Return the last event applied to the order.
- Returns :
-
OrderEvent
- last_trade_id ¶
-
The orders last trade match ID.
- Returns :
-
TradeId or
None
- leaves_qty ¶
-
The order total leaves quantity.
- Returns :
-
Quantity
- linked_order_ids ¶
-
The orders linked client order ID(s).
- Returns :
-
list[ClientOrderId] or
None
- liquidity_side ¶
-
The order liquidity side.
- Returns :
-
LiquiditySide
- static opposite_side ( OrderSide side ) OrderSide ¶
-
Return the opposite order side from the given side.
- Parameters :
-
side (OrderSide {
BUY
,SELL
}) – The original order side. - Returns :
-
OrderSide
- Raises :
-
ValueError – If side is invalid.
- order_list_id ¶
-
The order list ID associated with the order.
- Returns :
-
OrderListId or
None
- order_type ¶
-
The order type.
- Returns :
-
OrderType
- parent_order_id ¶
-
The parent client order ID.
- Returns :
-
ClientOrderId or
None
- position_id ¶
-
The position ID associated with the order.
- Returns :
-
PositionId or
None
- quantity ¶
-
The order quantity.
- Returns :
-
Quantity
- side ¶
-
The order side.
- Returns :
-
OrderSide
- side_string ¶
-
Return the orders side as a string.
- Returns :
-
str
- signed_decimal_qty ( self ) ¶
-
Return a signed decimal representation of the remaining quantity.
-
If the order is a BUY, the value is positive (e.g. Decimal(‘10.25’))
-
If the order is a SELL, the value is negative (e.g. Decimal(‘-10.25’))
- Returns :
-
Decimal
-
- slippage ¶
-
The order total price slippage.
- Returns :
-
double
- status ¶
-
Return the orders current status.
- Returns :
-
OrderStatus
- strategy_id ¶
-
The strategy ID associated with the order.
- Returns :
-
StrategyId
- symbol ¶
-
Return the orders ticker symbol.
- Returns :
-
Symbol
- tags ¶
-
The order custom user tags.
- Returns :
-
str or
None
- time_in_force ¶
-
The order time in force.
- Returns :
-
TimeInForce
- to_dict ( self ) dict ¶
-
Return a dictionary representation of this object.
- Returns :
-
dict[str, object]
- trade_ids ¶
-
Return the trade match IDs.
- Returns :
-
list[TradeId]
- trader_id ¶
-
The trader ID associated with the position.
- Returns :
-
TraderId
- trigger_price ¶
-
The order trigger price (STOP).
- Returns :
-
Price
- trigger_type ¶
-
The trigger type for the order.
- Returns :
-
TriggerType
- ts_init ¶
-
The UNIX timestamp (nanoseconds) when the object was initialized.
- Returns :
-
uint64_t
- ts_last ¶
-
The UNIX timestamp (nanoseconds) when the last fill occurred (0 for no fill).
- Returns :
-
uint64_t
- venue ¶
-
Return the orders trading venue.
- Returns :
-
Venue
- venue_order_id ¶
-
The venue assigned order ID.
- Returns :
-
VenueOrderId or
None
- venue_order_ids ¶
-
Return the venue order IDs.
- Returns :
-
list[VenueOrderId]
- would_reduce_only ( self , PositionSide position_side , Quantity position_qty ) bool ¶
-
Whether the current order would only reduce the given position if applied in full.
- Parameters :
-
-
position_side (PositionSide {
FLAT
,LONG
,SHORT
}) – The side of the position to check against. -
position_qty ( Quantity ) – The quantity of the position to check against.
-
- Returns :
-
bool
- class 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 , Quantity display_qty=None , TriggerType emulation_trigger=TriggerType.NO_TRIGGER , 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 , unicode tags=None ) ¶
-
Bases:
Order
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 ) – The 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 ) ) – The 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. -
display_qty ( Quantity , optional ) – The quantity of the
LIMIT
order to display on the public book (iceberg). -
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 ( str , optional ) – The custom user tags for the order. These are optional and can contain any arbitrary delimiter if required.
-
- 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 .
-
References
https://www.interactivebrokers.com/en/trading/orders/lit.php
- account_id ¶
-
The account ID associated with the order.
- Returns :
-
AccountId or
None
- apply ( self , OrderEvent event ) void ¶
-
Apply the given order event to the order.
- Parameters :
-
event ( OrderEvent ) – The order event to apply.
- Raises :
-
-
ValueError – If self.client_order_id is not equal to event.client_order_id .
-
ValueError – If self.venue_order_id and event.venue_order_id are both not
None
, and are not equal. -
InvalidStateTrigger – If event is not a valid trigger from the current order.status .
-
KeyError – If event is OrderFilled and event.trade_id already applied to the order.
-
- avg_px ¶
-
The order average fill price.
- Returns :
-
double
- client_order_id ¶
-
The client order ID.
- Returns :
-
ClientOrderId
- static closing_side ( PositionSide position_side ) OrderSide ¶
-
Return the order side needed to close a position with the given side.
- Parameters :
-
position_side (PositionSide {
LONG
,SHORT
}) – The side of the position to close. - Returns :
-
OrderSide
- Raises :
-
ValueError – If position_side is
FLAT
or invalid.
- contingency_type ¶
-
The orders contingency type.
- Returns :
-
ContingencyType
- display_qty ¶
-
The quantity of the
LIMIT
order to display on the public book (iceberg).- Returns :
-
Quantity or
None
- emulation_trigger ¶
-
The order emulation trigger type.
- Returns :
-
TriggerType
- event_count ¶
-
Return the count of events applied to the order.
- Returns :
-
int
- events ¶
-
Return the order events.
- Returns :
-
list[OrderEvent]
- exec_algorithm_id ¶
-
The execution algorithm ID for the order.
- Returns :
-
ExecAlgorithmId or
None
- exec_algorithm_params ¶
-
The execution algorithm parameters for the order.
- Returns :
-
dict[str, Any] or
None
- exec_spawn_id ¶
-
The execution algorithm spawning client order ID.
- Returns :
-
ClientOrderId or
None
- expire_time ¶
-
Return the expire time for the order (UTC).
- Returns :
-
datetime or
None
- expire_time_ns ¶
-
The order expiration (UNIX epoch nanoseconds), zero for no expiration.
- Returns :
-
uint64_t
- filled_qty ¶
-
The order total filled quantity.
- Returns :
-
Quantity
- has_price ¶
-
Return whether the order has a price property.
- Returns :
-
bool
- has_trigger_price ¶
-
Return whether the order has a trigger_price property.
- Returns :
-
bool
- info ( self ) unicode ¶
-
Return a summary description of the order.
- Returns :
-
str
- init_event ¶
-
Return the initialization event for the order.
- Returns :
-
OrderInitialized
- init_id ¶
-
The event ID of the OrderInitialized event.
- Returns :
-
UUID4
- instrument_id ¶
-
The order instrument ID.
- Returns :
-
InstrumentId
- is_aggressive ¶
-
Return whether the order is aggressive ( order_type is
MARKET
).- Returns :
-
bool
- is_buy ¶
-
Return whether the order side is
BUY
.- Returns :
-
bool
- is_canceled ¶
-
Return whether current status is
CANCELED
.- Returns :
-
bool
- is_child_order ¶
-
Return whether the order has a parent order.
- Returns :
-
bool
- is_closed ¶
-
Return whether the order is closed.
An order is considered closed when its status can no longer change. The possible statuses of closed orders include;
-
DENIED
-
REJECTED
-
CANCELED
-