Order Definitions


Orders

The specification of all Orders supported by the platform.

Implemented by: MarketOrder, FixedPriceOrder, LimitOrder, StopOrder, MarketIfTouchedOrder, TakeProfitOrder, StopLossOrder, GuaranteedStopLossOrder, TrailingStopLossOrder

Order is an application/json object with the following Schema:

{
    # 
    # The Order’s identifier, unique within the Order’s Account.
    # 
    id : (OrderID),

    # 
    # The time when the Order was created.
    # 
    createTime : (DateTime),

    # 
    # The current state of the Order.
    # 
    state : (OrderState),

    # 
    # The client extensions of the Order. Do not set, modify, or delete
    # clientExtensions if your account is associated with MT4.
    # 
    clientExtensions : (ClientExtensions)
}

MarketOrder is an application/json object with the following Schema:

{
    # 
    # The Order’s identifier, unique within the Order’s Account.
    # 
    id : (OrderID),

    # 
    # The time when the Order was created.
    # 
    createTime : (DateTime),

    # 
    # The current state of the Order.
    # 
    state : (OrderState),

    # 
    # The client extensions of the Order. Do not set, modify, or delete
    # clientExtensions if your account is associated with MT4.
    # 
    clientExtensions : (ClientExtensions),

    # 
    # The type of the Order. Always set to “MARKET” for Market Orders.
    # 
    type : (OrderType, default=MARKET),

    # 
    # The Market Order’s Instrument.
    # 
    instrument : (InstrumentName, required),

    # 
    # The quantity requested to be filled by the Market Order. A positive
    # number of units results in a long Order, and a negative number of units
    # results in a short Order.
    # 
    units : (DecimalNumber, required),

    # 
    # The time-in-force requested for the Market Order. Restricted to FOK or
    # IOC for a MarketOrder.
    # 
    timeInForce : (TimeInForce, required, default=FOK),

    # 
    # The worst price that the client is willing to have the Market Order
    # filled at.
    # 
    priceBound : (PriceValue),

    # 
    # Specification of how Positions in the Account are modified when the Order
    # is filled.
    # 
    positionFill : (OrderPositionFill, required, default=DEFAULT),

    # 
    # Details of the Trade requested to be closed, only provided when the
    # Market Order is being used to explicitly close a Trade.
    # 
    tradeClose : (MarketOrderTradeClose),

    # 
    # Details of the long Position requested to be closed out, only provided
    # when a Market Order is being used to explicitly closeout a long Position.
    # 
    longPositionCloseout : (MarketOrderPositionCloseout),

    # 
    # Details of the short Position requested to be closed out, only provided
    # when a Market Order is being used to explicitly closeout a short
    # Position.
    # 
    shortPositionCloseout : (MarketOrderPositionCloseout),

    # 
    # Details of the Margin Closeout that this Market Order was created for
    # 
    marginCloseout : (MarketOrderMarginCloseout),

    # 
    # Details of the delayed Trade close that this Market Order was created for
    # 
    delayedTradeClose : (MarketOrderDelayedTradeClose),

    # 
    # TakeProfitDetails specifies the details of a Take Profit Order to be
    # created on behalf of a client. This may happen when an Order is filled
    # that opens a Trade requiring a Take Profit, or when a Trade’s dependent
    # Take Profit Order is modified directly through the Trade.
    # 
    takeProfitOnFill : (TakeProfitDetails),

    # 
    # StopLossDetails specifies the details of a Stop Loss Order to be created
    # on behalf of a client. This may happen when an Order is filled that opens
    # a Trade requiring a Stop Loss, or when a Trade’s dependent Stop Loss
    # Order is modified directly through the Trade.
    # 
    stopLossOnFill : (StopLossDetails),

    # 
    # GuaranteedStopLossDetails specifies the details of a Guaranteed Stop Loss
    # Order to be created on behalf of a client. This may happen when an Order
    # is filled that opens a Trade requiring a Guaranteed Stop Loss, or when a
    # Trade’s dependent Guaranteed Stop Loss Order is modified directly through
    # the Trade.
    # 
    guaranteedStopLossOnFill : (GuaranteedStopLossDetails),

    # 
    # TrailingStopLossDetails specifies the details of a Trailing Stop Loss
    # Order to be created on behalf of a client. This may happen when an Order
    # is filled that opens a Trade requiring a Trailing Stop Loss, or when a
    # Trade’s dependent Trailing Stop Loss Order is modified directly through
    # the Trade.
    # 
    trailingStopLossOnFill : (TrailingStopLossDetails),

    # 
    # Client Extensions to add to the Trade created when the Order is filled
    # (if such a Trade is created). Do not set, modify, or delete
    # tradeClientExtensions if your account is associated with MT4.
    # 
    tradeClientExtensions : (ClientExtensions),

    # 
    # ID of the Transaction that filled this Order (only provided when the
    # Order’s state is FILLED)
    # 
    fillingTransactionID : (TransactionID),

    # 
    # Date/time when the Order was filled (only provided when the Order’s state
    # is FILLED)
    # 
    filledTime : (DateTime),

    # 
    # Trade ID of Trade opened when the Order was filled (only provided when
    # the Order’s state is FILLED and a Trade was opened as a result of the
    # fill)
    # 
    tradeOpenedID : (TradeID),

    # 
    # Trade ID of Trade reduced when the Order was filled (only provided when
    # the Order’s state is FILLED and a Trade was reduced as a result of the
    # fill)
    # 
    tradeReducedID : (TradeID),

    # 
    # Trade IDs of Trades closed when the Order was filled (only provided when
    # the Order’s state is FILLED and one or more Trades were closed as a
    # result of the fill)
    # 
    tradeClosedIDs : (Array[TradeID]),

    # 
    # ID of the Transaction that cancelled the Order (only provided when the
    # Order’s state is CANCELLED)
    # 
    cancellingTransactionID : (TransactionID),

    # 
    # Date/time when the Order was cancelled (only provided when the state of
    # the Order is CANCELLED)
    # 
    cancelledTime : (DateTime)
}

FixedPriceOrder is an application/json object with the following Schema:

{
    # 
    # The Order’s identifier, unique within the Order’s Account.
    # 
    id : (OrderID),

    # 
    # The time when the Order was created.
    # 
    createTime : (DateTime),

    # 
    # The current state of the Order.
    # 
    state : (OrderState),

    # 
    # The client extensions of the Order. Do not set, modify, or delete
    # clientExtensions if your account is associated with MT4.
    # 
    clientExtensions : (ClientExtensions),

    # 
    # The type of the Order. Always set to “FIXED_PRICE” for Fixed Price
    # Orders.
    # 
    type : (OrderType, default=FIXED_PRICE),

    # 
    # The Fixed Price Order’s Instrument.
    # 
    instrument : (InstrumentName, required),

    # 
    # The quantity requested to be filled by the Fixed Price Order. A positive
    # number of units results in a long Order, and a negative number of units
    # results in a short Order.
    # 
    units : (DecimalNumber, required),

    # 
    # The price specified for the Fixed Price Order. This price is the exact
    # price that the Fixed Price Order will be filled at.
    # 
    price : (PriceValue, required),

    # 
    # Specification of how Positions in the Account are modified when the Order
    # is filled.
    # 
    positionFill : (OrderPositionFill, required, default=DEFAULT),

    # 
    # The state that the trade resulting from the Fixed Price Order should be
    # set to.
    # 
    tradeState : (string, required),

    # 
    # TakeProfitDetails specifies the details of a Take Profit Order to be
    # created on behalf of a client. This may happen when an Order is filled
    # that opens a Trade requiring a Take Profit, or when a Trade’s dependent
    # Take Profit Order is modified directly through the Trade.
    # 
    takeProfitOnFill : (TakeProfitDetails),

    # 
    # StopLossDetails specifies the details of a Stop Loss Order to be created
    # on behalf of a client. This may happen when an Order is filled that opens
    # a Trade requiring a Stop Loss, or when a Trade’s dependent Stop Loss
    # Order is modified directly through the Trade.
    # 
    stopLossOnFill : (StopLossDetails),

    # 
    # GuaranteedStopLossDetails specifies the details of a Guaranteed Stop Loss
    # Order to be created on behalf of a client. This may happen when an Order
    # is filled that opens a Trade requiring a Guaranteed Stop Loss, or when a
    # Trade’s dependent Guaranteed Stop Loss Order is modified directly through
    # the Trade.
    # 
    guaranteedStopLossOnFill : (GuaranteedStopLossDetails),

    # 
    # TrailingStopLossDetails specifies the details of a Trailing Stop Loss
    # Order to be created on behalf of a client. This may happen when an Order
    # is filled that opens a Trade requiring a Trailing Stop Loss, or when a
    # Trade’s dependent Trailing Stop Loss Order is modified directly through
    # the Trade.
    # 
    trailingStopLossOnFill : (TrailingStopLossDetails),

    # 
    # Client Extensions to add to the Trade created when the Order is filled
    # (if such a Trade is created). Do not set, modify, or delete
    # tradeClientExtensions if your account is associated with MT4.
    # 
    tradeClientExtensions : (ClientExtensions),

    # 
    # ID of the Transaction that filled this Order (only provided when the
    # Order’s state is FILLED)
    # 
    fillingTransactionID : (TransactionID),

    # 
    # Date/time when the Order was filled (only provided when the Order’s state
    # is FILLED)
    # 
    filledTime : (DateTime),

    # 
    # Trade ID of Trade opened when the Order was filled (only provided when
    # the Order’s state is FILLED and a Trade was opened as a result of the
    # fill)
    # 
    tradeOpenedID : (TradeID),

    # 
    # Trade ID of Trade reduced when the Order was filled (only provided when
    # the Order’s state is FILLED and a Trade was reduced as a result of the
    # fill)
    # 
    tradeReducedID : (TradeID),

    # 
    # Trade IDs of Trades closed when the Order was filled (only provided when
    # the Order’s state is FILLED and one or more Trades were closed as a
    # result of the fill)
    # 
    tradeClosedIDs : (Array[TradeID]),

    # 
    # ID of the Transaction that cancelled the Order (only provided when the
    # Order’s state is CANCELLED)
    # 
    cancellingTransactionID : (TransactionID),

    # 
    # Date/time when the Order was cancelled (only provided when the state of
    # the Order is CANCELLED)
    # 
    cancelledTime : (DateTime)
}

