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

Method parse_position

python/ccxt/ascendex.py:2761–2822  ·  view source on GitHub ↗
(self, position: dict, market: Market = None)

Source from the content-addressed store, hash-verified

2759 return self.filter_by_array_positions(result, 'symbol', symbols, False)
2760
2761 def parse_position(self, position: dict, market: Market = None):
2762 #
2763 # {
2764 # "symbol": "BTC-PERP",
2765 # "side": "LONG",
2766 # "position": "0.0001",
2767 # "referenceCost": "-3.12277254",
2768 # "unrealizedPnl": "-0.001700233",
2769 # "realizedPnl": "0",
2770 # "avgOpenPrice": "31209",
2771 # "marginType": "isolated",
2772 # "isolatedMargin": "1.654972977",
2773 # "leverage": "2",
2774 # "takeProfitPrice": "0",
2775 # "takeProfitTrigger": "market",
2776 # "stopLossPrice": "0",
2777 # "stopLossTrigger": "market",
2778 # "buyOpenOrderNotional": "0",
2779 # "sellOpenOrderNotional": "0",
2780 # "markPrice": "31210.723063672",
2781 # "indexPrice": "31223.148857925"
2782 # },
2783 #
2784 marketId = self.safe_string(position, 'symbol')
2785 market = self.safe_market(marketId, market)
2786 notional = self.safe_string(position, 'buyOpenOrderNotional')
2787 if Precise.string_eq(notional, '0'):
2788 notional = self.safe_string(position, 'sellOpenOrderNotional')
2789 marginType = self.safe_string(position, 'marginType')
2790 marginMode = 'cross' if (marginType == 'crossed') else 'isolated'
2791 collateral = None
2792 if marginMode == 'isolated':
2793 collateral = self.safe_string(position, 'isolatedMargin')
2794 return self.safe_position({
2795 'info': position,
2796 'id': None,
2797 'symbol': market['symbol'],
2798 'notional': self.parse_number(notional),
2799 'marginMode': marginMode,
2800 'liquidationPrice': None,
2801 'entryPrice': self.safe_number(position, 'avgOpenPrice'),
2802 'unrealizedPnl': self.safe_number(position, 'unrealizedPnl'),
2803 'percentage': None,
2804 'contracts': self.safe_number(position, 'position'),
2805 'contractSize': self.safe_number(market, 'contractSize'),
2806 'markPrice': self.safe_number(position, 'markPrice'),
2807 'lastPrice': None,
2808 'side': self.safe_string_lower(position, 'side'),
2809 'hedged': None,
2810 'timestamp': None,
2811 'datetime': None,
2812 'lastUpdateTimestamp': None,
2813 'maintenanceMargin': None,
2814 'maintenanceMarginPercentage': None,
2815 'collateral': collateral,
2816 'initialMargin': None,
2817 'initialMarginPercentage': None,
2818 'leverage': self.safe_integer(position, 'leverage'),

Callers 1

fetch_positionsMethod · 0.95

Calls 8

safe_stringMethod · 0.80
string_eqMethod · 0.80
safe_positionMethod · 0.80
parse_numberMethod · 0.80
safe_numberMethod · 0.80
safe_string_lowerMethod · 0.80
safe_integerMethod · 0.80
safe_marketMethod · 0.45

Tested by

no test coverage detected