From 8190b0d83b93a95145bb3486b2045da5f5aec245 Mon Sep 17 00:00:00 2001 From: Sam Germain Date: Mon, 31 Jan 2022 12:49:18 -0600 Subject: [PATCH] binance.get_max_leverage adjustment --- freqtrade/exchange/binance.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/freqtrade/exchange/binance.py b/freqtrade/exchange/binance.py index d9eef4170..a922d9c0d 100644 --- a/freqtrade/exchange/binance.py +++ b/freqtrade/exchange/binance.py @@ -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(