LimitOrder is an application/json object with the following Schema:

{
    # 
    # The Order’s identifier, unique within the Order’s Account.
    # 
    id : (OrderID),

    # 
    # The time when the Order was created.
    # 
    createTime : (DateTime),

    # 
    # The current state of the Order.
    # 
    state : (OrderState),

    # 
    # The client extensions of the Order. Do not set, modify, or delete
    # clientExtensions if your account is associated with MT4.
    # 
    clientExtensions : (ClientExtensions),

    # 
    # The type of the Order. Always set to “LIMIT” for Limit Orders.
    # 
    type : (OrderType, default=LIMIT),

    # 
    # The Limit Order’s Instrument.
    # 
    instrument : (InstrumentName, required),

    # 
    # The quantity requested to be filled by the Limit Order. A positive number
    # of units results in a long Order, and a negative number of units results
    # in a short Order.
    # 
    units : (DecimalNumber, required),

    # 
    # The price threshold specified for the Limit Order. The Limit Order will
    # only be filled by a market price that is equal to or better than this
    # price.
    # 
    price : (PriceValue, required),

    # 
    # The time-in-force requested for the Limit Order.
    # 
    timeInForce : (TimeInForce, required, default=GTC),

    # 
    # The date/time when the Limit Order will be cancelled if its timeInForce
    # is “GTD”.
    # 
    gtdTime : (DateTime),

    # 
    # Specification of how Positions in the Account are modified when the Order
    # is filled.
    # 
    positionFill : (OrderPositionFill, required, default=DEFAULT),

    # 
    # Specification of which price component should be used when determining if
    # an Order should be triggered and filled. This allows Orders to be
    # triggered based on the bid, ask, mid, default (ask for buy, bid for sell)
    # or inverse (ask for sell, bid for buy) price depending on the desired
    # behaviour. Orders are always filled using their default price component.
    # This feature is only provided through the REST API. Clients who choose to
    # specify a non-default trigger condition will not see it reflected in any
    # of OANDA’s proprietary or partner trading platforms, their transaction
    # history or their account statements. OANDA platforms always assume that
    # an Order’s trigger condition is set to the default value when indicating
    # the distance from an Order’s trigger price, and will always provide the
    # default trigger condition when creating or modifying an Order. A special
    # restriction applies when creating a Guaranteed Stop Loss Order. In this
    # case the TriggerCondition value must either be “DEFAULT”, or the
    # “natural” trigger side “DEFAULT” results in. So for a Guaranteed Stop
    # Loss Order for a long trade valid values are “DEFAULT” and “BID”, and for
    # short trades “DEFAULT” and “ASK” are valid.
    # 
    triggerCondition : (OrderTriggerCondition, required, default=DEFAULT),

    # 
    # TakeProfitDetails specifies the details of a Take Profit Order to be
    # created on behalf of a client. This may happen when an Order is filled
    # that opens a Trade requiring a Take Profit, or when a Trade’s dependent
    # Take Profit Order is modified directly through the Trade.
    # 
    takeProfitOnFill : (TakeProfitDetails),

    # 
    # StopLossDetails specifies the details of a Stop Loss Order to be created
    # on behalf of a client. This may happen when an Order is filled that opens
    # a Trade requiring a Stop Loss, or when a Trade’s dependent Stop Loss
    # Order is modified directly through the Trade.
    # 
    stopLossOnFill : (StopLossDetails),

    # 
    # GuaranteedStopLossDetails specifies the details of a Guaranteed Stop Loss
    # Order to be created on behalf of a client. This may happen when an Order
    # is filled that opens a Trade requiring a Guaranteed Stop Loss, or when a
    # Trade’s dependent Guaranteed Stop Loss Order is modified directly through
    # the Trade.
    # 
    guaranteedStopLossOnFill : (GuaranteedStopLossDetails),

    # 
    # TrailingStopLossDetails specifies the details of a Trailing Stop Loss
    # Order to be created on behalf of a client. This may happen when an Order
    # is filled that opens a Trade requiring a Trailing Stop Loss, or when a
    # Trade’s dependent Trailing Stop Loss Order is modified directly through
    # the Trade.
    # 
    trailingStopLossOnFill : (TrailingStopLossDetails),

    # 
    # Client Extensions to add to the Trade created when the Order is filled
    # (if such a Trade is created). Do not set, modify, or delete
    # tradeClientExtensions if your account is associated with MT4.
    # 
    tradeClientExtensions : (ClientExtensions),

    # 
    # ID of the Transaction that filled this Order (only provided when the
    # Order’s state is FILLED)
    # 
    fillingTransactionID : (TransactionID),

    # 
    # Date/time when the Order was filled (only provided when the Order’s state
    # is FILLED)
    # 
    filledTime : (DateTime),

    # 
    # Trade ID of Trade opened when the Order was filled (only provided when
    # the Order’s state is FILLED and a Trade was opened as a result of the
    # fill)
    # 
    tradeOpenedID : (TradeID),

    # 
    # Trade ID of Trade reduced when the Order was filled (only provided when
    # the Order’s state is FILLED and a Trade was reduced as a result of the
    # fill)
    # 
    tradeReducedID : (TradeID),

    # 
    # Trade IDs of Trades closed when the Order was filled (only provided when
    # the Order’s state is FILLED and one or more Trades were closed as a
    # result of the fill)
    # 
    tradeClosedIDs : (Array[TradeID]),

    # 
    # ID of the Transaction that cancelled the Order (only provided when the
    # Order’s state is CANCELLED)
    # 
    cancellingTransactionID : (TransactionID),

    # 
    # Date/time when the Order was cancelled (only provided when the state of
    # the Order is CANCELLED)
    # 
    cancelledTime : (DateTime),

    # 
    # The ID of the Order that was replaced by this Order (only provided if
    # this Order was created as part of a cancel/replace).
    # 
    replacesOrderID : (OrderID),

    # 
    # The ID of the Order that replaced this Order (only provided if this Order
    # was cancelled as part of a cancel/replace).
    # 
    replacedByOrderID : (OrderID)
}

StopOrder is an application/json object with the following Schema:

{
    # 
    # The Order’s identifier, unique within the Order’s Account.
    # 
    id : (OrderID),

    # 
    # The time when the Order was created.
    # 
    createTime : (DateTime),

    # 
    # The current state of the Order.
    # 
    state : (OrderState),

    # 
    # The client extensions of the Order. Do not set, modify, or delete
    # clientExtensions if your account is associated with MT4.
    # 
    clientExtensions : (ClientExtensions),

    # 
    # The type of the Order. Always set to “STOP” for Stop Orders.
    # 
    type : (OrderType, default=STOP),

    # 
    # The Stop Order’s Instrument.
    # 
    instrument : (InstrumentName, required),

    # 
    # The quantity requested to be filled by the Stop Order. A positive number
    # of units results in a long Order, and a negative number of units results
    # in a short Order.
    # 
    units : (DecimalNumber, required),

    # 
    # The price threshold specified for the Stop Order. The Stop Order will
    # only be filled by a market price that is equal to or worse than this
    # price.
    # 
    price : (PriceValue, required),

    # 
    # The worst market price that may be used to fill this Stop Order. If the
    # market gaps and crosses through both the price and the priceBound, the
    # Stop Order will be cancelled instead of being filled.
    # 
    priceBound : (PriceValue),

    # 
    # The time-in-force requested for the Stop Order.
    # 
    timeInForce : (TimeInForce, required, default=GTC),

    # 
    # The date/time when the Stop Order will be cancelled if its timeInForce is
    # “GTD”.
    # 
    gtdTime : (DateTime),

    # 
    # Specification of how Positions in the Account are modified when the Order
    # is filled.
    # 
    positionFill : (OrderPositionFill, required, default=DEFAULT),

    # 
    # Specification of which price component should be used when determining if
    # an Order should be triggered and filled. This allows Orders to be
    # triggered based on the bid, ask, mid, default (ask for buy, bid for sell)
    # or inverse (ask for sell, bid for buy) price depending on the desired
    # behaviour. Orders are always filled using their default price component.
    # This feature is only provided through the REST API. Clients who choose to
    # specify a non-default trigger condition will not see it reflected in any
    # of OANDA’s proprietary or partner trading platforms, their transaction
    # history or their account statements. OANDA platforms always assume that
    # an Order’s trigger condition is set to the default value when indicating
    # the distance from an Order’s trigger price, and will always provide the
    # default trigger condition when creating or modifying an Order. A special
    # restriction applies when creating a Guaranteed Stop Loss Order. In this
    # case the TriggerCondition value must either be “DEFAULT”, or the
    # “natural” trigger side “DEFAULT” results in. So for a Guaranteed Stop
    # Loss Order for a long trade valid values are “DEFAULT” and “BID”, and for
    # short trades “DEFAULT” and “ASK” are valid.
    # 
    triggerCondition : (OrderTriggerCondition, required, default=DEFAULT),

    # 
    # TakeProfitDetails specifies the details of a Take Profit Order to be
    # created on behalf of a client. This may happen when an Order is filled
    # that opens a Trade requiring a Take Profit, or when a Trade’s dependent
    # Take Profit Order is modified directly through the Trade.
    # 
    takeProfitOnFill : (TakeProfitDetails),

    # 
    # StopLossDetails specifies the details of a Stop Loss Order to be created
    # on behalf of a client. This may happen when an Order is filled that opens
    # a Trade requiring a Stop Loss, or when a Trade’s dependent Stop Loss
    # Order is modified directly through the Trade.
    # 
    stopLossOnFill : (StopLossDetails),

    # 
    # GuaranteedStopLossDetails specifies the details of a Guaranteed Stop Loss
    # Order to be created on behalf of a client. This may happen when an Order
    # is filled that opens a Trade requiring a Guaranteed Stop Loss, or when a
    # Trade’s dependent Guaranteed Stop Loss Order is modified directly through
    # the Trade.
    # 
    guaranteedStopLossOnFill : (GuaranteedStopLossDetails),

    # 
    # TrailingStopLossDetails specifies the details of a Trailing Stop Loss
    # Order to be created on behalf of a client. This may happen when an Order
    # is filled that opens a Trade requiring a Trailing Stop Loss, or when a
    # Trade’s dependent Trailing Stop Loss Order is modified directly through
    # the Trade.
    # 
    trailingStopLossOnFill : (TrailingStopLossDetails),

    # 
    # Client Extensions to add to the Trade created when the Order is filled
    # (if such a Trade is created). Do not set, modify, or delete
    # tradeClientExtensions if your account is associated with MT4.
    # 
    tradeClientExtensions : (ClientExtensions),

    # 
    # ID of the Transaction that filled this Order (only provided when the
    # Order’s state is FILLED)
    # 
    fillingTransactionID : (TransactionID),

    # 
    # Date/time when the Order was filled (only provided when the Order’s state
    # is FILLED)
    # 
    filledTime : (DateTime),

    # 
    # Trade ID of Trade opened when the Order was filled (only provided when
    # the Order’s state is FILLED and a Trade was opened as a result of the
    # fill)
    # 
    tradeOpenedID : (TradeID),

    # 
    # Trade ID of Trade reduced when the Order was filled (only provided when
    # the Order’s state is FILLED and a Trade was reduced as a result of the
    # fill)
    # 
    tradeReducedID : (TradeID),

    # 
    # Trade IDs of Trades closed when the Order was filled (only provided when
    # the Order’s state is FILLED and one or more Trades were closed as a
    # result of the fill)
    # 
    tradeClosedIDs : (Array[TradeID]),

    # 
    # ID of the Transaction that cancelled the Order (only provided when the
    # Order’s state is CANCELLED)
    # 
    cancellingTransactionID : (TransactionID),

    # 
    # Date/time when the Order was cancelled (only provided when the state of
    # the Order is CANCELLED)
    # 
    cancelledTime : (DateTime),

    # 
    # The ID of the Order that was replaced by this Order (only provided if
    # this Order was created as part of a cancel/replace).
    # 
    replacesOrderID : (OrderID),

    # 
    # The ID of the Order that replaced this Order (only provided if this Order
    # was cancelled as part of a cancel/replace).
    # 
    replacedByOrderID : (OrderID)
}

