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

Method parse_position

python/ccxt/dydx.py:1042–1095  ·  view source on GitHub ↗
(self, position: dict, market: Market = None)

Source from the content-addressed store, hash-verified

1040 return self.fetch_orders(symbol, since, limit, self.extend(request, params))
1041
1042 def parse_position(self, position: dict, market: Market = None):
1043 #
1044 # {
1045 # "market": "BTC-USD",
1046 # "status": "OPEN",
1047 # "side": "SHORT",
1048 # "size": "-0.407",
1049 # "maxSize": "-0.009",
1050 # "entryPrice": "118692.04840909090909090909",
1051 # "exitPrice": "119526.565625",
1052 # "realizedPnl": "476.42665909090909090909088",
1053 # "unrealizedPnl": "-57.26681734000000000000037",
1054 # "createdAt": "2025-07-14T07:53:55.631Z",
1055 # "createdAtHeight": "44140908",
1056 # "closedAt": null,
1057 # "sumOpen": "0.44",
1058 # "sumClose": "0.032",
1059 # "netFunding": "503.13121",
1060 # "subaccountNumber": 0
1061 # }
1062 #
1063 marketId = self.safe_string(position, 'market')
1064 market = self.safe_market(marketId, market)
1065 symbol = market['symbol']
1066 side = self.safe_string_lower(position, 'side')
1067 quantity = self.safe_string(position, 'size')
1068 if side != 'long':
1069 quantity = Precise.string_mul('-1', quantity)
1070 timestamp = self.parse8601(self.safe_string(position, 'createdAt'))
1071 return self.safe_position({
1072 'info': position,
1073 'id': None,
1074 'symbol': symbol,
1075 'entryPrice': self.safe_number(position, 'entryPrice'),
1076 'markPrice': None,
1077 'notional': None,
1078 'collateral': None,
1079 'unrealizedPnl': self.safe_number(position, 'unrealizedPnl'),
1080 'side': side,
1081 'contracts': self.parse_number(quantity),
1082 'contractSize': None,
1083 'timestamp': timestamp,
1084 'datetime': self.iso8601(timestamp),
1085 'hedged': None,
1086 'maintenanceMargin': None,
1087 'maintenanceMarginPercentage': None,
1088 'initialMargin': None,
1089 'initialMarginPercentage': None,
1090 'leverage': None,
1091 'liquidationPrice': None,
1092 'marginRatio': None,
1093 'marginMode': None,
1094 'percentage': None,
1095 })
1096
1097 def fetch_position(self, symbol: str, params={}):
1098 """

Callers

nothing calls this directly

Calls 9

safe_stringMethod · 0.80
safe_string_lowerMethod · 0.80
string_mulMethod · 0.80
safe_positionMethod · 0.80
safe_numberMethod · 0.80
parse_numberMethod · 0.80
safe_marketMethod · 0.45
parse8601Method · 0.45
iso8601Method · 0.45

Tested by

no test coverage detected