checked average_price

This commit is contained in:
மனோஜ்குமார் பழனிச்சாமி 2022-04-03 18:03:04 +05:30
parent d038a1865b
commit a3c579c3d2
4 changed files with 17 additions and 14 deletions

View File

@ -878,7 +878,7 @@ class Exchange:
return rate return rate
def _fill_dry_limit_order(self, pair: str, side: str, # noqa: max-complexity: 13 def _fill_dry_limit_order(self, pair: str, side: str, # noqa: max-complexity: 13
limit: float, given_amount: float) -> Tuple[Optional[float], float]: limit: float, given_amount: float) -> Tuple[Optional[float], float]:
""" """
Returns average price and filled amount Returns average price and filled amount
""" """
@ -927,7 +927,7 @@ class Exchange:
average_price, filled_amount = self._fill_dry_limit_order( average_price, filled_amount = self._fill_dry_limit_order(
pair, order['side'], order['price'], order['remaining']) pair, order['side'], order['price'], order['remaining'])
if filled_amount: if average_price:
order['remaining'] -= filled_amount order['remaining'] -= filled_amount
order_cost = order['average'] * order['filled'] + average_price * filled_amount order_cost = order['average'] * order['filled'] + average_price * filled_amount
order['filled'] += filled_amount order['filled'] += filled_amount

View File

@ -825,7 +825,8 @@ def test_rpc_forceexit(default_conf, ticker, fee, mocker) -> None:
freqtradebot.state = State.RUNNING freqtradebot.state = State.RUNNING
assert cancel_order_mock.call_count == 0 assert cancel_order_mock.call_count == 0
mocker.patch( mocker.patch(
'freqtrade.exchange.Exchange._fill_dry_limit_order', MagicMock(side_effect=lambda *_: (None, 0)),) 'freqtrade.exchange.Exchange._fill_dry_limit_order',
MagicMock(side_effect=lambda *_: (None, 0)),)
freqtradebot.enter_positions() freqtradebot.enter_positions()
# make an limit-buy open trade # make an limit-buy open trade
trade = Trade.query.filter(Trade.id == '3').first() trade = Trade.query.filter(Trade.id == '3').first()

View File

@ -1186,7 +1186,7 @@ def test_api_forcesell(botclient, mocker, ticker, fee, markets):
fetch_ticker=ticker, fetch_ticker=ticker,
get_fee=fee, get_fee=fee,
markets=PropertyMock(return_value=markets), markets=PropertyMock(return_value=markets),
_fill_dry_limit_order=MagicMock(side_effect=lambda *_ :(None, 0)), _fill_dry_limit_order=MagicMock(side_effect=lambda *_: (None, 0)),
) )
patch_get_signal(ftbot) patch_get_signal(ftbot)

View File