MarketIfTouchedOrder is an application/json object with the following Schema:

{
    # 
    # The Order’s identifier, unique within the Order’s Account.
    # 
    id : (OrderID),

    # 
    # The time when the Order was created.
    # 
    createTime : (DateTime),

    # 
    # The current state of the Order.
    # 
    state : (OrderState),

    # 
    # The client extensions of the Order. Do not set, modify, or delete
    # clientExtensions if your account is associated with MT4.
    # 
    clientExtensions : (ClientExtensions),

    # 
    # The type of the Order. Always set to “MARKET_IF_TOUCHED” for Market If
    # Touched Orders.
    # 
    type : (OrderType, default=MARKET_IF_TOUCHED),

    # 
    # The MarketIfTouched Order’s Instrument.
    # 
    instrument : (InstrumentName, required),

    # 
    # The quantity requested to be filled by the MarketIfTouched Order. A
    # positive number of units results in a long Order, and a negative number
    # of units results in a short Order.
    # 
    units : (DecimalNumber, required),

    # 
    # The price threshold specified for the MarketIfTouched Order. The
    # MarketIfTouched Order will only be filled by a market price that crosses
    # this price from the direction of the market price at the time when the
    # Order was created (the initialMarketPrice). Depending on the value of the
    # Order’s price and initialMarketPrice, the MarketIfTouchedOrder will
    # behave like a Limit or a Stop Order.
    # 
    price : (PriceValue, required),

    # 
    # The worst market price that may be used to fill this MarketIfTouched
    # Order.
    # 
    priceBound : (PriceValue),

    # 
    # The time-in-force requested for the MarketIfTouched Order. Restricted to
    # “GTC”, “GFD” and “GTD” for MarketIfTouched Orders.
    # 
    timeInForce : (TimeInForce, required, default=GTC),

    # 
    # The date/time when the MarketIfTouched Order will be cancelled if its
    # timeInForce is “GTD”.
    # 
    gtdTime : (DateTime),

    # 
    # Specification of how Positions in the Account are modified when the Order
    # is filled.
    # 
    positionFill : (OrderPositionFill, required, default=DEFAULT),

    # 
    # Specification of which price component should be used when determining if
    # an Order should be triggered and filled. This allows Orders to be
    # triggered based on the bid, ask, mid, default (ask for buy, bid for sell)
    # or inverse (ask for sell, bid for buy) price depending on the desired
    # behaviour. Orders are always filled using their default price component.
    # This feature is only provided through the REST API. Clients who choose to
    # specify a non-default trigger condition will not see it reflected in any
    # of OANDA’s proprietary or partner trading platforms, their transaction
    # history or their account statements. OANDA platforms always assume that
    # an Order’s trigger condition is set to the default value when indicating
    # the distance from an Order’s trigger price, and will always provide the
    # default trigger condition when creating or modifying an Order. A special
    # restriction applies when creating a Guaranteed Stop Loss Order. In this
    # case the TriggerCondition value must either be “DEFAULT”, or the
    # “natural” trigger side “DEFAULT” results in. So for a Guaranteed Stop
    # Loss Order for a long trade valid values are “DEFAULT” and “BID”, and for
    # short trades “DEFAULT” and “ASK” are valid.
    # 
    triggerCondition : (OrderTriggerCondition, required, default=DEFAULT),

    # 
    # The Market price at the time when the MarketIfTouched Order was created.
    # 
    initialMarketPrice : (PriceValue),

    # 
    # TakeProfitDetails specifies the details of a Take Profit Order to be
    # created on behalf of a client. This may happen when an Order is filled
    # that opens a Trade requiring a Take Profit, or when a Trade’s dependent
    # Take Profit Order is modified directly through the Trade.
    # 
    takeProfitOnFill : (TakeProfitDetails),

    # 
    # StopLossDetails specifies the details of a Stop Loss Order to be created
    # on behalf of a client. This may happen when an Order is filled that opens
    # a Trade requiring a Stop Loss, or when a Trade’s dependent Stop Loss
    # Order is modified directly through the Trade.
    # 
    stopLossOnFill : (StopLossDetails),

    # 
    # GuaranteedStopLossDetails specifies the details of a Guaranteed Stop Loss
    # Order to be created on behalf of a client. This may happen when an Order
    # is filled that opens a Trade requiring a Guaranteed Stop Loss, or when a
    # Trade’s dependent Guaranteed Stop Loss Order is modified directly through
    # the Trade.
    # 
    guaranteedStopLossOnFill : (GuaranteedStopLossDetails),

    # 
    # TrailingStopLossDetails specifies the details of a Trailing Stop Loss
    # Order to be created on behalf of a client. This may happen when an Order
    # is filled that opens a Trade requiring a Trailing Stop Loss, or when a
    # Trade’s dependent Trailing Stop Loss Order is modified directly through
    # the Trade.
    # 
    trailingStopLossOnFill : (TrailingStopLossDetails),

    # 
    # Client Extensions to add to the Trade created when the Order is filled
    # (if such a Trade is created). Do not set, modify, or delete
    # tradeClientExtensions if your account is associated with MT4.
    # 
    tradeClientExtensions : (ClientExtensions),

    # 
    # ID of the Transaction that filled this Order (only provided when the
    # Order’s state is FILLED)
    # 
    fillingTransactionID : (TransactionID),

    # 
    # Date/time when the Order was filled (only provided when the Order’s state
    # is FILLED)
    # 
    filledTime : (DateTime),

    # 
    # Trade ID of Trade opened when the Order was filled (only provided when
    # the Order’s state is FILLED and a Trade was opened as a result of the
    # fill)
    # 
    tradeOpenedID : (TradeID),

    # 
    # Trade ID of Trade reduced when the Order was filled (only provided when
    # the Order’s state is FILLED and a Trade was reduced as a result of the
    # fill)
    # 
    tradeReducedID : (TradeID),

    # 
    # Trade IDs of Trades closed when the Order was filled (only provided when
    # the Order’s state is FILLED and one or more Trades were closed as a
    # result of the fill)
    # 
    tradeClosedIDs : (Array[TradeID]),

    # 
    # ID of the Transaction that cancelled the Order (only provided when the
    # Order’s state is CANCELLED)
    # 
    cancellingTransactionID : (TransactionID),

    # 
    # Date/time when the Order was cancelled (only provided when the state of
    # the Order is CANCELLED)
    # 
    cancelledTime : (DateTime),

    # 
    # The ID of the Order that was replaced by this Order (only provided if
    # this Order was created as part of a cancel/replace).
    # 
    replacesOrderID : (OrderID),

    # 
    # The ID of the Order that replaced this Order (only provided if this Order
    # was cancelled as part of a cancel/replace).
    # 
    replacedByOrderID : (OrderID)
}

TakeProfitOrder is an application/json object with the following Schema:

