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

Method parse_option_position

python/ccxt/binance.py:10440–10494  ·  view source on GitHub ↗
(self, position: dict, market: Market = None)

Source from the content-addressed store, hash-verified

10438 return self.filter_by_array_positions(result, 'symbol', symbols, False)
10439
10440 def parse_option_position(self, position: dict, market: Market = None):
10441 #
10442 # {
10443 # "entryPrice": "27.70000000",
10444 # "symbol": "ETH-230426-1850-C",
10445 # "side": "LONG",
10446 # "quantity": "0.50000000",
10447 # "reducibleQty": "0.50000000",
10448 # "markValue": "10.250000000",
10449 # "ror": "-0.2599",
10450 # "unrealizedPNL": "-3.600000000",
10451 # "markPrice": "20.5",
10452 # "strikePrice": "1850.00000000",
10453 # "positionCost": "13.85000000",
10454 # "expiryDate": 1682496000000,
10455 # "priceScale": 1,
10456 # "quantityScale": 2,
10457 # "optionSide": "CALL",
10458 # "quoteAsset": "USDT",
10459 # "time": 1682492427106
10460 # }
10461 #
10462 marketId = self.safe_string(position, 'symbol')
10463 market = self.safe_market(marketId, market, None, 'swap')
10464 symbol = market['symbol']
10465 side = self.safe_string_lower(position, 'side')
10466 quantity = self.safe_string(position, 'quantity')
10467 if side != 'long':
10468 quantity = Precise.string_mul('-1', quantity)
10469 timestamp = self.safe_integer(position, 'time')
10470 return self.safe_position({
10471 'info': position,
10472 'id': None,
10473 'symbol': symbol,
10474 'entryPrice': self.safe_number(position, 'entryPrice'),
10475 'markPrice': self.safe_number(position, 'markPrice'),
10476 'notional': self.safe_number(position, 'markValue'),
10477 'collateral': self.safe_number(position, 'positionCost'),
10478 'unrealizedPnl': self.safe_number(position, 'unrealizedPNL'),
10479 'side': side,
10480 'contracts': self.parse_number(quantity),
10481 'contractSize': None,
10482 'timestamp': timestamp,
10483 'datetime': self.iso8601(timestamp),
10484 'hedged': None,
10485 'maintenanceMargin': None,
10486 'maintenanceMarginPercentage': None,
10487 'initialMargin': None,
10488 'initialMarginPercentage': None,
10489 'leverage': None,
10490 'liquidationPrice': None,
10491 'marginRatio': None,
10492 'marginMode': None,
10493 'percentage': None,
10494 })
10495
10496 def fetch_positions(self, symbols: Strings = None, params={}) -> List[Position]:
10497 """

Callers 2

fetch_positionMethod · 0.95

Calls 9

safe_marketMethod · 0.95
safe_stringMethod · 0.80
safe_string_lowerMethod · 0.80
string_mulMethod · 0.80
safe_integerMethod · 0.80
safe_positionMethod · 0.80
safe_numberMethod · 0.80
parse_numberMethod · 0.80
iso8601Method · 0.45

Tested by

no test coverage detected