1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/*
* OANDA v20 API
*
* The full OANDA v20 API Specification. This specification defines how to interact with v20 Accounts, Trades, Orders, Pricing and more.
*
* The version of the OpenAPI document: 0.2.1
* Contact: jmicoud02@gmail.com
* Generated by: https://openapi-generator.tech
*/
use crate::models;
use serde::{Deserialize, Serialize};
/// TakeProfitOrderTransactionBase : A TakeProfitOrder represents the creation of a TakeProfit Order.
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct TakeProfitOrderTransactionBase {
/// The ID of the Trade to close when the price threshold is breached.
#[serde(rename = "tradeID", skip_serializing_if = "Option::is_none")]
pub trade_id: Option<i32>,
/// The client ID of the Trade to be closed when the price threshold is breached.
#[serde(rename = "clientTradeID", skip_serializing_if = "Option::is_none")]
pub client_trade_id: Option<String>,
/// The price threshold specified for the Stop Loss Order. If the guaranteed flag is false, the associated Trade will be closed by a market price that is equal to or worse than this threshold. If the flag is true the associated Trade will be closed at this price.
#[serde(rename = "price", skip_serializing_if = "Option::is_none")]
pub price: Option<f64>,
#[serde(rename = "timeInForce", skip_serializing_if = "Option::is_none")]
pub time_in_force: Option<models::TradeOrderTimeInForce>,
/// A date and time value using either RFC3339 or UNIX time representation. The RFC 3339 representation is a string conforming to https://tools.ietf.org/rfc/rfc3339.txt. The Unix representation is a string representing the number of seconds since the Unix Epoch (January 1st, 1970 at UTC). The value is a fractional number, where the fractional part represents a fraction of a second (up to nine decimal places).
#[serde(rename = "gtdTime", skip_serializing_if = "Option::is_none")]
pub gtd_time: Option<String>,
#[serde(rename = "triggerCondition", skip_serializing_if = "Option::is_none")]
pub trigger_condition: Option<models::TradeOrderTriggerCondition>,
#[serde(rename = "reason", skip_serializing_if = "Option::is_none")]
pub reason: Option<models::TradeOrderTransactionReason>,
#[serde(rename = "clientExtensions", skip_serializing_if = "Option::is_none")]
pub client_extensions: Option<Box<models::ClientExtensions>>,
/// The ID of the OrderFill Transaction that caused this Order to be created (only provided if this Order was created automatically when another Order was filled).
#[serde(rename = "orderFillTransactionID", skip_serializing_if = "Option::is_none")]
pub order_fill_transaction_id: Option<i32>,
/// The ID of the Order that this Order replaces (only provided if this Order replaces an existing Order).
#[serde(rename = "replacesOrderID", skip_serializing_if = "Option::is_none")]
pub replaces_order_id: Option<i32>,
/// The ID of the Transaction that cancels the replaced Order (only provided if this Order replaces an existing Order).
#[serde(rename = "cancellingTransactionID", skip_serializing_if = "Option::is_none")]
pub cancelling_transaction_id: Option<i32>,
}
impl TakeProfitOrderTransactionBase {
/// A TakeProfitOrder represents the creation of a TakeProfit Order.
pub fn new() -> TakeProfitOrderTransactionBase {
TakeProfitOrderTransactionBase {
trade_id: None,
client_trade_id: None,
price: None,
time_in_force: None,
gtd_time: None,
trigger_condition: None,
reason: None,
client_extensions: None,
order_fill_transaction_id: None,
replaces_order_id: None,
cancelling_transaction_id: None,
}
}
}