{
    # 
    # The Order’s identifier, unique within the Order’s Account.
    # 
    id : (OrderID),

    # 
    # The time when the Order was created.
    # 
    createTime : (DateTime),

    # 
    # The current state of the Order.
    # 
    state : (OrderState),

    # 
    # The client extensions of the Order. Do not set, modify, or delete
    # clientExtensions if your account is associated with MT4.
    # 
    clientExtensions : (ClientExtensions),

    # 
    # The type of the Order. Always set to “TAKE_PROFIT” for Take Profit
    # Orders.
    # 
    type : (OrderType, default=TAKE_PROFIT),

    # 
    # The ID of the Trade to close when the price threshold is breached.
    # 
    tradeID : (TradeID, required),

    # 
    # The client ID of the Trade to be closed when the price threshold is
    # breached.
    # 
    clientTradeID : (ClientID),

    # 
    # The price threshold specified for the TakeProfit Order. The associated
    # Trade will be closed by a market price that is equal to or better than
    # this threshold.
    # 
    price : (PriceValue, required),

    # 
    # The time-in-force requested for the TakeProfit Order. Restricted to
    # “GTC”, “GFD” and “GTD” for TakeProfit Orders.
    # 
    timeInForce : (TimeInForce, required, default=GTC),

    # 
    # The date/time when the TakeProfit Order will be cancelled if its
    # timeInForce is “GTD”.
    # 
    gtdTime : (DateTime),

    # 
    # Specification of which price component should be used when determining if
    # an Order should be triggered and filled. This allows Orders to be
    # triggered based on the bid, ask, mid, default (ask for buy, bid for sell)
    # or inverse (ask for sell, bid for buy) price depending on the desired
    # behaviour. Orders are always filled using their default price component.
    # This feature is only provided through the REST API. Clients who choose to
    # specify a non-default trigger condition will not see it reflected in any
    # of OANDA’s proprietary or partner trading platforms, their transaction
    # history or their account statements. OANDA platforms always assume that
    # an Order’s trigger condition is set to the default value when indicating
    # the distance from an Order’s trigger price, and will always provide the
    # default trigger condition when creating or modifying an Order. A special
    # restriction applies when creating a Guaranteed Stop Loss Order. In this
    # case the TriggerCondition value must either be “DEFAULT”, or the
    # “natural” trigger side “DEFAULT” results in. So for a Guaranteed Stop
    # Loss Order for a long trade valid values are “DEFAULT” and “BID”, and for
    # short trades “DEFAULT” and “ASK” are valid.
    # 
    triggerCondition : (OrderTriggerCondition, required, default=DEFAULT),

    # 
    # ID of the Transaction that filled this Order (only provided when the
    # Order’s state is FILLED)
    # 
    fillingTransactionID : (TransactionID),

    # 
    # Date/time when the Order was filled (only provided when the Order’s state
    # is FILLED)
    # 
    filledTime : (DateTime),

    # 
    # Trade ID of Trade opened when the Order was filled (only provided when
    # the Order’s state is FILLED and a Trade was opened as a result of the
    # fill)
    # 
    tradeOpenedID : (TradeID),

    # 
    # Trade ID of Trade reduced when the Order was filled (only provided when
    # the Order’s state is FILLED and a Trade was reduced as a result of the
    # fill)
    # 
    tradeReducedID : (TradeID),

    # 
    # Trade IDs of Trades closed when the Order was filled (only provided when
    # the Order’s state is FILLED and one or more Trades were closed as a
    # result of the fill)
    # 
    tradeClosedIDs : (Array[TradeID]),

    # 
    # ID of the Transaction that cancelled the Order (only provided when the
    # Order’s state is CANCELLED)
    # 
    cancellingTransactionID : (TransactionID),

    # 
    # Date/time when the Order was cancelled (only provided when the state of
    # the Order is CANCELLED)
    # 
    cancelledTime : (DateTime),

    # 
    # The ID of the Order that was replaced by this Order (only provided if
    # this Order was created as part of a cancel/replace).
    # 
    replacesOrderID : (OrderID),

    # 
    # The ID of the Order that replaced this Order (only provided if this Order
    # was cancelled as part of a cancel/replace).
    # 
    replacedByOrderID : (OrderID)
}

StopLossOrder is an application/json object with the following Schema:

{
    # 
    # The Order’s identifier, unique within the Order’s Account.
    # 
    id : (OrderID),

    # 
    # The time when the Order was created.
    # 
    createTime : (DateTime),

    # 
    # The current state of the Order.
    # 
    state : (OrderState),

    # 
    # The client extensions of the Order. Do not set, modify, or delete
    # clientExtensions if your account is associated with MT4.
    # 
    clientExtensions : (ClientExtensions),

    # 
    # The type of the Order. Always set to “STOP_LOSS” for Stop Loss Orders.
    # 
    type : (OrderType, default=STOP_LOSS),

    # 
    # The premium that will be charged if the Stop Loss Order is guaranteed and
    # the Order is filled at the guaranteed price. It is in price units and is
    # charged for each unit of the Trade.
    # 
    # 
    # Deprecated: Will be removed in a future API update.
    # 
    guaranteedExecutionPremium : (DecimalNumber, deprecated),

    # 
    # The ID of the Trade to close when the price threshold is breached.
    # 
    tradeID : (TradeID, required),

    # 
    # The client ID of the Trade to be closed when the price threshold is
    # breached.
    # 
    clientTradeID : (ClientID),

    # 
    # The price threshold specified for the Stop Loss Order. The associated
    # Trade will be closed by a market price that is equal to or worse than
    # this threshold.
    # 
    price : (PriceValue, required),

    # 
    # Specifies the distance (in price units) from the Account’s current price
    # to use as the Stop Loss Order price. If the Trade is short the
    # Instrument’s bid price is used, and for long Trades the ask is used.
    # 
    distance : (DecimalNumber),

    # 
    # The time-in-force requested for the StopLoss Order. Restricted to “GTC”,
    # “GFD” and “GTD” for StopLoss Orders.
    # 
    timeInForce : (TimeInForce, required, default=GTC),

    # 
    # The date/time when the StopLoss Order will be cancelled if its
    # timeInForce is “GTD”.
    # 
    gtdTime : (DateTime),

    # 
    # Specification of which price component should be used when determining if
    # an Order should be triggered and filled. This allows Orders to be
    # triggered based on the bid, ask, mid, default (ask for buy, bid for sell)
    # or inverse (ask for sell, bid for buy) price depending on the desired
    # behaviour. Orders are always filled using their default price component.
    # This feature is only provided through the REST API. Clients who choose to
    # specify a non-default trigger condition will not see it reflected in any
    # of OANDA’s proprietary or partner trading platforms, their transaction
    # history or their account statements. OANDA platforms always assume that
    # an Order’s trigger condition is set to the default value when indicating
    # the distance from an Order’s trigger price, and will always provide the
    # default trigger condition when creating or modifying an Order. A special
    # restriction applies when creating a Guaranteed Stop Loss Order. In this
    # case the TriggerCondition value must either be “DEFAULT”, or the
    # “natural” trigger side “DEFAULT” results in. So for a Guaranteed Stop
    # Loss Order for a long trade valid values are “DEFAULT” and “BID”, and for
    # short trades “DEFAULT” and “ASK” are valid.
    # 
    triggerCondition : (OrderTriggerCondition, required, default=DEFAULT),

    # 
    # Flag indicating that the Stop Loss Order is guaranteed. The default value
    # depends on the GuaranteedStopLossOrderMode of the account, if it is
    # REQUIRED, the default will be true, for DISABLED or ENABLED the default
    # is false.
    # 
    # 
    # Deprecated: Will be removed in a future API update.
    # 
    guaranteed : (boolean, deprecated),

    # 
    # ID of the Transaction that filled this Order (only provided when the
    # Order’s state is FILLED)
    # 
    fillingTransactionID : (TransactionID),

    # 
    # Date/time when the Order was filled (only provided when the Order’s state
    # is FILLED)
    # 
    filledTime : (DateTime),

    # 
    # Trade ID of Trade opened when the Order was filled (only provided when
    # the Order’s state is FILLED and a Trade was opened as a result of the
    # fill)
    # 
    tradeOpenedID : (TradeID),

    # 
    # Trade ID of Trade reduced when the Order was filled (only provided when
    # the Order’s state is FILLED and a Trade was reduced as a result of the
    # fill)
    # 
    tradeReducedID : (TradeID),

    # 
    # Trade IDs of Trades closed when the Order was filled (only provided when
    # the Order’s state is FILLED and one or more Trades were closed as a
    # result of the fill)
    # 
    tradeClosedIDs : (Array[TradeID]),

    # 
    # ID of the Transaction that cancelled the Order (only provided when the
    # Order’s state is CANCELLED)
    # 
    cancellingTransactionID : (TransactionID),

    # 
    # Date/time when the Order was cancelled (only provided when the state of
    # the Order is CANCELLED)
    # 
    cancelledTime : (DateTime),

    # 
    # The ID of the Order that was replaced by this Order (only provided if
    # this Order was created as part of a cancel/replace).
    # 
    replacesOrderID : (OrderID),

    # 
    # The ID of the Order that replaced this Order (only provided if this Order
    # was cancelled as part of a cancel/replace).
    # 
    replacedByOrderID : (OrderID)
}

GuaranteedStopLossOrder is an application/json object with the following Schema:

