(self, position: dict, market: Market = None)
| 2245 | return self.parse_positions(result, symbols) |
| 2246 | |
| 2247 | def parse_position(self, position: dict, market: Market = None): |
| 2248 | # |
| 2249 | # { |
| 2250 | # "event_time": "1765258069092857642", |
| 2251 | # "sub_account_id": "2147050003876484", |
| 2252 | # "instrument": "BTC_USDT_Perp", |
| 2253 | # "size": "0.001", |
| 2254 | # "notional": "89.8169", |
| 2255 | # "entry_price": "90000.0", |
| 2256 | # "exit_price": "0.0", |
| 2257 | # "mark_price": "89816.900008979", |
| 2258 | # "unrealized_pnl": "-0.183099", |
| 2259 | # "realized_pnl": "0.0", |
| 2260 | # "total_pnl": "-0.183099", |
| 2261 | # "roi": "-0.2034", |
| 2262 | # "quote_index_price": "1.00017885", |
| 2263 | # "est_liquidation_price": "77951.450008979", |
| 2264 | # "leverage": "28.0", |
| 2265 | # "cumulative_fee": "-0.00009", |
| 2266 | # "cumulative_realized_funding_payment": "0.033862" |
| 2267 | # } |
| 2268 | # |
| 2269 | marketId = self.safe_string(position, 'instrument') |
| 2270 | timestamp = self.safe_integer_product(position, 'event_time', 0.000001) |
| 2271 | sizeRaw = self.safe_string(position, 'size') |
| 2272 | isLong = (Precise.string_ge(sizeRaw, '0')) |
| 2273 | side = 'long' if isLong else 'short' |
| 2274 | return self.safe_position({ |
| 2275 | 'info': position, |
| 2276 | 'id': None, |
| 2277 | 'symbol': self.safe_symbol(marketId, market), |
| 2278 | 'notional': self.parse_number(Precise.string_abs(self.safe_string(position, 'notional'))), |
| 2279 | 'marginMode': None, |
| 2280 | 'liquidationPrice': self.safe_number(position, 'est_liquidation_price'), |
| 2281 | 'entryPrice': self.safe_number(position, 'entry_price'), |
| 2282 | 'unrealizedPnl': self.safe_number(position, 'unrealized_pnl'), |
| 2283 | 'realizedPnl': self.safe_number(position, 'realized_pnl'), |
| 2284 | 'percentage': None, |
| 2285 | 'contracts': self.parse_number(Precise.string_abs(sizeRaw)), |
| 2286 | 'markPrice': self.safe_number(position, 'mark_price'), |
| 2287 | 'lastPrice': None, |
| 2288 | 'side': side, |
| 2289 | 'hedged': None, |
| 2290 | 'timestamp': timestamp, |
| 2291 | 'datetime': self.iso8601(timestamp), |
| 2292 | 'lastUpdateTimestamp': self.safe_integer(position, 'lastUpdateTime'), |
| 2293 | 'maintenanceMargin': self.safe_number(position, 'maintenanceMargin'), |
| 2294 | 'maintenanceMarginPercentage': None, |
| 2295 | 'collateral': None, |
| 2296 | 'initialMargin': self.safe_number(position, 'initialMargin'), |
| 2297 | 'initialMarginPercentage': None, |
| 2298 | 'leverage': self.safe_number(position, 'leverage'), |
| 2299 | 'marginRatio': None, |
| 2300 | 'stopLossPrice': None, |
| 2301 | 'takeProfitPrice': None, |
| 2302 | }) |
| 2303 | |
| 2304 | async def fetch_leverages(self, symbols: Strings = None, params={}) -> Leverages: |
no test coverage detected