@ -259,7 +259,7 @@ def test_total_open_trades_stakes(mocker, default_conf_usdt, ticker_usdt, fee) -
'freqtrade.exchange.Exchange', 'freqtrade.exchange.Exchange',
fetch_ticker=ticker_usdt, fetch_ticker=ticker_usdt,
get_fee=fee, get_fee=fee,
_fill_dry_limit_order=MagicMock(side_effect=lambda *_ :(None, 0)), _fill_dry_limit_order=MagicMock(side_effect=lambda *_: (None, 0)),
) )
freqtrade = FreqtradeBot(default_conf_usdt) freqtrade = FreqtradeBot(default_conf_usdt)
patch_get_signal(freqtrade) patch_get_signal(freqtrade)
@ -294,7 +294,7 @@ def test_create_trade(default_conf_usdt, ticker_usdt, limit_order,
'freqtrade.exchange.Exchange', 'freqtrade.exchange.Exchange',
fetch_ticker=ticker_usdt, fetch_ticker=ticker_usdt,
get_fee=fee, get_fee=fee,
_fill_dry_limit_order=MagicMock(side_effect=lambda *_ :(None, 0)), _fill_dry_limit_order=MagicMock(side_effect=lambda *_: (None, 0)),
) )
# Save state of current whitelist # Save state of current whitelist
@ -3056,7 +3056,7 @@ def test_execute_trade_exit_up(default_conf_usdt, ticker_usdt, fee, ticker_usdt_
'freqtrade.exchange.Exchange', 'freqtrade.exchange.Exchange',
fetch_ticker=ticker_usdt, fetch_ticker=ticker_usdt,
get_fee=fee, get_fee=fee,
_fill_dry_limit_order=MagicMock(side_effect=lambda *_ :(None, 0)), _fill_dry_limit_order=MagicMock(side_effect=lambda *_: (None, 0)),
) )
patch_whitelist(mocker, default_conf_usdt) patch_whitelist(mocker, default_conf_usdt)
freqtrade = FreqtradeBot(default_conf_usdt) freqtrade = FreqtradeBot(default_conf_usdt)
@ -3135,7 +3135,7 @@ def test_execute_trade_exit_down(default_conf_usdt, ticker_usdt, fee, ticker_usd
'freqtrade.exchange.Exchange', 'freqtrade.exchange.Exchange',
fetch_ticker=ticker_usdt, fetch_ticker=ticker_usdt,
get_fee=fee, get_fee=fee,
_fill_dry_limit_order=MagicMock(side_effect=lambda *_ :(None, 0)), _fill_dry_limit_order=MagicMock(side_effect=lambda *_: (None, 0)),
) )
patch_whitelist(mocker, default_conf_usdt) patch_whitelist(mocker, default_conf_usdt)
freqtrade = FreqtradeBot(default_conf_usdt) freqtrade = FreqtradeBot(default_conf_usdt)
@ -3200,7 +3200,7 @@ def test_execute_trade_exit_custom_exit_price(
'freqtrade.exchange.Exchange', 'freqtrade.exchange.Exchange',
fetch_ticker=ticker_usdt, fetch_ticker=ticker_usdt,
get_fee=fee, get_fee=fee,
_fill_dry_limit_order=MagicMock(side_effect=lambda *_ :(None, 0)), _fill_dry_limit_order=MagicMock(side_effect=lambda *_: (None, 0)),
) )
config = deepcopy(default_conf_usdt) config = deepcopy(default_conf_usdt)
config['custom_price_max_distance_ratio'] = 0.1 config['custom_price_max_distance_ratio'] = 0.1
@ -3277,7 +3277,7 @@ def test_execute_trade_exit_down_stoploss_on_exchange_dry_run(
'freqtrade.exchange.Exchange', 'freqtrade.exchange.Exchange',
fetch_ticker=ticker_usdt, fetch_ticker=ticker_usdt,
get_fee=fee, get_fee=fee,
_fill_dry_limit_order=MagicMock(side_effect=lambda *_ :(None, 0)), _fill_dry_limit_order=MagicMock(side_effect=lambda *_: (None, 0)),
) )
patch_whitelist(mocker, default_conf_usdt) patch_whitelist(mocker, default_conf_usdt)
freqtrade = FreqtradeBot(default_conf_usdt) freqtrade = FreqtradeBot(default_conf_usdt)
@ -3392,7 +3392,8 @@ def test_execute_trade_exit_with_stoploss_on_exchange(
price_to_precision=lambda s, x, y: y, price_to_precision=lambda s, x, y: y,
stoploss=stoploss, stoploss=stoploss,
cancel_stoploss_order=cancel_order, cancel_stoploss_order=cancel_order,
_fill_dry_limit_order=MagicMock(side_effect=SideEffect(lambda *_: _[-2:], lambda *_: (None, 0))), _fill_dry_limit_order=MagicMock(
side_effect=SideEffect(lambda *_: _[-2:], lambda *_: (None, 0))),
) )
freqtrade = FreqtradeBot(default_conf_usdt) freqtrade = FreqtradeBot(default_conf_usdt)
@ -3441,7 +3442,8 @@ def test_may_execute_trade_exit_after_stoploss_on_exchange_hit(
get_fee=fee, get_fee=fee,
amount_to_precision=lambda s, x, y: y, amount_to_precision=lambda s, x, y: y,
price_to_precision=lambda s, x, y: y, price_to_precision=lambda s, x, y: y,
_fill_dry_limit_order=MagicMock(side_effect=SideEffect(lambda *_: (None, 0), lambda *_: _[-2:])), _fill_dry_limit_order=MagicMock(
side_effect=SideEffect(lambda *_: (None, 0), lambda *_: _[-2:])),
) )
stoploss = MagicMock(return_value={ stoploss = MagicMock(return_value={
@ -3541,7 +3543,7 @@ def test_execute_trade_exit_market_order(
'freqtrade.exchange.Exchange', 'freqtrade.exchange.Exchange',
fetch_ticker=ticker_usdt, fetch_ticker=ticker_usdt,
get_fee=fee, get_fee=fee,
_fill_dry_limit_order=MagicMock(side_effect=lambda *_ :(None, 0)), _fill_dry_limit_order=MagicMock(side_effect=lambda *_: (None, 0)),
) )
patch_whitelist(mocker, default_conf_usdt) patch_whitelist(mocker, default_conf_usdt)
freqtrade = FreqtradeBot(default_conf_usdt) freqtrade = FreqtradeBot(default_conf_usdt)
@ -4050,7 +4052,7 @@ def test_disable_ignore_roi_if_buy_signal(default_conf_usdt, limit_order, limit_
{'id': 1234553383} {'id': 1234553383}
]), ]),
get_fee=fee, get_fee=fee,
_fill_dry_limit_order=MagicMock(side_effect=lambda *_ :(None, 0)), _fill_dry_limit_order=MagicMock(side_effect=lambda *_: (None, 0)),
) )
default_conf_usdt['exit_pricing'] = { default_conf_usdt['exit_pricing'] = {
'ignore_roi_if_buy_signal': False 'ignore_roi_if_buy_signal': False