{
    # 
    # The Order’s identifier, unique within the Order’s Account.
    # 
    id : (OrderID),

    # 
    # The time when the Order was created.
    # 
    createTime : (DateTime),

    # 
    # The current state of the Order.
    # 
    state : (OrderState),

    # 
    # The client extensions of the Order. Do not set, modify, or delete
    # clientExtensions if your account is associated with MT4.
    # 
    clientExtensions : (ClientExtensions),

    # 
    # The type of the Order. Always set to “GUARANTEED_STOP_LOSS” for
    # Guaranteed Stop Loss Orders.
    # 
    type : (OrderType, default=GUARANTEED_STOP_LOSS),

    # 
    # The premium that will be charged if the Guaranteed Stop Loss Order is
    # filled at the guaranteed price. It is in price units and is charged for
    # each unit of the Trade.
    # 
    guaranteedExecutionPremium : (DecimalNumber),

    # 
    # The ID of the Trade to close when the price threshold is breached.
    # 
    tradeID : (TradeID, required),

    # 
    # The client ID of the Trade to be closed when the price threshold is
    # breached.
    # 
    clientTradeID : (ClientID),

    # 
    # The price threshold specified for the Guaranteed Stop Loss Order. The
    # associated Trade will be closed at this price.
    # 
    price : (PriceValue, required),

    # 
    # Specifies the distance (in price units) from the Account’s current price
    # to use as the Guaranteed Stop Loss Order price. If the Trade is short the
    # Instrument’s bid price is used, and for long Trades the ask is used.
    # 
    distance : (DecimalNumber),

    # 
    # The time-in-force requested for the GuaranteedStopLoss Order. Restricted
    # to “GTC”, “GFD” and “GTD” for GuaranteedStopLoss Orders.
    # 
    timeInForce : (TimeInForce, required, default=GTC),

    # 
    # The date/time when the GuaranteedStopLoss Order will be cancelled if its
    # timeInForce is “GTD”.
    # 
    gtdTime : (DateTime),

    # 
    # Specification of which price component should be used when determining if
    # an Order should be triggered and filled. This allows Orders to be
    # triggered based on the bid, ask, mid, default (ask for buy, bid for sell)
    # or inverse (ask for sell, bid for buy) price depending on the desired
    # behaviour. Orders are always filled using their default price component.
    # This feature is only provided through the REST API. Clients who choose to
    # specify a non-default trigger condition will not see it reflected in any
    # of OANDA’s proprietary or partner trading platforms, their transaction
    # history or their account statements. OANDA platforms always assume that
    # an Order’s trigger condition is set to the default value when indicating
    # the distance from an Order’s trigger price, and will always provide the
    # default trigger condition when creating or modifying an Order. A special
    # restriction applies when creating a Guaranteed Stop Loss Order. In this
    # case the TriggerCondition value must either be “DEFAULT”, or the
    # “natural” trigger side “DEFAULT” results in. So for a Guaranteed Stop
    # Loss Order for a long trade valid values are “DEFAULT” and “BID”, and for
    # short trades “DEFAULT” and “ASK” are valid.
    # 
    triggerCondition : (OrderTriggerCondition, required, default=DEFAULT),

    # 
    # ID of the Transaction that filled this Order (only provided when the
    # Order’s state is FILLED)
    # 
    fillingTransactionID : (TransactionID),

    # 
    # Date/time when the Order was filled (only provided when the Order’s state
    # is FILLED)
    # 
    filledTime : (DateTime),

    # 
    # Trade ID of Trade opened when the Order was filled (only provided when
    # the Order’s state is FILLED and a Trade was opened as a result of the
    # fill)
    # 
    tradeOpenedID : (TradeID),

    # 
    # Trade ID of Trade reduced when the Order was filled (only provided when
    # the Order’s state is FILLED and a Trade was reduced as a result of the
    # fill)
    # 
    tradeReducedID : (TradeID),

    # 
    # Trade IDs of Trades closed when the Order was filled (only provided when
    # the Order’s state is FILLED and one or more Trades were closed as a
    # result of the fill)
    # 
    tradeClosedIDs : (Array[TradeID]),

    # 
    # ID of the Transaction that cancelled the Order (only provided when the
    # Order’s state is CANCELLED)
    # 
    cancellingTransactionID : (TransactionID),

    # 
    # Date/time when the Order was cancelled (only provided when the state of
    # the Order is CANCELLED)
    # 
    cancelledTime : (DateTime),

    # 
    # The ID of the Order that was replaced by this Order (only provided if
    # this Order was created as part of a cancel/replace).
    # 
    replacesOrderID : (OrderID),

    # 
    # The ID of the Order that replaced this Order (only provided if this Order
    # was cancelled as part of a cancel/replace).
    # 
    replacedByOrderID : (OrderID)
}

TrailingStopLossOrder is an application/json object with the following Schema:

{
    # 
    # The Order’s identifier, unique within the Order’s Account.
    # 
    id : (OrderID),

    # 
    # The time when the Order was created.
    # 
    createTime : (DateTime),

    # 
    # The current state of the Order.
    # 
    state : (OrderState),

    # 
    # The client extensions of the Order. Do not set, modify, or delete
    # clientExtensions if your account is associated with MT4.
    # 
    clientExtensions : (ClientExtensions),

    # 
    # The type of the Order. Always set to “TRAILING_STOP_LOSS” for Trailing
    # Stop Loss Orders.
    # 
    type : (OrderType, default=TRAILING_STOP_LOSS),

    # 
    # The ID of the Trade to close when the price threshold is breached.
    # 
    tradeID : (TradeID, required),

    # 
    # The client ID of the Trade to be closed when the price threshold is
    # breached.
    # 
    clientTradeID : (ClientID),

    # 
    # The price distance (in price units) specified for the TrailingStopLoss
    # Order.
    # 
    distance : (DecimalNumber, required),

    # 
    # The time-in-force requested for the TrailingStopLoss Order. Restricted to
    # “GTC”, “GFD” and “GTD” for TrailingStopLoss Orders.
    # 
    timeInForce : (TimeInForce, required, default=GTC),

    # 
    # The date/time when the StopLoss Order will be cancelled if its
    # timeInForce is “GTD”.
    # 
    gtdTime : (DateTime),

    # 
    # Specification of which price component should be used when determining if
    # an Order should be triggered and filled. This allows Orders to be
    # triggered based on the bid, ask, mid, default (ask for buy, bid for sell)
    # or inverse (ask for sell, bid for buy) price depending on the desired
    # behaviour. Orders are always filled using their default price component.
    # This feature is only provided through the REST API. Clients who choose to
    # specify a non-default trigger condition will not see it reflected in any
    # of OANDA’s proprietary or partner trading platforms, their transaction
    # history or their account statements. OANDA platforms always assume that
    # an Order’s trigger condition is set to the default value when indicating
    # the distance from an Order’s trigger price, and will always provide the
    # default trigger condition when creating or modifying an Order. A special
    # restriction applies when creating a Guaranteed Stop Loss Order. In this
    # case the TriggerCondition value must either be “DEFAULT”, or the
    # “natural” trigger side “DEFAULT” results in. So for a Guaranteed Stop
    # Loss Order for a long trade valid values are “DEFAULT” and “BID”, and for
    # short trades “DEFAULT” and “ASK” are valid.
    # 
    triggerCondition : (OrderTriggerCondition, required, default=DEFAULT),

    # 
    # The trigger price for the Trailing Stop Loss Order. The trailing stop
    # value will trail (follow) the market price by the TSL order’s configured
    # “distance” as the market price moves in the winning direction. If the
    # market price moves to a level that is equal to or worse than the trailing
    # stop value, the order will be filled and the Trade will be closed.
    # 
    trailingStopValue : (PriceValue),

    # 
    # ID of the Transaction that filled this Order (only provided when the
    # Order’s state is FILLED)
    # 
    fillingTransactionID : (TransactionID),

    # 
    # Date/time when the Order was filled (only provided when the Order’s state
    # is FILLED)
    # 
    filledTime : (DateTime),

    # 
    # Trade ID of Trade opened when the Order was filled (only provided when
    # the Order’s state is FILLED and a Trade was opened as a result of the
    # fill)
    # 
    tradeOpenedID : (TradeID),

    # 
    # Trade ID of Trade reduced when the Order was filled (only provided when
    # the Order’s state is FILLED and a Trade was reduced as a result of the
    # fill)
    # 
    tradeReducedID : (TradeID),

    # 
    # Trade IDs of Trades closed when the Order was filled (only provided when
    # the Order’s state is FILLED and one or more Trades were closed as a
    # result of the fill)
    # 
    tradeClosedIDs : (Array[TradeID]),

    # 
    # ID of the Transaction that cancelled the Order (only provided when the
    # Order’s state is CANCELLED)
    # 
    cancellingTransactionID : (TransactionID),

    # 
    # Date/time when the Order was cancelled (only provided when the state of
    # the Order is CANCELLED)
    # 
    cancelledTime : (DateTime),

    # 
    # The ID of the Order that was replaced by this Order (only provided if
    # this Order was created as part of a cancel/replace).
    # 
    replacesOrderID : (OrderID),

    # 
    # The ID of the Order that replaced this Order (only provided if this Order
    # was cancelled as part of a cancel/replace).
    # 
    replacedByOrderID : (OrderID)
}

Order Requests

The request specification of all Orders supported by the platform. These objects are used by the API client to create Orders on the platform.

MarketOrderRequest is an application/json object with the following Schema:

{
    # 
    # The type of the Order to Create. Must be set to “MARKET” when creating a
    # Market Order.
    # 
    type : (OrderType, default=MARKET),

    # 
    # The Market Order’s Instrument.
    # 
    instrument : (InstrumentName, required),

    # 
    # The quantity requested to be filled by the Market Order. A positive
    # number of units results in a long Order, and a negative number of units
    # results in a short Order.
    # 
    units : (DecimalNumber, required),

    # 
    # The time-in-force requested for the Market Order. Restricted to FOK or
    # IOC for a MarketOrder.
    # 
    timeInForce : (TimeInForce, required, default=FOK),

    # 
    # The worst price that the client is willing to have the Market Order
    # filled at.
    # 
    priceBound : (PriceValue),

    # 
    # Specification of how Positions in the Account are modified when the Order
    # is filled.
    # 
    positionFill : (OrderPositionFill, required, default=DEFAULT),

    # 
    # The client extensions to add to the Order. Do not set, modify, or delete
    # clientExtensions if your account is associated with MT4.
    # 
    clientExtensions : (ClientExtensions),

    # 
    # TakeProfitDetails specifies the details of a Take Profit Order to be
    # created on behalf of a client. This may happen when an Order is filled
    # that opens a Trade requiring a Take Profit, or when a Trade’s dependent
    # Take Profit Order is modified directly through the Trade.
    # 
    takeProfitOnFill : (TakeProfitDetails),

    # 
    # StopLossDetails specifies the details of a Stop Loss Order to be created
    # on behalf of a client. This may happen when an Order is filled that opens
    # a Trade requiring a Stop Loss, or when a Trade’s dependent Stop Loss
    # Order is modified directly through the Trade.
    # 
    stopLossOnFill : (StopLossDetails),

    # 
    # GuaranteedStopLossDetails specifies the details of a Guaranteed Stop Loss
    # Order to be created on behalf of a client. This may happen when an Order
    # is filled that opens a Trade requiring a Guaranteed Stop Loss, or when a
    # Trade’s dependent Guaranteed Stop Loss Order is modified directly through
    # the Trade.
    # 
    guaranteedStopLossOnFill : (GuaranteedStopLossDetails),

    # 
    # TrailingStopLossDetails specifies the details of a Trailing Stop Loss
    # Order to be created on behalf of a client. This may happen when an Order
    # is filled that opens a Trade requiring a Trailing Stop Loss, or when a
    # Trade’s dependent Trailing Stop Loss Order is modified directly through
    # the Trade.
    # 
    trailingStopLossOnFill : (TrailingStopLossDetails),

    # 
    # Client Extensions to add to the Trade created when the Order is filled
    # (if such a Trade is created). Do not set, modify, or delete
    # tradeClientExtensions if your account is associated with MT4.
    # 
    tradeClientExtensions : (ClientExtensions)
}

