Skip to main content

rust_okx/api/account/responses/
balances.rs

1use serde::Deserialize;
2
3use crate::model::NumberString;
4
5/// The trading-account balance summary.
6#[derive(Debug, Clone, Deserialize)]
7#[serde(rename_all = "camelCase")]
8#[non_exhaustive]
9pub struct AccountBalance {
10    /// Total equity in USD.
11    #[serde(default)]
12    pub total_eq: NumberString,
13    /// Isolated margin equity in USD.
14    #[serde(default)]
15    pub iso_eq: NumberString,
16    /// Adjusted / effective equity in USD.
17    #[serde(default)]
18    pub adj_eq: NumberString,
19    /// Account level available equity.
20    #[serde(default)]
21    pub avail_eq: NumberString,
22    /// Cross margin frozen for pending orders in USD.
23    #[serde(default)]
24    pub ord_froz: NumberString,
25    /// Initial margin requirement in USD.
26    #[serde(default)]
27    pub imr: NumberString,
28    /// Maintenance margin requirement in USD.
29    #[serde(default)]
30    pub mmr: NumberString,
31    /// Potential borrowing IMR in USD.
32    #[serde(default)]
33    pub borrow_froz: NumberString,
34    /// Account-level margin ratio.
35    #[serde(default)]
36    pub mgn_ratio: NumberString,
37    /// Gross notional value of all open derivative positions in USD.
38    #[serde(default)]
39    pub notional_usd: NumberString,
40    /// Notional value for Borrow in USD.
41    #[serde(default)]
42    pub notional_usd_for_borrow: NumberString,
43    /// Notional value of perpetual futures positions in USD.
44    #[serde(default)]
45    pub notional_usd_for_swap: NumberString,
46    /// Notional value of expiry futures positions in USD.
47    #[serde(default)]
48    pub notional_usd_for_futures: NumberString,
49    /// Notional value of option positions in USD.
50    #[serde(default)]
51    pub notional_usd_for_option: NumberString,
52    /// Account-level unrealized PnL in USD.
53    #[serde(default)]
54    pub upl: NumberString,
55    /// Account delta denominated in USD.
56    #[serde(default)]
57    pub delta: NumberString,
58    /// Account-level delta leverage.
59    #[serde(default)]
60    pub delta_lever: NumberString,
61    /// Delta-neutral status.
62    #[serde(default)]
63    pub delta_neutral_status: String,
64    /// Per-currency balance details.
65    #[serde(default)]
66    pub details: Vec<BalanceDetail>,
67    /// Last update time (Unix milliseconds).
68    #[serde(default)]
69    pub u_time: NumberString,
70}
71
72/// Balance details for a single currency.
73#[derive(Debug, Clone, Deserialize)]
74#[serde(rename_all = "camelCase")]
75#[non_exhaustive]
76pub struct BalanceDetail {
77    /// Currency, e.g. `USDT`.
78    pub ccy: String,
79    /// Equity of the currency.
80    #[serde(default)]
81    pub eq: NumberString,
82    /// Cash balance.
83    #[serde(default)]
84    pub cash_bal: NumberString,
85    /// Update time of currency balance information.
86    #[serde(default)]
87    pub u_time: NumberString,
88    /// Isolated margin equity of currency.
89    #[serde(default)]
90    pub iso_eq: NumberString,
91    /// Available equity of currency.
92    #[serde(default)]
93    pub avail_eq: NumberString,
94    /// Discount equity of currency in USD.
95    #[serde(default)]
96    pub dis_eq: NumberString,
97    /// Frozen balance for Dip Sniper and Peak Sniper.
98    #[serde(default)]
99    pub fixed_bal: NumberString,
100    /// Available balance.
101    #[serde(default)]
102    pub avail_bal: NumberString,
103    /// Frozen balance.
104    #[serde(default)]
105    pub frozen_bal: NumberString,
106    /// Margin frozen for open orders.
107    #[serde(default)]
108    pub ord_frozen: NumberString,
109    /// Liabilities of currency.
110    #[serde(default)]
111    pub liab: NumberString,
112    /// Unrealized PnL of currency.
113    #[serde(default)]
114    pub upl: NumberString,
115    /// Liabilities due to unrealized loss.
116    #[serde(default)]
117    pub upl_liab: NumberString,
118    /// Cross liabilities of currency.
119    #[serde(default)]
120    pub cross_liab: NumberString,
121    /// Trial fund balance.
122    #[serde(default)]
123    pub reward_bal: NumberString,
124    /// Isolated liabilities of currency.
125    #[serde(default)]
126    pub iso_liab: NumberString,
127    /// Cross maintenance margin ratio of currency.
128    #[serde(default)]
129    pub mgn_ratio: NumberString,
130    /// Cross initial margin requirement at currency level.
131    #[serde(default)]
132    pub imr: NumberString,
133    /// Cross maintenance margin requirement at currency level.
134    #[serde(default)]
135    pub mmr: NumberString,
136    /// Accrued interest of currency.
137    #[serde(default)]
138    pub interest: NumberString,
139    /// Risk indicator of forced repayment.
140    #[serde(default)]
141    pub twap: NumberString,
142    /// Forced repayment type.
143    #[serde(default)]
144    pub frp_type: String,
145    /// Maximum borrowable amount.
146    #[serde(default)]
147    pub max_loan: NumberString,
148    /// Equity in USD of currency.
149    #[serde(default)]
150    pub eq_usd: NumberString,
151    /// Potential borrowing IMR of currency in USD.
152    #[serde(default)]
153    pub borrow_froz: NumberString,
154    /// Leverage of currency.
155    #[serde(default)]
156    pub notional_lever: NumberString,
157    /// Total equity allocated to trading bots.
158    #[serde(default)]
159    pub stgy_eq: NumberString,
160    /// Isolated unrealized PnL of currency.
161    #[serde(default)]
162    pub iso_upl: NumberString,
163    /// Actual spot hedging amount in use.
164    #[serde(default)]
165    pub spot_in_use_amt: NumberString,
166    /// User-defined spot hedging amount.
167    #[serde(default)]
168    pub cl_spot_in_use_amt: NumberString,
169    /// Maximum possible spot hedging amount.
170    #[serde(default)]
171    pub max_spot_in_use: NumberString,
172    /// Spot copy trading balance.
173    #[serde(default)]
174    pub spot_iso_bal: NumberString,
175    /// Smart sync equity.
176    #[serde(default)]
177    pub smt_sync_eq: NumberString,
178    /// Spot smart sync equity.
179    #[serde(default)]
180    pub spot_copy_trading_eq: NumberString,
181    /// Spot balance.
182    #[serde(default)]
183    pub spot_bal: NumberString,
184    /// Spot average cost price.
185    #[serde(default)]
186    pub open_avg_px: NumberString,
187    /// Spot accumulated cost price.
188    #[serde(default)]
189    pub acc_avg_px: NumberString,
190    /// Spot unrealized PnL.
191    #[serde(default)]
192    pub spot_upl: NumberString,
193    /// Spot unrealized PnL ratio.
194    #[serde(default)]
195    pub spot_upl_ratio: NumberString,
196    /// Spot accumulated PnL.
197    #[serde(default)]
198    pub total_pnl: NumberString,
199    /// Spot accumulated PnL ratio.
200    #[serde(default)]
201    pub total_pnl_ratio: NumberString,
202    /// Platform collateral restriction status.
203    #[serde(default)]
204    pub col_res: String,
205    /// Whether collateral is enabled for this currency.
206    #[serde(default)]
207    pub collateral_enabled: bool,
208    /// Whether collateral is restricted for this currency.
209    #[serde(default)]
210    pub collateral_restrict: bool,
211    /// Auto-conversion status for collateral borrowing.
212    #[serde(default)]
213    pub col_borr_auto_conversion: String,
214    /// Auto lend status.
215    #[serde(default)]
216    pub auto_lend_status: String,
217    /// Auto lend matched amount.
218    #[serde(default)]
219    pub auto_lend_mt_amt: NumberString,
220}