Use hyperopt safe amount precision method
This commit is contained in:
parent
52ec0d1046
commit
5b3f031590
@ -24,6 +24,7 @@ from freqtrade.enums import (BacktestState, CandleType, ExitCheckTuple, ExitType
|
||||
TradingMode)
|
||||
from freqtrade.exceptions import DependencyException, OperationalException
|
||||
from freqtrade.exchange import timeframe_to_minutes, timeframe_to_seconds
|
||||
from freqtrade.exchange.exchange import amount_to_precision
|
||||
from freqtrade.mixins import LoggingMixin
|
||||
from freqtrade.optimize.backtest_caching import get_strategy_run_id
|
||||
from freqtrade.optimize.bt_progress import BTProgress
|
||||
@ -822,8 +823,11 @@ class Backtesting:
|
||||
self.order_id_counter += 1
|
||||
base_currency = self.exchange.get_pair_base_currency(pair)
|
||||
amount_p = (stake_amount / propose_rate) * leverage
|
||||
amount = self.exchange._contracts_to_amount(pair, self.exchange.amount_to_precision(
|
||||
pair, self.exchange._amount_to_contracts(pair, amount_p)))
|
||||
amount = self.exchange._contracts_to_amount(
|
||||
pair, amount_to_precision(
|
||||
self.exchange._amount_to_contracts(pair, amount_p),
|
||||
self.exchange.get_precision_amount(pair), self.precision_mode)
|
||||
)
|
||||
# Backcalculate actual stake amount.
|
||||
stake_amount = amount * propose_rate / leverage
|
||||
|
||||
|
@ -18,7 +18,7 @@ from tests.conftest import patch_exchange
|
||||
def test_backtest_position_adjustment(default_conf, fee, mocker, testdatadir) -> None:
|
||||
default_conf['use_exit_signal'] = False
|
||||
mocker.patch('freqtrade.exchange.Exchange.get_fee', fee)
|
||||
mocker.patch('freqtrade.exchange.Exchange.amount_to_precision', lambda s, x, y: round(y, 8))
|
||||
mocker.patch('freqtrade.optimize.backtesting.amount_to_precision', lambda x, y, z: round(x, 8))
|
||||
mocker.patch("freqtrade.exchange.Exchange.get_min_pair_stake_amount", return_value=0.00001)
|
||||
mocker.patch("freqtrade.exchange.Exchange.get_max_pair_stake_amount", return_value=float('inf'))
|
||||
patch_exchange(mocker)
|
||||
|
Loading…
Reference in New Issue
Block a user