(self, reload=False, params={})
| 10185 | }) |
| 10186 | |
| 10187 | def load_leverage_brackets(self, reload=False, params={}): |
| 10188 | self.load_markets() |
| 10189 | # by default cache the leverage bracket |
| 10190 | # it contains useful stuff like the maintenance margin and initial margin for positions |
| 10191 | leverageBrackets = self.safe_dict(self.options, 'leverageBrackets') |
| 10192 | if (leverageBrackets is None) or (reload): |
| 10193 | defaultType = self.safe_string(self.options, 'defaultType', 'future') |
| 10194 | type = self.safe_string(params, 'type', defaultType) |
| 10195 | query = self.omit(params, 'type') |
| 10196 | subType = None |
| 10197 | subType, params = self.handle_sub_type_and_params('loadLeverageBrackets', None, params, 'linear') |
| 10198 | isPortfolioMargin = None |
| 10199 | isPortfolioMargin, params = self.handle_option_and_params_2(params, 'loadLeverageBrackets', 'papi', 'portfolioMargin', False) |
| 10200 | response = None |
| 10201 | if self.is_linear(type, subType): |
| 10202 | if isPortfolioMargin: |
| 10203 | response = self.papiGetUmLeverageBracket(query) |
| 10204 | else: |
| 10205 | response = self.fapiPrivateGetLeverageBracket(query) |
| 10206 | elif self.is_inverse(type, subType): |
| 10207 | if isPortfolioMargin: |
| 10208 | response = self.papiGetCmLeverageBracket(query) |
| 10209 | else: |
| 10210 | response = self.dapiPrivateV2GetLeverageBracket(query) |
| 10211 | else: |
| 10212 | raise NotSupported(self.id + ' loadLeverageBrackets() supports linear and inverse contracts only') |
| 10213 | self.options['leverageBrackets'] = self.create_safe_dictionary() |
| 10214 | for i in range(0, len(response)): |
| 10215 | entry = response[i] |
| 10216 | marketId = self.safe_string(entry, 'symbol') |
| 10217 | symbol = self.safe_symbol(marketId, None, None, 'contract') |
| 10218 | brackets = self.safe_list(entry, 'brackets', []) |
| 10219 | result = [] |
| 10220 | for j in range(0, len(brackets)): |
| 10221 | bracket = brackets[j] |
| 10222 | floorValue = self.safe_string_2(bracket, 'notionalFloor', 'qtyFloor') |
| 10223 | maintenanceMarginPercentage = self.safe_string(bracket, 'maintMarginRatio') |
| 10224 | result.append([floorValue, maintenanceMarginPercentage]) |
| 10225 | self.options['leverageBrackets'][symbol] = result |
| 10226 | return self.options['leverageBrackets'] |
| 10227 | |
| 10228 | def fetch_leverage_tiers(self, symbols: Strings = None, params={}) -> LeverageTiers: |
| 10229 | """ |
no test coverage detected