MCPcopy Create free account
hub / github.com/ccxt/ccxt / parse_position

Method parse_position

python/ccxt/xt.py:4555–4604  ·  view source on GitHub ↗
(self, position, market: Market = None)

Source from the content-addressed store, hash-verified

4553 return self.filter_by_array_positions(result, 'symbol', symbols, False)
4554
4555 def parse_position(self, position, market: Market = None):
4556 #
4557 # {
4558 # "symbol": "btc_usdt",
4559 # "positionType": "ISOLATED",
4560 # "positionSide": "SHORT",
4561 # "contractType": "PERPETUAL",
4562 # "positionSize": "10",
4563 # "closeOrderSize": "0",
4564 # "availableCloseSize": "10",
4565 # "entryPrice": "27060",
4566 # "openOrderSize": "0",
4567 # "isolatedMargin": "1.0824",
4568 # "openOrderMarginFrozen": "0",
4569 # "realizedProfit": "-0.00130138",
4570 # "autoMargin": False,
4571 # "leverage": 25
4572 # }
4573 #
4574 marketId = self.safe_string(position, 'symbol')
4575 market = self.safe_market(marketId, market, None, 'contract')
4576 symbol = self.safe_symbol(marketId, market, None, 'contract')
4577 positionType = self.safe_string(position, 'positionType')
4578 marginMode = 'cross' if (positionType == 'CROSSED') else 'isolated'
4579 collateral = self.safe_number(position, 'isolatedMargin')
4580 return self.safe_position({
4581 'info': position,
4582 'id': None,
4583 'symbol': symbol,
4584 'timestamp': None,
4585 'datetime': None,
4586 'hedged': None,
4587 'side': self.safe_string_lower(position, 'positionSide'),
4588 'contracts': self.safe_number(position, 'positionSize'),
4589 'contractSize': market['contractSize'],
4590 'entryPrice': self.safe_number(position, 'entryPrice'),
4591 'markPrice': None,
4592 'notional': None,
4593 'leverage': self.safe_integer(position, 'leverage'),
4594 'collateral': collateral,
4595 'initialMargin': collateral,
4596 'maintenanceMargin': None,
4597 'initialMarginPercentage': None,
4598 'maintenanceMarginPercentage': None,
4599 'unrealizedPnl': None,
4600 'liquidationPrice': None,
4601 'marginMode': marginMode,
4602 'percentage': None,
4603 'marginRatio': None,
4604 })
4605
4606 def transfer(self, code: str, amount: float, fromAccount: str, toAccount: str, params={}) -> TransferEntry:
4607 """

Callers 2

fetch_positionMethod · 0.95
fetch_positionsMethod · 0.95

Calls 7

safe_stringMethod · 0.80
safe_symbolMethod · 0.80
safe_numberMethod · 0.80
safe_positionMethod · 0.80
safe_string_lowerMethod · 0.80
safe_integerMethod · 0.80
safe_marketMethod · 0.45

Tested by

no test coverage detected