pub struct CreateOrderRequest {Show 17 fields
pub deal_id: Option<String>,
pub epic: String,
pub direction: Direction,
pub size: f64,
pub order_type: OrderType,
pub time_in_force: TimeInForce,
pub level: Option<f64>,
pub guaranteed_stop: Option<bool>,
pub stop_level: Option<f64>,
pub stop_distance: Option<f64>,
pub limit_level: Option<f64>,
pub limit_distance: Option<f64>,
pub expiry: Option<String>,
pub deal_reference: Option<String>,
pub force_open: Option<bool>,
pub currency_code: Option<String>,
pub quote_id: Option<String>,
}Expand description
Model for creating a new order
Fields§
§deal_id: Option<String>Deal identifier for existing positions
epic: StringInstrument EPIC identifier
direction: DirectionOrder direction (buy or sell)
size: f64Order size/quantity
order_type: OrderTypeType of order (market, limit, etc.)
time_in_force: TimeInForceOrder duration (how long the order remains valid)
level: Option<f64>Price level for limit orders
guaranteed_stop: Option<bool>Whether to use a guaranteed stop
stop_level: Option<f64>Price level for stop loss
stop_distance: Option<f64>Distance for stop loss
limit_level: Option<f64>Price level for take profit
limit_distance: Option<f64>Distance for take profit
expiry: Option<String>Expiry date for the order
deal_reference: Option<String>Client-generated reference for the deal
force_open: Option<bool>Whether to force open a new position
currency_code: Option<String>Currency code for the order (e.g., “USD”, “EUR”)
quote_id: Option<String>Quote identifier for the order
Implementations§
Source§impl CreateOrderRequest
impl CreateOrderRequest
Sourcepub fn market(epic: String, direction: Direction, size: f64) -> Self
pub fn market(epic: String, direction: Direction, size: f64) -> Self
Creates a new market order
Sourcepub fn limit(epic: String, direction: Direction, size: f64, level: f64) -> Self
pub fn limit(epic: String, direction: Direction, size: f64, level: f64) -> Self
Creates a new limit order
Sourcepub fn sell_option_to_market(
epic: &String,
size: &f64,
expiry: &Option<String>,
deal_reference: &Option<String>,
currency_code: &Option<String>,
) -> Self
pub fn sell_option_to_market( epic: &String, size: &f64, expiry: &Option<String>, deal_reference: &Option<String>, currency_code: &Option<String>, ) -> Self
Creates a new instance of a market sell option with predefined parameters.
This function sets up a sell option to the market for a given asset (epic)
with the specified size. It configures the order with default values
for attributes such as direction, order type, and time-in-force.
§Parameters
epic: AStringthat represents the epic (unique identifier or code) of the instrument being traded.size: Af64value representing the size or quantity of the order.
§Returns
An instance of Self (the type implementing this function), containing the specified
epic and size, along with default values for other parameters:
direction: Set toDirection::Sell.order_type: Set toOrderType::Limit.time_in_force: Set toTimeInForce::FillOrKill.level: Set toSome(0.1).guaranteed_stop: Set toNone.stop_level: Set toNone.stop_distance: Set toNone.limit_level: Set toNone.limit_distance: Set toNone.expiry: Set toNone.deal_reference: Set toNone.force_open: Set toSome(true).currency_code: Set toNone.
Note that this function allows for minimal input (the instrument and size), while other fields are provided default values. If further customization is required, you can modify the returned instance as needed.
Sourcepub fn sell_option_to_market_w_force(
epic: &String,
size: &f64,
expiry: &Option<String>,
deal_reference: &Option<String>,
currency_code: &Option<String>,
force_open: Option<bool>,
) -> Self
pub fn sell_option_to_market_w_force( epic: &String, size: &f64, expiry: &Option<String>, deal_reference: &Option<String>, currency_code: &Option<String>, force_open: Option<bool>, ) -> Self
Constructs and returns a new instance of the Self struct representing a sell option
to the market with specific parameters for execution.
§Parameters
epic: A reference to a string slice (&String) that specifies the EPIC (Exchanged Product Information Code) of the instrument for which the sell order is created.size: A reference to a floating-point number (&f64) that represents the size of the sell order. The size is rounded to two decimal places.expiry: An optional string (Option<String>) that indicates the expiry date or period for the sell order. IfNone, no expiry date will be set for the order.deal_reference: An optional string (Option<String>) that contains a reference or identifier for the deal. Can be used for tracking purposes.currency_code: An optional string (Option<String>) representing the currency code. Defaults to"EUR"if not provided.force_open: An optional boolean (Option<bool>) that specifies whether to force open the position. WhenSome(true), a new position is opened even if an existing position for the same instrument and direction is available.
§Returns
Self: A new instance populated with the provided parameters, including the following default properties:direction: Set toDirection::Sellto designate the sell operation.order_type: Set toOrderType::Limitto signify the type of the order.time_in_force: Set toTimeInForce::FillOrKillindicating the order should be fully executed or canceled.level: Set to a constant valueDEFAULT_ORDER_SELL_SIZE.guaranteed_stop: Set toSome(false)indicating no guaranteed stop.- Other optional levels/distance fields (
stop_level,stop_distance,limit_level,limit_distance): Set toNoneby default.
§Notes
- The
#[allow(clippy::ptr_arg)]attribute suppresses the lint warning for using&Stringinstead of&str. Consider updating the function signature to use&strinstead of&Stringfor better idiomatic Rust code. - The input
sizeis automatically rounded down to two decimal places before being stored.
Sourcepub fn buy_option_to_market(
epic: &String,
size: &f64,
expiry: &Option<String>,
deal_reference: &Option<String>,
currency_code: &Option<String>,
) -> Self
pub fn buy_option_to_market( epic: &String, size: &f64, expiry: &Option<String>, deal_reference: &Option<String>, currency_code: &Option<String>, ) -> Self
Creates a new instance of an order to buy an option in the market with specified parameters.
This method initializes an order with the following default values:
directionis set toBuy.order_typeis set toLimit.time_in_forceis set toFillOrKill.levelis set toSome(10000.0).force_openis set toSome(true). Other optional parameters, such as stop levels, distances, expiry, and currency code, are left asNone.
§Parameters
epic(String): The identifier for the market or instrument to trade.size(f64): The size or quantity of the order to be executed.
§Returns
A new instance of Self that represents the configured buy option for the given market.
§Note
Ensure the epic and size values provided are valid and match required market conditions.
Sourcepub fn buy_option_to_market_w_force(
epic: &String,
size: &f64,
expiry: &Option<String>,
deal_reference: &Option<String>,
currency_code: &Option<String>,
force_open: Option<bool>,
) -> Self
pub fn buy_option_to_market_w_force( epic: &String, size: &f64, expiry: &Option<String>, deal_reference: &Option<String>, currency_code: &Option<String>, force_open: Option<bool>, ) -> Self
Constructs a new instance of an order to buy an option in the market with optional force_open behavior.
§Parameters
epic- A string slice representing the unique identifier of the instrument to be traded.size- A reference to a 64-bit floating-point number that represents the size of the order.expiry- An optional string reference representing the expiry date of the option.deal_reference- An optional string reference for the deal reference identifier.currency_code- An optional string reference representing the currency in which the order is denominated. Defaults to “EUR” if not provided.force_open- An optional boolean indicating whether to force open a new position regardless of existing positions.
§Returns
Returns a new instance of Self, representing the constructed order with the provided parameters.
§Behavior
- The size of the order will be rounded down to two decimal places for precision.
- If a
currency_codeis not provided, the default currency code “EUR” is used. - Other parameters are directly mapped into the returned instance.
§Notes
- This function assumes that other order-related fields such as
level,stop_level,stop_distance, etc., are set to their defaults or require specific business logic, such asDEFAULT_ORDER_BUY_SIZEfor the initial buy size. - The Clippy lint for
clippy::ptr_argis explicitly allowed for theepicparameter, where using a reference toStringis intentional.
Sourcepub fn with_stop_loss(self, stop_level: f64) -> Self
pub fn with_stop_loss(self, stop_level: f64) -> Self
Adds a stop loss to the order
Sourcepub fn with_take_profit(self, limit_level: f64) -> Self
pub fn with_take_profit(self, limit_level: f64) -> Self
Adds a take profit to the order
Sourcepub fn with_reference(self, reference: String) -> Self
pub fn with_reference(self, reference: String) -> Self
Adds a reference to the order
Trait Implementations§
Source§impl Clone for CreateOrderRequest
impl Clone for CreateOrderRequest
Source§fn clone(&self) -> CreateOrderRequest
fn clone(&self) -> CreateOrderRequest
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CreateOrderRequest
impl Debug for CreateOrderRequest
Source§impl<'de> Deserialize<'de> for CreateOrderRequest
impl<'de> Deserialize<'de> for CreateOrderRequest
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for CreateOrderRequest
impl Display for CreateOrderRequest
Auto Trait Implementations§
impl Freeze for CreateOrderRequest
impl RefUnwindSafe for CreateOrderRequest
impl Send for CreateOrderRequest
impl Sync for CreateOrderRequest
impl Unpin for CreateOrderRequest
impl UnwindSafe for CreateOrderRequest
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.