(self, position: dict, market: Market = None)
| 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'), |
no test coverage detected