Skip to main content

OrderFillTransaction

Struct OrderFillTransaction 

Source
pub struct OrderFillTransaction {
Show 36 fields pub id: Option<TransactionID>, pub time: Option<Timestamp>, pub user_id: Option<i64>, pub account_id: Option<AccountID>, pub batch_id: Option<TransactionID>, pub request_id: Option<RequestID>, pub type: Option<TransactionType>, pub order_id: Option<OrderID>, pub client_order_id: Option<ClientID>, pub instrument: Option<InstrumentName>, pub units: Option<Decimal>, pub requested_units: Option<Decimal>, pub gain_quote_home_conversion_factor: Option<Decimal>, pub loss_quote_home_conversion_factor: Option<Decimal>, pub home_conversion_factors: Option<HomeConversionFactors>, pub price: Option<Decimal>, pub full_vwap: Option<Decimal>, pub full_price: Option<ClientPrice>, pub reason: Option<OrderFillReason>, pub pl: Option<Decimal>, pub quote_pl: Option<Decimal>, pub financing: Option<Decimal>, pub base_financing: Option<Decimal>, pub quote_financing: Option<Decimal>, pub commission: Option<Decimal>, pub guaranteed_execution_fee: Option<Decimal>, pub quote_guaranteed_execution_fee: Option<Decimal>, pub account_balance: Option<Decimal>, pub trade_opened: Option<TradeOpen>, pub trades_closed: Option<Vec<TradeReduce>>, pub trade_reduced: Option<TradeReduce>, pub half_spread_cost: Option<Decimal>, pub pl_home_conversion_cost: Option<Decimal>, pub base_financing_home_conversion_cost: Option<Decimal>, pub guaranteed_execution_fee_home_conversion_cost: Option<Decimal>, pub home_conversion_cost: Option<Decimal>,
}
Expand description

An OrderFillTransaction represents the filling of an Order in the client’s Account.

Fields§

§id: Option<TransactionID>

The Transaction’s Identifier.

§time: Option<Timestamp>

The date/time when the Transaction was created.

§user_id: Option<i64>

The ID of the user that initiated the creation of the Transaction.

§account_id: Option<AccountID>

The ID of the Account the Transaction was created for.

§batch_id: Option<TransactionID>

The ID of the “batch” that the Transaction belongs to. Transactions in the same batch are applied to the Account simultaneously.

§request_id: Option<RequestID>

The Request ID of the request which generated the transaction.

§type: Option<TransactionType>

The Type of the Transaction. Always set to “ORDER_FILL” for an OrderFillTransaction.

§order_id: Option<OrderID>

The ID of the Order filled.

§client_order_id: Option<ClientID>

The client Order ID of the Order filled (only provided if the client has assigned one).

§instrument: Option<InstrumentName>

The name of the filled Order’s instrument.

§units: Option<Decimal>

The number of units filled by the OrderFill.

§requested_units: Option<Decimal>

The number of units the filled Order requested, set against units, the number that filled.

Not documented by OANDA. Observed on a Practice close_position closeout fill on 2026-10-16; None when OANDA does not send it.

§gain_quote_home_conversion_factor: Option<Decimal>

This is the conversion factor in effect for the Account at the time of the OrderFill for converting any gains realized in Instrument quote units into units of the Account’s home currency. Deprecated: Will be removed in a future API update.

§loss_quote_home_conversion_factor: Option<Decimal>

This is the conversion factor in effect for the Account at the time of the OrderFill for converting any losses realized in Instrument quote units into units of the Account’s home currency. Deprecated: Will be removed in a future API update.

§home_conversion_factors: Option<HomeConversionFactors>

The HomeConversionFactors in effect at the time of the OrderFill.

§price: Option<Decimal>

This field is now deprecated and should no longer be used. The individual tradesClosed, tradeReduced and tradeOpened fields contain the exact/official price each unit was filled at. Deprecated: Will be removed in a future API update.

§full_vwap: Option<Decimal>

The price that all of the units of the OrderFill should have been filled at, in the absence of guaranteed price execution. This factors in the Account’s current ClientPrice, used liquidity and the units of the OrderFill only. If no Trades were closed with their price clamped for guaranteed stop loss enforcement, then this value will match the price fields of each Trade opened, closed, and reduced, and they will all be the exact same.

§full_price: Option<ClientPrice>

The price in effect for the account at the time of the Order fill.

§reason: Option<OrderFillReason>

The reason that an Order was filled

§pl: Option<Decimal>

The profit or loss incurred when the Order was filled.

§quote_pl: Option<Decimal>

The profit or loss incurred when the Order was filled, in the Instrument’s quote currency.

§financing: Option<Decimal>

The financing paid or collected when the Order was filled.

§base_financing: Option<Decimal>

The financing paid or collected when the Order was filled, in the Instrument’s base currency.

§quote_financing: Option<Decimal>

The financing paid or collected when the Order was filled, in the Instrument’s quote currency.

§commission: Option<Decimal>

The commission charged in the Account’s home currency as a result of filling the Order. The commission is always represented as a positive quantity of the Account’s home currency, however it reduces the balance in the Account.

§guaranteed_execution_fee: Option<Decimal>

The total guaranteed execution fees charged for all Trades opened, closed or reduced with guaranteed Stop Loss Orders.

§quote_guaranteed_execution_fee: Option<Decimal>

The total guaranteed execution fees charged for all Trades opened, closed or reduced with guaranteed Stop Loss Orders, expressed in the Instrument’s quote currency.

§account_balance: Option<Decimal>

The Account’s balance after the Order was filled.

§trade_opened: Option<TradeOpen>

The Trade that was opened when the Order was filled (only provided if filling the Order resulted in a new Trade).

§trades_closed: Option<Vec<TradeReduce>>

The Trades that were closed when the Order was filled (only provided if filling the Order resulted in a closing open Trades).

§trade_reduced: Option<TradeReduce>

The Trade that was reduced when the Order was filled (only provided if filling the Order resulted in reducing an open Trade).

§half_spread_cost: Option<Decimal>

The half spread cost for the OrderFill, which is the sum of the halfSpreadCost values in the tradeOpened, tradesClosed and tradeReduced fields. This can be a positive or negative value and is represented in the home currency of the Account.

§pl_home_conversion_cost: Option<Decimal>

The cost of converting the fill’s pl into the Account’s home currency, as OANDA names it.

Not documented by OANDA. Observed on a Practice close_position closeout fill on 2026-10-16, and on each of its tradesClosed entries. Its sign and its relation to pl and accountBalance have not been recorded. None when OANDA does not send it.

§base_financing_home_conversion_cost: Option<Decimal>

The cost of converting the fill’s baseFinancing into the Account’s home currency, as OANDA names it.

Not documented by OANDA; observed as for pl_home_conversion_cost.

§guaranteed_execution_fee_home_conversion_cost: Option<Decimal>

The cost of converting the fill’s guaranteed execution fee into the Account’s home currency, as OANDA names it.

Not documented by OANDA; observed as for pl_home_conversion_cost.

§home_conversion_cost: Option<Decimal>

The fill’s home-currency conversion cost as a whole, as OANDA names it.

Not documented by OANDA; observed as for pl_home_conversion_cost. Whether it is the sum of the three component costs has not been recorded.

Trait Implementations§

Source§

impl Clone for OrderFillTransaction

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for OrderFillTransaction

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for OrderFillTransaction

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl PartialEq for OrderFillTransaction

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for OrderFillTransaction

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for OrderFillTransaction

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more