add proposed leverage
This commit is contained in:
parent
12948aade6
commit
28d8cd5d4c
@ -600,8 +600,9 @@ class FreqtradeBot(LoggingMixin):
|
|||||||
trade_side = 'short' if is_short else 'long'
|
trade_side = 'short' if is_short else 'long'
|
||||||
pos_adjust = trade is not None
|
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(
|
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:
|
if not stake_amount:
|
||||||
return False
|
return False
|
||||||
@ -611,12 +612,12 @@ class FreqtradeBot(LoggingMixin):
|
|||||||
pair=pair,
|
pair=pair,
|
||||||
current_time=datetime.now(timezone.utc),
|
current_time=datetime.now(timezone.utc),
|
||||||
current_rate=enter_limit_requested,
|
current_rate=enter_limit_requested,
|
||||||
proposed_leverage=1.0,
|
proposed_leverage=proposed_leverage,
|
||||||
max_leverage=max_leverage,
|
max_leverage=max_leverage,
|
||||||
side=trade_side,
|
side=trade_side,
|
||||||
) if self.trading_mode != TradingMode.SPOT else 1.0
|
)
|
||||||
# Cap leverage between 1.0 and max_leverage.
|
# 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:
|
else:
|
||||||
# Changing leverage currently not possible
|
# Changing leverage currently not possible
|
||||||
leverage = trade.leverage if trade else 1.0
|
leverage = trade.leverage if trade else 1.0
|
||||||
@ -774,7 +775,8 @@ class FreqtradeBot(LoggingMixin):
|
|||||||
self, pair: str, price: Optional[float], stake_amount: float,
|
self, pair: str, price: Optional[float], stake_amount: float,
|
||||||
side: str, trade_side: str,
|
side: str, trade_side: str,
|
||||||
entry_tag: Optional[str],
|
entry_tag: Optional[str],
|
||||||
trade: Optional[Trade]
|
trade: Optional[Trade],
|
||||||
|
leverage: Optional[float] = 1.0
|
||||||
) -> Tuple[float, float]:
|
) -> Tuple[float, float]:
|
||||||
|
|
||||||
if price:
|
if price:
|
||||||
@ -797,8 +799,9 @@ class FreqtradeBot(LoggingMixin):
|
|||||||
# We do however also need min-stake to determine leverage, therefore this is ignored as
|
# We do however also need min-stake to determine leverage, therefore this is ignored as
|
||||||
# edge-case for now.
|
# edge-case for now.
|
||||||
min_stake_amount = self.exchange.get_min_pair_stake_amount(
|
min_stake_amount = self.exchange.get_min_pair_stake_amount(
|
||||||
pair, enter_limit_requested, self.strategy.stoploss)
|
pair, enter_limit_requested, self.strategy.stoploss, leverage)
|
||||||
max_stake_amount = self.exchange.get_max_pair_stake_amount(pair, enter_limit_requested)
|
max_stake_amount = self.exchange.get_max_pair_stake_amount(
|
||||||
|
pair, enter_limit_requested, leverage)
|
||||||
|
|
||||||
if not self.edge and trade is None:
|
if not self.edge and trade is None:
|
||||||
stake_available = self.wallets.get_available_stake_amount()
|
stake_available = self.wallets.get_available_stake_amount()
|
||||||
|
@ -481,7 +481,7 @@ class IStrategy(ABC, HyperStrategyMixin):
|
|||||||
:param side: 'long' or 'short' - indicating the direction of the proposed trade
|
: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: A leverage amount, which is between 1.0 and max_leverage.
|
||||||
"""
|
"""
|
||||||
return 1.0
|
return proposed_leverage
|
||||||
|
|
||||||
def informative_pairs(self) -> ListPairsWithTimeframes:
|
def informative_pairs(self) -> ListPairsWithTimeframes:
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user