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