binance.get_max_leverage adjustment

This commit is contained in:
Sam Germain 2022-01-31 12:49:18 -06:00
parent a368f8b322
commit 8190b0d83b

View File

@ -164,15 +164,20 @@ class Binance(Exchange):
if pair not in self._leverage_brackets:
return 1.0
pair_brackets = self._leverage_brackets[pair]
max_lev = 1.0
for [min_amount, margin_req] in pair_brackets:
num_brackets = len(pair_brackets)
min_amount = 0
for bracket_num in range(num_brackets):
[_, margin_req] = pair_brackets[bracket_num]
lev = 1/margin_req
nominal_value = stake_amount * lev
if nominal_value >= min_amount:
max_lev = lev
if bracket_num+1 != num_brackets: # If not on last bracket
[min_amount, _] = pair_brackets[bracket_num+1] # Get min_amount of next bracket
else:
break
return max_lev
return lev
nominal_value = stake_amount * lev
# Bracket is good if the leveraged trade value doesnt exceed min_amount of next bracket
if nominal_value < min_amount:
return lev
return 1.0 # default leverage
@retrier
def _set_leverage(