mirror of
https://github.com/freqtrade/freqtrade.git
synced 2024-11-10 10:21:59 +00:00
parent
23a566b478
commit
d3d17f9f8b
|
@ -214,7 +214,7 @@ With a reserve of 5%, the minimum stake amount would be ~12.6$ (`12 * (1 + 0.05)
|
||||||
To limit this calculation in case of large stoploss values, the calculated minimum stake-limit will never be more than 50% above the real limit.
|
To limit this calculation in case of large stoploss values, the calculated minimum stake-limit will never be more than 50% above the real limit.
|
||||||
|
|
||||||
!!! Warning
|
!!! Warning
|
||||||
Since the limits on exchanges are usually stable and are not updated often, some pairs can show pretty high minimum limits, simply because the price increased a lot since the last limit adjustment by the exchange.
|
Since the limits on exchanges are usually stable and are not updated often, some pairs can show pretty high minimum limits, simply because the price increased a lot since the last limit adjustment by the exchange. Freqtrade adjusts the stake-amount to this value, unless it's > 30% more than the calculated/desired stake-amount - in which case the trade is rejected.
|
||||||
|
|
||||||
#### Tradable balance
|
#### Tradable balance
|
||||||
|
|
||||||
|
|
|
@ -255,6 +255,15 @@ class Wallets:
|
||||||
f"Stake amount for pair {pair} is too small "
|
f"Stake amount for pair {pair} is too small "
|
||||||
f"({stake_amount} < {min_stake_amount}), adjusting to {min_stake_amount}."
|
f"({stake_amount} < {min_stake_amount}), adjusting to {min_stake_amount}."
|
||||||
)
|
)
|
||||||
|
if stake_amount * 1.3 < min_stake_amount:
|
||||||
|
# Top-cap stake-amount adjustments to +30%.
|
||||||
|
if self._log:
|
||||||
|
logger.info(
|
||||||
|
f"Adjusted stake amount for pair {pair} is more than 30% bigger than "
|
||||||
|
f"the desired stake ({stake_amount} * 1.3 > {max_stake_amount}), "
|
||||||
|
f"ignoring trade."
|
||||||
|
)
|
||||||
|
return 0
|
||||||
stake_amount = min_stake_amount
|
stake_amount = min_stake_amount
|
||||||
|
|
||||||
if stake_amount > max_stake_amount:
|
if stake_amount > max_stake_amount:
|
||||||
|
|
|
@ -321,7 +321,7 @@ def test_create_trade_no_stake_amount(default_conf_usdt, ticker_usdt, fee, mocke
|
||||||
|
|
||||||
@pytest.mark.parametrize('stake_amount,create,amount_enough,max_open_trades', [
|
@pytest.mark.parametrize('stake_amount,create,amount_enough,max_open_trades', [
|
||||||
(5.0, True, True, 99),
|
(5.0, True, True, 99),
|
||||||
(0.00005, True, False, 99),
|
(0.04, True, False, 99), # Amount will be adjusted to min - which is 0.051
|
||||||
(0, False, True, 99),
|
(0, False, True, 99),
|
||||||
(UNLIMITED_STAKE_AMOUNT, False, True, 0),
|
(UNLIMITED_STAKE_AMOUNT, False, True, 0),
|
||||||
])
|
])
|
||||||
|
|
|
@ -185,8 +185,9 @@ def test_get_trade_stake_amount_unlimited_amount(default_conf, ticker, balance_r
|
||||||
(100, 11, 500, 100),
|
(100, 11, 500, 100),
|
||||||
(1000, 11, 500, 500), # Above max-stake
|
(1000, 11, 500, 500), # Above max-stake
|
||||||
(20, 15, 10, 0), # Minimum stake > max-stake
|
(20, 15, 10, 0), # Minimum stake > max-stake
|
||||||
(1, 11, 100, 11), # Below min stake
|
(9, 11, 100, 11), # Below min stake
|
||||||
(1, 15, 10, 0), # Below min stake and min_stake > max_stake
|
(1, 15, 10, 0), # Below min stake and min_stake > max_stake
|
||||||
|
(20, 50, 100, 0), # Below min stake and stake * 1.3 > min_stake
|
||||||
|
|
||||||
])
|
])
|
||||||
def test_validate_stake_amount(mocker, default_conf,
|
def test_validate_stake_amount(mocker, default_conf,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user