LimitOrderRequest is an application/json object with the following Schema:

{
    # 
    # The type of the Order to Create. Must be set to “LIMIT” when creating a
    # Market Order.
    # 
    type : (OrderType, default=LIMIT),

    # 
    # The Limit Order’s Instrument.
    # 
    instrument : (InstrumentName, required),

    # 
    # The quantity requested to be filled by the Limit Order. A positive number
    # of units results in a long Order, and a negative number of units results
    # in a short Order.
    # 
    units : (DecimalNumber, required),

    # 
    # The price threshold specified for the Limit Order. The Limit Order will
    # only be filled by a market price that is equal to or better than this
    # price.
    # 
    price : (PriceValue, required),

    # 
    # The time-in-force requested for the Limit Order.
    # 
    timeInForce : (TimeInForce, required, default=GTC),

    # 
    # The date/time when the Limit Order will be cancelled if its timeInForce
    # is “GTD”.
    # 
    gtdTime : (DateTime),

    # 
    # Specification of how Positions in the Account are modified when the Order
    # is filled.
    # 
    positionFill : (OrderPositionFill, required, default=DEFAULT),

    # 
    # Specification of which price component should be used when determining if
    # an Order should be triggered and filled. This allows Orders to be
    # triggered based on the bid, ask, mid, default (ask for buy, bid for sell)
    # or inverse (ask for sell, bid for buy) price depending on the desired
    # behaviour. Orders are always filled using their default price component.
    # This feature is only provided through the REST API. Clients who choose to
    # specify a non-default trigger condition will not see it reflected in any
    # of OANDA’s proprietary or partner trading platforms, their transaction
    # history or their account statements. OANDA platforms always assume that
    # an Order’s trigger condition is set to the default value when indicating
    # the distance from an Order’s trigger price, and will always provide the
    # default trigger condition when creating or modifying an Order. A special
    # restriction applies when creating a Guaranteed Stop Loss Order. In this
    # case the TriggerCondition value must either be “DEFAULT”, or the
    # “natural” trigger side “DEFAULT” results in. So for a Guaranteed Stop
    # Loss Order for a long trade valid values are “DEFAULT” and “BID”, and for
    # short trades “DEFAULT” and “ASK” are valid.
    # 
    triggerCondition : (OrderTriggerCondition, required, default=DEFAULT),

    # 
    # The client extensions to add to the Order. Do not set, modify, or delete
    # clientExtensions if your account is associated with MT4.
    # 
    clientExtensions : (ClientExtensions),

    # 
    # TakeProfitDetails specifies the details of a Take Profit Order to be
    # created on behalf of a client. This may happen when an Order is filled
    # that opens a Trade requiring a Take Profit, or when a Trade’s dependent
    # Take Profit Order is modified directly through the Trade.
    # 
    takeProfitOnFill : (TakeProfitDetails),

    # 
    # StopLossDetails specifies the details of a Stop Loss Order to be created
    # on behalf of a client. This may happen when an Order is filled that opens
    # a Trade requiring a Stop Loss, or when a Trade’s dependent Stop Loss
    # Order is modified directly through the Trade.
    # 
    stopLossOnFill : (StopLossDetails),

    # 
    # GuaranteedStopLossDetails specifies the details of a Guaranteed Stop Loss
    # Order to be created on behalf of a client. This may happen when an Order
    # is filled that opens a Trade requiring a Guaranteed Stop Loss, or when a
    # Trade’s dependent Guaranteed Stop Loss Order is modified directly through
    # the Trade.
    # 
    guaranteedStopLossOnFill : (GuaranteedStopLossDetails),

    # 
    # TrailingStopLossDetails specifies the details of a Trailing Stop Loss
    # Order to be created on behalf of a client. This may happen when an Order
    # is filled that opens a Trade requiring a Trailing Stop Loss, or when a
    # Trade’s dependent Trailing Stop Loss Order is modified directly through
    # the Trade.
    # 
    trailingStopLossOnFill : (TrailingStopLossDetails),

    # 
    # Client Extensions to add to the Trade created when the Order is filled
    # (if such a Trade is created). Do not set, modify, or delete
    # tradeClientExtensions if your account is associated with MT4.
    # 
    tradeClientExtensions : (ClientExtensions)
}

StopOrderRequest is an application/json object with the following Schema:

{
    # 
    # The type of the Order to Create. Must be set to “STOP” when creating a
    # Stop Order.
    # 
    type : (OrderType, default=STOP),

    # 
    # The Stop Order’s Instrument.
    # 
    instrument : (InstrumentName, required),

    # 
    # The quantity requested to be filled by the Stop Order. A positive number
    # of units results in a long Order, and a negative number of units results
    # in a short Order.
    # 
    units : (DecimalNumber, required),

    # 
    # The price threshold specified for the Stop Order. The Stop Order will
    # only be filled by a market price that is equal to or worse than this
    # price.
    # 
    price : (PriceValue, required),

    # 
    # The worst market price that may be used to fill this Stop Order. If the
    # market gaps and crosses through both the price and the priceBound, the
    # Stop Order will be cancelled instead of being filled.
    # 
    priceBound : (PriceValue),

    # 
    # The time-in-force requested for the Stop Order.
    # 
    timeInForce : (TimeInForce, required, default=GTC),

    # 
    # The date/time when the Stop Order will be cancelled if its timeInForce is
    # “GTD”.
    # 
    gtdTime : (DateTime),

    # 
    # Specification of how Positions in the Account are modified when the Order
    # is filled.
    # 
    positionFill : (OrderPositionFill, required, default=DEFAULT),

    # 
    # Specification of which price component should be used when determining if
    # an Order should be triggered and filled. This allows Orders to be
    # triggered based on the bid, ask, mid, default (ask for buy, bid for sell)
    # or inverse (ask for sell, bid for buy) price depending on the desired
    # behaviour. Orders are always filled using their default price component.
    # This feature is only provided through the REST API. Clients who choose to
    # specify a non-default trigger condition will not see it reflected in any
    # of OANDA’s proprietary or partner trading platforms, their transaction
    # history or their account statements. OANDA platforms always assume that
    # an Order’s trigger condition is set to the default value when indicating
    # the distance from an Order’s trigger price, and will always provide the
    # default trigger condition when creating or modifying an Order. A special
    # restriction applies when creating a Guaranteed Stop Loss Order. In this
    # case the TriggerCondition value must either be “DEFAULT”, or the
    # “natural” trigger side “DEFAULT” results in. So for a Guaranteed Stop
    # Loss Order for a long trade valid values are “DEFAULT” and “BID”, and for
    # short trades “DEFAULT” and “ASK” are valid.
    # 
    triggerCondition : (OrderTriggerCondition, required, default=DEFAULT),

    # 
    # The client extensions to add to the Order. Do not set, modify, or delete
    # clientExtensions if your account is associated with MT4.
    # 
    clientExtensions : (ClientExtensions),

    # 
    # TakeProfitDetails specifies the details of a Take Profit Order to be
    # created on behalf of a client. This may happen when an Order is filled
    # that opens a Trade requiring a Take Profit, or when a Trade’s dependent
    # Take Profit Order is modified directly through the Trade.
    # 
    takeProfitOnFill : (TakeProfitDetails),

    # 
    # StopLossDetails specifies the details of a Stop Loss Order to be created
    # on behalf of a client. This may happen when an Order is filled that opens
    # a Trade requiring a Stop Loss, or when a Trade’s dependent Stop Loss
    # Order is modified directly through the Trade.
    # 
    stopLossOnFill : (StopLossDetails),

    # 
    # GuaranteedStopLossDetails specifies the details of a Guaranteed Stop Loss
    # Order to be created on behalf of a client. This may happen when an Order
    # is filled that opens a Trade requiring a Guaranteed Stop Loss, or when a
    # Trade’s dependent Guaranteed Stop Loss Order is modified directly through
    # the Trade.
    # 
    guaranteedStopLossOnFill : (GuaranteedStopLossDetails),

    # 
    # TrailingStopLossDetails specifies the details of a Trailing Stop Loss
    # Order to be created on behalf of a client. This may happen when an Order
    # is filled that opens a Trade requiring a Trailing Stop Loss, or when a
    # Trade’s dependent Trailing Stop Loss Order is modified directly through
    # the Trade.
    # 
    trailingStopLossOnFill : (TrailingStopLossDetails),

    # 
    # Client Extensions to add to the Trade created when the Order is filled
    # (if such a Trade is created). Do not set, modify, or delete
    # tradeClientExtensions if your account is associated with MT4.
    # 
    tradeClientExtensions : (ClientExtensions)
}

MarketIfTouchedOrderRequest is an application/json object with the following Schema:

