add proposed leverage

This commit is contained in:
adriance 2022-03-19 11:34:30 +08:00
parent 12948aade6
commit 28d8cd5d4c
2 changed files with 11 additions and 8 deletions

View File

@ -600,8 +600,9 @@ class FreqtradeBot(LoggingMixin):
trade_side = 'short' if is_short else 'long'
pos_adjust = trade is not None
proposed_leverage = self.config.get('leverage', 1.0)
enter_limit_requested, stake_amount = self.get_valid_enter_price_and_stake(
pair, price, stake_amount, side, trade_side, enter_tag, trade)
pair, price, stake_amount, side, trade_side, enter_tag, trade, proposed_leverage)
if not stake_amount:
return False
@ -611,12 +612,12 @@ class FreqtradeBot(LoggingMixin):
pair=pair,
current_time=datetime.now(timezone.utc),
current_rate=enter_limit_requested,
proposed_leverage=1.0,
proposed_leverage=proposed_leverage,
max_leverage=max_leverage,
side=trade_side,
) if self.trading_mode != TradingMode.SPOT else 1.0
)
# Cap leverage between 1.0 and max_leverage.
leverage = min(max(leverage, 1.0), max_leverage)
leverage = min(max(leverage, proposed_leverage), max_leverage)
else:
# Changing leverage currently not possible
leverage = trade.leverage if trade else 1.0
@ -774,7 +775,8 @@ class FreqtradeBot(LoggingMixin):
self, pair: str, price: Optional[float], stake_amount: float,
side: str, trade_side: str,
entry_tag: Optional[str],
trade: Optional[Trade]
trade: Optional[Trade],
leverage: Optional[float] = 1.0
) -> Tuple[float, float]:
if price:
@ -797,8 +799,9 @@ class FreqtradeBot(LoggingMixin):
# We do however also need min-stake to determine leverage, therefore this is ignored as
# edge-case for now.
min_stake_amount = self.exchange.get_min_pair_stake_amount(
pair, enter_limit_requested, self.strategy.stoploss)
max_stake_amount = self.exchange.get_max_pair_stake_amount(pair, enter_limit_requested)
pair, enter_limit_requested, self.strategy.stoploss, leverage)
max_stake_amount = self.exchange.get_max_pair_stake_amount(
pair, enter_limit_requested, leverage)
if not self.edge and trade is None:
stake_available = self.wallets.get_available_stake_amount()

View File

@ -481,7 +481,7 @@ class IStrategy(ABC, HyperStrategyMixin):
:param side: 'long' or 'short' - indicating the direction of the proposed trade
:return: A leverage amount, which is between 1.0 and max_leverage.
"""
return 1.0
return proposed_leverage
def informative_pairs(self) -> ListPairsWithTimeframes:
"""