Skip to main content

mt5_rs/
types.rs

1#[derive(Debug, Clone)]
2pub struct AccountInfo {
3    pub login: i64,
4    pub trade_mode: i64,
5    pub leverage: i64,
6    pub limit_orders: i64,
7    pub margin_so_mode: i64,
8    pub trade_allowed: bool,
9    pub trade_expert: bool,
10    pub margin_mode: i64,
11    pub currency_digits: i64,
12    pub fifo_close: bool,
13    pub balance: f64,
14    pub credit: f64,
15    pub profit: f64,
16    pub equity: f64,
17    pub margin: f64,
18    pub free_margin: f64,
19    pub margin_level: f64,
20    pub margin_so_call: f64,
21    pub margin_so_so: f64,
22    pub margin_initial: f64,
23    pub margin_maintenance: f64,
24    pub assets: f64,
25    pub liabilities: f64,
26    pub commission_blocked: f64,
27    pub name: String,
28    pub server: String,
29    pub currency: String,
30    pub company: String,
31}
32
33#[derive(Debug, Clone)]
34pub struct TerminalInfo {
35    pub community_account: bool,
36    pub community_connection: bool,
37    pub connected: bool,
38    pub dlls_allowed: bool,
39    pub trade_allowed: bool,
40    pub trade_api_disabled: bool,
41    pub email_enabled: bool,
42    pub ftp_enabled: bool,
43    pub notifications_enabled: bool,
44    pub mqid: bool,
45    pub build: i64,
46    pub max_bars: i64,
47    pub code_page: i64,
48    pub ping_last: i64,
49    pub community_balance: f64,
50    pub retransmission: f64,
51    pub company: String,
52    pub name: String,
53    pub language: String,
54    pub path: String,
55    pub data_path: String,
56    pub common_data_path: String,
57}
58
59#[derive(Debug, Clone)]
60pub struct VersionInfo {
61    pub version: i32,
62    pub build: i32,
63    pub build_date: String,
64}
65
66#[derive(Debug, Clone)]
67pub struct SymbolInfo {
68    pub custom: bool,
69    pub chart_mode: i64,
70    pub select: bool,
71    pub visible: bool,
72    pub session_deals: i64,
73    pub session_buy_orders: i64,
74    pub session_sell_orders: i64,
75    pub volume: i64,
76    pub volume_high: i64,
77    pub volume_low: i64,
78    pub time: i64,
79    pub digits: i64,
80    pub spread: i64,
81    pub spread_float: bool,
82    pub ticks_book_depth: i64,
83    pub trade_calc_mode: i64,
84    pub trade_mode: i64,
85    pub start_time: i64,
86    pub expiration_time: i64,
87    pub trade_stops_level: i64,
88    pub trade_freeze_level: i64,
89    pub trade_exe_mode: i64,
90    pub swap_mode: i64,
91    pub swap_rollover3days: i64,
92    pub margin_hedged_use_leg: bool,
93    pub expiration_mode: i64,
94    pub filling_mode: i64,
95    pub order_mode: i64,
96    pub order_gtc_mode: i64,
97    pub option_mode: i64,
98    pub option_right: i64,
99    pub bid: f64,
100    pub bidhigh: f64,
101    pub bidlow: f64,
102    pub ask: f64,
103    pub askhigh: f64,
104    pub asklow: f64,
105    pub last: f64,
106    pub lasthigh: f64,
107    pub lastlow: f64,
108    pub volume_real: f64,
109    pub volumehigh_real: f64,
110    pub volumelow_real: f64,
111    pub option_strike: f64,
112    pub point: f64,
113    pub trade_tick_value: f64,
114    pub trade_tick_value_profit: f64,
115    pub trade_tick_value_loss: f64,
116    pub trade_tick_size: f64,
117    pub trade_contract_size: f64,
118    pub trade_accrued_interest: f64,
119    pub trade_face_value: f64,
120    pub trade_liquidity_rate: f64,
121    pub volume_min: f64,
122    pub volume_max: f64,
123    pub volume_step: f64,
124    pub volume_limit: f64,
125    pub swap_long: f64,
126    pub swap_short: f64,
127    pub margin_initial: f64,
128    pub margin_maintenance: f64,
129    pub session_volume: f64,
130    pub session_turnover: f64,
131    pub session_interest: f64,
132    pub session_buy_orders_volume: f64,
133    pub session_sell_orders_volume: f64,
134    pub session_open: f64,
135    pub session_close: f64,
136    pub session_aw: f64,
137    pub session_price_settlement: f64,
138    pub session_price_limit_min: f64,
139    pub session_price_limit_max: f64,
140    pub margin_hedged: f64,
141    pub price_change: f64,
142    pub price_volatility: f64,
143    pub price_theoretical: f64,
144    pub price_greeks_delta: f64,
145    pub price_greeks_theta: f64,
146    pub price_greeks_gamma: f64,
147    pub price_greeks_vega: f64,
148    pub price_greeks_rho: f64,
149    pub price_greeks_omega: f64,
150    pub price_sensitivity: f64,
151    pub basis: String,
152    pub category: String,
153    pub currency_base: String,
154    pub currency_profit: String,
155    pub currency_margin: String,
156    pub bank: String,
157    pub description: String,
158    pub exchange: String,
159    pub formula: String,
160    pub isin: String,
161    pub name: String,
162    pub page: String,
163    pub path: String,
164}
165
166#[derive(Debug, Clone)]
167pub struct Tick {
168    pub time: i64,
169    pub bid: f64,
170    pub ask: f64,
171    pub last: f64,
172    pub volume: u64,
173    pub time_msc: i64,
174    pub flags: u32,
175    pub volume_real: f64,
176}
177
178#[derive(Debug, Clone)]
179pub struct Rate {
180    pub time: i64,
181    pub open: f64,
182    pub high: f64,
183    pub low: f64,
184    pub close: f64,
185    pub tick_volume: u64,
186    pub spread: i32,
187    pub real_volume: u64,
188}
189
190#[derive(Debug, Clone)]
191pub struct TradePosition {
192    pub ticket: i64,
193    pub time: i64,
194    pub time_msc: i64,
195    pub time_update: i64,
196    pub time_update_msc: i64,
197    pub r#type: i32,
198    pub magic: i64,
199    pub identifier: i64,
200    pub reason: i32,
201    pub volume: f64,
202    pub price_open: f64,
203    pub price_current: f64,
204    pub price_sl: f64,
205    pub price_tp: f64,
206    pub swap: f64,
207    pub profit: f64,
208    pub symbol: String,
209    pub comment: String,
210    pub external_id: String,
211}
212
213#[derive(Debug, Clone)]
214pub struct TradeOrder {
215    pub ticket: i64,
216    pub time_setup: i64,
217    pub time_setup_msc: i64,
218    pub time_done: i64,
219    pub time_done_msc: i64,
220    pub time_expiration: i64,
221    pub r#type: i32,
222    pub type_time: i32,
223    pub type_filling: i32,
224    pub state: i32,
225    pub magic: i64,
226    pub position_id: i64,
227    pub position_by_id: i64,
228    pub reason: i32,
229    pub volume_initial: f64,
230    pub volume_current: f64,
231    pub price_open: f64,
232    pub price_current: f64,
233    pub price_sl: f64,
234    pub price_tp: f64,
235    pub price_stoplimit: f64,
236    pub symbol: String,
237    pub comment: String,
238    pub external_id: String,
239}
240
241#[derive(Debug, Clone)]
242pub struct TradeDeal {
243    pub ticket: i64,
244    pub order: i64,
245    pub time: i64,
246    pub time_msc: i64,
247    pub r#type: i32,
248    pub entry: i32,
249    pub magic: i64,
250    pub position_id: i64,
251    pub reason: i32,
252    pub volume: f64,
253    pub price: f64,
254    pub commission: f64,
255    pub swap: f64,
256    pub profit: f64,
257    pub fee: f64,
258    pub symbol: String,
259    pub comment: String,
260    pub external_id: String,
261}
262
263#[derive(Debug, Clone)]
264pub struct BookInfo {
265    pub r#type: i64,
266    pub price: f64,
267    pub volume: i64,
268    pub volume_real: f64,
269}