{
    # 
    # The type of the Order to Create. Must be set to “MARKET_IF_TOUCHED” when
    # creating a Market If Touched Order.
    # 
    type : (OrderType, default=MARKET_IF_TOUCHED),

    # 
    # The MarketIfTouched Order’s Instrument.
    # 
    instrument : (InstrumentName, required),

    # 
    # The quantity requested to be filled by the MarketIfTouched Order. A
    # positive number of units results in a long Order, and a negative number
    # of units results in a short Order.
    # 
    units : (DecimalNumber, required),

    # 
    # The price threshold specified for the MarketIfTouched Order. The
    # MarketIfTouched Order will only be filled by a market price that crosses
    # this price from the direction of the market price at the time when the
    # Order was created (the initialMarketPrice). Depending on the value of the
    # Order’s price and initialMarketPrice, the MarketIfTouchedOrder will
    # behave like a Limit or a Stop Order.
    # 
    price : (PriceValue, required),

    # 
    # The worst market price that may be used to fill this MarketIfTouched
    # Order.
    # 
    priceBound : (PriceValue),

    # 
    # The time-in-force requested for the MarketIfTouched Order. Restricted to
    # “GTC”, “GFD” and “GTD” for MarketIfTouched Orders.
    # 
    timeInForce : (TimeInForce, required, default=GTC),

    # 
    # The date/time when the MarketIfTouched Order will be cancelled if its
    # timeInForce is “GTD”.
    # 
    gtdTime : (DateTime),

    # 
    # Specification of how Positions in the Account are modified when the Order
    # is filled.
    # 
    positionFill : (OrderPositionFill, required, default=DEFAULT),

    # 
    # Specification of which price component should be used when determining if
    # an Order should be triggered and filled. This allows Orders to be
    # triggered based on the bid, ask, mid, default (ask for buy, bid for sell)
    # or inverse (ask for sell, bid for buy) price depending on the desired
    # behaviour. Orders are always filled using their default price component.
    # This feature is only provided through the REST API. Clients who choose to
    # specify a non-default trigger condition will not see it reflected in any
    # of OANDA’s proprietary or partner trading platforms, their transaction
    # history or their account statements. OANDA platforms always assume that
    # an Order’s trigger condition is set to the default value when indicating
    # the distance from an Order’s trigger price, and will always provide the
    # default trigger condition when creating or modifying an Order. A special
    # restriction applies when creating a Guaranteed Stop Loss Order. In this
    # case the TriggerCondition value must either be “DEFAULT”, or the
    # “natural” trigger side “DEFAULT” results in. So for a Guaranteed Stop
    # Loss Order for a long trade valid values are “DEFAULT” and “BID”, and for
    # short trades “DEFAULT” and “ASK” are valid.
    # 
    triggerCondition : (OrderTriggerCondition, required, default=DEFAULT),

    # 
    # The client extensions to add to the Order. Do not set, modify, or delete
    # clientExtensions if your account is associated with MT4.
    # 
    clientExtensions : (ClientExtensions),

    # 
    # TakeProfitDetails specifies the details of a Take Profit Order to be
    # created on behalf of a client. This may happen when an Order is filled
    # that opens a Trade requiring a Take Profit, or when a Trade’s dependent
    # Take Profit Order is modified directly through the Trade.
    # 
    takeProfitOnFill : (TakeProfitDetails),

    # 
    # StopLossDetails specifies the details of a Stop Loss Order to be created
    # on behalf of a client. This may happen when an Order is filled that opens
    # a Trade requiring a Stop Loss, or when a Trade’s dependent Stop Loss
    # Order is modified directly through the Trade.
    # 
    stopLossOnFill : (StopLossDetails),

    # 
    # GuaranteedStopLossDetails specifies the details of a Guaranteed Stop Loss
    # Order to be created on behalf of a client. This may happen when an Order
    # is filled that opens a Trade requiring a Guaranteed Stop Loss, or when a
    # Trade’s dependent Guaranteed Stop Loss Order is modified directly through
    # the Trade.
    # 
    guaranteedStopLossOnFill : (GuaranteedStopLossDetails),

    # 
    # TrailingStopLossDetails specifies the details of a Trailing Stop Loss
    # Order to be created on behalf of a client. This may happen when an Order
    # is filled that opens a Trade requiring a Trailing Stop Loss, or when a
    # Trade’s dependent Trailing Stop Loss Order is modified directly through
    # the Trade.
    # 
    trailingStopLossOnFill : (TrailingStopLossDetails),

    # 
    # Client Extensions to add to the Trade created when the Order is filled
    # (if such a Trade is created). Do not set, modify, or delete
    # tradeClientExtensions if your account is associated with MT4.
    # 
    tradeClientExtensions : (ClientExtensions)
}

TakeProfitOrderRequest is an application/json object with the following Schema:

{
    # 
    # The type of the Order to Create. Must be set to “TAKE_PROFIT” when
    # creating a Take Profit Order.
    # 
    type : (OrderType, default=TAKE_PROFIT),

    # 
    # The ID of the Trade to close when the price threshold is breached.
    # 
    tradeID : (TradeID, required),

    # 
    # The client ID of the Trade to be closed when the price threshold is
    # breached.
    # 
    clientTradeID : (ClientID),

    # 
    # The price threshold specified for the TakeProfit Order. The associated
    # Trade will be closed by a market price that is equal to or better than
    # this threshold.
    # 
    price : (PriceValue, required),

    # 
    # The time-in-force requested for the TakeProfit Order. Restricted to
    # “GTC”, “GFD” and “GTD” for TakeProfit Orders.
    # 
    timeInForce : (TimeInForce, required, default=GTC),

    # 
    # The date/time when the TakeProfit Order will be cancelled if its
    # timeInForce is “GTD”.
    # 
    gtdTime : (DateTime),

    # 
    # Specification of which price component should be used when determining if
    # an Order should be triggered and filled. This allows Orders to be
    # triggered based on the bid, ask, mid, default (ask for buy, bid for sell)
    # or inverse (ask for sell, bid for buy) price depending on the desired
    # behaviour. Orders are always filled using their default price component.
    # This feature is only provided through the REST API. Clients who choose to
    # specify a non-default trigger condition will not see it reflected in any
    # of OANDA’s proprietary or partner trading platforms, their transaction
    # history or their account statements. OANDA platforms always assume that
    # an Order’s trigger condition is set to the default value when indicating
    # the distance from an Order’s trigger price, and will always provide the
    # default trigger condition when creating or modifying an Order. A special
    # restriction applies when creating a Guaranteed Stop Loss Order. In this
    # case the TriggerCondition value must either be “DEFAULT”, or the
    # “natural” trigger side “DEFAULT” results in. So for a Guaranteed Stop
    # Loss Order for a long trade valid values are “DEFAULT” and “BID”, and for
    # short trades “DEFAULT” and “ASK” are valid.
    # 
    triggerCondition : (OrderTriggerCondition, required, default=DEFAULT),

    # 
    # The client extensions to add to the Order. Do not set, modify, or delete
    # clientExtensions if your account is associated with MT4.
    # 
    clientExtensions : (ClientExtensions)
}

StopLossOrderRequest is an application/json object with the following Schema:

{
    # 
    # The type of the Order to Create. Must be set to “STOP_LOSS” when creating
    # a Stop Loss Order.
    # 
    type : (OrderType, default=STOP_LOSS),

    # 
    # The ID of the Trade to close when the price threshold is breached.
    # 
    tradeID : (TradeID, required),

    # 
    # The client ID of the Trade to be closed when the price threshold is
    # breached.
    # 
    clientTradeID : (ClientID),

    # 
    # The price threshold specified for the Stop Loss Order. The associated
    # Trade will be closed by a market price that is equal to or worse than
    # this threshold.
    # 
    price : (PriceValue, required),

    # 
    # Specifies the distance (in price units) from the Account’s current price
    # to use as the Stop Loss Order price. If the Trade is short the
    # Instrument’s bid price is used, and for long Trades the ask is used.
    # 
    distance : (DecimalNumber),

    # 
    # The time-in-force requested for the StopLoss Order. Restricted to “GTC”,
    # “GFD” and “GTD” for StopLoss Orders.
    # 
    timeInForce : (TimeInForce, required, default=GTC),

    # 
    # The date/time when the StopLoss Order will be cancelled if its
    # timeInForce is “GTD”.
    # 
    gtdTime : (DateTime),

    # 
    # Specification of which price component should be used when determining if
    # an Order should be triggered and filled. This allows Orders to be
    # triggered based on the bid, ask, mid, default (ask for buy, bid for sell)
    # or inverse (ask for sell, bid for buy) price depending on the desired
    # behaviour. Orders are always filled using their default price component.
    # This feature is only provided through the REST API. Clients who choose to
    # specify a non-default trigger condition will not see it reflected in any
    # of OANDA’s proprietary or partner trading platforms, their transaction
    # history or their account statements. OANDA platforms always assume that
    # an Order’s trigger condition is set to the default value when indicating
    # the distance from an Order’s trigger price, and will always provide the
    # default trigger condition when creating or modifying an Order. A special
    # restriction applies when creating a Guaranteed Stop Loss Order. In this
    # case the TriggerCondition value must either be “DEFAULT”, or the
    # “natural” trigger side “DEFAULT” results in. So for a Guaranteed Stop
    # Loss Order for a long trade valid values are “DEFAULT” and “BID”, and for
    # short trades “DEFAULT” and “ASK” are valid.
    # 
    triggerCondition : (OrderTriggerCondition, required, default=DEFAULT),

    # 
    # Flag indicating that the Stop Loss Order is guaranteed. The default value
    # depends on the GuaranteedStopLossOrderMode of the account, if it is
    # REQUIRED, the default will be true, for DISABLED or ENABLED the default
    # is false.
    # 
    # 
    # Deprecated: Will be removed in a future API update.
    # 
    guaranteed : (boolean, deprecated),

    # 
    # The client extensions to add to the Order. Do not set, modify, or delete
    # clientExtensions if your account is associated with MT4.
    # 
    clientExtensions : (ClientExtensions)
}

GuaranteedStopLossOrderRequest is an application/json object with the following Schema:

{
    # 
    # The type of the Order to Create. Must be set to “GUARANTEED_STOP_LOSS”
    # when creating a Guaranteed Stop Loss Order.
    # 
    type : (OrderType, default=GUARANTEED_STOP_LOSS),

    # 
    # The ID of the Trade to close when the price threshold is breached.
    # 
    tradeID : (TradeID, required),

    # 
    # The client ID of the Trade to be closed when the price threshold is
    # breached.
    # 
    clientTradeID : (ClientID),

    # 
    # The price threshold specified for the Guaranteed Stop Loss Order. The
    # associated Trade will be closed at this price.
    # 
    price : (PriceValue, required),

    # 
    # Specifies the distance (in price units) from the Account’s current price
    # to use as the Guaranteed Stop Loss Order price. If the Trade is short the
    # Instrument’s bid price is used, and for long Trades the ask is used.
    # 
    distance : (DecimalNumber),

    # 
    # The time-in-force requested for the GuaranteedStopLoss Order. Restricted
    # to “GTC”, “GFD” and “GTD” for GuaranteedStopLoss Orders.
    # 
    timeInForce : (TimeInForce, required, default=GTC),

    # 
    # The date/time when the GuaranteedStopLoss Order will be cancelled if its
    # timeInForce is “GTD”.
    # 
    gtdTime : (DateTime),

    # 
    # Specification of which price component should be used when determining if
    # an Order should be triggered and filled. This allows Orders to be
    # triggered based on the bid, ask, mid, default (ask for buy, bid for sell)
    # or inverse (ask for sell, bid for buy) price depending on the desired
    # behaviour. Orders are always filled using their default price component.
    # This feature is only provided through the REST API. Clients who choose to
    # specify a non-default trigger condition will not see it reflected in any
    # of OANDA’s proprietary or partner trading platforms, their transaction
    # history or their account statements. OANDA platforms always assume that
    # an Order’s trigger condition is set to the default value when indicating
    # the distance from an Order’s trigger price, and will always provide the
    # default trigger condition when creating or modifying an Order. A special
    # restriction applies when creating a Guaranteed Stop Loss Order. In this
    # case the TriggerCondition value must either be “DEFAULT”, or the
    # “natural” trigger side “DEFAULT” results in. So for a Guaranteed Stop
    # Loss Order for a long trade valid values are “DEFAULT” and “BID”, and for
    # short trades “DEFAULT” and “ASK” are valid.
    # 
    triggerCondition : (OrderTriggerCondition, required, default=DEFAULT),

    # 
    # The client extensions to add to the Order. Do not set, modify, or delete
    # clientExtensions if your account is associated with MT4.
    # 
    clientExtensions : (ClientExtensions)
}

TrailingStopLossOrderRequest is an application/json object with the following Schema:

{
    # 
    # The type of the Order to Create. Must be set to “TRAILING_STOP_LOSS” when
    # creating a Trailing Stop Loss Order.
    # 
    type : (OrderType, default=TRAILING_STOP_LOSS),

    # 
    # The ID of the Trade to close when the price threshold is breached.
    # 
    tradeID : (TradeID, required),

    # 
    # The client ID of the Trade to be closed when the price threshold is
    # breached.
    # 
    clientTradeID : (ClientID),

    # 
    # The price distance (in price units) specified for the TrailingStopLoss
    # Order.
    # 
    distance : (DecimalNumber, required),

    # 
    # The time-in-force requested for the TrailingStopLoss Order. Restricted to
    # “GTC”, “GFD” and “GTD” for TrailingStopLoss Orders.
    # 
    timeInForce : (TimeInForce, required, default=GTC),

    # 
    # The date/time when the StopLoss Order will be cancelled if its
    # timeInForce is “GTD”.
    # 
    gtdTime : (DateTime),

    # 
    # Specification of which price component should be used when determining if
    # an Order should be triggered and filled. This allows Orders to be
    # triggered based on the bid, ask, mid, default (ask for buy, bid for sell)
    # or inverse (ask for sell, bid for buy) price depending on the desired
    # behaviour. Orders are always filled using their default price component.
    # This feature is only provided through the REST API. Clients who choose to
    # specify a non-default trigger condition will not see it reflected in any
    # of OANDA’s proprietary or partner trading platforms, their transaction
    # history or their account statements. OANDA platforms always assume that
    # an Order’s trigger condition is set to the default value when indicating
    # the distance from an Order’s trigger price, and will always provide the
    # default trigger condition when creating or modifying an Order. A special
    # restriction applies when creating a Guaranteed Stop Loss Order. In this
    # case the TriggerCondition value must either be “DEFAULT”, or the
    # “natural” trigger side “DEFAULT” results in. So for a Guaranteed Stop
    # Loss Order for a long trade valid values are “DEFAULT” and “BID”, and for
    # short trades “DEFAULT” and “ASK” are valid.
    # 
    triggerCondition : (OrderTriggerCondition, required, default=DEFAULT),

    # 
    # The client extensions to add to the Order. Do not set, modify, or delete
    # clientExtensions if your account is associated with MT4.
    # 
    clientExtensions : (ClientExtensions)
}

Order-related Definitions

Type string
Format The string representation of the OANDA-assigned OrderID. OANDA-assigned OrderIDs are positive integers, and are derived from the TransactionID of the Transaction that created the Order.
Example 1523

Value Description
MARKET A Market Order
LIMIT A Limit Order
STOP A Stop Order
MARKET_IF_TOUCHED A Market-if-touched Order
TAKE_PROFIT A Take Profit Order
STOP_LOSS A Stop Loss Order
GUARANTEED_STOP_LOSS A Guaranteed Stop Loss Order
TRAILING_STOP_LOSS A Trailing Stop Loss Order
FIXED_PRICE A Fixed Price Order

Value Description
LIMIT A Limit Order
STOP A Stop Order
MARKET_IF_TOUCHED A Market-if-touched Order
TAKE_PROFIT A Take Profit Order
STOP_LOSS A Stop Loss Order
GUARANTEED_STOP_LOSS A Guaranteed Stop Loss Order
TRAILING_STOP_LOSS A Trailing Stop Loss Order

Value Description
PENDING The Order is currently pending execution
FILLED The Order has been filled
TRIGGERED The Order has been triggered
CANCELLED The Order has been cancelled

Value Description
PENDING The Orders that are currently pending execution
FILLED The Orders that have been filled
TRIGGERED The Orders that have been triggered
CANCELLED The Orders that have been cancelled
ALL The Orders that are in any of the possible states listed above

OrderIdentifier is an application/json object with the following Schema:

{
    # 
    # The OANDA-assigned Order ID
    # 
    orderID : (OrderID),

    # 
    # The client-provided client Order ID
    # 
    clientOrderID : (ClientID)
}

Type string
Format Either the Order’s OANDA-assigned OrderID or the Order’s client-provided ClientID prefixed by the “@” symbol
Example 1523

Value Description
GTC The Order is “Good unTil Cancelled”
GTD The Order is “Good unTil Date” and will be cancelled at the provided time
GFD The Order is “Good For Day” and will be cancelled at 5pm New York time
FOK The Order must be immediately “Filled Or Killed”
IOC The Order must be “Immediately partially filled Or Cancelled”

Value Description
OPEN_ONLY When the Order is filled, only allow Positions to be opened or extended.
REDUCE_FIRST When the Order is filled, always fully reduce an existing Position before opening a new Position.
REDUCE_ONLY When the Order is filled, only reduce an existing Position.
DEFAULT When the Order is filled, use REDUCE_FIRST behaviour for non-client hedging Accounts, and OPEN_ONLY behaviour for client hedging Accounts.

Value Description
DEFAULT Trigger an Order the “natural” way: compare its price to the ask for long Orders and bid for short Orders.
INVERSE Trigger an Order the opposite of the “natural” way: compare its price the bid for long Orders and ask for short Orders.
BID Trigger an Order by comparing its price to the bid regardless of whether it is long or short.
ASK Trigger an Order by comparing its price to the ask regardless of whether it is long or short.
MID Trigger an Order by comparing its price to the midpoint regardless of whether it is long or short.

DynamicOrderState is an application/json object with the following Schema:

{
    # 
    # The Order’s ID.
    # 
    id : (OrderID),

    # 
    # The Order’s calculated trailing stop value.
    # 
    trailingStopValue : (PriceValue),

    # 
    # The distance between the Trailing Stop Loss Order’s trailingStopValue and
    # the current Market Price. This represents the distance (in price units)
    # of the Order from a triggering price. If the distance could not be
    # determined, this value will not be set.
    # 
    triggerDistance : (PriceValue),

    # 
    # True if an exact trigger distance could be calculated. If false, it means
    # the provided trigger distance is a best estimate. If the distance could
    # not be determined, this value will not be set.
    # 
    isTriggerDistanceExact : (boolean)
}

UnitsAvailableDetails is an application/json object with the following Schema:

{
    # 
    # The units available for long Orders.
    # 
    long : (DecimalNumber),

    # 
    # The units available for short Orders.
    # 
    short : (DecimalNumber)
}

UnitsAvailable is an application/json object with the following Schema:

{
    # 
    # The number of units that are available to be traded using an Order with a
    # positionFill option of “DEFAULT”. For an Account with hedging enabled,
    # this value will be the same as the “OPEN_ONLY” value. For an Account
    # without hedging enabled, this value will be the same as the
    # “REDUCE_FIRST” value.
    # 
    default : (UnitsAvailableDetails),

    # 
    # The number of units that may are available to be traded with an Order
    # with a positionFill option of “REDUCE_FIRST”.
    # 
    reduceFirst : (UnitsAvailableDetails),

    # 
    # The number of units that may are available to be traded with an Order
    # with a positionFill option of “REDUCE_ONLY”.
    # 
    reduceOnly : (UnitsAvailableDetails),

    # 
    # The number of units that may are available to be traded with an Order
    # with a positionFill option of “OPEN_ONLY”.
    # 
    openOnly : (UnitsAvailableDetails)
}

GuaranteedStopLossOrderEntryData is an application/json object with the following Schema:

{
    # 
    # The minimum distance allowed between the Trade’s fill price and the
    # configured price for guaranteed Stop Loss Orders created for this
    # instrument. Specified in price units.
    # 
    minimumDistance : (DecimalNumber),

    # 
    # The amount that is charged to the account if a guaranteed Stop Loss Order
    # is triggered and filled. The value is in price units and is charged for
    # each unit of the Trade.
    # 
    premium : (DecimalNumber),

    # 
    # The guaranteed Stop Loss Order level restriction for this instrument.
    # 
    levelRestriction : (GuaranteedStopLossOrderLevelRestriction)
}